diff --git a/cinder/.helmignore b/cinder/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/cinder/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/cinder/values_overrides/rocky-opensuse_15.yaml b/cinder/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..52a2c27f0a
--- /dev/null
+++ b/cinder/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,17 @@
+---
+images:
+ tags:
+ db_init: docker.io/openstackhelm/heat:rocky-opensuse_15
+ cinder_db_sync: docker.io/openstackhelm/cinder:rocky-opensuse_15
+ db_drop: docker.io/openstackhelm/heat:rocky-opensuse_15
+ ks_user: docker.io/openstackhelm/heat:rocky-opensuse_15
+ ks_service: docker.io/openstackhelm/heat:rocky-opensuse_15
+ ks_endpoints: docker.io/openstackhelm/heat:rocky-opensuse_15
+ cinder_api: docker.io/openstackhelm/cinder:rocky-opensuse_15
+ bootstrap: docker.io/openstackhelm/heat:rocky-opensuse_15
+ cinder_scheduler: docker.io/openstackhelm/cinder:rocky-opensuse_15
+ cinder_volume: docker.io/openstackhelm/cinder:rocky-opensuse_15
+ cinder_volume_usage_audit: docker.io/openstackhelm/cinder:rocky-opensuse_15
+ cinder_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-opensuse_15
+ cinder_backup: docker.io/openstackhelm/cinder:rocky-opensuse_15
+ cinder_backup_storage_init: docker.io/openstackhelm/ceph-config-helper:latest-opensuse_15
diff --git a/glance/.helmignore b/glance/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/glance/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/glance/values_overrides/rocky-opensuse_15.yaml b/glance/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..5328a3f2f1
--- /dev/null
+++ b/glance/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,13 @@
+---
+images:
+ tags:
+ bootstrap: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_init: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_drop: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_user: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_service: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_endpoints: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ glance_db_sync: "docker.io/openstackhelm/glance:rocky-opensuse_15"
+ glance_api: "docker.io/openstackhelm/glance:rocky-opensuse_15"
+ glance_registry: "docker.io/openstackhelm/glance:rocky-opensuse_15"
+ glance_storage_init: "docker.io/openstackhelm/ceph-config-helper:latest-opensuse_15"
diff --git a/heat/.helmignore b/heat/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/heat/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/heat/values_overrides/rocky-opensuse_15.yaml b/heat/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..798e7ba33c
--- /dev/null
+++ b/heat/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,16 @@
+---
+images:
+ tags:
+ bootstrap: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_init: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_drop: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_user: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_service: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_endpoints: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_db_sync: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_api: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_cfn: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_cloudwatch: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_engine: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_engine_cleaner: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ heat_purge_deleted: "docker.io/openstackhelm/heat:rocky-opensuse_15"
diff --git a/horizon/.helmignore b/horizon/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/horizon/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/horizon/values_overrides/opensuse_15.yaml b/horizon/values_overrides/opensuse_15.yaml
new file mode 100644
index 0000000000..32577d7ddd
--- /dev/null
+++ b/horizon/values_overrides/opensuse_15.yaml
@@ -0,0 +1,24 @@
+---
+conf:
+ software:
+ apache2:
+ binary: apache2ctl
+ start_parameters: -DFOREGROUND -k start
+ site_dir: /etc/apache2/vhosts.d
+ conf_dir: /etc/apache2/conf.d
+ a2enmod:
+ - rewrite
+ - version
+ horizon:
+ security: |
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+
+ Require all granted
+
+
+ Order allow,deny
+ Allow from all
+
+
diff --git a/horizon/values_overrides/rocky-opensuse_15.yaml b/horizon/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..850cb6564f
--- /dev/null
+++ b/horizon/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,7 @@
+---
+images:
+ tags:
+ db_init: docker.io/openstackhelm/heat:rocky-opensuse_15
+ db_drop: docker.io/openstackhelm/heat:rocky-opensuse_15
+ horizon_db_sync: docker.io/openstackhelm/horizon:rocky-opensuse_15
+ horizon: docker.io/openstackhelm/horizon:rocky-opensuse_15
diff --git a/keystone/.helmignore b/keystone/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/keystone/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/keystone/values_overrides/opensuse_15.yaml b/keystone/values_overrides/opensuse_15.yaml
new file mode 100644
index 0000000000..e6222b831c
--- /dev/null
+++ b/keystone/values_overrides/opensuse_15.yaml
@@ -0,0 +1,30 @@
+---
+conf:
+ software:
+ apache2:
+ binary: apache2ctl
+ start_parameters: -DFOREGROUND -k start
+ site_dir: /etc/apache2/vhosts.d
+ conf_dir: /etc/apache2/conf.d
+ a2enmod:
+ - version
+ security: |
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+
+ Require all granted
+
+
+ Order allow,deny
+ Allow from all
+
+
+pod:
+ security_context:
+ keystone:
+ pod:
+ runAsUser: 0
+ container:
+ keystone_api:
+ readOnlyRootFilesystem: false
diff --git a/keystone/values_overrides/rocky-opensuse_15.yaml b/keystone/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..4d1288ee4c
--- /dev/null
+++ b/keystone/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,16 @@
+---
+images:
+ tags:
+ bootstrap: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_init: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_drop: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ keystone_api: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ keystone_bootstrap: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ keystone_credential_rotate: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ keystone_credential_setup: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ keystone_db_sync: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ keystone_domain_manage: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ keystone_fernet_rotate: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ keystone_fernet_setup: "docker.io/openstackhelm/keystone:rocky-opensuse_15"
+ ks_user: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+
diff --git a/neutron/.helmignore b/neutron/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/neutron/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/neutron/values_overrides/rocky-opensuse_15.yaml b/neutron/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..b27ff910c6
--- /dev/null
+++ b/neutron/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,16 @@
+---
+images:
+ tags:
+ bootstrap: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_init: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_drop: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_user: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_service: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_endpoints: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ neutron_db_sync: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
+ neutron_dhcp: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
+ neutron_l3: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
+ neutron_linuxbridge_agent: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
+ neutron_metadata: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
+ neutron_openvswitch_agent: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
+ neutron_server: "docker.io/openstackhelm/neutron:rocky-opensuse_15"
diff --git a/nova/.helmignore b/nova/.helmignore
new file mode 100644
index 0000000000..b54c347b85
--- /dev/null
+++ b/nova/.helmignore
@@ -0,0 +1 @@
+values_overrides
diff --git a/nova/values_overrides/opensuse_15.yaml b/nova/values_overrides/opensuse_15.yaml
new file mode 100644
index 0000000000..de1a3e9aa0
--- /dev/null
+++ b/nova/values_overrides/opensuse_15.yaml
@@ -0,0 +1,22 @@
+---
+conf:
+ software:
+ apache2:
+ binary: apache2ctl
+ start_parameters: -DFOREGROUND -k start
+ site_dir: /etc/apache2/vhosts.d
+ conf_dir: /etc/apache2/conf.d
+ a2enmod:
+ - version
+ security: |
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+
+ Require all granted
+
+
+ Order allow,deny
+ Allow from all
+
+
diff --git a/nova/values_overrides/rocky-opensuse_15.yaml b/nova/values_overrides/rocky-opensuse_15.yaml
new file mode 100644
index 0000000000..17ebdfc674
--- /dev/null
+++ b/nova/values_overrides/rocky-opensuse_15.yaml
@@ -0,0 +1,27 @@
+---
+images:
+ tags:
+ bootstrap: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_drop: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ db_init: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_user: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_service: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ ks_endpoints: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ nova_api: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_cell_setup: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_cell_setup_init: "docker.io/openstackhelm/heat:rocky-opensuse_15"
+ nova_compute: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ # nova_compute_ironic: 'docker.io/kolla/ubuntu-source-nova-compute-ironic:ocata'
+ nova_compute_ssh: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_conductor: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_consoleauth: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_db_sync: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_novncproxy: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_novncproxy_assets: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_placement: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_scheduler: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ #nova_service_cleaner: 'docker.io/port/ceph-config-helper:v1.10.3'
+ nova_spiceproxy: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_spiceproxy_assets: "docker.io/openstackhelm/nova:rocky-opensuse_15"
+ nova_service_cleaner: "docker.io/openstackhelm/ceph-config-helper:latest-opensuse_15"
+
diff --git a/tools/deployment/component/keystone/keystone.sh b/tools/deployment/component/keystone/keystone.sh
index c19aec70fd..8cc3f0a6e3 100755
--- a/tools/deployment/component/keystone/keystone.sh
+++ b/tools/deployment/component/keystone/keystone.sh
@@ -24,6 +24,7 @@ make keystone
helm upgrade --install keystone ./keystone \
--namespace=openstack \
${OSH_EXTRA_HELM_ARGS} \
+ ${OSH_VALUES_OVERRIDES_HELM_ARGS:=} \
${OSH_EXTRA_HELM_ARGS_KEYSTONE}
#NOTE: Wait for deploy
diff --git a/zuul.d/jobs-openstack-helm.yaml b/zuul.d/jobs-openstack-helm.yaml
index b76e068aa8..6a48c1c118 100644
--- a/zuul.d/jobs-openstack-helm.yaml
+++ b/zuul.d/jobs-openstack-helm.yaml
@@ -65,6 +65,13 @@
- ./tools/deployment/component/common/memcached.sh
- ./tools/deployment/component/common/rabbitmq.sh
- ./tools/deployment/component/keystone/keystone.sh
+- job:
+ name: openstack-helm-keystone-rocky-opensuse_15
+ parent: openstack-helm-keystone
+ vars:
+ values_overrides:
+ - ./keystone/values_overrides/opensuse_15.yaml
+ - ./keystone/values_overrides/rocky-opensuse_15.yaml
- job:
name: openstack-helm-keystone-ldap
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index cadc575430..fbb6c856b2 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -26,6 +26,8 @@
- openstack-helm-lint
- openstack-helm-bandit
- openstack-helm-keystone
+ - openstack-helm-keystone-rocky-opensuse_15:
+ voting: false
- openstack-helm-keystone-ldap
- openstack-helm-glance
- openstack-helm-heat