diff --git a/barbican/templates/configmap-bin.yaml b/barbican/templates/configmap-bin.yaml
index 641ac9a280..92e423507e 100644
--- a/barbican/templates/configmap-bin.yaml
+++ b/barbican/templates/configmap-bin.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -33,3 +34,4 @@ data:
 {{- include "helm-toolkit.scripts.keystone_endpoints" . | indent 4 }}
   ks-user.sh: |
 {{- include "helm-toolkit.scripts.keystone_user" . | indent 4 }}
+{{- end }}
diff --git a/barbican/templates/configmap-etc.yaml b/barbican/templates/configmap-etc.yaml
index e6c4de2386..bbe248aa4c 100644
--- a/barbican/templates/configmap-etc.yaml
+++ b/barbican/templates/configmap-etc.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "barbican.conf.barbican_values_skeleton" .Values.conf.barbican | trunc 0 -}}
@@ -107,3 +108,4 @@ data:
 {{- end }}
   barbican-api.ini: |+
 {{ tuple "etc/_barbican-api.ini.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/barbican/templates/deployment-api.yaml b/barbican/templates/deployment-api.yaml
index dabc99379b..cdd0a0d127 100644
--- a/barbican/templates/deployment-api.yaml
+++ b/barbican/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_barbican_api := .Values.pod.mounts.barbican_api.barbican_api }}
@@ -97,3 +98,4 @@ spec:
             name: barbican-bin
             defaultMode: 0555
 {{- if $mounts_barbican_api.volumes }}{{ toYaml $mounts_barbican_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/barbican/templates/ingress-api.yaml b/barbican/templates/ingress-api.yaml
index 146a1908b0..b9b5a44bf7 100644
--- a/barbican/templates/ingress-api.yaml
+++ b/barbican/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "key-manager" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: b-api
 {{- end }}
+{{- end }}
diff --git a/barbican/templates/job-bootstrap.yaml b/barbican/templates/job-bootstrap.yaml
index e251159065..ad11e924b3 100644
--- a/barbican/templates/job-bootstrap.yaml
+++ b/barbican/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -57,3 +58,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_barbican_bootstrap.volumes }}{{ toYaml $mounts_barbican_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/barbican/templates/job-db-init.yaml b/barbican/templates/job-db-init.yaml
index bb2f9e138c..77394bf7ba 100644
--- a/barbican/templates/job-db-init.yaml
+++ b/barbican/templates/job-db-init.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -69,3 +70,4 @@ spec:
           configMap:
             name: barbican-bin
             defaultMode: 0555
+{{- end }}
diff --git a/barbican/templates/job-db-sync.yaml b/barbican/templates/job-db-sync.yaml
index c080222435..c7e28a5c0e 100644
--- a/barbican/templates/job-db-sync.yaml
+++ b/barbican/templates/job-db-sync.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: barbican-bin
             defaultMode: 0555
+{{- end }}
diff --git a/barbican/templates/job-ks-endpoints.yaml b/barbican/templates/job-ks-endpoints.yaml
index 3687a8947a..3dc8e5e4a9 100644
--- a/barbican/templates/job-ks-endpoints.yaml
+++ b/barbican/templates/job-ks-endpoints.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -61,3 +62,4 @@ spec:
           configMap:
             name: barbican-bin
             defaultMode: 0555
+{{- end }}
diff --git a/barbican/templates/job-ks-service.yaml b/barbican/templates/job-ks-service.yaml
index a96e5f26f3..ea0e6b6b19 100644
--- a/barbican/templates/job-ks-service.yaml
+++ b/barbican/templates/job-ks-service.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -55,3 +56,4 @@ spec:
           configMap:
             name: barbican-bin
             defaultMode: 0555
+{{- end }}
diff --git a/barbican/templates/job-ks-user.yaml b/barbican/templates/job-ks-user.yaml
index 630ad6fe08..faab3b99bb 100644
--- a/barbican/templates/job-ks-user.yaml
+++ b/barbican/templates/job-ks-user.yaml
@@ -10,6 +10,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -56,3 +57,4 @@ spec:
           configMap:
             name: barbican-bin
             defaultMode: 0555
+{{- end }}
diff --git a/barbican/templates/pdb-api.yaml b/barbican/templates/pdb-api.yaml
index f4e9bda587..bae83ae763 100644
--- a/barbican/templates/pdb-api.yaml
+++ b/barbican/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "barbican" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/barbican/templates/secret-db.yaml b/barbican/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/barbican/templates/secret-db.yaml
+++ b/barbican/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/barbican/templates/secret-keystone.yaml b/barbican/templates/secret-keystone.yaml
index 0f963b248f..3f3279995b 100644
--- a/barbican/templates/secret-keystone.yaml
+++ b/barbican/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/barbican/templates/service-api.yaml b/barbican/templates/service-api.yaml
index 8c1cb73c02..1a25e30727 100644
--- a/barbican/templates/service-api.yaml
+++ b/barbican/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/barbican/templates/service-ingress-api.yaml b/barbican/templates/service-ingress-api.yaml
index 7573e4c1e4..81cb1ae369 100644
--- a/barbican/templates/service-ingress-api.yaml
+++ b/barbican/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/barbican/values.yaml b/barbican/values.yaml
index 4d12672d5b..2f05181c45 100644
--- a/barbican/values.yaml
+++ b/barbican/values.yaml
@@ -14,6 +14,8 @@ labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
 
+release_group: null
+
 images:
   bootstrap: docker.io/kolla/ubuntu-source-barbican-api:3.0.3
   dep_check: docker.io/kolla/ubuntu-source-kubernetes-entrypoint:4.0.0
@@ -277,3 +279,20 @@ endpoints:
     port:
       memcache:
         default: 11211
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  ingress_api: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  secret_db: true
+  secret_keystone: true
+  service_ingress_api: true
+  service_api: true
diff --git a/cinder/templates/configmap-bin.yaml b/cinder/templates/configmap-bin.yaml
index dceb3fb037..352e6f272a 100644
--- a/cinder/templates/configmap-bin.yaml
+++ b/cinder/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -45,3 +46,4 @@ data:
   bootstrap.sh: |+
 {{ tuple "bin/_bootstrap.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/cinder/templates/configmap-etc.yaml b/cinder/templates/configmap-etc.yaml
index 232514d881..a1f7aadcc2 100644
--- a/cinder/templates/configmap-etc.yaml
+++ b/cinder/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "cinder.conf.cinder_values_skeleton" .Values.conf.cinder | trunc 0 -}}
@@ -122,3 +123,4 @@ data:
 {{- else -}}
 {{ tuple "etc/_policy.json.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/cinder/templates/deployment-api.yaml b/cinder/templates/deployment-api.yaml
index 420023fc2c..6a146966c7 100644
--- a/cinder/templates/deployment-api.yaml
+++ b/cinder/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_cinder_api := .Values.pod.mounts.cinder_api.cinder_api }}
@@ -87,3 +88,4 @@ spec:
             name: cinder-etc
             defaultMode: 0444
 {{- if $mounts_cinder_api.volumes }}{{ toYaml $mounts_cinder_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/cinder/templates/deployment-backup.yaml b/cinder/templates/deployment-backup.yaml
index f3f9ff3efd..596728a539 100644
--- a/cinder/templates/deployment-backup.yaml
+++ b/cinder/templates/deployment-backup.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_backup }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.backup }}
 {{- $mounts_cinder_backup := .Values.pod.mounts.cinder_backup.cinder_backup }}
@@ -105,3 +106,4 @@ spec:
             secretName: pvc-ceph-client-key
         {{ end }}
 {{- if $mounts_cinder_backup.volumes }}{{ toYaml $mounts_cinder_backup.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/cinder/templates/deployment-scheduler.yaml b/cinder/templates/deployment-scheduler.yaml
index bdeaa9f184..0ba3532669 100644
--- a/cinder/templates/deployment-scheduler.yaml
+++ b/cinder/templates/deployment-scheduler.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_scheduler }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.scheduler }}
 {{- $mounts_cinder_scheduler := .Values.pod.mounts.cinder_scheduler.cinder_scheduler }}
@@ -73,3 +74,4 @@ spec:
             name: cinder-etc
             defaultMode: 0444
 {{- if $mounts_cinder_scheduler.volumes }}{{ toYaml $mounts_cinder_scheduler.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/cinder/templates/deployment-volume.yaml b/cinder/templates/deployment-volume.yaml
index 6a14fd03f2..98686dcaed 100644
--- a/cinder/templates/deployment-volume.yaml
+++ b/cinder/templates/deployment-volume.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_volume }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.volume }}
 {{- $mounts_cinder_volume := .Values.pod.mounts.cinder_volume.cinder_volume }}
@@ -108,3 +109,4 @@ spec:
             secretName: pvc-ceph-client-key
         {{ end }}
 {{- if $mounts_cinder_volume.volumes }}{{ toYaml $mounts_cinder_volume.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/cinder/templates/ingress-api.yaml b/cinder/templates/ingress-api.yaml
index 6387db00ac..5e2bb4aa67 100644
--- a/cinder/templates/ingress-api.yaml
+++ b/cinder/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "volume" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: c-api
 {{- end }}
+{{- end }}
diff --git a/cinder/templates/job-bootstrap.yaml b/cinder/templates/job-bootstrap.yaml
index f9126d20dc..38f9ed7418 100644
--- a/cinder/templates/job-bootstrap.yaml
+++ b/cinder/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -61,3 +62,4 @@ spec:
             name: cinder-bin
             defaultMode: 0555
 {{- end }}
+{{- end }}
diff --git a/cinder/templates/job-db-init.yaml b/cinder/templates/job-db-init.yaml
index 04bddf927d..928168e414 100644
--- a/cinder/templates/job-db-init.yaml
+++ b/cinder/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: cinder-bin
             defaultMode: 0555
+{{- end }}
diff --git a/cinder/templates/job-db-sync.yaml b/cinder/templates/job-db-sync.yaml
index 1106f90588..a071f8e04f 100644
--- a/cinder/templates/job-db-sync.yaml
+++ b/cinder/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: cinder-bin
             defaultMode: 0555
+{{- end }}
diff --git a/cinder/templates/job-ks-endpoints.yaml b/cinder/templates/job-ks-endpoints.yaml
index 7fe2a45b8f..87ac4e48d1 100644
--- a/cinder/templates/job-ks-endpoints.yaml
+++ b/cinder/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: cinder-bin
             defaultMode: 0555
+{{- end }}
diff --git a/cinder/templates/job-ks-service.yaml b/cinder/templates/job-ks-service.yaml
index d2616713bf..13e9820eee 100644
--- a/cinder/templates/job-ks-service.yaml
+++ b/cinder/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: cinder-bin
             defaultMode: 0555
+{{- end }}
diff --git a/cinder/templates/job-ks-user.yaml b/cinder/templates/job-ks-user.yaml
index f25e1b6d0d..2d34eef4b7 100644
--- a/cinder/templates/job-ks-user.yaml
+++ b/cinder/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: cinder-bin
             defaultMode: 0555
+{{- end }}
diff --git a/cinder/templates/pdb-api.yaml b/cinder/templates/pdb-api.yaml
index 8e95208af1..cc19d0ed0e 100644
--- a/cinder/templates/pdb-api.yaml
+++ b/cinder/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "cinder" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/cinder/templates/pod-rally-test.yaml b/cinder/templates/pod-rally-test.yaml
index d258200932..5ad6b097a3 100644
--- a/cinder/templates/pod-rally-test.yaml
+++ b/cinder/templates/pod-rally-test.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pod_rally_test }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.tests }}
 {{- $mounts_cinder_tests := .Values.pod.mounts.cinder_tests.cinder_tests }}
@@ -64,3 +65,4 @@ spec:
     - name: rally-db
       emptyDir: {}
 {{- if $mounts_cinder_tests.volumes }}{{ toYaml $mounts_cinder_tests.volumes | indent 4 }}{{ end }}
+{{- end }}
diff --git a/cinder/templates/secret-db.yaml b/cinder/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/cinder/templates/secret-db.yaml
+++ b/cinder/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/cinder/templates/secret-keystone.yaml b/cinder/templates/secret-keystone.yaml
index 0f963b248f..3f3279995b 100644
--- a/cinder/templates/secret-keystone.yaml
+++ b/cinder/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/cinder/templates/service-api.yaml b/cinder/templates/service-api.yaml
index 45dd1d965c..d7af585e5a 100644
--- a/cinder/templates/service-api.yaml
+++ b/cinder/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/cinder/templates/service-ingress-api.yaml b/cinder/templates/service-ingress-api.yaml
index 63b4b7c85a..72ffdc0789 100644
--- a/cinder/templates/service-ingress-api.yaml
+++ b/cinder/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/cinder/values.yaml b/cinder/values.yaml
index f6cfe2fa3b..5983784b73 100644
--- a/cinder/values.yaml
+++ b/cinder/values.yaml
@@ -23,6 +23,8 @@ labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
 
+release_group: null
+
 images:
   test: docker.io/kolla/ubuntu-binary-rally:4.0.0
   db_init: docker.io/kolla/ubuntu-source-cinder-api:3.0.3
@@ -459,3 +461,24 @@ endpoints:
     port:
       memcache:
         default: 11211
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  deployment_backup: true
+  deployment_scheduler: true
+  deployment_volume: true
+  ingress_api: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  pod_rally_test: true
+  secret_db: true
+  secret_keystone: true
+  service_api: true
+  service_ingress_api: true
diff --git a/glance/templates/configmap-bin.yaml b/glance/templates/configmap-bin.yaml
index 273979a677..dfa52ef1a3 100644
--- a/glance/templates/configmap-bin.yaml
+++ b/glance/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -41,3 +42,4 @@ data:
 {{ tuple "bin/_ceph-keyring.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   clean.sh: |+
 {{ tuple "bin/_clean.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/glance/templates/configmap-etc.yaml b/glance/templates/configmap-etc.yaml
index 5d0568a0b6..aad27266af 100644
--- a/glance/templates/configmap-etc.yaml
+++ b/glance/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "glance.conf.glance_values_skeleton" .Values.conf.glance | trunc 0 -}}
@@ -179,3 +180,4 @@ data:
 {{- else -}}
 {{ tuple "etc/_policy.json.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/glance/templates/deployment-api.yaml b/glance/templates/deployment-api.yaml
index ed4dadb752..ee98ceef09 100644
--- a/glance/templates/deployment-api.yaml
+++ b/glance/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_glance_api := .Values.pod.mounts.glance_api.glance_api }}
@@ -154,3 +155,4 @@ spec:
             secretName: pvc-ceph-client-key
 {{- end }}
 {{- if $mounts_glance_api.volumes }}{{ toYaml $mounts_glance_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/glance/templates/deployment-registry.yaml b/glance/templates/deployment-registry.yaml
index 47d4e646d4..0c1c2f9056 100644
--- a/glance/templates/deployment-registry.yaml
+++ b/glance/templates/deployment-registry.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_registry }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.registry }}
 {{- $mounts_glance_registry := .Values.pod.mounts.glance_registry.glance_registry }}
@@ -90,3 +91,4 @@ spec:
             name: glance-etc
             defaultMode: 0444
 {{- if $mounts_glance_registry.volumes }}{{ toYaml $mounts_glance_registry.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/glance/templates/ingress-api.yaml b/glance/templates/ingress-api.yaml
index e2c1917723..18a274ea40 100644
--- a/glance/templates/ingress-api.yaml
+++ b/glance/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -40,3 +41,4 @@ spec:
           serviceName: {{ tuple "image" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: g-api
 {{- end }}
+{{- end }}
diff --git a/glance/templates/ingress-registry.yaml b/glance/templates/ingress-registry.yaml
index 2f55c0fdba..f84322c1a0 100644
--- a/glance/templates/ingress-registry.yaml
+++ b/glance/templates/ingress-registry.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_registry }}
 {{- $envAll := . }}
 {{- if .Values.network.registry.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "image_registry" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: g-reg
 {{- end }}
+{{- end }}
diff --git a/glance/templates/job-bootstrap.yaml b/glance/templates/job-bootstrap.yaml
index 53f884d35b..b79afd61ff 100644
--- a/glance/templates/job-bootstrap.yaml
+++ b/glance/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: glance-etc
             defaultMode: 0444
+{{- end }}
diff --git a/glance/templates/job-clean.yaml b/glance/templates/job-clean.yaml
index 6f812a7d59..29fe2f89d8 100644
--- a/glance/templates/job-clean.yaml
+++ b/glance/templates/job-clean.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_clean }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 ---
@@ -50,3 +51,4 @@ spec:
             name: glance-bin
             defaultMode: 0555
 {{- end }}
+{{- end }}
diff --git a/glance/templates/job-db-init.yaml b/glance/templates/job-db-init.yaml
index 9c5c9102f6..37a54f8af6 100644
--- a/glance/templates/job-db-init.yaml
+++ b/glance/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: glance-bin
             defaultMode: 0555
+{{- end }}
diff --git a/glance/templates/job-db-sync.yaml b/glance/templates/job-db-sync.yaml
index f82ea53b43..f45d419f64 100644
--- a/glance/templates/job-db-sync.yaml
+++ b/glance/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -59,3 +60,4 @@ spec:
           configMap:
             name: glance-bin
             defaultMode: 0555
+{{- end }}
diff --git a/glance/templates/job-ks-endpoints.yaml b/glance/templates/job-ks-endpoints.yaml
index 3dea3d4dfb..ebd8ac738e 100644
--- a/glance/templates/job-ks-endpoints.yaml
+++ b/glance/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: glance-bin
             defaultMode: 0555
+{{- end }}
diff --git a/glance/templates/job-ks-service.yaml b/glance/templates/job-ks-service.yaml
index 12ad0972a3..d9fab8c585 100644
--- a/glance/templates/job-ks-service.yaml
+++ b/glance/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: glance-bin
             defaultMode: 0555
+{{- end }}
diff --git a/glance/templates/job-ks-user.yaml b/glance/templates/job-ks-user.yaml
index 8a09086b06..c4d85b302a 100644
--- a/glance/templates/job-ks-user.yaml
+++ b/glance/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: glance-bin
             defaultMode: 0555
+{{- end }}
diff --git a/glance/templates/pdb-api.yaml b/glance/templates/pdb-api.yaml
index 1b45253956..bbf6fe3a36 100644
--- a/glance/templates/pdb-api.yaml
+++ b/glance/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "glance" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/glance/templates/pdb-registry.yaml b/glance/templates/pdb-registry.yaml
index 1c18d53671..a4e1064d9a 100644
--- a/glance/templates/pdb-registry.yaml
+++ b/glance/templates/pdb-registry.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_registry }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "glance" "registry" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/glance/templates/pod-rally-test.yaml b/glance/templates/pod-rally-test.yaml
index c388589567..badf7d0a06 100644
--- a/glance/templates/pod-rally-test.yaml
+++ b/glance/templates/pod-rally-test.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pod_rally_test }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.tests }}
 {{- $mounts_glance_tests := .Values.pod.mounts.glance_tests.glance_tests }}
@@ -64,3 +65,4 @@ spec:
     - name: rally-db
       emptyDir: {}
 {{- if $mounts_glance_tests.volumes }}{{ toYaml $mounts_glance_tests.volumes | indent 4 }}{{ end }}
+{{- end }}
diff --git a/glance/templates/pvc-images.yaml b/glance/templates/pvc-images.yaml
index 1533544be2..9bce0e67c7 100644
--- a/glance/templates/pvc-images.yaml
+++ b/glance/templates/pvc-images.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pvc_images }}
 {{- $envAll := . }}
 {{- if eq .Values.storage "pvc" }}
 ---
@@ -26,3 +27,4 @@ spec:
       storage: {{ .Values.volume.size }}
   storageClassName: {{ .Values.volume.class_name }}
 {{- end }}
+{{- end }}
diff --git a/glance/templates/secret-db.yaml b/glance/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/glance/templates/secret-db.yaml
+++ b/glance/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/glance/templates/secret-keystone.yaml b/glance/templates/secret-keystone.yaml
index 0f963b248f..3f3279995b 100644
--- a/glance/templates/secret-keystone.yaml
+++ b/glance/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/glance/templates/service-api.yaml b/glance/templates/service-api.yaml
index cb2cc17e65..77e7309f93 100644
--- a/glance/templates/service-api.yaml
+++ b/glance/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/glance/templates/service-ingress-api.yaml b/glance/templates/service-ingress-api.yaml
index 57674db1bb..43e0683a48 100644
--- a/glance/templates/service-ingress-api.yaml
+++ b/glance/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/glance/templates/service-ingress-registry.yaml b/glance/templates/service-ingress-registry.yaml
index 5bada412d4..f984ebdeee 100644
--- a/glance/templates/service-ingress-registry.yaml
+++ b/glance/templates/service-ingress-registry.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_registry }}
 {{- $envAll := . }}
 {{- if .Values.network.registry.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/glance/templates/service-registry.yaml b/glance/templates/service-registry.yaml
index 444db61379..ed6126578f 100644
--- a/glance/templates/service-registry.yaml
+++ b/glance/templates/service-registry.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_registry }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.registry.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/glance/values.yaml b/glance/values.yaml
index 77e39e8fb1..2ca5cac4b3 100644
--- a/glance/values.yaml
+++ b/glance/values.yaml
@@ -24,6 +24,8 @@ labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
 
+release_group: null
+
 images:
   test: docker.io/kolla/ubuntu-binary-rally:4.0.0
   db_init: docker.io/kolla/ubuntu-source-glance-api:3.0.3
@@ -416,3 +418,28 @@ pod:
         limits:
           memory: "1024Mi"
           cpu: "2000m"
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  deployment_registry: true
+  ingress_api: true
+  ingress_registry: true
+  job_bootstrap: true
+  job_clean: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  pdb_registry: true
+  pod_rally_test: true
+  pvc_images: true
+  secret_db: true
+  secret_keystone: true
+  service_ingress_api: true
+  service_ingress_registry: true
+  service_api: true
+  service_registry: true
diff --git a/heat/templates/configmap-bin.yaml b/heat/templates/configmap-bin.yaml
index b657f2f19c..2f193de4a0 100644
--- a/heat/templates/configmap-bin.yaml
+++ b/heat/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -43,3 +44,4 @@ data:
 {{ tuple "bin/_heat-cloudwatch.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   heat-engine.sh: |
 {{ tuple "bin/_heat-engine.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/heat/templates/configmap-etc.yaml b/heat/templates/configmap-etc.yaml
index e12f5c23f5..cca9ec6c66 100644
--- a/heat/templates/configmap-etc.yaml
+++ b/heat/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "heat.conf.heat_values_skeleton" .Values.conf.heat | trunc 0 -}}
@@ -141,3 +142,4 @@ data:
 {{- else -}}
 {{ tuple "etc/_policy.json.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/heat/templates/deployment-api.yaml b/heat/templates/deployment-api.yaml
index baa7c1ba72..dc256e4796 100644
--- a/heat/templates/deployment-api.yaml
+++ b/heat/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_heat_api := .Values.pod.mounts.heat_api.heat_api }}
@@ -94,3 +95,4 @@ spec:
             name: heat-etc
             defaultMode: 0444
 {{- if $mounts_heat_api.volumes }}{{ toYaml $mounts_heat_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/heat/templates/deployment-cfn.yaml b/heat/templates/deployment-cfn.yaml
index 87f45a561d..54a17b28f1 100644
--- a/heat/templates/deployment-cfn.yaml
+++ b/heat/templates/deployment-cfn.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_cfn }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.cfn }}
 {{- $mounts_heat_cfn := .Values.pod.mounts.heat_cfn.heat_cfn }}
@@ -94,3 +95,4 @@ spec:
             name: heat-etc
             defaultMode: 0444
 {{- if $mounts_heat_cfn.volumes }}{{ toYaml $mounts_heat_cfn.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/heat/templates/deployment-cloudwatch.yaml b/heat/templates/deployment-cloudwatch.yaml
index ff3f923824..ec25655851 100644
--- a/heat/templates/deployment-cloudwatch.yaml
+++ b/heat/templates/deployment-cloudwatch.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_cloudwatch }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.cloudwatch }}
 {{- $mounts_heat_cloudwatch := .Values.pod.mounts.heat_cloudwatch.heat_cloudwatch }}
@@ -94,3 +95,4 @@ spec:
             name: heat-etc
             defaultMode: 0444
 {{- if $mounts_heat_cloudwatch.volumes }}{{ toYaml $mounts_heat_cloudwatch.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/heat/templates/ingress-api.yaml b/heat/templates/ingress-api.yaml
index 2f63865853..ae2d16bd1a 100644
--- a/heat/templates/ingress-api.yaml
+++ b/heat/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "orchestration" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: h-api
 {{- end }}
+{{- end }}
diff --git a/heat/templates/ingress-cfn.yaml b/heat/templates/ingress-cfn.yaml
index 2fd0cfbf68..170849d0c8 100644
--- a/heat/templates/ingress-cfn.yaml
+++ b/heat/templates/ingress-cfn.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_cfn }}
 {{- $envAll := . }}
 {{- if .Values.network.cfn.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "cloudformation" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: h-cfn
 {{- end }}
+{{- end }}
diff --git a/heat/templates/ingress-cloudwatch.yaml b/heat/templates/ingress-cloudwatch.yaml
index ccc7ec93f8..f6bf2ae8f5 100644
--- a/heat/templates/ingress-cloudwatch.yaml
+++ b/heat/templates/ingress-cloudwatch.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_cloudwatch }}
 {{- $envAll := . }}
 {{- if .Values.network.cloudwatch.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "cloudwatch" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: h-cwh
 {{- end }}
+{{- end }}
diff --git a/heat/templates/job-bootstrap.yaml b/heat/templates/job-bootstrap.yaml
index 7f8f7aab55..98ff150682 100644
--- a/heat/templates/job-bootstrap.yaml
+++ b/heat/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -57,3 +58,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_heat_bootstrap.volumes }}{{ toYaml $mounts_heat_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/heat/templates/job-db-init.yaml b/heat/templates/job-db-init.yaml
index 152dc8c96b..f5dbcfb6ea 100644
--- a/heat/templates/job-db-init.yaml
+++ b/heat/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: heat-bin
             defaultMode: 0555
+{{- end }}
diff --git a/heat/templates/job-db-sync.yaml b/heat/templates/job-db-sync.yaml
index 2837742152..7aa19096c4 100644
--- a/heat/templates/job-db-sync.yaml
+++ b/heat/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -59,3 +60,4 @@ spec:
           configMap:
             name: heat-bin
             defaultMode: 0555
+{{- end }}
diff --git a/heat/templates/job-ks-endpoints.yaml b/heat/templates/job-ks-endpoints.yaml
index 8a45ac6143..976a8a7454 100644
--- a/heat/templates/job-ks-endpoints.yaml
+++ b/heat/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: heat-bin
             defaultMode: 0555
+{{- end }}
diff --git a/heat/templates/job-ks-service.yaml b/heat/templates/job-ks-service.yaml
index 92ad1b7a44..fd72652d52 100644
--- a/heat/templates/job-ks-service.yaml
+++ b/heat/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: heat-bin
             defaultMode: 0555
+{{- end }}
diff --git a/heat/templates/job-ks-user.yaml b/heat/templates/job-ks-user.yaml
index bd22e2eb2c..447b9c2254 100644
--- a/heat/templates/job-ks-user.yaml
+++ b/heat/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -117,3 +118,4 @@ spec:
           configMap:
             name: heat-bin
             defaultMode: 0555
+{{- end }}
diff --git a/heat/templates/pdb-api.yaml b/heat/templates/pdb-api.yaml
index c05eaba9c7..97e9093073 100644
--- a/heat/templates/pdb-api.yaml
+++ b/heat/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "heat" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/heat/templates/pdb-cfn.yaml b/heat/templates/pdb-cfn.yaml
index 33c5f245d9..c15673b83d 100644
--- a/heat/templates/pdb-cfn.yaml
+++ b/heat/templates/pdb-cfn.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_cfn }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "heat" "cfn" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/heat/templates/pdb-cloudwatch.yaml b/heat/templates/pdb-cloudwatch.yaml
index 80b1038038..c00af1baf6 100644
--- a/heat/templates/pdb-cloudwatch.yaml
+++ b/heat/templates/pdb-cloudwatch.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_cloudwatch }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "heat" "cloudwatch" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/heat/templates/secret-db.yaml b/heat/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/heat/templates/secret-db.yaml
+++ b/heat/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/heat/templates/secret-keystone.yaml b/heat/templates/secret-keystone.yaml
index f9ee15f9bc..596f3a40ea 100644
--- a/heat/templates/secret-keystone.yaml
+++ b/heat/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" "trustee" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -36,3 +37,4 @@ data:
   OS_DOMAIN_NAME: {{ .Values.endpoints.identity.auth.stack_user.domain_name | b64enc | indent 4 }}
   OS_USERNAME: {{ .Values.endpoints.identity.auth.stack_user.username | b64enc | indent 4 }}
   OS_PASSWORD: {{ .Values.endpoints.identity.auth.stack_user.password | b64enc | indent 4 }}
+{{- end }}
diff --git a/heat/templates/service-api.yaml b/heat/templates/service-api.yaml
index d8333accb9..e86b30dd53 100644
--- a/heat/templates/service-api.yaml
+++ b/heat/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/heat/templates/service-cfn.yaml b/heat/templates/service-cfn.yaml
index acee8674b6..401c7a0c73 100644
--- a/heat/templates/service-cfn.yaml
+++ b/heat/templates/service-cfn.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_cfn }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.cfn.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/heat/templates/service-cloudwatch.yaml b/heat/templates/service-cloudwatch.yaml
index 794d5ec3aa..18b6da24bb 100644
--- a/heat/templates/service-cloudwatch.yaml
+++ b/heat/templates/service-cloudwatch.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_cloudwatch }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.cloudwatch.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/heat/templates/service-ingress-api.yaml b/heat/templates/service-ingress-api.yaml
index e4aba46247..8d2f3d9c20 100644
--- a/heat/templates/service-ingress-api.yaml
+++ b/heat/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/heat/templates/service-ingress-cfn.yaml b/heat/templates/service-ingress-cfn.yaml
index 347753ae21..ca68efffa2 100644
--- a/heat/templates/service-ingress-cfn.yaml
+++ b/heat/templates/service-ingress-cfn.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_cfn }}
 {{- $envAll := . }}
 {{- if .Values.network.cfn.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/heat/templates/service-ingress-cloudwatch.yaml b/heat/templates/service-ingress-cloudwatch.yaml
index 4261b171a9..5dccb6e6b6 100644
--- a/heat/templates/service-ingress-cloudwatch.yaml
+++ b/heat/templates/service-ingress-cloudwatch.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_cloudwatch }}
 {{- $envAll := . }}
 {{- if .Values.network.cloudwatch.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/heat/templates/statefulset-engine.yaml b/heat/templates/statefulset-engine.yaml
index 3ddfc4764f..eb4eb1c066 100644
--- a/heat/templates/statefulset-engine.yaml
+++ b/heat/templates/statefulset-engine.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.statefulset_engine }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.engine }}
 {{- $mounts_heat_engine := .Values.pod.mounts.heat_engine.heat_engine }}
@@ -74,3 +75,4 @@ spec:
             name: heat-etc
             defaultMode: 0444
 {{- if $mounts_heat_engine.volumes }}{{ toYaml $mounts_heat_engine.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/heat/values.yaml b/heat/values.yaml
index cabab5b5ab..0fc275ec88 100644
--- a/heat/values.yaml
+++ b/heat/values.yaml
@@ -17,6 +17,8 @@
 # Declare name/value pairs to be passed into your templates.
 # name: value
 
+release_group: null
+
 labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
@@ -454,3 +456,31 @@ pod:
         limits:
           memory: "1024Mi"
           cpu: "2000m"
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  deployment_cfn: true
+  deployment_cloudwatch: true
+  ingress_api: true
+  ingress_cfn: true
+  ingress_cloudwatch: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  pdb_cfn: true
+  pdb_cloudwatch: true
+  secret_db: true
+  secret_keystone: true
+  service_api: true
+  service_cfn: true
+  service_cloudwatch: true
+  service_ingress_api: true
+  service_ingress_cfn: true
+  service_ingress_cloudwatch: true
+  statefulset_engine: true
diff --git a/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl b/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl
index 1fad10fad3..c171cac2ac 100644
--- a/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl
+++ b/helm-toolkit/templates/snippets/_kubernetes_metadata_labels.tpl
@@ -16,7 +16,7 @@
 {{- $envAll := index . 0 -}}
 {{- $application := index . 1 -}}
 {{- $component := index . 2 -}}
-release_name: {{ $envAll.Release.Name }}
+release_group: {{ $envAll.Values.release_group | default $envAll.Release.Name }}
 application: {{ $application }}
 component: {{ $component }}
 {{- end -}}
diff --git a/helm-toolkit/templates/snippets/_kubernetes_pod_anti_affinity.tpl b/helm-toolkit/templates/snippets/_kubernetes_pod_anti_affinity.tpl
index 18e0d1e15b..403b598100 100644
--- a/helm-toolkit/templates/snippets/_kubernetes_pod_anti_affinity.tpl
+++ b/helm-toolkit/templates/snippets/_kubernetes_pod_anti_affinity.tpl
@@ -23,10 +23,10 @@ podAntiAffinity:
   - podAffinityTerm:
       labelSelector:
         matchExpressions:
-        - key: release_name
+        - key: release_group
           operator: In
           values:
-            - {{ $envAll.Release.Name }}
+            - {{ $envAll.Values.release_group | default $envAll.Release.Name }}
         - key: application
           operator: In
           values:
diff --git a/horizon/templates/configmap-bin.yaml b/horizon/templates/configmap-bin.yaml
index 3aad9326ed..ae2ba826ed 100644
--- a/horizon/templates/configmap-bin.yaml
+++ b/horizon/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -25,3 +26,4 @@ data:
 {{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   horizon.sh: |
 {{ tuple "bin/_horizon.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/horizon/templates/configmap-etc.yaml b/horizon/templates/configmap-etc.yaml
index c278962c36..40ee0aad32 100644
--- a/horizon/templates/configmap-etc.yaml
+++ b/horizon/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -23,3 +24,4 @@ data:
 {{ tuple "etc/_horizon.conf.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   local_settings: |
 {{ tuple "etc/_local_settings.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/horizon/templates/deployment.yaml b/horizon/templates/deployment.yaml
index e8916cf11d..2c0c6c39a0 100644
--- a/horizon/templates/deployment.yaml
+++ b/horizon/templates/deployment.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.dashboard }}
 {{- $mounts_horizon := .Values.pod.mounts.horizon.horizon }}
@@ -84,3 +85,4 @@ spec:
             name: horizon-etc
             defaultMode: 0444
 {{- if $mounts_horizon.volumes }}{{ toYaml $mounts_horizon.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/horizon/templates/ingress-api.yaml b/horizon/templates/ingress-api.yaml
index 0367920456..fd87bdb8c1 100644
--- a/horizon/templates/ingress-api.yaml
+++ b/horizon/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "dashboard" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: http
 {{- end }}
+{{- end }}
diff --git a/horizon/templates/job-db-init.yaml b/horizon/templates/job-db-init.yaml
index f771843917..cc1e6d4e78 100644
--- a/horizon/templates/job-db-init.yaml
+++ b/horizon/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 {{- $mounts_horizon_db_init := .Values.pod.mounts.horizon_db_init.horizon_db_init }}
@@ -62,3 +63,4 @@ spec:
           name: horizon-bin
           defaultMode: 0555
 {{- if $mounts_horizon_db_init.volumes }}{{ toYaml $mounts_horizon_db_init.volumes | indent 6 }}{{ end }}
+{{- end }}
diff --git a/horizon/templates/job-db-sync.yaml b/horizon/templates/job-db-sync.yaml
index e44f3b6e0f..72ffac77b8 100644
--- a/horizon/templates/job-db-sync.yaml
+++ b/horizon/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 {{- $mounts_horizon_db_sync := .Values.pod.mounts.horizon_db_sync.horizon_db_sync }}
@@ -58,3 +59,4 @@ spec:
           name: horizon-bin
           defaultMode: 0555
 {{- if $mounts_horizon_db_sync.volumes }}{{ toYaml $mounts_horizon_db_sync.volumes | indent 6 }}{{ end }}
+{{- end }}
diff --git a/horizon/templates/pdb.yaml b/horizon/templates/pdb.yaml
index ccb624c80b..09d785635e 100644
--- a/horizon/templates/pdb.yaml
+++ b/horizon/templates/pdb.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "horizon" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/horizon/templates/secret-db.yaml b/horizon/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/horizon/templates/secret-db.yaml
+++ b/horizon/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/horizon/templates/service-ingress.yaml b/horizon/templates/service-ingress.yaml
index 810ae88942..4283c4d2c6 100644
--- a/horizon/templates/service-ingress.yaml
+++ b/horizon/templates/service-ingress.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress }}
 {{- $envAll := . }}
 {{- if .Values.network.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/horizon/templates/service.yaml b/horizon/templates/service.yaml
index 7a15183c11..592dfaa631 100644
--- a/horizon/templates/service.yaml
+++ b/horizon/templates/service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -37,3 +38,4 @@ spec:
   {{ if .Values.network.enable_node_port }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/horizon/values.yaml b/horizon/values.yaml
index 030a18ed00..de8df569d8 100644
--- a/horizon/values.yaml
+++ b/horizon/values.yaml
@@ -24,6 +24,8 @@ images:
   dep_check: docker.io/kolla/ubuntu-source-kubernetes-entrypoint:4.0.0
   pull_policy: "IfNotPresent"
 
+release_group: null
+
 labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
@@ -174,3 +176,15 @@ endpoints:
     port:
       mysql:
         default: 3306
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment: true
+  ingress_api: true
+  job_db_init: true
+  job_db_sync: true
+  pdb: true
+  secret_db: true
+  service_ingress: true
+  service: true
diff --git a/keystone/templates/configmap-bin.yaml b/keystone/templates/configmap-bin.yaml
index 2a7746cecd..3ec82f2a16 100644
--- a/keystone/templates/configmap-bin.yaml
+++ b/keystone/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -33,3 +34,4 @@ data:
 {{ tuple "bin/_keystone-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   fernet-manage.py: |
 {{ tuple "bin/_fernet-manage.py.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/keystone/templates/configmap-etc.yaml b/keystone/templates/configmap-etc.yaml
index c5203781cb..456e76d450 100644
--- a/keystone/templates/configmap-etc.yaml
+++ b/keystone/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "keystone.conf.keystone_values_skeleton" .Values.conf.keystone | trunc 0 -}}
@@ -82,3 +83,4 @@ data:
 {{ tuple "etc/_wsgi-keystone.conf.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   sso_callback_template.html: |+
 {{ tuple "etc/_sso_callback_template.html.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/keystone/templates/cron-job-credential-rotate.yaml b/keystone/templates/cron-job-credential-rotate.yaml
index ba1897a903..b46c8b2dc6 100644
--- a/keystone/templates/cron-job-credential-rotate.yaml
+++ b/keystone/templates/cron-job-credential-rotate.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.cron_credential_rotate }}
 {{- if .Capabilities.APIVersions.Has "batch/v2alpha1"}}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.credential_rotate }}
@@ -79,3 +80,4 @@ spec:
               name: keystone-bin
     {{- if $mounts_keystone_credential_rotate.volumes }}{{ toYaml $mounts_keystone_credential_rotate.volumes | indent 10 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/cron-job-fernet-rotate.yaml b/keystone/templates/cron-job-fernet-rotate.yaml
index 20f96e044a..a522b9acbf 100644
--- a/keystone/templates/cron-job-fernet-rotate.yaml
+++ b/keystone/templates/cron-job-fernet-rotate.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.cron_fernet_rotate }}
 {{- if and (eq .Values.conf.keystone.token.keystone.provider "fernet") (.Capabilities.APIVersions.Has "batch/v2alpha1") }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.fernet_rotate }}
@@ -77,3 +78,4 @@ spec:
               name: keystone-bin
     {{- if $mounts_keystone_fernet_rotate.volumes }}{{ toYaml $mounts_keystone_fernet_rotate.volumes | indent 10 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/deployment-api.yaml b/keystone/templates/deployment-api.yaml
index 6a6f030933..ee459a3341 100644
--- a/keystone/templates/deployment-api.yaml
+++ b/keystone/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_keystone_api := .Values.pod.mounts.keystone_api.keystone_api }}
@@ -123,3 +124,4 @@ spec:
         secret:
           secretName: keystone-credential-keys
 {{- if $mounts_keystone_api.volumes }}{{ toYaml $mounts_keystone_api.volumes | indent 6 }}{{ end }}
+{{- end }}
diff --git a/keystone/templates/ingress-api.yaml b/keystone/templates/ingress-api.yaml
index c56b601a7d..306fca6956 100644
--- a/keystone/templates/ingress-api.yaml
+++ b/keystone/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "identity" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: ks-pub
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/job-bootstrap.yaml b/keystone/templates/job-bootstrap.yaml
index 03891e4100..f856afe065 100644
--- a/keystone/templates/job-bootstrap.yaml
+++ b/keystone/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -57,3 +58,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_keystone_bootstrap.volumes }}{{ toYaml $mounts_keystone_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/job-credential-setup.yaml b/keystone/templates/job-credential-setup.yaml
index 9a511801a7..4e7426cfe0 100644
--- a/keystone/templates/job-credential-setup.yaml
+++ b/keystone/templates/job-credential-setup.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_credential_setup }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.credential_setup }}
 {{- $mounts_keystone_credential_setup := .Values.pod.mounts.keystone_credential_setup.keystone_credential_setup }}
@@ -71,3 +72,4 @@ spec:
         configMap:
           name: keystone-bin
 {{- if $mounts_keystone_credential_setup.volumes }}{{ toYaml $mounts_keystone_credential_setup.volumes | indent 6 }}{{ end }}
+{{- end }}
diff --git a/keystone/templates/job-db-init.yaml b/keystone/templates/job-db-init.yaml
index f260adfe5d..82e171deae 100644
--- a/keystone/templates/job-db-init.yaml
+++ b/keystone/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 {{- $mounts_keystone_db_init := .Values.pod.mounts.keystone_db_init.keystone_db_init }}
@@ -75,3 +76,4 @@ spec:
           name: keystone-bin
           defaultMode: 0555
 {{- if $mounts_keystone_db_init.volumes }}{{ toYaml $mounts_keystone_db_init.volumes | indent 6 }}{{ end }}
+{{- end }}
diff --git a/keystone/templates/job-db-sync.yaml b/keystone/templates/job-db-sync.yaml
index d2bf4c0b48..3690c07b32 100644
--- a/keystone/templates/job-db-sync.yaml
+++ b/keystone/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 {{- $mounts_keystone_db_sync := .Values.pod.mounts.keystone_db_sync.keystone_db_sync }}
@@ -82,3 +83,4 @@ spec:
           secretName: keystone-fernet-keys
 {{- end }}
 {{- if $mounts_keystone_db_sync.volumes }}{{ toYaml $mounts_keystone_db_sync.volumes | indent 6 }}{{ end }}
+{{- end }}
diff --git a/keystone/templates/job-fernet-setup.yaml b/keystone/templates/job-fernet-setup.yaml
index a0396ba695..3978df1602 100644
--- a/keystone/templates/job-fernet-setup.yaml
+++ b/keystone/templates/job-fernet-setup.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_fernet_setup }}
 {{- if eq .Values.conf.keystone.token.keystone.provider "fernet" }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.fernet_setup }}
@@ -73,3 +74,4 @@ spec:
           name: keystone-bin
 {{- if $mounts_keystone_fernet_setup.volumes }}{{ toYaml $mounts_keystone_fernet_setup.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/pdb.yaml b/keystone/templates/pdb.yaml
index 1b67fcc506..2d559c3191 100644
--- a/keystone/templates/pdb.yaml
+++ b/keystone/templates/pdb.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "keystone" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/keystone/templates/pod-rally-test.yaml b/keystone/templates/pod-rally-test.yaml
index 0102667848..9a170510c8 100644
--- a/keystone/templates/pod-rally-test.yaml
+++ b/keystone/templates/pod-rally-test.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pod_rally_test }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.tests }}
 {{- $mounts_keystone_tests := .Values.pod.mounts.keystone_tests.keystone_tests }}
@@ -64,3 +65,4 @@ spec:
     - name: rally-db
       emptyDir: {}
 {{- if $mounts_keystone_tests.volumes }}{{ toYaml $mounts_keystone_tests.volumes | indent 4 }}{{ end }}
+{{- end }}
diff --git a/keystone/templates/secret-credential-keys.yaml b/keystone/templates/secret-credential-keys.yaml
index a51f2a6f67..c6c7d93bed 100644
--- a/keystone/templates/secret-credential-keys.yaml
+++ b/keystone/templates/secret-credential-keys.yaml
@@ -12,9 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_credential_keys }}
+{{- $envAll := . }}
+---
 apiVersion: v1
 kind: Secret
 metadata:
   name: keystone-credential-keys
 type: Opaque
 data:
+{{- end }}
diff --git a/keystone/templates/secret-db.yaml b/keystone/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/keystone/templates/secret-db.yaml
+++ b/keystone/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/secret-fernet-keys.yaml b/keystone/templates/secret-fernet-keys.yaml
index 4f4367b531..23ae0aee8a 100644
--- a/keystone/templates/secret-fernet-keys.yaml
+++ b/keystone/templates/secret-fernet-keys.yaml
@@ -12,7 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_fernet_keys }}
+{{- $envAll := . }}
 {{- if eq .Values.conf.keystone.token.keystone.provider "fernet" }}
+---
 apiVersion: v1
 kind: Secret
 metadata:
@@ -20,3 +23,4 @@ metadata:
 type: Opaque
 data:
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/secret-keystone.yaml b/keystone/templates/secret-keystone.yaml
index 97d5a9f0fb..e94b178356 100644
--- a/keystone/templates/secret-keystone.yaml
+++ b/keystone/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/keystone/templates/service-api.yaml b/keystone/templates/service-api.yaml
index 019e8fbf52..9199a718dd 100644
--- a/keystone/templates/service-api.yaml
+++ b/keystone/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -35,3 +36,4 @@ spec:
   {{ if or (.Values.network.api.node_port.enabled) (.Values.network.admin.node_port.enabled) }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/keystone/templates/service-ingress-api.yaml b/keystone/templates/service-ingress-api.yaml
index e1d75bc8d3..5a7cb7db49 100644
--- a/keystone/templates/service-ingress-api.yaml
+++ b/keystone/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/keystone/values.yaml b/keystone/values.yaml
index f2775884ec..255ffd9d13 100644
--- a/keystone/values.yaml
+++ b/keystone/values.yaml
@@ -21,6 +21,8 @@ labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
 
+release_group: null
+
 images:
   bootstrap: docker.io/kolla/ubuntu-source-keystone:3.0.3
   test: docker.io/kolla/ubuntu-binary-rally:4.0.0
@@ -342,3 +344,24 @@ endpoints:
     port:
       memcache:
         default: 11211
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  cron_credential_rotate: true
+  cron_fernet_rotate: true
+  deployment_api: true
+  ingress_api: true
+  job_bootstrap: true
+  job_credential_setup: true
+  job_db_init: true
+  job_db_sync: true
+  job_fernet_setup: true
+  pdb_api: true
+  pod_rally_test: true
+  secret_credential_keys: true
+  secret_db: true
+  secret_fernet_keys: true
+  secret_keystone: true
+  service_ingress_api: true
+  service_api: true
diff --git a/magnum/templates/configmap-bin.yaml b/magnum/templates/configmap-bin.yaml
index b3473b5dfa..2533359942 100644
--- a/magnum/templates/configmap-bin.yaml
+++ b/magnum/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -37,3 +38,4 @@ data:
 {{ tuple "bin/_magnum-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   magnum-conductor.sh: |
 {{ tuple "bin/_magnum-conductor.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/magnum/templates/configmap-etc.yaml b/magnum/templates/configmap-etc.yaml
index 0b2f88c7c8..58a7cf8c64 100644
--- a/magnum/templates/configmap-etc.yaml
+++ b/magnum/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "magnum.conf.magnum_values_skeleton" .Values.conf.magnum | trunc 0 -}}
@@ -92,3 +93,4 @@ data:
 {{- else -}}
 {{ tuple "etc/_policy.json.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/magnum/templates/deployment-api.yaml b/magnum/templates/deployment-api.yaml
index d63946dd45..cf7e9110bf 100644
--- a/magnum/templates/deployment-api.yaml
+++ b/magnum/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_magnum_api := .Values.pod.mounts.magnum_api.magnum_api }}
@@ -94,3 +95,4 @@ spec:
             name: magnum-etc
             defaultMode: 0444
 {{- if $mounts_magnum_api.volumes }}{{ toYaml $mounts_magnum_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/magnum/templates/ingress-api.yaml b/magnum/templates/ingress-api.yaml
index 18b2dc7800..a1045842fa 100644
--- a/magnum/templates/ingress-api.yaml
+++ b/magnum/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "container-infra" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: m-api
 {{- end }}
+{{- end }}
diff --git a/magnum/templates/job-bootstrap.yaml b/magnum/templates/job-bootstrap.yaml
index c944e63906..77bab41a26 100644
--- a/magnum/templates/job-bootstrap.yaml
+++ b/magnum/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -57,3 +58,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_magnum_bootstrap.volumes }}{{ toYaml $mounts_magnum_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/magnum/templates/job-db-init.yaml b/magnum/templates/job-db-init.yaml
index b0a16c3019..c530435e19 100644
--- a/magnum/templates/job-db-init.yaml
+++ b/magnum/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: magnum-bin
             defaultMode: 0555
+{{- end }}
diff --git a/magnum/templates/job-db-sync.yaml b/magnum/templates/job-db-sync.yaml
index 9456510124..130a353cdb 100644
--- a/magnum/templates/job-db-sync.yaml
+++ b/magnum/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -59,3 +60,4 @@ spec:
           configMap:
             name: magnum-bin
             defaultMode: 0555
+{{- end }}
diff --git a/magnum/templates/job-ks-endpoints.yaml b/magnum/templates/job-ks-endpoints.yaml
index 151b2963ab..5475737e5d 100644
--- a/magnum/templates/job-ks-endpoints.yaml
+++ b/magnum/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: magnum-bin
             defaultMode: 0555
+{{- end }}
diff --git a/magnum/templates/job-ks-service.yaml b/magnum/templates/job-ks-service.yaml
index 331e529d96..b1ad459dee 100644
--- a/magnum/templates/job-ks-service.yaml
+++ b/magnum/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: magnum-bin
             defaultMode: 0555
+{{- end }}
diff --git a/magnum/templates/job-ks-user.yaml b/magnum/templates/job-ks-user.yaml
index 2dea8873ee..8a1ea907b5 100644
--- a/magnum/templates/job-ks-user.yaml
+++ b/magnum/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: magnum-bin
             defaultMode: 0555
+{{- end }}
diff --git a/magnum/templates/pdb-api.yaml b/magnum/templates/pdb-api.yaml
index 9d83eb9d9e..4b6364b97b 100644
--- a/magnum/templates/pdb-api.yaml
+++ b/magnum/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "magnum" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/magnum/templates/secret-db.yaml b/magnum/templates/secret-db.yaml
index 4b0456f499..a6b5023d3d 100644
--- a/magnum/templates/secret-db.yaml
+++ b/magnum/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/magnum/templates/secret-keystone.yaml b/magnum/templates/secret-keystone.yaml
index 0f963b248f..f240dc0b13 100644
--- a/magnum/templates/secret-keystone.yaml
+++ b/magnum/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/magnum/templates/service-api.yaml b/magnum/templates/service-api.yaml
index 2d8a6027d9..7bfb4c0956 100644
--- a/magnum/templates/service-api.yaml
+++ b/magnum/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/magnum/templates/service-ingress-api.yaml b/magnum/templates/service-ingress-api.yaml
index 784940b534..33c7353f2b 100644
--- a/magnum/templates/service-ingress-api.yaml
+++ b/magnum/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/magnum/templates/statefulset-conductor.yaml b/magnum/templates/statefulset-conductor.yaml
index dd4d856d21..edd66c225d 100644
--- a/magnum/templates/statefulset-conductor.yaml
+++ b/magnum/templates/statefulset-conductor.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.conductor }}
 {{- $mounts_magnum_conductor := .Values.pod.mounts.magnum_conductor.magnum_conductor }}
@@ -74,3 +75,4 @@ spec:
             name: magnum-etc
             defaultMode: 0444
 {{- if $mounts_magnum_conductor.volumes }}{{ toYaml $mounts_magnum_conductor.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/magnum/values.yaml b/magnum/values.yaml
index db0df3292c..7cc875407a 100644
--- a/magnum/values.yaml
+++ b/magnum/values.yaml
@@ -17,6 +17,8 @@
 # Declare name/value pairs to be passed into your templates.
 # name: value
 
+release_group: null
+
 labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
@@ -305,3 +307,22 @@ pod:
         limits:
           memory: "1024Mi"
           cpu: "2000m"
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  ingress_api: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  secret_db: true
+  secret_keystone: true
+  service_api: true
+  service_cfn: true
+  service_ingress_api: true
+  statefulset_conductor: true
diff --git a/mistral/templates/configmap-bin.yaml b/mistral/templates/configmap-bin.yaml
index 9d93427197..50302bf800 100644
--- a/mistral/templates/configmap-bin.yaml
+++ b/mistral/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -41,3 +42,4 @@ data:
 {{ tuple "bin/_mistral-event-engine.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   mistral-executor.sh: |
 {{ tuple "bin/_mistral-executor.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/mistral/templates/configmap-etc.yaml b/mistral/templates/configmap-etc.yaml
index a73ba97eb7..e401a43fac 100644
--- a/mistral/templates/configmap-etc.yaml
+++ b/mistral/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "mistral.conf.mistral_values_skeleton" .Values.conf.mistral | trunc 0 -}}
@@ -85,3 +86,4 @@ data:
 {{- if .Values.conf.policy.append -}}
 {{ .Values.conf.policy.append | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/mistral/templates/deployment-api.yaml b/mistral/templates/deployment-api.yaml
index fd09ea9d56..fd29d8db7e 100644
--- a/mistral/templates/deployment-api.yaml
+++ b/mistral/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_mistral_api := .Values.pod.mounts.mistral_api.mistral_api }}
@@ -87,3 +88,4 @@ spec:
             name: mistral-etc
             defaultMode: 0444
 {{- if $mounts_mistral_api.volumes }}{{ toYaml $mounts_mistral_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/mistral/templates/deployment-executor.yaml b/mistral/templates/deployment-executor.yaml
index 54cd04fed1..c1cac66cd8 100644
--- a/mistral/templates/deployment-executor.yaml
+++ b/mistral/templates/deployment-executor.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_executor }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.executor }}
 {{- $mounts_mistral_executor := .Values.pod.mounts.mistral_executor.mistral_executor }}
@@ -69,3 +70,4 @@ spec:
             name: mistral-etc
             defaultMode: 0444
 {{- if $mounts_mistral_executor.volumes }}{{ toYaml $mounts_mistral_executor.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/mistral/templates/ingress-api.yaml b/mistral/templates/ingress-api.yaml
index 585c781c52..275f11ea17 100644
--- a/mistral/templates/ingress-api.yaml
+++ b/mistral/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "workflow" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: w-api
 {{- end }}
+{{- end }}
diff --git a/mistral/templates/job-bootstrap.yaml b/mistral/templates/job-bootstrap.yaml
index f7d63def04..a3c236c792 100644
--- a/mistral/templates/job-bootstrap.yaml
+++ b/mistral/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -57,3 +58,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_mistral_bootstrap.volumes }}{{ toYaml $mounts_mistral_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/mistral/templates/job-db-init.yaml b/mistral/templates/job-db-init.yaml
index 6f5a48f68b..c6ba555ded 100644
--- a/mistral/templates/job-db-init.yaml
+++ b/mistral/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: mistral-etc
             defaultMode: 0444
+{{- end }}
diff --git a/mistral/templates/job-db-sync.yaml b/mistral/templates/job-db-sync.yaml
index b572789c8a..f1fa7f3c27 100644
--- a/mistral/templates/job-db-sync.yaml
+++ b/mistral/templates/job-db-sync.yaml
@@ -13,8 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
+---
 apiVersion: batch/v1
 kind: Job
 metadata:
@@ -59,3 +61,4 @@ spec:
           configMap:
             name: mistral-bin
             defaultMode: 0555
+{{- end }}
diff --git a/mistral/templates/job-ks-endpoints.yaml b/mistral/templates/job-ks-endpoints.yaml
index b3c5caaffa..c4916be51d 100644
--- a/mistral/templates/job-ks-endpoints.yaml
+++ b/mistral/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: mistral-bin
             defaultMode: 0555
+{{- end }}
diff --git a/mistral/templates/job-ks-service.yaml b/mistral/templates/job-ks-service.yaml
index 7f7b3ca92e..a1113fd48a 100644
--- a/mistral/templates/job-ks-service.yaml
+++ b/mistral/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: mistral-bin
             defaultMode: 0555
+{{- end }}
diff --git a/mistral/templates/job-ks-user.yaml b/mistral/templates/job-ks-user.yaml
index d676db0d00..ab999b3bda 100644
--- a/mistral/templates/job-ks-user.yaml
+++ b/mistral/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: mistral-bin
             defaultMode: 0555
+{{- end }}
diff --git a/mistral/templates/pdb-api.yaml b/mistral/templates/pdb-api.yaml
index d398fb7eaa..fd673237ac 100644
--- a/mistral/templates/pdb-api.yaml
+++ b/mistral/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "mistral" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/mistral/templates/secret-db.yaml b/mistral/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/mistral/templates/secret-db.yaml
+++ b/mistral/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/mistral/templates/secret-keystone.yaml b/mistral/templates/secret-keystone.yaml
index 0f963b248f..3f3279995b 100644
--- a/mistral/templates/secret-keystone.yaml
+++ b/mistral/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/mistral/templates/service-api.yaml b/mistral/templates/service-api.yaml
index b4f2269f8e..ee33a214aa 100644
--- a/mistral/templates/service-api.yaml
+++ b/mistral/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/mistral/templates/service-ingress-api.yaml b/mistral/templates/service-ingress-api.yaml
index e62cf490ad..6709fccfb4 100644
--- a/mistral/templates/service-ingress-api.yaml
+++ b/mistral/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/mistral/templates/statefulset-engine.yaml b/mistral/templates/statefulset-engine.yaml
index 9aa121105c..5dbce2563c 100644
--- a/mistral/templates/statefulset-engine.yaml
+++ b/mistral/templates/statefulset-engine.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.statefulset_engine }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.engine }}
 {{- $mounts_mistral_engine := .Values.pod.mounts.mistral_engine.mistral_engine }}
@@ -64,3 +65,4 @@ spec:
             name: mistral-etc
             defaultMode: 0444
 {{- if $mounts_mistral_engine.volumes }}{{ toYaml $mounts_mistral_engine.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/mistral/templates/statefulset-event-engine.yaml b/mistral/templates/statefulset-event-engine.yaml
index f82a4f408b..83883f0d8b 100644
--- a/mistral/templates/statefulset-event-engine.yaml
+++ b/mistral/templates/statefulset-event-engine.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.statefulset_event_engine }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.event_engine }}
 {{- $mounts_mistral_event_engine := .Values.pod.mounts.mistral_event_engine.mistral_event_engine }}
@@ -66,3 +67,4 @@ spec:
             name: mistral-etc
             defaultMode: 0444
 {{- if $mounts_mistral_event_engine.volumes }}{{ toYaml $mounts_mistral_event_engine.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/mistral/values.yaml b/mistral/values.yaml
index 51178d0f06..bae6795e93 100644
--- a/mistral/values.yaml
+++ b/mistral/values.yaml
@@ -21,6 +21,8 @@ labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
 
+release_group: null
+
 images:
   bootstrap: docker.io/kolla/ubuntu-source-mistral-api:3.0.3
   dep_check: docker.io/kolla/ubuntu-source-kubernetes-entrypoint:4.0.0
@@ -358,3 +360,23 @@ pod:
         limits:
           memory: "1024Mi"
           cpu: "2000m"
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  deployment_executor: true
+  ingress_api: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  secret_db: true
+  secret_keystone: true
+  service_ingress_api: true
+  service_api: true
+  statefulset_engine: true
+  statefulset_event_engine: true
diff --git a/neutron/templates/configmap-bin.yaml b/neutron/templates/configmap-bin.yaml
index 9a27660847..722274835f 100644
--- a/neutron/templates/configmap-bin.yaml
+++ b/neutron/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -51,3 +52,4 @@ data:
 {{ tuple "bin/_openvswitch-db-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   openvswitch-vswitchd.sh: |+
 {{ tuple "bin/_openvswitch-vswitchd.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/neutron/templates/configmap-etc.yaml b/neutron/templates/configmap-etc.yaml
index 8409b94e4f..d6ea45d036 100644
--- a/neutron/templates/configmap-etc.yaml
+++ b/neutron/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "neutron.conf.neutron_values_skeleton" .Values.conf.neutron | trunc 0 -}}
@@ -241,3 +242,4 @@ data:
   resolv.conf: |+
 {{ tuple "etc/_resolv.conf.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   dnsmasq.conf: ""
+{{- end }}
diff --git a/neutron/templates/daemonset-dhcp-agent.yaml b/neutron/templates/daemonset-dhcp-agent.yaml
index efc1a8aac3..af4aef40bc 100644
--- a/neutron/templates/daemonset-dhcp-agent.yaml
+++ b/neutron/templates/daemonset-dhcp-agent.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_dhcp_agent }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.dhcp }}
 {{- $mounts_neutron_dhcp_agent := .Values.pod.mounts.neutron_dhcp_agent.neutron_dhcp_agent }}
@@ -98,3 +99,4 @@ spec:
           hostPath:
             path: /var/lib/neutron/openstack-helm
 {{- if $mounts_neutron_dhcp_agent.volumes }}{{ toYaml $mounts_neutron_dhcp_agent.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/neutron/templates/daemonset-l3-agent.yaml b/neutron/templates/daemonset-l3-agent.yaml
index 0bfda7ac7d..0e72887fd6 100644
--- a/neutron/templates/daemonset-l3-agent.yaml
+++ b/neutron/templates/daemonset-l3-agent.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_l3_agent }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.l3 }}
 {{- $mounts_neutron_l3_agent := .Values.pod.mounts.neutron_l3_agent.neutron_l3_agent }}
@@ -100,3 +101,4 @@ spec:
           hostPath:
             path: /var/lib/neutron/stackanetes
 {{- if $mounts_neutron_l3_agent.volumes }}{{ toYaml $mounts_neutron_l3_agent.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/neutron/templates/daemonset-metadata-agent.yaml b/neutron/templates/daemonset-metadata-agent.yaml
index 2ea7c1fef8..b662b515ef 100644
--- a/neutron/templates/daemonset-metadata-agent.yaml
+++ b/neutron/templates/daemonset-metadata-agent.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_metadata_agent }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.metadata }}
 {{- $mounts_neutron_metadata_agent := .Values.pod.mounts.neutron_metadata_agent.neutron_metadata_agent }}
@@ -96,3 +97,4 @@ spec:
           hostPath:
             path: /var/lib/neutron/openstack-helm
 {{- if $mounts_neutron_metadata_agent.volumes }}{{ toYaml $mounts_neutron_metadata_agent.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/neutron/templates/daemonset-ovs-agent.yaml b/neutron/templates/daemonset-ovs-agent.yaml
index 018278cfe9..d76bc2fa17 100644
--- a/neutron/templates/daemonset-ovs-agent.yaml
+++ b/neutron/templates/daemonset-ovs-agent.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_ovs_agent }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ovs_agent }}
 {{- $mounts_neutron_ovs_agent := .Values.pod.mounts.neutron_ovs_agent.neutron_ovs_agent }}
@@ -139,3 +140,4 @@ spec:
           hostPath:
             path: /run
 {{- if $mounts_neutron_ovs_agent.volumes }}{{ toYaml $mounts_neutron_ovs_agent.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/neutron/templates/daemonset-ovs-db.yaml b/neutron/templates/daemonset-ovs-db.yaml
index 7a21f99f92..d7797a3634 100644
--- a/neutron/templates/daemonset-ovs-db.yaml
+++ b/neutron/templates/daemonset-ovs-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_ovs_db }}
 {{- $envAll := . }}
 ---
 apiVersion: extensions/v1beta1
@@ -73,3 +74,4 @@ spec:
         - name: run
           hostPath:
             path: /run
+{{- end }}
diff --git a/neutron/templates/daemonset-ovs-vswitchd.yaml b/neutron/templates/daemonset-ovs-vswitchd.yaml
index 014b0efed7..225a05b3ae 100644
--- a/neutron/templates/daemonset-ovs-vswitchd.yaml
+++ b/neutron/templates/daemonset-ovs-vswitchd.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_ovs_vswitchd }}
 {{- $envAll := . }}
 ---
 apiVersion: extensions/v1beta1
@@ -71,3 +72,4 @@ spec:
         - name: run
           hostPath:
             path: /run
+{{- end }}
diff --git a/neutron/templates/deployment-server.yaml b/neutron/templates/deployment-server.yaml
index f35d900753..a22c574740 100644
--- a/neutron/templates/deployment-server.yaml
+++ b/neutron/templates/deployment-server.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_server }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.server }}
 {{- $mounts_neutron_server := .Values.pod.mounts.neutron_server.neutron_server }}
@@ -90,3 +91,4 @@ spec:
             name: neutron-etc
             defaultMode: 0444
 {{- if $mounts_neutron_server.volumes }}{{ toYaml $mounts_neutron_server.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/neutron/templates/ingress.yaml b/neutron/templates/ingress-server.yaml
similarity index 96%
rename from neutron/templates/ingress.yaml
rename to neutron/templates/ingress-server.yaml
index 53a977bd48..df705c7724 100644
--- a/neutron/templates/ingress.yaml
+++ b/neutron/templates/ingress-server.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_server }}
 {{- $envAll := . }}
 {{- if .Values.network.server.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "network" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: q-api
 {{- end }}
+{{- end }}
diff --git a/neutron/templates/job-bootstrap.yaml b/neutron/templates/job-bootstrap.yaml
index f556ae1e3f..21f68ce780 100644
--- a/neutron/templates/job-bootstrap.yaml
+++ b/neutron/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -56,3 +57,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_neutron_bootstrap.volumes }}{{ toYaml $mounts_neutron_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/neutron/templates/job-db-init.yaml b/neutron/templates/job-db-init.yaml
index 86aaf52de5..95b73ba47c 100644
--- a/neutron/templates/job-db-init.yaml
+++ b/neutron/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: neutron-bin
             defaultMode: 0555
+{{- end }}
diff --git a/neutron/templates/job-db-sync.yaml b/neutron/templates/job-db-sync.yaml
index 67e6613a36..8c4098aa0c 100644
--- a/neutron/templates/job-db-sync.yaml
+++ b/neutron/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -72,3 +73,4 @@ spec:
           configMap:
             name: neutron-bin
             defaultMode: 0555
+{{- end }}
diff --git a/neutron/templates/job-ks-endpoints.yaml b/neutron/templates/job-ks-endpoints.yaml
index a1acc78b1f..71c23cea96 100644
--- a/neutron/templates/job-ks-endpoints.yaml
+++ b/neutron/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: neutron-bin
             defaultMode: 0555
+{{- end }}
diff --git a/neutron/templates/job-ks-service.yaml b/neutron/templates/job-ks-service.yaml
index 444806d720..c5ad04ff2f 100644
--- a/neutron/templates/job-ks-service.yaml
+++ b/neutron/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: neutron-bin
             defaultMode: 0555
+{{- end }}
diff --git a/neutron/templates/job-ks-user.yaml b/neutron/templates/job-ks-user.yaml
index 013d1448bb..370f498105 100644
--- a/neutron/templates/job-ks-user.yaml
+++ b/neutron/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: neutron-bin
             defaultMode: 0555
+{{- end }}
diff --git a/neutron/templates/pdb-server.yaml b/neutron/templates/pdb-server.yaml
index 202e03b4f5..f93de9b1b6 100644
--- a/neutron/templates/pdb-server.yaml
+++ b/neutron/templates/pdb-server.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_server }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "neutron" "server" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/neutron/templates/pod-rally-test.yaml b/neutron/templates/pod-rally-test.yaml
index fb7fae2d9a..b061dd689f 100644
--- a/neutron/templates/pod-rally-test.yaml
+++ b/neutron/templates/pod-rally-test.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pod_rally_test }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.tests }}
 {{- $mounts_neutron_tests := .Values.pod.mounts.neutron_tests.neutron_tests }}
@@ -64,3 +65,4 @@ spec:
     - name: rally-db
       emptyDir: {}
 {{- if $mounts_neutron_tests.volumes }}{{ toYaml $mounts_neutron_tests.volumes | indent 4 }}{{ end }}
+{{- end }}
diff --git a/neutron/templates/secret-db.yaml b/neutron/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/neutron/templates/secret-db.yaml
+++ b/neutron/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/neutron/templates/secret-keystone.yaml b/neutron/templates/secret-keystone.yaml
index 0f963b248f..3f3279995b 100644
--- a/neutron/templates/secret-keystone.yaml
+++ b/neutron/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/neutron/templates/service-ingress-neutron.yaml b/neutron/templates/service-ingress-neutron.yaml
index ea5dec0602..cb2dd75eba 100644
--- a/neutron/templates/service-ingress-neutron.yaml
+++ b/neutron/templates/service-ingress-neutron.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_server }}
 {{- $envAll := . }}
 {{- if .Values.network.server.ingress.public }}
 ---
@@ -25,3 +26,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/neutron/templates/service.yaml b/neutron/templates/service-server.yaml
similarity index 95%
rename from neutron/templates/service.yaml
rename to neutron/templates/service-server.yaml
index e65c7326a8..939f848d85 100644
--- a/neutron/templates/service.yaml
+++ b/neutron/templates/service-server.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_server }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.server.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/neutron/values.yaml b/neutron/values.yaml
index add3565e86..ee38cd3db8 100644
--- a/neutron/values.yaml
+++ b/neutron/values.yaml
@@ -17,6 +17,8 @@
 # Declare name/value pairs to be passed into your templates.
 # name: value
 
+release_group: null
+
 images:
   bootstrap: docker.io/kolla/ubuntu-source-neutron-server:3.0.3
   test: docker.io/kolla/ubuntu-binary-rally:4.0.0
@@ -637,3 +639,27 @@ endpoints:
       api:
         default: 9696
         public: 80
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  daemonset_dhcp_agent: true
+  daemonset_l3_agent: true
+  daemonset_metadata_agent: true
+  daemonset_ovs_agent: true
+  daemonset_ovs_db: true
+  daemonset_ovs_vswitchd: true
+  deployment_server: true
+  ingress_server: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_server: true
+  pod_rally_test: true
+  secret_db: true
+  secret_keystone: true
+  service_ingress_server: true
+  service_server: true
diff --git a/nova/templates/configmap-bin.yaml b/nova/templates/configmap-bin.yaml
index 1193ee16c8..e33bc463fd 100644
--- a/nova/templates/configmap-bin.yaml
+++ b/nova/templates/configmap-bin.yaml
@@ -11,6 +11,9 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.configmap_bin }}
+{{- $envAll := . }}
 ---
 apiVersion: v1
 kind: ConfigMap
@@ -59,3 +62,4 @@ data:
 {{ tuple "bin/_nova-vnc-compute-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   nova-vnc-proxy-init.sh: |
 {{ tuple "bin/_nova-vnc-proxy-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/nova/templates/configmap-etc.yaml b/nova/templates/configmap-etc.yaml
index 9927443bf8..f18b0ef68c 100644
--- a/nova/templates/configmap-etc.yaml
+++ b/nova/templates/configmap-etc.yaml
@@ -12,6 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
+{{- $envAll := . }}
+
 {{- include "nova.conf.nova_values_skeleton" .Values.conf.nova | trunc 0 -}}
 
 {{- if empty .Values.conf.nova.keystone_authtoken.keystonemiddleware.auth_token.auth_uri -}}
@@ -126,3 +129,4 @@ data:
 {{ tuple "etc/_libvirtd.conf.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   qemu.conf: |+
 {{ tuple "etc/_qemu.conf.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/nova/templates/daemonset-compute.yaml b/nova/templates/daemonset-compute.yaml
index 0b09677d28..b7919fab30 100644
--- a/nova/templates/daemonset-compute.yaml
+++ b/nova/templates/daemonset-compute.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_compute }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.compute }}
 {{- $mounts_nova_compute := .Values.pod.mounts.nova_compute.nova_compute }}
@@ -197,3 +198,4 @@ spec:
         - name: pod-shared
           emptyDir: {}
 {{- if $mounts_nova_compute.volumes }}{{ toYaml $mounts_nova_compute.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/daemonset-libvirt.yaml b/nova/templates/daemonset-libvirt.yaml
index 38417b64b3..48093bf6ae 100644
--- a/nova/templates/daemonset-libvirt.yaml
+++ b/nova/templates/daemonset-libvirt.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.daemonset_libvirt }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.libvirt }}
 {{- $mounts_nova_libvirt := .Values.pod.mounts.nova_libvirt.nova_libvirt }}
@@ -168,3 +169,4 @@ spec:
           hostPath:
             path: /sys/fs/cgroup
 {{- if $mounts_nova_libvirt.volumes }}{{ toYaml $mounts_nova_libvirt.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/deployment-api-metadata.yaml b/nova/templates/deployment-api-metadata.yaml
index ffa9ba60d8..d178373ab3 100644
--- a/nova/templates/deployment-api-metadata.yaml
+++ b/nova/templates/deployment-api-metadata.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api_metadata }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_nova_api_metadata := .Values.pod.mounts.nova_api_metadata.nova_api_metadata }}
@@ -98,3 +99,4 @@ spec:
             name: nova-etc
             defaultMode: 0444
 {{- if $mounts_nova_api_metadata.volumes }}{{ toYaml $mounts_nova_api_metadata.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/deployment-api-osapi.yaml b/nova/templates/deployment-api-osapi.yaml
index 33b50e32cf..1cb3ab041f 100644
--- a/nova/templates/deployment-api-osapi.yaml
+++ b/nova/templates/deployment-api-osapi.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api_osapi }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_nova_api_osapi := .Values.pod.mounts.nova_api_osapi.nova_api_osapi }}
@@ -86,3 +87,4 @@ spec:
             name: nova-etc
             defaultMode: 0444
 {{- if $mounts_nova_api_osapi.volumes}}{{ toYaml $mounts_nova_api_osapi.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/deployment-conductor.yaml b/nova/templates/deployment-conductor.yaml
index 326f2b56e9..6804660955 100644
--- a/nova/templates/deployment-conductor.yaml
+++ b/nova/templates/deployment-conductor.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_conductor }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.conductor }}
 {{- $mounts_nova_conductor := .Values.pod.mounts.nova_conductor.nova_conductor }}
@@ -69,3 +70,4 @@ spec:
             name: nova-etc
             defaultMode: 0444
 {{- if $mounts_nova_conductor.volumes }}{{ toYaml $mounts_nova_conductor.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/deployment-consoleauth.yaml b/nova/templates/deployment-consoleauth.yaml
index 952c2382b2..4f27b334b3 100644
--- a/nova/templates/deployment-consoleauth.yaml
+++ b/nova/templates/deployment-consoleauth.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_consoleauth }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.consoleauth }}
 {{- $mounts_nova_consoleauth := .Values.pod.mounts.nova_consoleauth.nova_conductor }}
@@ -69,3 +70,4 @@ spec:
             name: nova-etc
             defaultMode: 0444
 {{- if $mounts_nova_consoleauth.volumes }}{{ toYaml $mounts_nova_consoleauth.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/deployment-novncproxy.yaml b/nova/templates/deployment-novncproxy.yaml
index adbfae4fd4..553e947b47 100644
--- a/nova/templates/deployment-novncproxy.yaml
+++ b/nova/templates/deployment-novncproxy.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_novncproxy }}
 {{- $envAll := . }}
 {{ if eq .Values.console.console_kind "novnc" }}
 {{- $dependencies := .Values.dependencies.novncproxy }}
@@ -92,4 +93,5 @@ spec:
         - name: pod-shared
           emptyDir: {}
 {{- if $mounts_nova_novncproxy.volumes }}{{ toYaml $mounts_nova_novncproxy.volumes | indent 8 }}{{ end }}
-{{ end }}
+{{- end }}
+{{- end }}
diff --git a/nova/templates/deployment-scheduler.yaml b/nova/templates/deployment-scheduler.yaml
index 620f497cf9..8585a42426 100644
--- a/nova/templates/deployment-scheduler.yaml
+++ b/nova/templates/deployment-scheduler.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_scheduler }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.scheduler }}
 {{- $mounts_nova_scheduler := .Values.pod.mounts.nova_scheduler.nova_conductor }}
@@ -69,3 +70,4 @@ spec:
             name: nova-etc
             defaultMode: 0444
 {{- if $mounts_nova_scheduler.volumes }}{{ toYaml $mounts_nova_scheduler.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/ingress-metadata.yaml b/nova/templates/ingress-metadata.yaml
index da258e3e1a..575db33186 100644
--- a/nova/templates/ingress-metadata.yaml
+++ b/nova/templates/ingress-metadata.yaml
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_metadata }}
+{{- $envAll := . }}
 {{- if .Values.network.metadata.ingress.public }}
 ---
 apiVersion: extensions/v1beta1
@@ -38,3 +40,4 @@ spec:
           serviceName: {{ tuple "compute_metadata" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: n-meta
 {{- end }}
+{{- end }}
diff --git a/nova/templates/ingress-osapi.yaml b/nova/templates/ingress-osapi.yaml
index 7b5f1ec06d..d992abb1ba 100644
--- a/nova/templates/ingress-osapi.yaml
+++ b/nova/templates/ingress-osapi.yaml
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_osapi }}
+{{- $envAll := . }}
 {{- if .Values.network.osapi.ingress.public }}
 ---
 apiVersion: extensions/v1beta1
@@ -38,3 +40,4 @@ spec:
           serviceName: {{ tuple "compute" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: n-api
 {{- end }}
+{{- end }}
diff --git a/nova/templates/job-bootstrap.yaml b/nova/templates/job-bootstrap.yaml
index 891ae411a3..5a83b7168c 100644
--- a/nova/templates/job-bootstrap.yaml
+++ b/nova/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -65,3 +66,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_nova_bootstrap.volumes }}{{ toYaml $mounts_nova_bootstrap.volumes | indent 8 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/nova/templates/job-db-init.yaml b/nova/templates/job-db-init.yaml
index 46b9a135dd..324774e051 100644
--- a/nova/templates/job-db-init.yaml
+++ b/nova/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -100,3 +101,4 @@ spec:
           configMap:
             name: nova-bin
             defaultMode: 0555
+{{- end }}
diff --git a/nova/templates/job-db-sync.yaml b/nova/templates/job-db-sync.yaml
index f417b3ccdd..a8bf147db4 100644
--- a/nova/templates/job-db-sync.yaml
+++ b/nova/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -59,3 +60,4 @@ spec:
           configMap:
             name: nova-bin
             defaultMode: 0555
+{{- end }}
diff --git a/nova/templates/job-ks-endpoints.yaml b/nova/templates/job-ks-endpoints.yaml
index b60276d702..36def44aad 100644
--- a/nova/templates/job-ks-endpoints.yaml
+++ b/nova/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: nova-bin
             defaultMode: 0555
+{{- end }}
diff --git a/nova/templates/job-ks-service.yaml b/nova/templates/job-ks-service.yaml
index 3a8d63ea7b..5247236d86 100644
--- a/nova/templates/job-ks-service.yaml
+++ b/nova/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: nova-bin
             defaultMode: 0555
+{{- end }}
diff --git a/nova/templates/job-ks-user.yaml b/nova/templates/job-ks-user.yaml
index 39e252a5eb..65ad349783 100644
--- a/nova/templates/job-ks-user.yaml
+++ b/nova/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: nova-bin
             defaultMode: 0555
+{{- end }}
diff --git a/nova/templates/pdb-metadata.yaml b/nova/templates/pdb-metadata.yaml
index 0870677763..809b49d51a 100644
--- a/nova/templates/pdb-metadata.yaml
+++ b/nova/templates/pdb-metadata.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.pdb_metadata }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -22,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "nova" "metadata" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/nova/templates/pdb-osapi.yaml b/nova/templates/pdb-osapi.yaml
index 12879785dd..5500389a37 100644
--- a/nova/templates/pdb-osapi.yaml
+++ b/nova/templates/pdb-osapi.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.pdb_osapi }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -22,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "nova" "os-api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/nova/templates/pod-rally-test.yaml b/nova/templates/pod-rally-test.yaml
index edd6ff7396..270279a4d3 100644
--- a/nova/templates/pod-rally-test.yaml
+++ b/nova/templates/pod-rally-test.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pod_rally_test }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.tests }}
 {{- $mounts_nova_tests := .Values.pod.mounts.nova_tests.nova_tests }}
@@ -62,3 +63,4 @@ spec:
     - name: rally-db
       emptyDir: {}
 {{- if $mounts_nova_tests.volumes }}{{ toYaml $mounts_nova_tests.volumes | indent 4 }}{{ end }}
+{{- end }}
diff --git a/nova/templates/secret-db-api.yaml b/nova/templates/secret-db-api.yaml
index 3702514281..4938ad5f72 100644
--- a/nova/templates/secret-db-api.yaml
+++ b/nova/templates/secret-db-api.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.secret_db_api }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db_api $userClass }}
@@ -23,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db_api" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/nova/templates/secret-db.yaml b/nova/templates/secret-db.yaml
index f8c9dffe58..dd653d4911 100644
--- a/nova/templates/secret-db.yaml
+++ b/nova/templates/secret-db.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -23,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/nova/templates/secret-keystone.yaml b/nova/templates/secret-keystone.yaml
index 2507c3b3b8..3f3279995b 100644
--- a/nova/templates/secret-keystone.yaml
+++ b/nova/templates/secret-keystone.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -23,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/nova/templates/service-ingress-metadata.yaml b/nova/templates/service-ingress-metadata.yaml
index 71b218c539..c5dfab1d0d 100644
--- a/nova/templates/service-ingress-metadata.yaml
+++ b/nova/templates/service-ingress-metadata.yaml
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_metadata }}
+{{- $envAll := . }}
 {{- if .Values.network.metadata.ingress.public }}
 ---
 apiVersion: v1
@@ -26,3 +28,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/nova/templates/service-ingress-osapi.yaml b/nova/templates/service-ingress-osapi.yaml
index 13df74cbad..72125d526b 100644
--- a/nova/templates/service-ingress-osapi.yaml
+++ b/nova/templates/service-ingress-osapi.yaml
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_osapi }}
+{{- $envAll := . }}
 {{- if .Values.network.osapi.ingress.public }}
 ---
 apiVersion: v1
@@ -25,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/nova/templates/service-metadata.yaml b/nova/templates/service-metadata.yaml
index 87ca101ca8..5d3d85f716 100644
--- a/nova/templates/service-metadata.yaml
+++ b/nova/templates/service-metadata.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.service_metadata }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -29,3 +31,4 @@ spec:
   {{ if .Values.network.metadata.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/nova/templates/service-novncproxy.yaml b/nova/templates/service-novncproxy.yaml
index 6f47d28c59..44791dc5dc 100644
--- a/nova/templates/service-novncproxy.yaml
+++ b/nova/templates/service-novncproxy.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_novncproxy }}
 {{- $envAll := . }}
 {{ if eq .Values.console.console_kind "novnc" }}
 ---
@@ -33,4 +34,5 @@ spec:
   {{ if .Values.network.novncproxy.node_port.enabled }}
   type: NodePort
   {{ end }}
-{{ end }}
+{{- end }}
+{{- end }}
diff --git a/nova/templates/service-osapi.yaml b/nova/templates/service-osapi.yaml
index c379d8c523..46d20077b0 100644
--- a/nova/templates/service-osapi.yaml
+++ b/nova/templates/service-osapi.yaml
@@ -11,6 +11,8 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+{{- if .Values.manifests.service_osapi }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -29,3 +31,4 @@ spec:
   {{ if .Values.network.osapi.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/nova/values.yaml b/nova/values.yaml
index 76bc7d57cc..4459c65b39 100644
--- a/nova/values.yaml
+++ b/nova/values.yaml
@@ -17,6 +17,8 @@
 # Declare name/value pairs to be passed into your templates.
 # name: value
 
+release_group: null
+
 labels:
   agent:
     compute:
@@ -723,3 +725,34 @@ pod:
         limits:
           memory: "1024Mi"
           cpu: "2000m"
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  daemonset_compute: true
+  daemonset_libvirt: true
+  deployment_api_metadata: true
+  deployment_api_osapi: true
+  deployment_conductor: true
+  deployment_consoleauth: true
+  deployment_novncproxy: true
+  deployment_scheduler: true
+  ingress_metadata: true
+  ingress_osapi: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_metadata: true
+  pdb_osapi: true
+  pod_rally_test: true
+  secret_db_api: true
+  secret_db: true
+  secret_keystone: true
+  service_ingress_metadata: true
+  service_ingress_osapi: true
+  service_metadata: true
+  service_novncproxy: true
+  service_osapi: true
diff --git a/senlin/templates/configmap-bin.yaml b/senlin/templates/configmap-bin.yaml
index 195827a83b..58f786efa7 100644
--- a/senlin/templates/configmap-bin.yaml
+++ b/senlin/templates/configmap-bin.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_bin }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -37,3 +38,4 @@ data:
 {{ tuple "bin/_senlin-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
   senlin-engine.sh: |
 {{ tuple "bin/_senlin-engine.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+{{- end }}
diff --git a/senlin/templates/configmap-etc.yaml b/senlin/templates/configmap-etc.yaml
index 97c01c5c75..0dcc39d10d 100644
--- a/senlin/templates/configmap-etc.yaml
+++ b/senlin/templates/configmap-etc.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.configmap_etc }}
 {{- $envAll := . }}
 
 {{- include "senlin.conf.senlin_values_skeleton" .Values.conf.senlin | trunc 0 -}}
@@ -92,3 +93,4 @@ data:
 {{- else -}}
 {{ tuple "etc/_policy.json.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
 {{- end }}
+{{- end }}
diff --git a/senlin/templates/deployment-api.yaml b/senlin/templates/deployment-api.yaml
index 9ec20fd317..c5a0eb7683 100644
--- a/senlin/templates/deployment-api.yaml
+++ b/senlin/templates/deployment-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.deployment_api }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.api }}
 {{- $mounts_senlin_api := .Values.pod.mounts.senlin_api.senlin_api }}
@@ -94,3 +95,4 @@ spec:
             name: senlin-etc
             defaultMode: 0444
 {{- if $mounts_senlin_api.volumes }}{{ toYaml $mounts_senlin_api.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/senlin/templates/ingress-api.yaml b/senlin/templates/ingress-api.yaml
index e61fef41ef..469747c7f2 100644
--- a/senlin/templates/ingress-api.yaml
+++ b/senlin/templates/ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -39,3 +40,4 @@ spec:
           serviceName: {{ tuple "clustering" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
           servicePort: s-api
 {{- end }}
+{{- end }}
diff --git a/senlin/templates/job-bootstrap.yaml b/senlin/templates/job-bootstrap.yaml
index 3fd695a158..09b59ec818 100644
--- a/senlin/templates/job-bootstrap.yaml
+++ b/senlin/templates/job-bootstrap.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_bootstrap }}
 {{- $envAll := . }}
 {{- if .Values.bootstrap.enabled }}
 {{- $dependencies := .Values.dependencies.bootstrap }}
@@ -57,3 +58,4 @@ spec:
             defaultMode: 0555
 {{- if $mounts_senlin_bootstrap.volumes }}{{ toYaml $mounts_senlin_bootstrap.volumes | indent 6 }}{{ end }}
 {{- end }}
+{{- end }}
diff --git a/senlin/templates/job-db-init.yaml b/senlin/templates/job-db-init.yaml
index e7b73c1d55..ba6612d345 100644
--- a/senlin/templates/job-db-init.yaml
+++ b/senlin/templates/job-db-init.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_init }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_init }}
 ---
@@ -71,3 +72,4 @@ spec:
           configMap:
             name: senlin-bin
             defaultMode: 0555
+{{- end }}
diff --git a/senlin/templates/job-db-sync.yaml b/senlin/templates/job-db-sync.yaml
index 814b2551ca..9f6389ae58 100644
--- a/senlin/templates/job-db-sync.yaml
+++ b/senlin/templates/job-db-sync.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_db_sync }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.db_sync }}
 ---
@@ -59,3 +60,4 @@ spec:
           configMap:
             name: senlin-bin
             defaultMode: 0555
+{{- end }}
diff --git a/senlin/templates/job-ks-endpoints.yaml b/senlin/templates/job-ks-endpoints.yaml
index 813ebf7ae3..22ecee3971 100644
--- a/senlin/templates/job-ks-endpoints.yaml
+++ b/senlin/templates/job-ks-endpoints.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_endpoints }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_endpoints }}
 ---
@@ -63,3 +64,4 @@ spec:
           configMap:
             name: senlin-bin
             defaultMode: 0555
+{{- end }}
diff --git a/senlin/templates/job-ks-service.yaml b/senlin/templates/job-ks-service.yaml
index 66df33c694..c2a8607a18 100644
--- a/senlin/templates/job-ks-service.yaml
+++ b/senlin/templates/job-ks-service.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_service }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_service }}
 ---
@@ -57,3 +58,4 @@ spec:
           configMap:
             name: senlin-bin
             defaultMode: 0555
+{{- end }}
diff --git a/senlin/templates/job-ks-user.yaml b/senlin/templates/job-ks-user.yaml
index af2cedc92c..24070d68a5 100644
--- a/senlin/templates/job-ks-user.yaml
+++ b/senlin/templates/job-ks-user.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.job_ks_user }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.ks_user }}
 ---
@@ -58,3 +59,4 @@ spec:
           configMap:
             name: senlin-bin
             defaultMode: 0555
+{{- end }}
diff --git a/senlin/templates/pdb-api.yaml b/senlin/templates/pdb-api.yaml
index 29ec1ecaf8..0df3f79feb 100644
--- a/senlin/templates/pdb-api.yaml
+++ b/senlin/templates/pdb-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.pdb_api }}
 {{- $envAll := . }}
 ---
 apiVersion: policy/v1beta1
@@ -23,3 +24,4 @@ spec:
   selector:
     matchLabels:
 {{ tuple $envAll "senlin" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
+{{- end }}
diff --git a/senlin/templates/secret-db.yaml b/senlin/templates/secret-db.yaml
index 4b0456f499..dd653d4911 100644
--- a/senlin/templates/secret-db.yaml
+++ b/senlin/templates/secret-db.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_db }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
   DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
 {{- end }}
+{{- end }}
diff --git a/senlin/templates/secret-keystone.yaml b/senlin/templates/secret-keystone.yaml
index 0f963b248f..3f3279995b 100644
--- a/senlin/templates/secret-keystone.yaml
+++ b/senlin/templates/secret-keystone.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.secret_keystone }}
 {{- $envAll := . }}
 {{- range $key1, $userClass := tuple "admin" "user" }}
 {{- $secretName := index $envAll.Values.secrets.identity $userClass }}
@@ -24,3 +25,4 @@ type: Opaque
 data:
 {{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
 {{- end }}
+{{- end }}
diff --git a/senlin/templates/service-api.yaml b/senlin/templates/service-api.yaml
index b09da9d926..09c0fb642b 100644
--- a/senlin/templates/service-api.yaml
+++ b/senlin/templates/service-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_api }}
 {{- $envAll := . }}
 ---
 apiVersion: v1
@@ -30,3 +31,4 @@ spec:
   {{ if .Values.network.api.node_port.enabled }}
   type: NodePort
   {{ end }}
+{{- end }}
diff --git a/senlin/templates/service-ingress-api.yaml b/senlin/templates/service-ingress-api.yaml
index da71fb5181..e99b3e38dc 100644
--- a/senlin/templates/service-ingress-api.yaml
+++ b/senlin/templates/service-ingress-api.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.service_ingress_api }}
 {{- $envAll := . }}
 {{- if .Values.network.api.ingress.public }}
 ---
@@ -26,3 +27,4 @@ spec:
   selector:
     app: ingress-api
 {{- end }}
+{{- end }}
diff --git a/senlin/templates/statefulset-engine.yaml b/senlin/templates/statefulset-engine.yaml
index 8880c0b8e5..aebb0c1f48 100644
--- a/senlin/templates/statefulset-engine.yaml
+++ b/senlin/templates/statefulset-engine.yaml
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{- if .Values.manifests.statefulset_engine }}
 {{- $envAll := . }}
 {{- $dependencies := .Values.dependencies.engine }}
 {{- $mounts_senlin_engine := .Values.pod.mounts.senlin_engine.senlin_engine }}
@@ -74,3 +75,4 @@ spec:
             name: senlin-etc
             defaultMode: 0444
 {{- if $mounts_senlin_engine.volumes }}{{ toYaml $mounts_senlin_engine.volumes | indent 8 }}{{ end }}
+{{- end }}
diff --git a/senlin/values.yaml b/senlin/values.yaml
index 56b3c5b2c8..44fe92fe56 100644
--- a/senlin/values.yaml
+++ b/senlin/values.yaml
@@ -21,6 +21,8 @@ labels:
   node_selector_key: openstack-control-plane
   node_selector_value: enabled
 
+release_group: null
+
 images:
   bootstrap: docker.io/kolla/ubuntu-source-senlin-api:3.0.3
   db_init: docker.io/kolla/ubuntu-source-senlin-api:3.0.3
@@ -305,3 +307,21 @@ pod:
         limits:
           memory: "1024Mi"
           cpu: "2000m"
+
+manifests:
+  configmap_bin: true
+  configmap_etc: true
+  deployment_api: true
+  ingress_api: true
+  job_bootstrap: true
+  job_db_init: true
+  job_db_sync: true
+  job_ks_endpoints: true
+  job_ks_service: true
+  job_ks_user: true
+  pdb_api: true
+  secret_db: true
+  secret_keystone: true
+  service_ingress_api: true
+  service_api: true
+  statefulset_engine: true