Implement messaging bus configuration with annotation-based migration#1797
Implement messaging bus configuration with annotation-based migration#1797lmiccini wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: lmiccini The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
we hit the race between the two kuttl jobs, but one succeeded. |
fd50bda to
95a70b4
Compare
95a70b4 to
8077505
Compare
8077505 to
39b6592
Compare
07ccc4b to
7687a0f
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/45ebc4b16c8743b6836c1f6d7718a0b7 ❌ openstack-k8s-operators-content-provider FAILURE in 12m 53s |
7687a0f to
06f0c47
Compare
|
/test functional |
|
/retest |
This commit introduces a new messaging bus configuration system that supports: - Top-level messagingBus and notificationsBus configuration fields that services can inherit from - Per-service messagingBus and notificationsBus overrides - Validation to prevent setting the User field at the top level (which would cause conflicts as each service creates its own RabbitMQUser) - Automatic migration from deprecated fields to new fields via webhook The migration strategy uses an annotation-based approach where the controller detects deprecated field usage and sets a reconcile trigger annotation, which causes the UPDATE webhook to perform the migration. This ensures the webhook (which has the proper mutating webhook configuration) handles all spec mutations, avoiding field ownership issues with server-side apply and GitOps workflows. Deprecated fields that are migrated: - Top-level: notificationsBusInstance -> notificationsBus.cluster - Service-level: rabbitMqClusterName -> messagingBus.cluster or notificationsBus.cluster depending on the service - Service-level: notificationsBusInstance -> notificationsBus.cluster (for Cinder, Manila, Neutron, Nova, Watcher) Services inherit from top-level configuration if their service-level fields are not set, following the priority: 1. Service-level deprecated field (if set) 2. Service-level new field (if set) 3. Top-level configuration (if set) 4. Default value Additional fixes: Fix pin-bundle-images.sh to handle operators with replace directives by forcing quay.io for replaced operators and adding fallback logic when bundles are not available in custom registries Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
06f0c47 to
321b602
Compare
|
@lmiccini: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
This commit introduces a new messaging bus configuration system that
supports:
services can inherit from
would cause conflicts as each service creates its own RabbitMQUser)
The migration strategy uses an annotation-based approach where the
controller detects deprecated field usage and sets a reconcile trigger
annotation, which causes the UPDATE webhook to perform the migration.
This ensures the webhook (which has the proper mutating webhook
configuration) handles all spec mutations, avoiding field ownership
issues with server-side apply and GitOps workflows.
Deprecated fields that are migrated:
notificationsBus.cluster depending on the service
(for Cinder, Manila, Neutron, Nova, Watcher)
Services inherit from top-level configuration if their service-level
fields are not set, following the priority:
Additional fixes:
Fix pin-bundle-images.sh to handle operators with replace directives
by forcing quay.io for replaced operators and adding fallback logic
when bundles are not available in custom registries
Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com
Depends-on: openstack-k8s-operators/data-plane-adoption#1222