Commit 507cdb8
Implement messaging bus configuration with annotation-based migration
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>1 parent 272ad11 commit 507cdb8
72 files changed
Lines changed: 4632 additions & 437 deletions
File tree
- api
- bases
- core/v1beta1
- bindata/crds
- config
- crd/bases
- operator
- samples
- base/openstackcontrolplane
- hack
- internal
- controller/core
- openstack
- test
- functional/ctlplane
- kuttl/tests/ctlplane-collapsed
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
20 | 23 | | |
21 | 24 | | |
22 | 25 | | |
| |||
0 commit comments