diff --git a/examples/kustomize.jsonnet b/examples/kustomize.jsonnet
index 455b38bd77eb1ef1a912801cc8cc3cdb1ff2cb6b..238f57f1adf75e37c233b24abab83b602ea9284c 100644
--- a/examples/kustomize.jsonnet
+++ b/examples/kustomize.jsonnet
@@ -8,17 +8,14 @@ local kp =
   };
 
 local manifests =
-  // Uncomment line below to enable vertical auto scaling of kube-state-metrics
-  //{ ['ksm-autoscaler-' + name]: kp.ksmAutoscaler[name] for name in std.objectFields(kp.ksmAutoscaler) } +
-  { 'setup/0namespace-namespace': kp.kubePrometheus.namespace } +
-  {
-    ['setup/prometheus-operator-' + name]: kp.prometheusOperator[name]
-    for name in std.filter((function(name) name != 'serviceMonitor' && name != 'prometheusRule'), std.objectFields(kp.prometheusOperator))
+  { 'setup/namespace': kp.kubePrometheus.namespace } +
+  { ['setup/' + name]: kp.prometheusOperator[name]
+    for name in std.filter(function(name) kp.prometheusOperator[name]['kind'] == 'CustomResourceDefinition', std.objectFields(kp.prometheusOperator))
   } +
-  // serviceMonitor and prometheusRule are separated so that they can be created after the CRDs are ready
-  { 'prometheus-operator-serviceMonitor': kp.prometheusOperator.serviceMonitor } +
-  { 'prometheus-operator-prometheusRule': kp.prometheusOperator.prometheusRule } +
   { 'kube-prometheus-prometheusRule': kp.kubePrometheus.prometheusRule } +
+  { ['prometheus-operator-' + name]: kp.prometheusOperator[name]
+    for name in std.filter(function(name) kp.prometheusOperator[name]['kind'] != 'CustomResourceDefinition', std.objectFields(kp.prometheusOperator))
+  } +
   { ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
   { ['blackbox-exporter-' + name]: kp.blackboxExporter[name] for name in std.objectFields(kp.blackboxExporter) } +
   { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +