- cert-manager: manages certificate lifecycle (Issuer, Certificate) and produces TLS Secrets.
- Prometheus Operator: manages monitoring lifecycle (ServiceMonitor, Prometheus) and generates the Prometheus workload.
Operators claim ownership only of the custom resources defined by their CRDs. Co-locating resources in the same Kubernetes namespace is useful for visibility, but it does not imply shared ownership or control.
Prerequisites and overview
- Confirm cert-manager and Prometheus Operator deployments are running.
- Create a single namespace
combinedto host the application-facing custom resources (the operators themselves run in their own namespaces). - Apply cert-manager resources (Issuer + Certificate) and verify a TLS Secret is produced.
- Apply Prometheus resources (Deployment, Service, ServiceMonitor, Prometheus) and verify the operator generates the Prometheus StatefulSet.
- Validate that each operator only reconciles its own resources and verify the label selector match between Prometheus and the ServiceMonitor.
Verify controllers and create namespace
Confirm both operator deployments are available, then create thecombined namespace:
combined namespace while their controllers continue to run in separate operator namespaces.
cert-manager resources (Issuer + Certificate)
Inspect the cert-manager resources: an Issuer (who signs) and a Certificate (what certificate is requested and which Secret should receive it). The Certificate in this lesson targets the Secretweb-tls in namespace combined.

kubernetes.io/tls, the standard type used by applications for TLS secrets:
Prometheus resources (Deployment, Service, ServiceMonitor, Prometheus)
Next, create the monitoring resources that the Prometheus Operator will reconcile. This example includes:- a small example Deployment that exports metrics,
- a Service exposing the metrics port,
- a ServiceMonitor that discovers the Service,
- a Prometheus custom resource that selects ServiceMonitors via labels.
prometheus-combined.
Quick reference: resources created in combined namespace
Validate operator ownership and selector match
List and inspect resources in thecombined namespace to confirm both workflows coexist without ownership overlap:
- cert-manager produced
web-tlsSecret from the Certificate request. - Prometheus Operator generated the Prometheus StatefulSet and included the ServiceMonitor in its scrape targets.
combined so the ServiceMonitor is included in Prometheus’ configuration:
Summary
You now have two operators performing different responsibilities within the same namespace:- cert-manager issued a certificate and wrote a
kubernetes.io/tlsSecret for application consumption. - Prometheus Operator generated the Prometheus StatefulSet and configured scraping via the ServiceMonitor you created.