Skip to content

Commit 9587ff5

Browse files
committed
Add target version annotation to rabbitmq cluster
This commit adds the rabbitmq.openstack.org/target-version annotation to the RabbitMQ cluster resource, using the constant from the infra-operator API package. This annotation is used by the infra-operator to trigger version upgrades, including skip-version upgrades (e.g., from 3.9 to 4.x) that require storage wipe. The annotation value is sourced from OpenStackVersion.Status.ServiceDefaults.RabbitmqVersion, allowing the openstack-operator to declaratively control RabbitMQ version upgrades through the OpenStackVersion resource. Jira: https://issues.redhat.com/browse/OSPRH-21178
1 parent 5c4250a commit 9587ff5

6 files changed

Lines changed: 28 additions & 1 deletion

File tree

api/bases/core.openstack.org_openstackversions.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ spec:
250250
properties:
251251
glanceWsgi:
252252
type: string
253+
rabbitmqVersion:
254+
type: string
253255
type: object
254256
type: object
255257
availableVersion:
@@ -685,6 +687,8 @@ spec:
685687
properties:
686688
glanceWsgi:
687689
type: string
690+
rabbitmqVersion:
691+
type: string
688692
type: object
689693
trackedCustomImages:
690694
additionalProperties:

api/core/v1beta1/openstackversion_types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,8 @@ type ContainerTemplate struct {
177177
// ServiceDefaults - struct that contains defaults for OSP services that can change over time
178178
// but are associated with a specific OpenStack release version
179179
type ServiceDefaults struct {
180-
GlanceWsgi *string `json:"glanceWsgi,omitempty"`
180+
GlanceWsgi *string `json:"glanceWsgi,omitempty"`
181+
RabbitmqVersion *string `json:"rabbitmqVersion,omitempty"`
181182
}
182183

183184
// OpenStackVersionStatus defines the observed state of OpenStackVersion

api/core/v1beta1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/core.openstack.org_openstackversions.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ spec:
250250
properties:
251251
glanceWsgi:
252252
type: string
253+
rabbitmqVersion:
254+
type: string
253255
type: object
254256
type: object
255257
availableVersion:
@@ -685,6 +687,8 @@ spec:
685687
properties:
686688
glanceWsgi:
687689
type: string
690+
rabbitmqVersion:
691+
type: string
688692
type: object
689693
trackedCustomImages:
690694
additionalProperties:

internal/openstack/rabbitmq.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,16 @@ func reconcileRabbitMQ(
277277
rabbitmq.Spec.TLS.CaSecretName = tlsCert
278278
rabbitmq.Spec.TLS.DisableNonTLSListeners = true
279279
}
280+
// add annotation to store the target rabbitmq-server version
281+
if rabbitmq.GetAnnotations() == nil {
282+
rabbitmq.SetAnnotations(make(map[string]string))
283+
}
284+
if version.Status.ServiceDefaults.RabbitmqVersion != nil {
285+
rabbitmq.GetAnnotations()[rabbitmqv1.AnnotationTargetVersion] = *version.Status.ServiceDefaults.RabbitmqVersion
286+
} else {
287+
rabbitmq.GetAnnotations()[rabbitmqv1.AnnotationTargetVersion] = "3.9"
288+
}
289+
280290
rabbitmq.Spec.ContainerImage = *version.Status.ContainerImages.RabbitmqImage
281291
err := controllerutil.SetControllerReference(helper.GetBeforeObject(), rabbitmq, helper.GetScheme())
282292
if err != nil {

internal/openstack/version.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,9 @@ func InitializeOpenStackVersionServiceDefaults(ctx context.Context) *corev1beta1
230230
trueString := "true"
231231
defaults.GlanceWsgi = &trueString // all new glance deployments use WSGI by default (FR3 and later)
232232

233+
versionString := "4.0"
234+
defaults.RabbitmqVersion = &versionString // all new rabbitmq deployments will have rabbitm-server 4.0 (FR5)
235+
233236
return defaults
234237
}
235238

0 commit comments

Comments
 (0)