Merge "Revert "Bump helm-toolkit to 0.2.78 (#2264)"" into stable/zed
diff --git a/build/pin-images.py b/build/pin-images.py
index f7485da..30700c3 100755
--- a/build/pin-images.py
+++ b/build/pin-images.py
@@ -22,7 +22,7 @@
if token:
headers["Authorization"] = f"Bearer {token}"
else:
- r = requests.get(url, timeout=5, verify=False)
+ r = requests.get(url, timeout=5)
auth_header = r.headers.get("Www-Authenticate")
if auth_header:
realm = auth_header.split(",")[0].split("=")[1].strip('"')
@@ -31,7 +31,6 @@
realm,
timeout=5,
params={"scope": f"repository:{image_ref.path()}:pull"},
- verify=False,
)
r.raise_for_status()
@@ -44,7 +43,6 @@
f"https://{image_ref.domain()}/v2/{image_ref.path()}/manifests/{image_ref['tag']}",
timeout=5,
headers=headers,
- verify=False,
)
r.raise_for_status()
return r.headers["Docker-Content-Digest"]
@@ -55,7 +53,6 @@
f"https://{image_ref.domain()}/v2/{image_ref.path()}/manifests/{image_ref['tag']}",
timeout=5,
headers=headers,
- verify=False,
)
r.raise_for_status()
return r.headers["Docker-Content-Digest"]
@@ -64,6 +61,8 @@
@functools.cache
def get_pinned_image(image_src):
image_ref = reference.Reference.parse(image_src)
+ if image_ref.domain() != "harbor.atmosphere.dev":
+ image_ref = reference.Reference.parse("harbor.atmosphere.dev/" + image_src)
if (
image_ref.domain() == "registry.atmosphere.dev"
@@ -130,7 +129,10 @@
else:
digest = get_digest(image_ref)
- return f"{image_ref.domain()}/{image_ref.path()}:{image_ref['tag']}@{digest}"
+ original_ref = reference.Reference.parse(image_src)
+ return (
+ f"{original_ref.domain()}/{original_ref.path()}:{original_ref['tag']}@{digest}"
+ )
def main():
@@ -154,13 +156,19 @@
if image in SKIP_IMAGE_LIST:
continue
- image_src = data["_atmosphere_images"][image].replace(
- "{{ atmosphere_release }}", data["atmosphere_release"]
+ image_src = (
+ data["_atmosphere_images"][image]
+ .replace("{{ atmosphere_release }}", data["atmosphere_release"])
+ .replace("{{ atmosphere_image_prefix }}", "")
)
- pinned_image = get_pinned_image(image_src)
+ pinned_image = get_pinned_image(image_src).replace(
+ "harbor.atmosphere.dev", "registry.atmosphere.dev"
+ )
LOG.info("Pinning image %s from %s to %s", image, image_src, pinned_image)
- data["_atmosphere_images"][image] = pinned_image
+ data["_atmosphere_images"][image] = "{{ atmosphere_image_prefix }}%s" % (
+ pinned_image,
+ )
yaml.dump(data, args.dst)
diff --git a/charts/neutron/templates/bin/_neutron-ironic-agent-init.sh.tpl b/charts/neutron/templates/bin/_neutron-ironic-agent-init.sh.tpl
new file mode 100644
index 0000000..3df3315
--- /dev/null
+++ b/charts/neutron/templates/bin/_neutron-ironic-agent-init.sh.tpl
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+{{/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+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.
+*/}}
+
+set -ex
+
+{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
+mkdir -p /tmp/pod-shared
+tee > /tmp/pod-shared/neutron-agent.ini << EOF
+[DEFAULT]
+host = $(hostname --fqdn)
+EOF
+{{- end }}
diff --git a/charts/neutron/templates/configmap-bin.yaml b/charts/neutron/templates/configmap-bin.yaml
index b6ad4af..bd80c40 100644
--- a/charts/neutron/templates/configmap-bin.yaml
+++ b/charts/neutron/templates/configmap-bin.yaml
@@ -95,6 +95,8 @@
{{ tuple "bin/_neutron-policy-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
neutron-rpc-server.sh: |
{{ tuple "bin/_neutron-rpc-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+ neutron-ironic-agent-init.sh: |
+{{ tuple "bin/_neutron-ironic-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
neutron-ironic-agent.sh: |
{{ tuple "bin/_neutron-ironic-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
neutron-netns-cleanup-cron.sh: |
diff --git a/charts/neutron/templates/deployment-ironic-agent.yaml b/charts/neutron/templates/deployment-ironic-agent.yaml
index 014c9ad..1b468e2 100644
--- a/charts/neutron/templates/deployment-ironic-agent.yaml
+++ b/charts/neutron/templates/deployment-ironic-agent.yaml
@@ -60,6 +60,19 @@
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.ironic_agent.timeout | default "30" }}
initContainers:
{{ tuple $envAll "pod_dependency" $mounts_neutron_ironic_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
+ - name: neutron-ironic-agent-init
+{{ tuple $envAll "neutron_ironic_agent_init" | include "helm-toolkit.snippets.image" | indent 10 }}
+{{ tuple $envAll $envAll.Values.pod.resources.ironic_agent | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
+{{ dict "envAll" $envAll "application" "neutron_ironic_agent" "container" "neutron_ironic_agent_init" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
+ command:
+ - /tmp/neutron-ironic-agent-init.sh
+ volumeMounts:
+ - name: pod-shared
+ mountPath: /tmp/pod-shared
+ - name: neutron-bin
+ mountPath: /tmp/neutron-ironic-agent-init.sh
+ subPath: neutron-ironic-agent-init.sh
+ readOnly: true
containers:
- name: neutron-ironic-agent
{{ tuple $envAll "neutron_ironic_agent" | include "helm-toolkit.snippets.image" | indent 10 }}
@@ -79,6 +92,8 @@
mountPath: /tmp
- name: pod-var-neutron
mountPath: {{ .Values.conf.neutron.DEFAULT.state_path }}
+ - name: pod-shared
+ mountPath: /tmp/pod-shared
- name: neutron-bin
mountPath: /tmp/neutron-ironic-agent.sh
subPath: neutron-ironic-agent.sh
@@ -104,6 +119,8 @@
emptyDir: {}
- name: pod-var-neutron
emptyDir: {}
+ - name: pod-shared
+ mountPath: /tmp/pod-shared
- name: neutron-bin
configMap:
name: neutron-bin
diff --git a/charts/neutron/values.yaml b/charts/neutron/values.yaml
index cd3889b..d76b375 100644
--- a/charts/neutron/values.yaml
+++ b/charts/neutron/values.yaml
@@ -45,6 +45,7 @@
neutron_sriov_agent_init: docker.io/openstackhelm/neutron:stein-18.04-sriov
neutron_bagpipe_bgp: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
neutron_bgp_dragent: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
+ neutron_ironic_agent_init: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
neutron_ironic_agent: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
neutron_netns_cleanup_cron: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
@@ -643,6 +644,9 @@
pod:
runAsUser: 42424
container:
+ neutron_ironic_agent_init:
+ runAsUser: 0
+ readOnlyRootFilesystem: true
neutron_ironic_agent:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
diff --git a/charts/patches/neutron/0003-fix-neutron-ironic-agent.patch b/charts/patches/neutron/0003-fix-neutron-ironic-agent.patch
new file mode 100644
index 0000000..c112239
--- /dev/null
+++ b/charts/patches/neutron/0003-fix-neutron-ironic-agent.patch
@@ -0,0 +1,108 @@
+diff --git a/neutron/templates/bin/_neutron-ironic-agent-init.sh.tpl b/neutron/templates/bin/_neutron-ironic-agent-init.sh.tpl
+new file mode 100644
+index 00000000..3df3315b
+--- /dev/null
++++ b/neutron/templates/bin/_neutron-ironic-agent-init.sh.tpl
+@@ -0,0 +1,25 @@
++#!/bin/bash
++
++{{/*
++Licensed under the Apache License, Version 2.0 (the "License");
++you may not use this file except in compliance with the License.
++You may obtain a copy of the License at
++
++ http://www.apache.org/licenses/LICENSE-2.0
++
++Unless required by applicable law or agreed to in writing, software
++distributed under the License is distributed on an "AS IS" BASIS,
++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.
++*/}}
++
++set -ex
++
++{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
++mkdir -p /tmp/pod-shared
++tee > /tmp/pod-shared/neutron-agent.ini << EOF
++[DEFAULT]
++host = $(hostname --fqdn)
++EOF
++{{- end }}
+diff --git a/neutron/templates/configmap-bin.yaml b/neutron/templates/configmap-bin.yaml
+index 2032b156..87b2b798 100644
+--- a/neutron/templates/configmap-bin.yaml
++++ b/neutron/templates/configmap-bin.yaml
+@@ -95,6 +95,8 @@ data:
+ {{ tuple "bin/_neutron-policy-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+ neutron-rpc-server.sh: |
+ {{ tuple "bin/_neutron-rpc-server.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
++ neutron-ironic-agent-init.sh: |
++{{ tuple "bin/_neutron-ironic-agent-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+ neutron-ironic-agent.sh: |
+ {{ tuple "bin/_neutron-ironic-agent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+ neutron-netns-cleanup-cron.sh: |
+diff --git a/neutron/templates/deployment-ironic-agent.yaml b/neutron/templates/deployment-ironic-agent.yaml
+index 014c9adf..1b468e2b 100644
+--- a/neutron/templates/deployment-ironic-agent.yaml
++++ b/neutron/templates/deployment-ironic-agent.yaml
+@@ -60,6 +60,19 @@ spec:
+ terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.ironic_agent.timeout | default "30" }}
+ initContainers:
+ {{ tuple $envAll "pod_dependency" $mounts_neutron_ironic_agent_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
++ - name: neutron-ironic-agent-init
++{{ tuple $envAll "neutron_ironic_agent_init" | include "helm-toolkit.snippets.image" | indent 10 }}
++{{ tuple $envAll $envAll.Values.pod.resources.ironic_agent | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
++{{ dict "envAll" $envAll "application" "neutron_ironic_agent" "container" "neutron_ironic_agent_init" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
++ command:
++ - /tmp/neutron-ironic-agent-init.sh
++ volumeMounts:
++ - name: pod-shared
++ mountPath: /tmp/pod-shared
++ - name: neutron-bin
++ mountPath: /tmp/neutron-ironic-agent-init.sh
++ subPath: neutron-ironic-agent-init.sh
++ readOnly: true
+ containers:
+ - name: neutron-ironic-agent
+ {{ tuple $envAll "neutron_ironic_agent" | include "helm-toolkit.snippets.image" | indent 10 }}
+@@ -79,6 +92,8 @@ spec:
+ mountPath: /tmp
+ - name: pod-var-neutron
+ mountPath: {{ .Values.conf.neutron.DEFAULT.state_path }}
++ - name: pod-shared
++ mountPath: /tmp/pod-shared
+ - name: neutron-bin
+ mountPath: /tmp/neutron-ironic-agent.sh
+ subPath: neutron-ironic-agent.sh
+@@ -104,6 +119,8 @@ spec:
+ emptyDir: {}
+ - name: pod-var-neutron
+ emptyDir: {}
++ - name: pod-shared
++ mountPath: /tmp/pod-shared
+ - name: neutron-bin
+ configMap:
+ name: neutron-bin
+diff --git a/neutron/values.yaml b/neutron/values.yaml
+index 819d7853..b1ff4569 100644
+--- a/neutron/values.yaml
++++ b/neutron/values.yaml
+@@ -46,6 +46,7 @@ images:
+ neutron_sriov_agent_init: docker.io/openstackhelm/neutron:stein-18.04-sriov
+ neutron_bagpipe_bgp: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
+ neutron_bgp_dragent: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
++ neutron_ironic_agent_init: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
+ neutron_ironic_agent: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
+ neutron_netns_cleanup_cron: docker.io/openstackhelm/neutron:2024.1-ubuntu_jammy
+ dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_focal
+@@ -679,6 +680,9 @@ pod:
+ pod:
+ runAsUser: 42424
+ container:
++ neutron_ironic_agent_init:
++ runAsUser: 0
++ readOnlyRootFilesystem: true
+ neutron_ironic_agent:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
diff --git a/molecule/aio/group_vars/all/molecule.yml b/molecule/aio/group_vars/all/molecule.yml
index 9d8942a..bf39267 100644
--- a/molecule/aio/group_vars/all/molecule.yml
+++ b/molecule/aio/group_vars/all/molecule.yml
@@ -1,3 +1,5 @@
+atmosphere_image_prefix: "{{ lookup('env', 'ATMOSPHERE_IMAGE_PREFIX') | default('', True) }}"
+
ceph_conf_overrides:
- section: global
option: mon allow pool size one
diff --git a/releasenotes/notes/allow-prefix-to-image-names-4a795e9ff805b8b0.yaml b/releasenotes/notes/allow-prefix-to-image-names-4a795e9ff805b8b0.yaml
new file mode 100644
index 0000000..1c8a4ea
--- /dev/null
+++ b/releasenotes/notes/allow-prefix-to-image-names-4a795e9ff805b8b0.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ Introduced the ability to specify a prefix for image names. This allows for
+ easier integration with image proxies and caching mechanisms, eliminating
+ the need to maintain separate inventory overrides for each image.
diff --git a/releasenotes/notes/fix-neutron-ironic-agent-f3eedbcec84b0478.yaml b/releasenotes/notes/fix-neutron-ironic-agent-f3eedbcec84b0478.yaml
new file mode 100644
index 0000000..773ef1b
--- /dev/null
+++ b/releasenotes/notes/fix-neutron-ironic-agent-f3eedbcec84b0478.yaml
@@ -0,0 +1,4 @@
+---
+fixes:
+ - |
+ Fixed an issue where the ``neutron-ironic-agent`` service failed to start.
diff --git a/releasenotes/notes/fix-pin-images-473f8e1cf4a81afc.yaml b/releasenotes/notes/fix-pin-images-473f8e1cf4a81afc.yaml
new file mode 100644
index 0000000..d3dc373
--- /dev/null
+++ b/releasenotes/notes/fix-pin-images-473f8e1cf4a81afc.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - The CI tooling for pinning images has been fixed to properly work after a
+ regression caused by the introduction of the ``atmosphere_image_prefix``
+ variable.
diff --git a/roles/defaults/defaults/main.yml b/roles/defaults/defaults/main.yml
index af44fa8..41bb43b 100644
--- a/roles/defaults/defaults/main.yml
+++ b/roles/defaults/defaults/main.yml
@@ -18,6 +18,7 @@
atmosphere_ingress_class_name: atmosphere
atmosphere_ingress_cluster_issuer: atmosphere
atmosphere_ingress_annotations: {}
+atmosphere_image_prefix: ""
# Network backend
atmosphere_network_backend: openvswitch
diff --git a/roles/defaults/vars.go b/roles/defaults/vars.go
index 0799e7d..38b6b22 100644
--- a/roles/defaults/vars.go
+++ b/roles/defaults/vars.go
@@ -16,14 +16,13 @@
// Define a global variable for the release value.
var release = "main"
-// Function to replace the {{ release }} placeholders
-func replaceReleaseInYAML(yamlContent []byte, release string) []byte {
- return []byte(strings.ReplaceAll(string(yamlContent), "{{ atmosphere_release }}", release))
-}
-
func GetImages() (map[string]string, error) {
// Replace {{ release }} with the actual release value
- modifiedVarsFile := replaceReleaseInYAML(varsFile, release)
+ modifiedVarsFile := []byte(strings.ReplaceAll(string(varsFile), "{{ atmosphere_release }}", release))
+
+ // Fix prefixes for images to allow tests to run
+ modifiedVarsFile = []byte(strings.ReplaceAll(string(modifiedVarsFile), "{{ atmosphere_image_prefix }}registry.atmosphere.dev", "harbor.atmosphere.dev"))
+ modifiedVarsFile = []byte(strings.ReplaceAll(string(modifiedVarsFile), "{{ atmosphere_image_prefix }}", "harbor.atmosphere.dev/"))
path, err := yaml.PathString("$._atmosphere_images")
if err != nil {
diff --git a/roles/defaults/vars/main.yml b/roles/defaults/vars/main.yml
index e0b11cd..3752633 100644
--- a/roles/defaults/vars/main.yml
+++ b/roles/defaults/vars/main.yml
@@ -15,219 +15,220 @@
atmosphere_release: zed
_atmosphere_images:
- alertmanager: quay.io/prometheus/alertmanager:v0.27.0
- barbican_api: "registry.atmosphere.dev/library/barbican:{{ atmosphere_release }}"
- barbican_db_sync: "registry.atmosphere.dev/library/barbican:{{ atmosphere_release }}"
- bootstrap: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- ceph_config_helper: "registry.atmosphere.dev/library/libvirtd:{{ atmosphere_release }}"
- ceph: quay.io/ceph/ceph:v18.2.1
- cert_manager_cainjector: quay.io/jetstack/cert-manager-cainjector:v1.12.10
- cert_manager_cli: quay.io/jetstack/cert-manager-ctl:v1.12.10
- cert_manager_controller: quay.io/jetstack/cert-manager-controller:v1.12.10
- cert_manager_webhook: quay.io/jetstack/cert-manager-webhook:v1.12.10
- cert_manager_acmesolver: quay.io/jetstack/cert-manager-acmesolver:v1.12.10
- cilium_node: quay.io/cilium/cilium:v1.14.8
- cilium_operator: quay.io/cilium/operator-generic:v1.14.8
- cinder_api: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_backup_storage_init: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_backup: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_db_sync: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_scheduler: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_storage_init: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_volume_usage_audit: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cinder_volume: "registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
- cluster_api_controller: registry.k8s.io/cluster-api/cluster-api-controller:v1.8.4
- cluster_api_kubeadm_bootstrap_controller: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.8.4
- cluster_api_kubeadm_control_plane_controller: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.8.4
- cluster_api_openstack_controller: registry.k8s.io/capi-openstack/capi-openstack-controller:v0.11.2
- csi_node_driver_registrar: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.4.0
- csi_rbd_attacher: registry.k8s.io/sig-storage/csi-attacher:v3.4.0
- csi_rbd_plugin: quay.io/cephcsi/cephcsi:v3.5.1
- csi_rbd_provisioner: registry.k8s.io/sig-storage/csi-provisioner:v3.1.0
- csi_rbd_resizer: registry.k8s.io/sig-storage/csi-resizer:v1.3.0
- csi_rbd_snapshotter: registry.k8s.io/sig-storage/csi-snapshotter:v4.2.0
- db_drop: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- db_init: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- dep_check: "registry.atmosphere.dev/library/kubernetes-entrypoint:{{ atmosphere_release }}"
- designate_api: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- designate_central: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- designate_db_sync: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- designate_mdns: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- designate_producer: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- designate_sink: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- designate_worker: "registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
- glance_api: "registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
- glance_db_sync: "registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
- glance_metadefs_load: "registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
- glance_registry: "registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
- glance_storage_init: "registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
- grafana_sidecar: quay.io/kiwigrid/k8s-sidecar:1.26.1
- grafana: docker.io/grafana/grafana:10.4.0
- goldpinger: docker.io/bloomberg/goldpinger:3.10.1
- haproxy: docker.io/library/haproxy:2.5
- heat_api: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- heat_cfn: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- heat_cloudwatch: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- heat_db_sync: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- heat_engine_cleaner: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- heat_engine: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- heat_purge_deleted: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- horizon_db_sync: "registry.atmosphere.dev/library/horizon:{{ atmosphere_release }}"
- horizon: "registry.atmosphere.dev/library/horizon:{{ atmosphere_release }}"
- ibm_block_csi_addons_replicator: quay.io/ibmcsiblock/csi-block-volumereplication-operator:v0.9.0
- ibm_block_csi_attacher: registry.k8s.io/sig-storage/csi-attacher:v4.2.0
- ibm_block_csi_driver_controller: quay.io/ibmcsiblock/ibm-block-csi-driver-controller:1.11.2
- ibm_block_csi_driver_node: quay.io/ibmcsiblock/ibm-block-csi-driver-node:1.11.2
- ibm_block_csi_node_driver_registrar: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.3
- ibm_block_csi_livenessprobe: registry.k8s.io/sig-storage/livenessprobe:v2.9.0
- ibm_block_csi_operator: quay.io/ibmcsiblock/ibm-block-csi-operator:1.11.2
- ibm_block_csi_provisioner: registry.k8s.io/sig-storage/csi-provisioner:v3.4.0
- ibm_block_csi_resizer: registry.k8s.io/sig-storage/csi-resizer:v1.7.0
- ibm_block_csi_snapshotter: registry.k8s.io/sig-storage/csi-snapshotter:v6.2.1
- ibm_block_csi_volume_group: quay.io/ibmcsiblock/csi-volume-group-operator:v0.9.1
- ingress_nginx_controller: registry.k8s.io/ingress-nginx/controller:v1.1.1
- ingress_nginx_default_backend: registry.k8s.io/defaultbackend-amd64:1.5
- ingress_nginx_kube_webhook_certgen: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.1.1
- ironic_api: "registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
- ironic_conductor: "registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
- ironic_db_sync: "registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
- ironic_manage_cleaning_network: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- ironic_pxe_http: docker.io/library/nginx:1.25
- ironic_pxe_init: "registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
- ironic_pxe: "registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
- ironic_retrive_cleaning_network: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- ironic_retrive_swift_config: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- keepalived: "registry.atmosphere.dev/library/keepalived:{{ atmosphere_release }}"
- keycloak: quay.io/keycloak/keycloak:22.0.1-0
- keystone_api: "registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
- keystone_credential_cleanup: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- keystone_credential_rotate: "registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
- keystone_credential_setup: "registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
- keystone_db_sync: "registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
- keystone_domain_manage: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- keystone_fernet_rotate: "registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
- keystone_fernet_setup: "registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
- ks_endpoints: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- ks_service: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- ks_user: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- kube_apiserver: registry.k8s.io/kube-apiserver:v1.22.17
- kube_controller_manager: registry.k8s.io/kube-controller-manager:v1.22.17
- kube_coredns: registry.k8s.io/coredns/coredns:v1.8.4
- kube_etcd: registry.k8s.io/etcd:3.5.6-0
- kube_proxy: registry.k8s.io/kube-proxy:v1.22.17
- kube_scheduler: registry.k8s.io/kube-scheduler:v1.22.17
- kube_state_metrics: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.12.0
- kube_vip: ghcr.io/kube-vip/kube-vip:v0.6.4
- kubectl: docker.io/bitnami/kubectl:1.27.3
- libvirt: "registry.atmosphere.dev/library/libvirtd:{{ atmosphere_release }}"
- libvirt_tls_sidecar: registry.atmosphere.dev/library/libvirt-tls-sidecar:latest
- libvirt_exporter: registry.atmosphere.dev/library/libvirtd-exporter:latest
- local_path_provisioner_helper: docker.io/library/busybox:1.36.0
- local_path_provisioner: docker.io/rancher/local-path-provisioner:v0.0.24
- loki_gateway: docker.io/nginxinc/nginx-unprivileged:1.24-alpine
- loki: docker.io/grafana/loki:2.9.6
- magnum_api: "registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
- magnum_cluster_api_proxy: "registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
- magnum_conductor: "registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
- magnum_db_sync: "registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
- magnum_registry: quay.io/vexxhost/magnum-cluster-api-registry:latest
- manila_api: "registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
- manila_data: "registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
- manila_db_sync: "registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
- manila_scheduler: "registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
- manila_share: "registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
- memcached: docker.io/library/memcached:1.6.17
- netoffload: "registry.atmosphere.dev/library/netoffload:{{ atmosphere_release }}"
- neutron_bagpipe_bgp: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_bgp_dragent: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_coredns: docker.io/coredns/coredns:1.9.3
- neutron_db_sync: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_dhcp: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_ironic_agent: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_l2gw: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_l3: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_linuxbridge_agent: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_metadata: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_netns_cleanup_cron: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_openvswitch_agent: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_ovn_metadata: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_server: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_rpc_server: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_sriov_agent_init: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_sriov_agent: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- neutron_policy_server: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- node_feature_discovery: registry.k8s.io/nfd/node-feature-discovery:v0.11.2
- nova_api: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_archive_deleted_rows: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_cell_setup_init: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- nova_cell_setup: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_compute_ironic: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_compute_ssh: "registry.atmosphere.dev/library/nova-ssh:{{ atmosphere_release }}"
- nova_compute: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_conductor: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_consoleauth: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_db_sync: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_novncproxy_assets: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_novncproxy: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_placement: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_scheduler: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_service_cleaner: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- nova_spiceproxy_assets: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_spiceproxy: "registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
- nova_storage_init: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- oauth2_proxy: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0
- octavia_api: "registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
- octavia_db_sync: "registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
- octavia_health_manager_init: "registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
- octavia_health_manager: "registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
- octavia_housekeeping: "registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
- octavia_worker: "registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
- openstack_cli: "registry.atmosphere.dev/library/python-openstackclient:{{ atmosphere_release }}"
- openvswitch_db_server: "registry.atmosphere.dev/library/openvswitch:{{ atmosphere_release }}"
- openvswitch_vswitchd: "registry.atmosphere.dev/library/openvswitch:{{ atmosphere_release }}"
- ovn_controller: "registry.atmosphere.dev/library/ovn-host:{{ atmosphere_release }}"
- ovn_controller_kubectl: "registry.atmosphere.dev/library/ovn-host:{{ atmosphere_release }}"
- ovn_logging_parser: "registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
- ovn_northd: "registry.atmosphere.dev/library/ovn-central:{{ atmosphere_release }}"
- ovn_ovsdb_nb: "registry.atmosphere.dev/library/ovn-central:{{ atmosphere_release }}"
- ovn_ovsdb_sb: "registry.atmosphere.dev/library/ovn-central:{{ atmosphere_release }}"
- pause: registry.k8s.io/pause:3.9
- percona_xtradb_cluster_haproxy: docker.io/percona/percona-xtradb-cluster-operator:1.13.0-haproxy
- percona_xtradb_cluster_operator: docker.io/percona/percona-xtradb-cluster-operator:1.13.0
- percona_xtradb_cluster: docker.io/percona/percona-xtradb-cluster:8.0.32-24.2
- percona_version_service: docker.io/perconalab/version-service:main-3325140
- placement_db_sync: "registry.atmosphere.dev/library/placement:{{ atmosphere_release }}"
- placement: "registry.atmosphere.dev/library/placement:{{ atmosphere_release }}"
- pod_tls_sidecar: registry.atmosphere.dev/library/pod-tls-sidecar:latest
- prometheus_config_reloader: quay.io/prometheus-operator/prometheus-config-reloader:v0.73.0
- prometheus_ipmi_exporter: us-docker.pkg.dev/vexxhost-infra/openstack/ipmi-exporter:1.4.0
- prometheus_memcached_exporter: quay.io/prometheus/memcached-exporter:v0.10.0
- prometheus_mysqld_exporter: quay.io/prometheus/mysqld-exporter:v0.14.0
- prometheus_node_exporter: quay.io/prometheus/node-exporter:v1.7.0
- prometheus_openstack_database_exporter: ghcr.io/vexxhost/openstack-database-exporter:v0.4.2
- prometheus_openstack_exporter: ghcr.io/openstack-exporter/openstack-exporter:1.7.0
- prometheus_operator_kube_webhook_certgen: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6
- prometheus_operator: quay.io/prometheus-operator/prometheus-operator:v0.73.1
- prometheus_pushgateway: docker.io/prom/pushgateway:v1.4.2
- prometheus: quay.io/prometheus/prometheus:v2.51.2
- rabbit_init: docker.io/library/rabbitmq:3.10.2-management
- rabbitmq_cluster_operator: docker.io/rabbitmqoperator/cluster-operator:1.13.1
- rabbitmq_credential_updater: docker.io/rabbitmqoperator/default-user-credential-updater:1.0.2
- rabbitmq_server: docker.io/library/rabbitmq:3.10.2-management
- rabbitmq_topology_operator: docker.io/rabbitmqoperator/messaging-topology-operator:1.6.0
- rook_ceph: docker.io/rook/ceph:v1.10.10
- secretgen_controller: ghcr.io/carvel-dev/secretgen-controller@sha256:59ec05ce5847bfd70c8e04f08b5195e918c8f6fbb947ffc91b456494a2958fd5
- senlin_api: "registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
- senlin_conductor: "registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
- senlin_db_sync: "registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
- senlin_engine_cleaner: "registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
- senlin_engine: "registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
- senlin_health_manager: "registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
- staffeln_db_sync: "registry.atmosphere.dev/library/staffeln:{{ atmosphere_release }}"
- staffeln_conductor: "registry.atmosphere.dev/library/staffeln:{{ atmosphere_release }}"
- staffeln_api: "registry.atmosphere.dev/library/staffeln:{{ atmosphere_release }}"
- tempest_run_tests: "registry.atmosphere.dev/library/tempest:{{ atmosphere_release }}"
- vector: docker.io/timberio/vector:0.37.0-debian
+ alertmanager: "{{ atmosphere_image_prefix }}quay.io/prometheus/alertmanager:v0.27.0"
+ barbican_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/barbican:{{ atmosphere_release }}"
+ barbican_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/barbican:{{ atmosphere_release }}"
+ bootstrap: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ ceph_config_helper: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/libvirtd:{{ atmosphere_release }}"
+ ceph: "{{ atmosphere_image_prefix }}quay.io/ceph/ceph:v18.2.1"
+ cert_manager_cainjector: "{{ atmosphere_image_prefix }}quay.io/jetstack/cert-manager-cainjector:v1.12.10"
+ cert_manager_cli: "{{ atmosphere_image_prefix }}quay.io/jetstack/cert-manager-ctl:v1.12.10"
+ cert_manager_controller: "{{ atmosphere_image_prefix }}quay.io/jetstack/cert-manager-controller:v1.12.10"
+ cert_manager_webhook: "{{ atmosphere_image_prefix }}quay.io/jetstack/cert-manager-webhook:v1.12.10"
+ cert_manager_acmesolver: "{{ atmosphere_image_prefix }}quay.io/jetstack/cert-manager-acmesolver:v1.12.10"
+ cilium_node: "{{ atmosphere_image_prefix }}quay.io/cilium/cilium:v1.14.8"
+ cilium_operator: "{{ atmosphere_image_prefix }}quay.io/cilium/operator-generic:v1.14.8"
+ cinder_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_backup_storage_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_backup: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_scheduler: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_storage_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_volume_usage_audit: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cinder_volume: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/cinder:{{ atmosphere_release }}"
+ cluster_api_controller: "{{ atmosphere_image_prefix }}registry.k8s.io/cluster-api/cluster-api-controller:v1.8.4"
+ cluster_api_kubeadm_bootstrap_controller: "{{ atmosphere_image_prefix }}registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.8.4"
+ cluster_api_kubeadm_control_plane_controller: "{{ atmosphere_image_prefix }}registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.8.4"
+ cluster_api_openstack_controller: "{{ atmosphere_image_prefix }}registry.k8s.io/capi-openstack/capi-openstack-controller:v0.11.2"
+ csi_node_driver_registrar: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.4.0"
+ csi_rbd_attacher: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-attacher:v3.4.0"
+ csi_rbd_plugin: "{{ atmosphere_image_prefix }}quay.io/cephcsi/cephcsi:v3.5.1"
+ csi_rbd_provisioner: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-provisioner:v3.1.0"
+ csi_rbd_resizer: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-resizer:v1.3.0"
+ csi_rbd_snapshotter: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-snapshotter:v4.2.0"
+ db_drop: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ db_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ dep_check: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/kubernetes-entrypoint:{{ atmosphere_release }}"
+ designate_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ designate_central: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ designate_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ designate_mdns: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ designate_producer: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ designate_sink: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ designate_worker: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/designate:{{ atmosphere_release }}"
+ glance_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
+ glance_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
+ glance_metadefs_load: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
+ glance_registry: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
+ glance_storage_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/glance:{{ atmosphere_release }}"
+ grafana_sidecar: "{{ atmosphere_image_prefix }}quay.io/kiwigrid/k8s-sidecar:1.26.1"
+ grafana: "{{ atmosphere_image_prefix }}docker.io/grafana/grafana:10.4.0"
+ goldpinger: "{{ atmosphere_image_prefix }}docker.io/bloomberg/goldpinger:3.10.1"
+ haproxy: "{{ atmosphere_image_prefix }}docker.io/library/haproxy:2.5"
+ heat_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ heat_cfn: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ heat_cloudwatch: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ heat_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ heat_engine_cleaner: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ heat_engine: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ heat_purge_deleted: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ horizon_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/horizon:{{ atmosphere_release }}"
+ horizon: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/horizon:{{ atmosphere_release }}"
+ ibm_block_csi_addons_replicator: "{{ atmosphere_image_prefix }}quay.io/ibmcsiblock/csi-block-volumereplication-operator:v0.9.0"
+ ibm_block_csi_attacher: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-attacher:v4.2.0"
+ ibm_block_csi_driver_controller: "{{ atmosphere_image_prefix }}quay.io/ibmcsiblock/ibm-block-csi-driver-controller:1.11.2"
+ ibm_block_csi_driver_node: "{{ atmosphere_image_prefix }}quay.io/ibmcsiblock/ibm-block-csi-driver-node:1.11.2"
+ ibm_block_csi_node_driver_registrar: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.3"
+ ibm_block_csi_livenessprobe: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/livenessprobe:v2.9.0"
+ ibm_block_csi_operator: "{{ atmosphere_image_prefix }}quay.io/ibmcsiblock/ibm-block-csi-operator:1.11.2"
+ ibm_block_csi_provisioner: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-provisioner:v3.4.0"
+ ibm_block_csi_resizer: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-resizer:v1.7.0"
+ ibm_block_csi_snapshotter: "{{ atmosphere_image_prefix }}registry.k8s.io/sig-storage/csi-snapshotter:v6.2.1"
+ ibm_block_csi_volume_group: "{{ atmosphere_image_prefix }}quay.io/ibmcsiblock/csi-volume-group-operator:v0.9.1"
+ ingress_nginx_controller: "{{ atmosphere_image_prefix }}registry.k8s.io/ingress-nginx/controller:v1.1.1"
+ ingress_nginx_default_backend: "{{ atmosphere_image_prefix }}registry.k8s.io/defaultbackend-amd64:1.5"
+ ingress_nginx_kube_webhook_certgen: "{{ atmosphere_image_prefix }}registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.1.1"
+ ironic_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
+ ironic_conductor: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
+ ironic_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
+ ironic_manage_cleaning_network: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ ironic_pxe_http: "{{ atmosphere_image_prefix }}docker.io/library/nginx:1.25"
+ ironic_pxe_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
+ ironic_pxe: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ironic:{{ atmosphere_release }}"
+ ironic_retrive_cleaning_network: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ ironic_retrive_swift_config: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ keepalived: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keepalived:{{ atmosphere_release }}"
+ keycloak: "{{ atmosphere_image_prefix }}quay.io/keycloak/keycloak:22.0.1-0"
+ keystone_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
+ keystone_credential_cleanup: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ keystone_credential_rotate: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
+ keystone_credential_setup: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
+ keystone_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
+ keystone_domain_manage: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ keystone_fernet_rotate: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
+ keystone_fernet_setup: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/keystone:{{ atmosphere_release }}"
+ ks_endpoints: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ ks_service: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ ks_user: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ kube_apiserver: "{{ atmosphere_image_prefix }}registry.k8s.io/kube-apiserver:v1.22.17"
+ kube_controller_manager: "{{ atmosphere_image_prefix }}registry.k8s.io/kube-controller-manager:v1.22.17"
+ kube_coredns: "{{ atmosphere_image_prefix }}registry.k8s.io/coredns/coredns:v1.8.4"
+ kube_etcd: "{{ atmosphere_image_prefix }}registry.k8s.io/etcd:3.5.6-0"
+ kube_proxy: "{{ atmosphere_image_prefix }}registry.k8s.io/kube-proxy:v1.22.17"
+ kube_scheduler: "{{ atmosphere_image_prefix }}registry.k8s.io/kube-scheduler:v1.22.17"
+ kube_state_metrics: "{{ atmosphere_image_prefix }}registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.12.0"
+ kube_vip: "{{ atmosphere_image_prefix }}ghcr.io/kube-vip/kube-vip:v0.6.4"
+ kubectl: "{{ atmosphere_image_prefix }}docker.io/bitnami/kubectl:1.27.3"
+ libvirt: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/libvirtd:{{ atmosphere_release }}"
+ libvirt_tls_sidecar: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/libvirt-tls-sidecar:latest"
+ libvirt_exporter: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/libvirtd-exporter:latest"
+ local_path_provisioner_helper: "{{ atmosphere_image_prefix }}docker.io/library/busybox:1.36.0"
+ local_path_provisioner: "{{ atmosphere_image_prefix }}docker.io/rancher/local-path-provisioner:v0.0.24"
+ loki_gateway: "{{ atmosphere_image_prefix }}docker.io/nginxinc/nginx-unprivileged:1.24-alpine"
+ loki: "{{ atmosphere_image_prefix }}docker.io/grafana/loki:2.9.6"
+ magnum_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
+ magnum_cluster_api_proxy: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
+ magnum_conductor: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
+ magnum_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/magnum:{{ atmosphere_release }}"
+ magnum_registry: "{{ atmosphere_image_prefix }}quay.io/vexxhost/magnum-cluster-api-registry:latest"
+ manila_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
+ manila_data: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
+ manila_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
+ manila_scheduler: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
+ manila_share: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/manila:{{ atmosphere_release }}"
+ memcached: "{{ atmosphere_image_prefix }}docker.io/library/memcached:1.6.17"
+ netoffload: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/netoffload:{{ atmosphere_release }}"
+ neutron_bagpipe_bgp: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_bgp_dragent: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_coredns: "{{ atmosphere_image_prefix }}docker.io/coredns/coredns:1.9.3"
+ neutron_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_dhcp: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_ironic_agent_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_ironic_agent: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_l2gw: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_l3: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_linuxbridge_agent: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_metadata: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_netns_cleanup_cron: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_openvswitch_agent: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_ovn_metadata: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_ovn_vpn: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_server: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_rpc_server: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_sriov_agent_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_sriov_agent: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ neutron_policy_server: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ node_feature_discovery: "{{ atmosphere_image_prefix }}registry.k8s.io/nfd/node-feature-discovery:v0.11.2"
+ nova_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_archive_deleted_rows: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_cell_setup_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ nova_cell_setup: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_compute_ironic: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_compute_ssh: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova-ssh:{{ atmosphere_release }}"
+ nova_compute: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_conductor: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_consoleauth: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_novncproxy_assets: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_novncproxy: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_placement: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_scheduler: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_service_cleaner: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ nova_spiceproxy_assets: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_spiceproxy: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/nova:{{ atmosphere_release }}"
+ nova_storage_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ oauth2_proxy: "{{ atmosphere_image_prefix }}quay.io/oauth2-proxy/oauth2-proxy:v7.6.0"
+ octavia_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
+ octavia_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
+ octavia_health_manager_init: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/heat:{{ atmosphere_release }}"
+ octavia_health_manager: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
+ octavia_housekeeping: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
+ octavia_worker: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/octavia:{{ atmosphere_release }}"
+ openstack_cli: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/python-openstackclient:{{ atmosphere_release }}"
+ openvswitch_db_server: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/openvswitch:{{ atmosphere_release }}"
+ openvswitch_vswitchd: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/openvswitch:{{ atmosphere_release }}"
+ ovn_controller: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ovn-host:{{ atmosphere_release }}"
+ ovn_controller_kubectl: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ovn-host:{{ atmosphere_release }}"
+ ovn_logging_parser: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/neutron:{{ atmosphere_release }}"
+ ovn_northd: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ovn-central:{{ atmosphere_release }}"
+ ovn_ovsdb_nb: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ovn-central:{{ atmosphere_release }}"
+ ovn_ovsdb_sb: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/ovn-central:{{ atmosphere_release }}"
+ pause: "{{ atmosphere_image_prefix }}registry.k8s.io/pause:3.9"
+ percona_xtradb_cluster_haproxy: "{{ atmosphere_image_prefix }}docker.io/percona/percona-xtradb-cluster-operator:1.13.0-haproxy"
+ percona_xtradb_cluster_operator: "{{ atmosphere_image_prefix }}docker.io/percona/percona-xtradb-cluster-operator:1.13.0"
+ percona_xtradb_cluster: "{{ atmosphere_image_prefix }}docker.io/percona/percona-xtradb-cluster:8.0.32-24.2"
+ percona_version_service: "{{ atmosphere_image_prefix }}docker.io/perconalab/version-service:main-3325140"
+ placement_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/placement:{{ atmosphere_release }}"
+ placement: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/placement:{{ atmosphere_release }}"
+ pod_tls_sidecar: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/pod-tls-sidecar:latest"
+ prometheus_config_reloader: "{{ atmosphere_image_prefix }}quay.io/prometheus-operator/prometheus-config-reloader:v0.73.0"
+ prometheus_ipmi_exporter: "{{ atmosphere_image_prefix }}us-docker.pkg.dev/vexxhost-infra/openstack/ipmi-exporter:1.4.0"
+ prometheus_memcached_exporter: "{{ atmosphere_image_prefix }}quay.io/prometheus/memcached-exporter:v0.10.0"
+ prometheus_mysqld_exporter: "{{ atmosphere_image_prefix }}quay.io/prometheus/mysqld-exporter:v0.14.0"
+ prometheus_node_exporter: "{{ atmosphere_image_prefix }}quay.io/prometheus/node-exporter:v1.7.0"
+ prometheus_openstack_database_exporter: "{{ atmosphere_image_prefix }}ghcr.io/vexxhost/openstack-database-exporter:v0.4.2"
+ prometheus_openstack_exporter: "{{ atmosphere_image_prefix }}ghcr.io/openstack-exporter/openstack-exporter:1.7.0"
+ prometheus_operator_kube_webhook_certgen: "{{ atmosphere_image_prefix }}registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6"
+ prometheus_operator: "{{ atmosphere_image_prefix }}quay.io/prometheus-operator/prometheus-operator:v0.73.1"
+ prometheus_pushgateway: "{{ atmosphere_image_prefix }}docker.io/prom/pushgateway:v1.4.2"
+ prometheus: "{{ atmosphere_image_prefix }}quay.io/prometheus/prometheus:v2.51.2"
+ rabbit_init: "{{ atmosphere_image_prefix }}docker.io/library/rabbitmq:3.10.2-management"
+ rabbitmq_cluster_operator: "{{ atmosphere_image_prefix }}docker.io/rabbitmqoperator/cluster-operator:1.13.1"
+ rabbitmq_credential_updater: "{{ atmosphere_image_prefix }}docker.io/rabbitmqoperator/default-user-credential-updater:1.0.2"
+ rabbitmq_server: "{{ atmosphere_image_prefix }}docker.io/library/rabbitmq:3.10.2-management"
+ rabbitmq_topology_operator: "{{ atmosphere_image_prefix }}docker.io/rabbitmqoperator/messaging-topology-operator:1.6.0"
+ rook_ceph: "{{ atmosphere_image_prefix }}docker.io/rook/ceph:v1.10.10"
+ secretgen_controller: "{{ atmosphere_image_prefix }}ghcr.io/carvel-dev/secretgen-controller@sha256:59ec05ce5847bfd70c8e04f08b5195e918c8f6fbb947ffc91b456494a2958fd5"
+ senlin_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
+ senlin_conductor: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
+ senlin_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
+ senlin_engine_cleaner: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
+ senlin_engine: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
+ senlin_health_manager: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/senlin:{{ atmosphere_release }}"
+ staffeln_db_sync: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/staffeln:{{ atmosphere_release }}"
+ staffeln_conductor: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/staffeln:{{ atmosphere_release }}"
+ staffeln_api: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/staffeln:{{ atmosphere_release }}"
+ tempest_run_tests: "{{ atmosphere_image_prefix }}registry.atmosphere.dev/library/tempest:{{ atmosphere_release }}"
+ vector: "{{ atmosphere_image_prefix }}docker.io/timberio/vector:0.37.0-debian"
-atmosphere_images: '{{ _atmosphere_images | combine(atmosphere_image_overrides, recursive=True)
- }}'
+atmosphere_images: '{{ _atmosphere_images | combine(atmosphere_image_overrides, recursive=True) }}'
diff --git a/roles/defaults/vars_test.go b/roles/defaults/vars_test.go
index 44e022d..3a8d231 100644
--- a/roles/defaults/vars_test.go
+++ b/roles/defaults/vars_test.go
@@ -1,6 +1,7 @@
package defaults
import (
+ "bytes"
"context"
"fmt"
"slices"
@@ -8,9 +9,30 @@
"testing"
"github.com/containers/image/v5/docker"
+ "github.com/goccy/go-yaml"
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
+func TestImageHasPrefix(t *testing.T) {
+ path, err := yaml.PathString("$._atmosphere_images")
+ require.NoError(t, err)
+
+ var images map[string]string
+ err = path.Read(bytes.NewReader(varsFile), &images)
+ require.NoError(t, err)
+
+ prefix := "{{ atmosphere_image_prefix }}"
+
+ for _, image := range images {
+ testName := strings.ReplaceAll(image, prefix, "")
+
+ t.Run(testName, func(t *testing.T) {
+ assert.True(t, strings.HasPrefix(image, prefix))
+ })
+ }
+}
+
func TestImageExist(t *testing.T) {
images, err := GetImages()
require.NoError(t, err)
diff --git a/tox.ini b/tox.ini
index 44a886c..0673da3 100644
--- a/tox.ini
+++ b/tox.ini
@@ -21,7 +21,9 @@
{posargs}
[testenv:pin-digests]
+skip_install = true
deps =
+ docker-image-py>=0.1.12
oslo_config
oslo_log
ruyaml
diff --git a/zuul.d/container-images/base.yaml b/zuul.d/container-images/base.yaml
index ae2991e..988a2a9 100644
--- a/zuul.d/container-images/base.yaml
+++ b/zuul.d/container-images/base.yaml
@@ -24,6 +24,7 @@
name: atmosphere-buildset-registry
parent: ci-buildset-registry
irrelevant-files:
+ - ^build/
- ^doc/
- ^releasenotes/
@@ -32,6 +33,7 @@
parent: ci-build-container-image
abstract: true
irrelevant-files:
+ - ^build/
- ^doc/
- ^releasenotes/
vars: &image_vars
@@ -56,6 +58,7 @@
name: atmosphere-promote-container-image
parent: ci-promote-container-image
irrelevant-files:
+ - ^build/
- ^doc/
- ^releasenotes/
nodeset:
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 4390d06..2659902 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -8,8 +8,6 @@
- job:
name: atmosphere-golang-go-test
parent: atmosphere-golang-go
- pre-run:
- - zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
vars:
go_command: test ./... -v
@@ -73,8 +71,12 @@
run: zuul.d/playbooks/molecule/run.yml
post-run: zuul.d/playbooks/molecule/post.yml
irrelevant-files:
+ - ^build/
- ^doc/
- ^releasenotes/
+ vars:
+ tox_environment:
+ ATMOSPHERE_IMAGE_PREFIX: "harbor.atmosphere.dev/"
- job:
name: atmosphere-molecule-csi
diff --git a/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml b/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
index 839841b..1f71dc4 100644
--- a/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
+++ b/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
@@ -4,15 +4,8 @@
- name: Switch all images out of the CDN
ansible.builtin.replace:
path: "{{ zuul.project.src_dir }}/roles/defaults/vars/main.yml"
- regexp: 'registry.atmosphere.dev'
- replace: 'harbor.atmosphere.dev'
-
- # TODO(mnaser): Drop this when we can use https://github.com/vexxhost/atmosphere/pull/977
- - name: Prefix all images for the job to point to mirror
- ansible.builtin.shell: |
- sed -i '/harbor.atmosphere.dev/!s/ \(.*\): \(.*\)$/ \1: harbor.atmosphere.dev\/\2/' roles/defaults/vars/main.yml
- args:
- chdir: "{{ zuul.project.src_dir }}"
+ regexp: "{{ '{{' }} atmosphere_image_prefix {{ '}}' }}registry.atmosphere.dev"
+ replace: harbor.atmosphere.dev
- name: Print out the image list
ansible.builtin.shell: |