From a9d23fbb6e8ec0dc21ed3344f5c3eeefcaa29ec6 Mon Sep 17 00:00:00 2001
From: Pete Birley <pete@port.direct>
Date: Fri, 27 Jul 2018 14:22:23 -0500
Subject: [PATCH] Gate: allow OS release version to be used in scripts

This PS updates the gate playbooks to both be slightly more
uniform in their instantiation, and also exposes the targeted
openstack release as an env var in scripts ran.

Change-Id: I4a2ab99bd3b1586703bf53e54231b0f08623a7d8
Signed-off-by: Pete Birley <pete@port.direct>
---
 .zuul.yaml                                    |   7 +
 .../playbooks/armada-fullstack-deploy.yaml    |  34 ++--
 tools/gate/playbooks/dev-deploy-ceph.yaml     | 153 +++++++++++-------
 tools/gate/playbooks/dev-deploy-nfs.yaml      | 144 ++++++++++-------
 tools/gate/playbooks/ironic-deploy.yaml       |  96 ++++++++++-
 tools/gate/playbooks/multinode-deploy.yaml    | 120 ++++++++++++++
 6 files changed, 426 insertions(+), 128 deletions(-)

diff --git a/.zuul.yaml b/.zuul.yaml
index e8cfedf231..b4cc5796a8 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -163,6 +163,7 @@
       - zuul: openstack/openstack-helm-infra
     timeout: 7200
     vars:
+      osh_openstack_release: newton
       osh_neutron_backend: openvswitch
       zuul_osh_infra_relative_path: ../openstack-helm-infra/
     pre-run:
@@ -226,6 +227,7 @@
     roles:
       - zuul: openstack/openstack-helm-infra
     vars:
+      osh_openstack_release: newton
       zuul_osh_infra_relative_path: ../openstack-helm-infra/
     timeout: 7200
     pre-run:
@@ -244,6 +246,7 @@
     roles:
       - zuul: openstack/openstack-helm-infra
     vars:
+      osh_openstack_release: newton
       zuul_osh_infra_relative_path: ../openstack-helm-infra/
     pre-run:
       - tools/gate/playbooks/osh-infra-upgrade-host.yaml
@@ -289,6 +292,7 @@
 - job:
     name: openstack-helm-ocata-loci-deploy-ceph
     vars:
+      osh_openstack_release: ocata
       zuul_osh_extra_helm_args_relative_path: --values=./tools/overrides/releases/ocata/loci.yaml
     parent: openstack-helm-dev-deploy
     run: tools/gate/playbooks/dev-deploy-ceph.yaml
@@ -296,6 +300,7 @@
 - job:
     name: openstack-helm-ocata-kolla-deploy-ceph
     vars:
+      osh_openstack_release: ocata
       zuul_osh_extra_helm_args_relative_path: --values=./tools/overrides/releases/ocata/kolla.yaml
     parent: openstack-helm-dev-deploy
     run: tools/gate/playbooks/dev-deploy-ceph.yaml
@@ -303,6 +308,7 @@
 - job:
     name: openstack-helm-pike-loci-deploy-ceph
     vars:
+      osh_openstack_release: pike
       zuul_osh_extra_helm_args_relative_path: --values=./tools/overrides/releases/pike/loci.yaml
     parent: openstack-helm-dev-deploy
     run: tools/gate/playbooks/dev-deploy-ceph.yaml
@@ -310,6 +316,7 @@
 - job:
     name: openstack-helm-pike-kolla-deploy-ceph
     vars:
+      osh_openstack_release: pike
       zuul_osh_extra_helm_args_relative_path: --values=./tools/overrides/releases/pike/kolla.yaml
     parent: openstack-helm-dev-deploy
     run: tools/gate/playbooks/dev-deploy-ceph.yaml
diff --git a/tools/gate/playbooks/armada-fullstack-deploy.yaml b/tools/gate/playbooks/armada-fullstack-deploy.yaml
index 354c8f848a..882d99f29e 100644
--- a/tools/gate/playbooks/armada-fullstack-deploy.yaml
+++ b/tools/gate/playbooks/armada-fullstack-deploy.yaml
@@ -23,39 +23,55 @@
         name: ipcalc
         state: present
     - name: Install python3-pip for armada
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set xe;
         ./tools/deployment/armada/010-armada-host-setup.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Build armada
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set xe;
         ./tools/deployment/armada/015-armada-build.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Render all Armada manifests
-      vars:
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path }}"
-        OSH_PATH: "{{ zuul.project.src_dir }}"
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/armada/020-armada-render-manifests.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Validate all Armada manifests
-      vars:
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path }}"
-        OSH_PATH: "{{ zuul.project.src_dir }}"
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/armada/025-armada-validate-manifests.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Apply all Armada manifests
-      vars:
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path }}"
-        OSH_PATH: "{{ zuul.project.src_dir }}"
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/armada/030-armada-apply-manifests.sh
diff --git a/tools/gate/playbooks/dev-deploy-ceph.yaml b/tools/gate/playbooks/dev-deploy-ceph.yaml
index 1dafa13ad4..020a663856 100644
--- a/tools/gate/playbooks/dev-deploy-ceph.yaml
+++ b/tools/gate/playbooks/dev-deploy-ceph.yaml
@@ -15,104 +15,124 @@
 - hosts: primary
   tasks:
     - name: Deploy Required packages
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/000-install-packages.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
-        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Kubernetes
-      shell: |
-        set -xe;
-        ./tools/deployment/developer/ceph/010-deploy-k8s.sh
       environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
         OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
         OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
         zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
+      shell: |
+        set -xe;
+        ./tools/deployment/developer/ceph/010-deploy-k8s.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup OS and K8s Clients
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/020-setup-client.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ingress
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/030-ingress.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ceph
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/040-ceph.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ceph NS Activate
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/045-ceph-ns-activate.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Mariadb
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/050-mariadb.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy RabbitMQ
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/060-rabbitmq.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Memcached
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/070-memcached.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/080-keystone.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Heat
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/090-heat.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     # - name: Deploy Horizon
@@ -122,76 +142,91 @@
     #   args:
     #     chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone Endpoints and User management for CephRGW
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/110-ceph-radosgateway.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Glance
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/120-glance.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
-        GLANCE_BACKEND: "{{ zuul_glance_backend | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Cinder
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/130-cinder.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy OpenvSwitch
       when: osh_neutron_backend == 'openvswitch'
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/140-openvswitch.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Libvirt
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/150-libvirt.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy VM Compute Kit
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/160-compute-kit.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup Gateway
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/170-setup-gateway.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy use the cloud
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ceph/900-use-it.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
diff --git a/tools/gate/playbooks/dev-deploy-nfs.yaml b/tools/gate/playbooks/dev-deploy-nfs.yaml
index 907acca26c..6e497d4163 100644
--- a/tools/gate/playbooks/dev-deploy-nfs.yaml
+++ b/tools/gate/playbooks/dev-deploy-nfs.yaml
@@ -15,169 +15,203 @@
 - hosts: primary
   tasks:
     - name: Deploy Required packages
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/000-install-packages.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
-        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Kubernetes
-      shell: |
-        set -xe;
-        ./tools/deployment/developer/nfs/010-deploy-k8s.sh
       environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
         OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
         OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
         zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
+      shell: |
+        set -xe;
+        ./tools/deployment/developer/nfs/010-deploy-k8s.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup OS and K8s Clients
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/020-setup-client.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ingress
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/030-ingress.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy NFS
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/040-nfs-provisioner.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Mariadb
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/050-mariadb.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy RabbitMQ
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/060-rabbitmq.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Memcached
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/070-memcached.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone
       when: idp_backend is not defined
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/080-keystone.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone with LDAP
       when: idp_backend is defined and idp_backend == "ldap"
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/ldap/080-keystone.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Heat
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/090-heat.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Horizon
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/100-horizon.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Glance
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/120-glance.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy OpenvSwitch
       when: osh_neutron_backend == 'openvswitch'
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/140-openvswitch.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Libvirt
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/150-libvirt.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy VM Compute Kit
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/160-compute-kit.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup Gateway
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/170-setup-gateway.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy use the cloud
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/developer/nfs/900-use-it.sh
-      environment:
-        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
-        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
diff --git a/tools/gate/playbooks/ironic-deploy.yaml b/tools/gate/playbooks/ironic-deploy.yaml
index 3d2bf4e575..a8ebc82b31 100644
--- a/tools/gate/playbooks/ironic-deploy.yaml
+++ b/tools/gate/playbooks/ironic-deploy.yaml
@@ -15,112 +15,198 @@
 - hosts: primary
   tasks:
     - name: Deploy Packages
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/000-install-packages.sh
-      environment:
-        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup Nodes
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/005-setup-nodes.sh
-      environment:
-        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy clients
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/010-setup-client.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy ingress
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/020-ingress.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ceph
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/030-ceph.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup openstack namespace for ceph
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/035-ceph-ns-activate.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy MariaDB
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/040-mariadb.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy RabbitMQ
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/050-rabbitmq.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Memcached
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/060-memcached.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/070-keystone.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ceph RadosGW Endpoints
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/080-ceph-radosgateway.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Glance
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/090-glance.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
-    - name: Deploy Hea
+    - name: Deploy Heat
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/100-heat.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Compute Kit
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/110-compute-kit.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Create baremetal host aggregate
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/800-create-baremetal-host-aggregate.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Register baremetal nodes
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/810-register-baremetal-nodes.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Create baremetal flavor
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/820-create-baremetal-flavor.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Node
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/baremetal/900-use-it.sh
diff --git a/tools/gate/playbooks/multinode-deploy.yaml b/tools/gate/playbooks/multinode-deploy.yaml
index 61639b9046..a190ce4f54 100644
--- a/tools/gate/playbooks/multinode-deploy.yaml
+++ b/tools/gate/playbooks/multinode-deploy.yaml
@@ -15,144 +15,264 @@
 - hosts: primary
   tasks:
     - name: Setup OS and K8s Clients
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/010-setup-client.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ingress
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/020-ingress.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ceph
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/030-ceph.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Setup openstack namespace for ceph
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/040-ceph-ns-activate.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy MariaDB
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/050-mariadb.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy RabbitMQ
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/060-rabbitmq.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Memcached
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/070-memcached.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/080-keystone.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Keystone RadosGW endpoints and user
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/090-ceph-radosgateway.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Glance
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/100-glance.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Cinder
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/110-cinder.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy OpenVswitch
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/120-openvswitch.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Libvirt
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/130-libvirt.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy ComputeKit
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/140-compute-kit.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Heat
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/150-heat.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Barbican
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/160-barbican.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Senlin
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/170-senlin.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Mistral
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/180-mistral.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Magnum
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/190-magnum.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Congress
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/200-congress.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Postgresql
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/210-postgresql.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Gnocchi
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/220-gnocchi.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy MongoDB
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/230-mongodb.sh
       args:
         chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}"
     - name: Deploy Ceilometer
+      environment:
+        OSH_OPENSTACK_RELEASE: "{{ osh_openstack_release }}"
+        OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}"
+        OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
+        zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
       shell: |
         set -xe;
         ./tools/deployment/multinode/240-ceilometer.sh