Skip to content

Commit 7e7dc41

Browse files
Merge pull request #1272 from dprince/related_images_fix
Pass RELATED_IMAGES from controller-operator to controller-manager
2 parents 6291b4d + 6bdd85e commit 7e7dc41

7 files changed

Lines changed: 19 additions & 179 deletions

File tree

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ bindata: kustomize yq ## Call sync bindata script
151151
mkdir -p bindata/crds bindata/rbac bindata/operator
152152
$(KUSTOMIZE) build config/crd > bindata/crds/crds.yaml
153153
$(KUSTOMIZE) build config/default > bindata/operator/operator.yaml
154+
sed -i bindata/operator/operator.yaml -e "/envCustomImage/c\\{{ range \$$envName, \$$envValue := .OpenStackServiceRelatedImages }}\n - name: {{ \$$envName }}\n value: {{ \$$envValue }}\n{{ end }}"
154155
cp config/operator/managers.yaml bindata/operator/
155156
cp config/operator/rabbit.yaml bindata/operator/
156157
$(KUSTOMIZE) build config/rbac > bindata/rbac/rbac.yaml
@@ -230,6 +231,7 @@ run-operator: export ENABLE_WEBHOOKS?=false
230231
run-operator: export BASE_BINDATA?=bindata
231232
run-operator: export OPERATOR_IMAGE_URL=${IMG}
232233
run-operator: manifests generate fmt vet ## Run a controller from your host.
234+
source hack/export_related_images.sh && \
233235
source hack/export_operator_related_images.sh && \
234236
go run ./cmd/operator/main.go -metrics-bind-address ":$(METRICS_PORT)" -health-probe-bind-address ":$(HEALTH_PORT)"
235237

bindata/operator/operator.yaml

Lines changed: 4 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -74,178 +74,12 @@ spec:
7474
command:
7575
- /manager
7676
env:
77-
- name: RELATED_IMAGE_AGENT_IMAGE_URL_DEFAULT
78-
value: quay.io/openstack-k8s-operators/openstack-baremetal-operator-agent:latest
79-
- name: RELATED_IMAGE_ANSIBLEEE_IMAGE_URL_DEFAULT
80-
value: quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest
81-
- name: RELATED_IMAGE_AODH_API_IMAGE_URL_DEFAULT
82-
value: quay.io/podified-antelope-centos9/openstack-aodh-api:current-podified
83-
- name: RELATED_IMAGE_AODH_EVALUATOR_IMAGE_URL_DEFAULT
84-
value: quay.io/podified-antelope-centos9/openstack-aodh-evaluator:current-podified
85-
- name: RELATED_IMAGE_AODH_LISTENER_IMAGE_URL_DEFAULT
86-
value: quay.io/podified-antelope-centos9/openstack-aodh-listener:current-podified
87-
- name: RELATED_IMAGE_AODH_NOTIFIER_IMAGE_URL_DEFAULT
88-
value: quay.io/podified-antelope-centos9/openstack-aodh-notifier:current-podified
89-
- name: RELATED_IMAGE_APACHE_IMAGE_URL_DEFAULT
90-
value: registry.redhat.io/ubi9/httpd-24:latest
91-
- name: RELATED_IMAGE_BARBICAN_API_IMAGE_URL_DEFAULT
92-
value: quay.io/podified-antelope-centos9/openstack-barbican-api:current-podified
93-
- name: RELATED_IMAGE_BARBICAN_KEYSTONE_LISTENER_IMAGE_URL_DEFAULT
94-
value: quay.io/podified-antelope-centos9/openstack-barbican-keystone-listener:current-podified
95-
- name: RELATED_IMAGE_BARBICAN_WORKER_IMAGE_URL_DEFAULT
96-
value: quay.io/podified-antelope-centos9/openstack-barbican-worker:current-podified
97-
- name: RELATED_IMAGE_CEILOMETER_CENTRAL_IMAGE_URL_DEFAULT
98-
value: quay.io/podified-antelope-centos9/openstack-ceilometer-central:current-podified
99-
- name: RELATED_IMAGE_CEILOMETER_COMPUTE_IMAGE_URL_DEFAULT
100-
value: quay.io/podified-antelope-centos9/openstack-ceilometer-compute:current-podified
101-
- name: RELATED_IMAGE_CEILOMETER_IPMI_IMAGE_URL_DEFAULT
102-
value: quay.io/podified-antelope-centos9/openstack-ceilometer-ipmi:current-podified
103-
- name: RELATED_IMAGE_CEILOMETER_NOTIFICATION_IMAGE_URL_DEFAULT
104-
value: quay.io/podified-antelope-centos9/openstack-ceilometer-notification:current-podified
105-
- name: RELATED_IMAGE_CEILOMETER_MYSQLD_EXPORTER_IMAGE_URL_DEFAULT
106-
value: quay.io/prometheus/mysqld-exporter:v0.16.0
107-
- name: RELATED_IMAGE_CEILOMETER_SGCORE_IMAGE_URL_DEFAULT
108-
value: quay.io/openstack-k8s-operators/sg-core:v6.0.0
109-
- name: RELATED_IMAGE_KSM_IMAGE_URL_DEFAULT
110-
value: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0
111-
- name: RELATED_IMAGE_CINDER_API_IMAGE_URL_DEFAULT
112-
value: quay.io/podified-antelope-centos9/openstack-cinder-api:current-podified
113-
- name: RELATED_IMAGE_CINDER_BACKUP_IMAGE_URL_DEFAULT
114-
value: quay.io/podified-antelope-centos9/openstack-cinder-backup:current-podified
115-
- name: RELATED_IMAGE_CINDER_SCHEDULER_IMAGE_URL_DEFAULT
116-
value: quay.io/podified-antelope-centos9/openstack-cinder-scheduler:current-podified
117-
- name: RELATED_IMAGE_CINDER_VOLUME_IMAGE_URL_DEFAULT
118-
value: quay.io/podified-antelope-centos9/openstack-cinder-volume:current-podified
119-
- name: RELATED_IMAGE_DESIGNATE_API_IMAGE_URL_DEFAULT
120-
value: quay.io/podified-antelope-centos9/openstack-designate-api:current-podified
121-
- name: RELATED_IMAGE_DESIGNATE_BACKENDBIND9_IMAGE_URL_DEFAULT
122-
value: quay.io/podified-antelope-centos9/openstack-designate-backend-bind9:current-podified
123-
- name: RELATED_IMAGE_DESIGNATE_CENTRAL_IMAGE_URL_DEFAULT
124-
value: quay.io/podified-antelope-centos9/openstack-designate-central:current-podified
125-
- name: RELATED_IMAGE_DESIGNATE_MDNS_IMAGE_URL_DEFAULT
126-
value: quay.io/podified-antelope-centos9/openstack-designate-mdns:current-podified
127-
- name: RELATED_IMAGE_DESIGNATE_PRODUCER_IMAGE_URL_DEFAULT
128-
value: quay.io/podified-antelope-centos9/openstack-designate-producer:current-podified
129-
- name: RELATED_IMAGE_DESIGNATE_UNBOUND_IMAGE_URL_DEFAULT
130-
value: quay.io/podified-antelope-centos9/openstack-unbound:current-podified
131-
- name: RELATED_IMAGE_DESIGNATE_WORKER_IMAGE_URL_DEFAULT
132-
value: quay.io/podified-antelope-centos9/openstack-designate-worker:current-podified
133-
- name: RELATED_IMAGE_EDPM_FRR_IMAGE_URL_DEFAULT
134-
value: quay.io/podified-antelope-centos9/openstack-frr:current-podified
135-
- name: RELATED_IMAGE_EDPM_ISCSID_IMAGE_URL_DEFAULT
136-
value: quay.io/podified-antelope-centos9/openstack-iscsid:current-podified
137-
- name: RELATED_IMAGE_EDPM_LOGROTATE_CROND_IMAGE_URL_DEFAULT
138-
value: quay.io/podified-antelope-centos9/openstack-cron:current-podified
139-
- name: RELATED_IMAGE_EDPM_MULTIPATHD_IMAGE_URL_DEFAULT
140-
value: quay.io/podified-antelope-centos9/openstack-multipathd:current-podified
141-
- name: RELATED_IMAGE_EDPM_NEUTRON_DHCP_AGENT_IMAGE_URL_DEFAULT
142-
value: quay.io/podified-antelope-centos9/openstack-neutron-dhcp-agent:current-podified
143-
- name: RELATED_IMAGE_EDPM_NEUTRON_METADATA_AGENT_IMAGE_URL_DEFAULT
144-
value: quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn:current-podified
145-
- name: RELATED_IMAGE_EDPM_NEUTRON_OVN_AGENT_IMAGE_URL_DEFAULT
146-
value: quay.io/podified-antelope-centos9/openstack-neutron-ovn-agent:current-podified
147-
- name: RELATED_IMAGE_EDPM_NEUTRON_SRIOV_AGENT_IMAGE_URL_DEFAULT
148-
value: quay.io/podified-antelope-centos9/openstack-neutron-sriov-agent:current-podified
149-
- name: RELATED_IMAGE_EDPM_NODE_EXPORTER_IMAGE_URL_DEFAULT
150-
value: quay.io/prometheus/node-exporter:v1.5.0
151-
- name: RELATED_IMAGE_EDPM_KEPLER_IMAGE_URL_DEFAULT
152-
value: quay.io/sustainable_computing_io/kepler:release-0.7.12
153-
- name: RELATED_IMAGE_EDPM_OVN_BGP_AGENT_IMAGE_URL_DEFAULT
154-
value: quay.io/podified-antelope-centos9/openstack-ovn-bgp-agent:current-podified
155-
- name: RELATED_IMAGE_GLANCE_API_IMAGE_URL_DEFAULT
156-
value: quay.io/podified-antelope-centos9/openstack-glance-api:current-podified
157-
- name: RELATED_IMAGE_HEAT_API_IMAGE_URL_DEFAULT
158-
value: quay.io/podified-antelope-centos9/openstack-heat-api:current-podified
159-
- name: RELATED_IMAGE_HEAT_CFNAPI_IMAGE_URL_DEFAULT
160-
value: quay.io/podified-antelope-centos9/openstack-heat-api-cfn:current-podified
161-
- name: RELATED_IMAGE_HEAT_ENGINE_IMAGE_URL_DEFAULT
162-
value: quay.io/podified-antelope-centos9/openstack-heat-engine:current-podified
163-
- name: RELATED_IMAGE_HORIZON_IMAGE_URL_DEFAULT
164-
value: quay.io/podified-antelope-centos9/openstack-horizon:current-podified
165-
- name: RELATED_IMAGE_INFRA_MEMCACHED_IMAGE_URL_DEFAULT
166-
value: quay.io/podified-antelope-centos9/openstack-memcached:current-podified
167-
- name: RELATED_IMAGE_INFRA_REDIS_IMAGE_URL_DEFAULT
168-
value: quay.io/podified-antelope-centos9/openstack-redis:current-podified
169-
- name: RELATED_IMAGE_IRONIC_API_IMAGE_URL_DEFAULT
170-
value: quay.io/podified-antelope-centos9/openstack-ironic-api:current-podified
171-
- name: RELATED_IMAGE_IRONIC_CONDUCTOR_IMAGE_URL_DEFAULT
172-
value: quay.io/podified-antelope-centos9/openstack-ironic-conductor:current-podified
173-
- name: RELATED_IMAGE_IRONIC_INSPECTOR_IMAGE_URL_DEFAULT
174-
value: quay.io/podified-antelope-centos9/openstack-ironic-inspector:current-podified
175-
- name: RELATED_IMAGE_IRONIC_NEUTRON_AGENT_IMAGE_URL_DEFAULT
176-
value: quay.io/podified-antelope-centos9/openstack-ironic-neutron-agent:current-podified
177-
- name: RELATED_IMAGE_IRONIC_PXE_IMAGE_URL_DEFAULT
178-
value: quay.io/podified-antelope-centos9/openstack-ironic-pxe:current-podified
179-
- name: RELATED_IMAGE_IRONIC_PYTHON_AGENT_IMAGE_URL_DEFAULT
180-
value: quay.io/podified-antelope-centos9/ironic-python-agent:current-podified
181-
- name: RELATED_IMAGE_KEYSTONE_API_IMAGE_URL_DEFAULT
182-
value: quay.io/podified-antelope-centos9/openstack-keystone:current-podified
183-
- name: RELATED_IMAGE_MANILA_API_IMAGE_URL_DEFAULT
184-
value: quay.io/podified-antelope-centos9/openstack-manila-api:current-podified
185-
- name: RELATED_IMAGE_MANILA_SCHEDULER_IMAGE_URL_DEFAULT
186-
value: quay.io/podified-antelope-centos9/openstack-manila-scheduler:current-podified
187-
- name: RELATED_IMAGE_MANILA_SHARE_IMAGE_URL_DEFAULT
188-
value: quay.io/podified-antelope-centos9/openstack-manila-share:current-podified
189-
- name: RELATED_IMAGE_MARIADB_IMAGE_URL_DEFAULT
190-
value: quay.io/podified-antelope-centos9/openstack-mariadb:current-podified
191-
- name: RELATED_IMAGE_NEUTRON_API_IMAGE_URL_DEFAULT
192-
value: quay.io/podified-antelope-centos9/openstack-neutron-server:current-podified
193-
- name: RELATED_IMAGE_NOVA_API_IMAGE_URL_DEFAULT
194-
value: quay.io/podified-antelope-centos9/openstack-nova-api:current-podified
195-
- name: RELATED_IMAGE_NOVA_COMPUTE_IMAGE_URL_DEFAULT
196-
value: quay.io/podified-antelope-centos9/openstack-nova-compute:current-podified
197-
- name: RELATED_IMAGE_NOVA_CONDUCTOR_IMAGE_URL_DEFAULT
198-
value: quay.io/podified-antelope-centos9/openstack-nova-conductor:current-podified
199-
- name: RELATED_IMAGE_NOVA_NOVNC_IMAGE_URL_DEFAULT
200-
value: quay.io/podified-antelope-centos9/openstack-nova-novncproxy:current-podified
201-
- name: RELATED_IMAGE_NOVA_SCHEDULER_IMAGE_URL_DEFAULT
202-
value: quay.io/podified-antelope-centos9/openstack-nova-scheduler:current-podified
203-
- name: RELATED_IMAGE_OCTAVIA_API_IMAGE_URL_DEFAULT
204-
value: quay.io/podified-antelope-centos9/openstack-octavia-api:current-podified
205-
- name: RELATED_IMAGE_OCTAVIA_HEALTHMANAGER_IMAGE_URL_DEFAULT
206-
value: quay.io/podified-antelope-centos9/openstack-octavia-health-manager:current-podified
207-
- name: RELATED_IMAGE_OCTAVIA_HOUSEKEEPING_IMAGE_URL_DEFAULT
208-
value: quay.io/podified-antelope-centos9/openstack-octavia-housekeeping:current-podified
209-
- name: RELATED_IMAGE_OCTAVIA_WORKER_IMAGE_URL_DEFAULT
210-
value: quay.io/podified-antelope-centos9/openstack-octavia-worker:current-podified
211-
- name: RELATED_IMAGE_OPENSTACK_CLIENT_IMAGE_URL_DEFAULT
212-
value: quay.io/podified-antelope-centos9/openstack-openstackclient:current-podified
213-
- name: RELATED_IMAGE_OS_CONTAINER_IMAGE_URL_DEFAULT
214-
value: quay.io/podified-antelope-centos9/edpm-hardened-uefi:current-podified
215-
- name: RELATED_IMAGE_OVN_CONTROLLER_IMAGE_URL_DEFAULT
216-
value: quay.io/podified-antelope-centos9/openstack-ovn-controller:current-podified
217-
- name: RELATED_IMAGE_OVN_CONTROLLER_OVS_IMAGE_URL_DEFAULT
218-
value: quay.io/podified-antelope-centos9/openstack-ovn-base:current-podified
219-
- name: RELATED_IMAGE_OVN_NB_DBCLUSTER_IMAGE_URL_DEFAULT
220-
value: quay.io/podified-antelope-centos9/openstack-ovn-nb-db-server:current-podified
221-
- name: RELATED_IMAGE_OVN_NORTHD_IMAGE_URL_DEFAULT
222-
value: quay.io/podified-antelope-centos9/openstack-ovn-northd:current-podified
223-
- name: RELATED_IMAGE_OVN_SB_DBCLUSTER_IMAGE_URL_DEFAULT
224-
value: quay.io/podified-antelope-centos9/openstack-ovn-sb-db-server:current-podified
225-
- name: RELATED_IMAGE_PLACEMENT_API_IMAGE_URL_DEFAULT
226-
value: quay.io/podified-antelope-centos9/openstack-placement-api:current-podified
227-
- name: RELATED_IMAGE_RABBITMQ_IMAGE_URL_DEFAULT
228-
value: quay.io/podified-antelope-centos9/openstack-rabbitmq:current-podified
229-
- name: RELATED_IMAGE_SWIFT_ACCOUNT_IMAGE_URL_DEFAULT
230-
value: quay.io/podified-antelope-centos9/openstack-swift-account:current-podified
231-
- name: RELATED_IMAGE_SWIFT_CONTAINER_IMAGE_URL_DEFAULT
232-
value: quay.io/podified-antelope-centos9/openstack-swift-container:current-podified
233-
- name: RELATED_IMAGE_SWIFT_OBJECT_IMAGE_URL_DEFAULT
234-
value: quay.io/podified-antelope-centos9/openstack-swift-object:current-podified
235-
- name: RELATED_IMAGE_SWIFT_PROXY_IMAGE_URL_DEFAULT
236-
value: quay.io/podified-antelope-centos9/openstack-swift-proxy-server:current-podified
237-
- name: RELATED_IMAGE_TEST_TEMPEST_IMAGE_URL_DEFAULT
238-
value: quay.io/podified-antelope-centos9/openstack-tempest-all:current-podified
239-
- name: RELATED_IMAGE_TEST_TOBIKO_IMAGE_URL_DEFAULT
240-
value: quay.io/podified-antelope-centos9/openstack-tobiko:current-podified
241-
- name: RELATED_IMAGE_TEST_ANSIBLETEST_IMAGE_URL_DEFAULT
242-
value: quay.io/podified-antelope-centos9/openstack-ansible-tests:current-podified
243-
- name: RELATED_IMAGE_TEST_HORIZONTEST_IMAGE_URL_DEFAULT
244-
value: quay.io/podified-antelope-centos9/openstack-horizontest:current-podified
245-
- name: RELATED_IMAGE_OPENSTACK_MUST_GATHER_DEFAULT
246-
value: quay.io/openstack-k8s-operators/openstack-must-gather:latest
24777
- name: OPENSTACK_RELEASE_VERSION
24878
value: '{{ .OpenstackReleaseVersion }}'
79+
{{ range $envName, $envValue := .OpenStackServiceRelatedImages }}
80+
- name: {{ $envName }}
81+
value: {{ $envValue }}
82+
{{ end }}
24983
image: '{{ .OperatorImage }}'
25084
livenessProbe:
25185
httpGet:

config/default/kustomization.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,6 @@ patchesStrategicMerge:
4343
# 'CERTMANAGER' needs to be enabled to use ca injection
4444
- webhookcainjection_patch.yaml
4545

46-
# Injects our custom images (ENV variable settings)
47-
- manager_default_images.yaml
48-
4946
# the following config is for teaching kustomize how to do var substitution
5047
vars:
5148
# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix.

config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ spec:
4444
env:
4545
- name: OPENSTACK_RELEASE_VERSION
4646
value: '{{ .OpenstackReleaseVersion }}'
47+
envCustomImage: replace_me #NOTE: this is used via the Makefile to inject a custom template loop that kustomize won't allow
4748
image: '{{ .OperatorImage }}'
4849
name: manager
4950
securityContext:

config/default/manager_default_images.yaml renamed to config/operator/default_images.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
apiVersion: apps/v1
44
kind: Deployment
55
metadata:
6-
name: controller-manager
6+
name: openstack-operator-controller-operator
77
namespace: system
88
spec:
99
template:
1010
spec:
1111
containers:
12-
- name: manager
12+
- name: operator
1313
env:
1414
- name: RELATED_IMAGE_AGENT_IMAGE_URL_DEFAULT
1515
value: quay.io/openstack-k8s-operators/openstack-baremetal-operator-agent:latest

config/operator/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ patchesStrategicMerge:
1414

1515
# Injects our custom images (ENV variable settings)
1616
- manager_operator_images.yaml
17+
- default_images.yaml

controllers/operator/openstack_controller.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,17 @@ func (r *OpenStackReconciler) GetLogger(ctx context.Context) logr.Logger {
6262
}
6363

6464
var (
65-
envRelatedOperatorImages (map[string]*string) // operatorName -> image
66-
rabbitmqImage string
67-
operatorImage string
68-
openstackReleaseVersion string
65+
envRelatedOperatorImages (map[string]*string) // operatorName -> image
66+
envRelatedOpenStackServiceImages (map[string]*string) // full_related_image_name -> image
67+
rabbitmqImage string
68+
operatorImage string
69+
openstackReleaseVersion string
6970
)
7071

7172
// SetupEnv -
7273
func SetupEnv() {
7374
envRelatedOperatorImages = make(map[string]*string)
75+
envRelatedOpenStackServiceImages = make(map[string]*string)
7476
for _, name := range os.Environ() {
7577
envArr := strings.Split(name, "=")
7678

@@ -86,6 +88,8 @@ func SetupEnv() {
8688
envRelatedOperatorImages[operatorName] = &envArr[1]
8789
}
8890
log.Log.Info("Found operator related image", "operator", operatorName, "image", envArr[1])
91+
} else if strings.HasPrefix(envArr[0], "RELATED_IMAGE_") {
92+
envRelatedOpenStackServiceImages[envArr[0]] = &envArr[1]
8993
} else if envArr[0] == "OPERATOR_IMAGE_URL" {
9094
operatorImage = envArr[1]
9195
} else if envArr[0] == "OPENSTACK_RELEASE_VERSION" {
@@ -314,6 +318,7 @@ func (r *OpenStackReconciler) applyOperator(ctx context.Context, instance *opera
314318
data.Data["RabbitmqImage"] = rabbitmqImage
315319
data.Data["OperatorImage"] = operatorImage
316320
data.Data["OpenstackReleaseVersion"] = openstackReleaseVersion
321+
data.Data["OpenStackServiceRelatedImages"] = envRelatedOpenStackServiceImages
317322
return r.renderAndApply(ctx, instance, data, "operator", true)
318323
}
319324

0 commit comments

Comments
 (0)