Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/client/v1beta1/openstackclient_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const (
// Container image fall-back defaults

// OpenStackClientContainerImage is the fall-back container image for OpenStackClient
OpenStackClientContainerImage = "quay.io/podified-antelope-centos9/openstack-openstackclient:current-podified"
OpenStackClientContainerImage = "quay.io/openstack-s2i-containers/openstack-openstackclient:master-latest"
)

// OpenStackClientSpec defines the desired state of OpenStackClient
Expand Down
154 changes: 61 additions & 93 deletions config/operator/default_images.yaml

Large diffs are not rendered by default.

136 changes: 60 additions & 76 deletions hack/export_related_images.sh

Large diffs are not rendered by default.

43 changes: 42 additions & 1 deletion internal/openstack/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,47 @@ func InitializeOpenStackVersionImageDefaults(ctx context.Context, envImages map[
if envImages["RELATED_IMAGE_NEUTRON_API_IMAGE_URL_DEFAULT"] != nil {
defaults.InfraDnsmasqImage = envImages["RELATED_IMAGE_NEUTRON_API_IMAGE_URL_DEFAULT"]
}
// the following services share a single container image across multiple roles;
// reusing one RELATED_IMAGE per group avoids "Found conflicts when setting
// relatedImages" errors from operator-sdk generate bundle --use-image-digests
if envImages["RELATED_IMAGE_AODH_API_IMAGE_URL_DEFAULT"] != nil {
defaults.AodhEvaluatorImage = envImages["RELATED_IMAGE_AODH_API_IMAGE_URL_DEFAULT"]
defaults.AodhListenerImage = envImages["RELATED_IMAGE_AODH_API_IMAGE_URL_DEFAULT"]
defaults.AodhNotifierImage = envImages["RELATED_IMAGE_AODH_API_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_BARBICAN_API_IMAGE_URL_DEFAULT"] != nil {
defaults.BarbicanKeystoneListenerImage = envImages["RELATED_IMAGE_BARBICAN_API_IMAGE_URL_DEFAULT"]
defaults.BarbicanWorkerImage = envImages["RELATED_IMAGE_BARBICAN_API_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_CEILOMETER_CENTRAL_IMAGE_URL_DEFAULT"] != nil {
defaults.CeilometerNotificationImage = envImages["RELATED_IMAGE_CEILOMETER_CENTRAL_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_CEILOMETER_COMPUTE_IMAGE_URL_DEFAULT"] != nil {
defaults.CeilometerIpmiImage = envImages["RELATED_IMAGE_CEILOMETER_COMPUTE_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_CLOUDKITTY_API_IMAGE_URL_DEFAULT"] != nil {
defaults.CloudKittyProcImage = envImages["RELATED_IMAGE_CLOUDKITTY_API_IMAGE_URL_DEFAULT"]
Comment on lines +88 to +89

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the CLOUDKITTY images are consolidated, and we want to use a single var for them, this should be updated to set multiple vars based on the RELATED_IMAGE_CLOUDKITTY

This means that defaults.CloudKittyProcImage and defaults.CloudKittyAPIImage need to be set here.

		defaults.CloudKittyProcContainerImage = envImages["RELATED_IMAGE_CLOUDKITTY_API_IMAGE_URL_DEFAULT"]
		defaults.CloudKittyAPIContainerImage = envImages["RELATED_IMAGE_CLOUDKITTY_API_IMAGE_URL_DEFAULT"]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you want to rename var name RELATED_IMAGE_CLOUDKITTY_API_IMAGE_URL_DEFAULT to RELATED_IMAGE_CLOUDKITTY_IMAGE_URL_DEFAULT?
I kept RELATED_IMAGE_CLOUDKITTY_API_IMAGE_URL_DEFAULT for consistency with image name

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there is some naming convention that requires variable names to be RELATED_IMAGE_*_IMAGE_URL_DEFAULT

}
if envImages["RELATED_IMAGE_DESIGNATE_CENTRAL_IMAGE_URL_DEFAULT"] != nil {
defaults.DesignateMdnsImage = envImages["RELATED_IMAGE_DESIGNATE_CENTRAL_IMAGE_URL_DEFAULT"]
defaults.DesignateProducerImage = envImages["RELATED_IMAGE_DESIGNATE_CENTRAL_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_HEAT_API_IMAGE_URL_DEFAULT"] != nil {
defaults.HeatCfnapiImage = envImages["RELATED_IMAGE_HEAT_API_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_IRONIC_CONDUCTOR_IMAGE_URL_DEFAULT"] != nil {
defaults.IronicPxeImage = envImages["RELATED_IMAGE_IRONIC_CONDUCTOR_IMAGE_URL_DEFAULT"]
}
if envImages["RELATED_IMAGE_OCTAVIA_WORKER_IMAGE_URL_DEFAULT"] != nil {
defaults.OctaviaHealthmanagerImage = envImages["RELATED_IMAGE_OCTAVIA_WORKER_IMAGE_URL_DEFAULT"]
defaults.OctaviaHousekeepingImage = envImages["RELATED_IMAGE_OCTAVIA_WORKER_IMAGE_URL_DEFAULT"]
}
// s2i base image: a single watcher base image populates all three service images
if envImages["RELATED_IMAGE_WATCHER_BASE_IMAGE_URL_DEFAULT"] != nil {
defaults.WatcherAPIImage = envImages["RELATED_IMAGE_WATCHER_BASE_IMAGE_URL_DEFAULT"]
defaults.WatcherApplierImage = envImages["RELATED_IMAGE_WATCHER_BASE_IMAGE_URL_DEFAULT"]
defaults.WatcherDecisionEngineImage = envImages["RELATED_IMAGE_WATCHER_BASE_IMAGE_URL_DEFAULT"]
}
// custom TEST_ images which aren't released downstream
if envImages["TEST_TOBIKO_IMAGE_URL_DEFAULT"] != nil {
defaults.TestTobikoImage = envImages["TEST_TOBIKO_IMAGE_URL_DEFAULT"]
Expand Down Expand Up @@ -253,7 +294,7 @@ func InitializeOpenStackVersionServiceDefaults(ctx context.Context) *corev1beta1
// "10.11" in the same change that moves
// RELATED_IMAGE_MARIADB_IMAGE_URL_DEFAULT to a 10.11 image.

defaults.IronicInspectInterface = ptr.To("inspector") // TODO: Override to agent for RHOSO 19+ in OpenStackVersion
defaults.IronicInspectInterface = ptr.To("agent")

return defaults
}
Expand Down
10 changes: 5 additions & 5 deletions test/functional/ctlplane/openstackoperator_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2147,7 +2147,7 @@ var _ = Describe("OpenStackOperator controller", func() {
Expect(watcher.Spec.APIContainerImageURL).Should(Not(BeNil()))
Expect(watcher.Spec.ApplierContainerImageURL).Should(Not(BeNil()))
Expect(watcher.Spec.DecisionEngineContainerImageURL).Should(Not(BeNil()))
Expect(watcher.Spec.DecisionEngineContainerImageURL).Should(Equal("quay.io/podified-master-centos9/openstack-watcher-decision-engine:current-podified"))
Expect(watcher.Spec.DecisionEngineContainerImageURL).Should(Equal("quay.io/openstack-s2i-containers/openstack-watcher-base:master-latest"))

Expect(watcher.Spec.APIServiceTemplate.TLS.Ca.CaBundleSecretName).Should(Equal("combined-ca-bundle"))

Expand Down Expand Up @@ -2254,9 +2254,9 @@ var _ = Describe("OpenStackOperator controller", func() {
}, timeout, interval).Should(Succeed())

OSCtlplane := GetOpenStackControlPlane(names.OpenStackControlplaneName)
Expect(OSCtlplane.Status.ContainerImages.WatcherAPIImage).Should(Equal(ptr.To("quay.io/podified-master-centos9/openstack-watcher-api:current-podified")))
Expect(OSCtlplane.Status.ContainerImages.WatcherApplierImage).Should(Equal(ptr.To("quay.io/podified-master-centos9/openstack-watcher-applier:current-podified")))
Expect(OSCtlplane.Status.ContainerImages.WatcherDecisionEngineImage).Should(Equal(ptr.To("quay.io/podified-master-centos9/openstack-watcher-decision-engine:current-podified")))
Expect(OSCtlplane.Status.ContainerImages.WatcherAPIImage).Should(Equal(ptr.To("quay.io/openstack-s2i-containers/openstack-watcher-base:master-latest")))
Expect(OSCtlplane.Status.ContainerImages.WatcherApplierImage).Should(Equal(ptr.To("quay.io/openstack-s2i-containers/openstack-watcher-base:master-latest")))
Expect(OSCtlplane.Status.ContainerImages.WatcherDecisionEngineImage).Should(Equal(ptr.To("quay.io/openstack-s2i-containers/openstack-watcher-base:master-latest")))
})
})

Expand Down Expand Up @@ -2333,7 +2333,7 @@ var _ = Describe("OpenStackOperator controller", func() {
// default Watche container images are set
Expect(watcher.Spec.APIContainerImageURL).Should(Not(BeNil()))
Expect(watcher.Spec.ApplierContainerImageURL).Should(Not(BeNil()))
Expect(watcher.Spec.DecisionEngineContainerImageURL).Should(Equal("quay.io/podified-master-centos9/openstack-watcher-decision-engine:current-podified"))
Expect(watcher.Spec.DecisionEngineContainerImageURL).Should(Equal("quay.io/openstack-s2i-containers/openstack-watcher-base:master-latest"))

})

Expand Down
15 changes: 15 additions & 0 deletions zuul.d/jobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
# NOTE(gibi): there are no cinder backend enabled so test needing a
# volumes needs to be skipped
tempest.scenario.test_minimum_basic.TestMinimumBasicScenario
test_volume_upload_image_hash_verification
test_shelve_volume_backed_instance
tempest.scenario.test_stamp_pattern.TestStampPattern
tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern
Expand All @@ -80,6 +81,20 @@
cpu_mode = custom
cpu_models = Nehalem

# Temporary job to validate antelope images until
# update job is ready
- job:
name: podified-multinode-edpm-deployment-crc-antelope
parent: podified-multinode-edpm-deployment-crc
vars:
cifmw_update_containers_openstack: true
cifmw_update_containers_watcher: true
cifmw_set_containers_registry: quay.io
cifmw_set_containers_org: podified-antelope-centos9
cifmw_set_containers_tag: current-podified
cifmw_test_operator_tempest_image: quay.io/podified-antelope-centos9/openstack-tempest-all
cifmw_test_operator_tempest_image_tag: current-podified

- job:
name: openstack-operator-edpm-baremetal-minor-update
parent: cifmw-crc-podified-edpm-baremetal-minor-update
Expand Down
21 changes: 20 additions & 1 deletion zuul.d/projects.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
jobs:
- openstack-k8s-operators-content-provider
- podified-multinode-edpm-deployment-crc:
vars: &vars
cifmw_update_containers_openstack: false
cifmw_update_containers_watcher: false
cifmw_test_operator_tempest_image: quay.io/openstack-s2i-containers/openstack-tempest
cifmw_test_operator_tempest_image_tag: master-latest
dependencies: ["openstack-k8s-operators-content-provider"]
irrelevant-files: &irrelevant-files
- .*/*.md
Expand All @@ -16,16 +21,30 @@
- ^PROJECT$
- ^README.md$
- tests?\/functional
# Temporary job until update job is ready
- podified-multinode-edpm-deployment-crc-antelope:
dependencies: ["openstack-k8s-operators-content-provider"]
irrelevant-files: *irrelevant-files
- cifmw-crc-podified-edpm-baremetal:
vars: *vars
dependencies: ["openstack-k8s-operators-content-provider"]
irrelevant-files: *irrelevant-files
# TODO Make it voting once the job is fixed, current issue is with
# nova nova.exception.TooOldComputeService:
- adoption-standalone-to-crc-ceph-provider:
vars: *vars
dependencies: ["openstack-k8s-operators-content-provider"]
irrelevant-files: *irrelevant-files
- openstack-operator-tempest-multinode
voting: false
- openstack-operator-tempest-multinode:
vars: *vars
- openstack-operator-docs-preview
- openstack-operator-kuttl:
voting: false
# TODO Make it voting once the job is fixed, current issue is with
# keystone-db-sync
- openstack-operator-edpm-baremetal-minor-update:
vars: *vars
dependencies: ["openstack-k8s-operators-content-provider"]
irrelevant-files: *irrelevant-files
voting: false
Comment thread
karelyatin marked this conversation as resolved.
Loading