Skip to content

Commit 47ec247

Browse files
lmicciniclaude
andcommitted
Add transport URL secret rotation with consumer finalizer
When infra-operator rotates a RabbitMQ transport URL (creating a new secret and user), consumer operators must hold a consumer finalizer on the old secret until all their pods have rolled out with the new credentials. Without this, infra-operator cleans up the old RabbitMQ user while pods are still connected with old credentials, causing message bus outages. Design: 1. Add consumer finalizer to the current transport URL secret early in reconcile. Set instance.Status.TransportURLSecret for first-time setup only (when empty or unchanged); during rotation the status is updated solely by FinalizeSecretRotation at end of reconcile. 2. Pass transportURL.Status.SecretName directly to sub-CR creation functions and config generation as a parameter — never read from instance.Status.TransportURLSecret for sub-CR specs. 3. Use statefulset.IsReady() / deployment.IsReady() from lib-common in all sub-CR controllers for accurate rollout status. 4. Use object.ManageRotationGracePeriod() to enforce a 60-second grace period before evaluating the rotation guard. This gives sub-CRs time to detect config changes, update their workloads, and roll pods — without relying on informer cache freshness. 5. Guard: CredentialRotationGuardReady(true, conditions) — evaluates AllSubConditionIsTrue after the grace period expires. Only when all sub-CR conditions are True does FinalizeSecretRotation remove the consumer finalizer from the old secret. The same pattern applies to notification transport URL secrets and application credential secrets where applicable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent e841be6 commit 47ec247

8 files changed

Lines changed: 258 additions & 121 deletions

File tree

api/go.mod

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ module github.com/openstack-k8s-operators/keystone-operator/api
33
go 1.26.3
44

55
require (
6-
github.com/go-logr/logr v1.4.3
6+
github.com/go-logr/logr v1.4.4
77
github.com/google/uuid v1.6.0
88
github.com/gophercloud/gophercloud/v2 v2.13.0
99
github.com/onsi/gomega v1.42.1
10-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260723061747-66bf6fca9dfd
11-
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260724091355-a86f6d29e055
12-
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260724091355-a86f6d29e055
13-
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260724091355-a86f6d29e055
14-
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260724091355-a86f6d29e055
10+
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260730060158-27ac5ce68f29
11+
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260725150835-623a52fe0391
12+
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260725150835-623a52fe0391
13+
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260725150835-623a52fe0391
14+
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260725150835-623a52fe0391
1515
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67
1616
k8s.io/api v0.33.13
1717
k8s.io/apimachinery v0.33.13
@@ -97,3 +97,5 @@ replace k8s.io/component-base => k8s.io/component-base v0.33.13 //allow-merging
9797
replace sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.21.0 //allow-merging
9898

9999
replace k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20250627150254-e9823e99808e //allow-merging
100+
101+
replace github.com/openstack-k8s-operators/infra-operator/apis => github.com/lmiccini/infra-operator/apis v0.0.0-20260731051031-668c7bff774e

api/go.sum

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S
2020
github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
2121
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
2222
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
23-
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
24-
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
23+
github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8=
24+
github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
2525
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
2626
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
2727
github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic=
@@ -66,6 +66,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
6666
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
6767
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
6868
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
69+
github.com/lmiccini/infra-operator/apis v0.0.0-20260731051031-668c7bff774e h1:0Dmty66uh3CJZqqGK1ctr0BickQ0GzvpqpII3ZNOmqs=
70+
github.com/lmiccini/infra-operator/apis v0.0.0-20260731051031-668c7bff774e/go.mod h1:TPCXRvzvMt3pQxLYeqWGxzy8oBOujoU6MpXvsOYwMIc=
6971
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
7072
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
7173
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -83,16 +85,14 @@ github.com/onsi/gomega v1.42.1 h1:iN1rCUX+44NZ1Dc97MPoeFYbFR0vh8zxoxMFwKdyZ6I=
8385
github.com/onsi/gomega v1.42.1/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg=
8486
github.com/openshift/api v0.0.0-20260710141509-36dec0bfafe4 h1:YVY7Mb0AdJBbNgC/Zz9R/ZwhixOmZNA8P+6ZPaDW/0M=
8587
github.com/openshift/api v0.0.0-20260710141509-36dec0bfafe4/go.mod h1:SPLf21TYPipzCO67BURkCfK6dcIIxx0oNRVWaOyRcXM=
86-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260723061747-66bf6fca9dfd h1:oMuK5kVUc/LmPi/5Sd7j+WKMtrrJdn1QuNcsmgfeUYU=
87-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260723061747-66bf6fca9dfd/go.mod h1:1w5ZG9RCR3JQumJnLg/gAMdKOgV0O0He0ZxJuj65KN4=
88-
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260724091355-a86f6d29e055 h1:aQy9n6lVrxJWF0KA3R7TpD/qfYDJedL5UQJRuS3hm+k=
89-
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:yA4tbcB62Dml5d0SP3n14hbwLVrKFicm690/eTWvusc=
90-
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260724091355-a86f6d29e055 h1:L8imnczDjzpMljd/OD30lNL6a2kf07+FD6RacjZfb0w=
91-
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:olVOkHWw1ZkXPqaiyQSsWsCNVrPIqkbyE1FH0Pv7UZY=
92-
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260724091355-a86f6d29e055 h1:yoCAKWZLE/d+ryC2rP+2uNezz5YrHdtNh+qgdMV0TEk=
93-
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:1dmPW0KouURxFj14reaZzRVP+NSzlidgfBCbFoiKsKs=
94-
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260724091355-a86f6d29e055 h1:5efDvK9x0T8C8jEraByDlcroagFMLA9f7zRF9rwG1z4=
95-
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:W41icuwPMCo1MlVBwkFTFf5oHEYtV59oT9yKce5fcHI=
88+
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260725150835-623a52fe0391 h1:vmMMeGnzA6BR2mssCdDYRJDYIg2vn+v1l2ocWefIIaU=
89+
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260725150835-623a52fe0391/go.mod h1:LY+Q6ms3A6E8DAKCpmvQaUxO5O2CKYm0XMcmTZ6PCcM=
90+
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260725150835-623a52fe0391 h1:cRyVdm28fshWzWkE5xgRYAzlNX4SreIluOL8s2dpm2U=
91+
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260725150835-623a52fe0391/go.mod h1:Q5wcK4PnlDJ55H+M38CFNLzL53OHYiwq81mR/gKtJXs=
92+
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260725150835-623a52fe0391 h1:AJEo8hauBmqrT9v//s2S5LbEb5BDKa8cQNFG5lAznXI=
93+
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260725150835-623a52fe0391/go.mod h1:fJ9CCRKpo8mQODfv4UDJ3tjUTbyCznYslXQwCkDaGg0=
94+
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260725150835-623a52fe0391 h1:NPgew0bWq4Nkj040VyC6n4kFQYyPoI/S6WmOqx9D8RA=
95+
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260725150835-623a52fe0391/go.mod h1:tT5uXteekJ3lRgFO5/C3i6Q5A7dj40SDy6XbOJhnRuw=
9696
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
9797
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
9898
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=

api/v1beta1/keystoneapplicationcredential.go

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,8 @@ limitations under the License.
1717
package v1beta1
1818

1919
import (
20-
"context"
2120
"fmt"
2221
"strings"
23-
24-
corev1 "k8s.io/api/core/v1"
25-
k8s_errors "k8s.io/apimachinery/pkg/api/errors"
26-
"k8s.io/apimachinery/pkg/types"
27-
"sigs.k8s.io/controller-runtime/pkg/client"
28-
29-
"github.com/openstack-k8s-operators/lib-common/modules/common/helper"
30-
"github.com/openstack-k8s-operators/lib-common/modules/common/object"
3122
)
3223

3324
// ApplicationCredentialData contains AC ID/Secret extracted from a Secret
@@ -66,69 +57,3 @@ const (
6657
func (ac *KeystoneApplicationCredential) IsEDPMService() bool {
6758
return ac.GetAnnotations()[EDPMServiceAnnotation] != "false"
6859
}
69-
70-
// ManageACSecretFinalizer ensures consumerFinalizer is present on the AC secret
71-
// identified by newSecretName and absent from the one identified by
72-
// oldSecretName. It is a no-op when both names are equal.
73-
func ManageACSecretFinalizer(
74-
ctx context.Context,
75-
h *helper.Helper,
76-
namespace string,
77-
newSecretName string,
78-
oldSecretName string,
79-
consumerFinalizer string,
80-
) error {
81-
if newSecretName == oldSecretName {
82-
return nil
83-
}
84-
85-
var newObj, oldObj client.Object
86-
87-
if newSecretName != "" {
88-
secret := &corev1.Secret{}
89-
key := types.NamespacedName{Name: newSecretName, Namespace: namespace}
90-
if err := h.GetClient().Get(ctx, key, secret); err != nil {
91-
return fmt.Errorf("failed to get new AC secret %s: %w", newSecretName, err)
92-
}
93-
newObj = secret
94-
}
95-
96-
if oldSecretName != "" {
97-
secret := &corev1.Secret{}
98-
key := types.NamespacedName{Name: oldSecretName, Namespace: namespace}
99-
if err := h.GetClient().Get(ctx, key, secret); err != nil {
100-
if !k8s_errors.IsNotFound(err) {
101-
return fmt.Errorf("failed to get old AC secret %s: %w", oldSecretName, err)
102-
}
103-
} else {
104-
oldObj = secret
105-
}
106-
}
107-
108-
return object.ManageConsumerFinalizer(ctx, h, newObj, oldObj, consumerFinalizer)
109-
}
110-
111-
// RemoveACSecretConsumerFinalizer removes consumerFinalizer from the AC secret
112-
// identified by secretName. It is a no-op when secretName is empty or the
113-
// secret no longer exists.
114-
func RemoveACSecretConsumerFinalizer(
115-
ctx context.Context,
116-
h *helper.Helper,
117-
namespace string,
118-
secretName string,
119-
consumerFinalizer string,
120-
) error {
121-
if secretName == "" {
122-
return nil
123-
}
124-
125-
secret := &corev1.Secret{}
126-
key := types.NamespacedName{Name: secretName, Namespace: namespace}
127-
if err := h.GetClient().Get(ctx, key, secret); err != nil {
128-
if k8s_errors.IsNotFound(err) {
129-
return nil
130-
}
131-
return err
132-
}
133-
return object.RemoveConsumerFinalizer(ctx, h, secret, consumerFinalizer)
134-
}

go.mod

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ module github.com/openstack-k8s-operators/keystone-operator
33
go 1.26.3
44

55
require (
6-
github.com/go-logr/logr v1.4.3
6+
github.com/go-logr/logr v1.4.4
77
github.com/google/uuid v1.6.0
88
github.com/gophercloud/gophercloud/v2 v2.13.0
99
github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.7.7
1010
github.com/onsi/ginkgo/v2 v2.32.0
1111
github.com/onsi/gomega v1.42.1
12-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260723061747-66bf6fca9dfd
12+
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260730060158-27ac5ce68f29
1313
github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20260717082957-bb1267fa59f8
14-
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260724091355-a86f6d29e055
15-
github.com/openstack-k8s-operators/lib-common/modules/edpm v0.0.0-20260724091355-a86f6d29e055
16-
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260724091355-a86f6d29e055
17-
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260724091355-a86f6d29e055
18-
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260724091355-a86f6d29e055
19-
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20260722153822-fa2443790f63
14+
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260725150835-623a52fe0391
15+
github.com/openstack-k8s-operators/lib-common/modules/edpm v0.0.0-20260725150835-623a52fe0391
16+
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260725150835-623a52fe0391
17+
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260725150835-623a52fe0391
18+
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260725150835-623a52fe0391
19+
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20260728091439-b5039a181b44
2020
go.uber.org/zap v1.28.0
2121
gopkg.in/yaml.v3 v3.0.1
2222
k8s.io/api v0.33.13
@@ -137,3 +137,15 @@ replace k8s.io/component-base => k8s.io/component-base v0.33.13 //allow-merging
137137
replace sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.21.0 //allow-merging
138138

139139
replace k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20250627150254-e9823e99808e //allow-merging
140+
141+
replace github.com/openstack-k8s-operators/infra-operator/apis => github.com/lmiccini/infra-operator/apis v0.0.0-20260731051031-668c7bff774e
142+
143+
replace github.com/openstack-k8s-operators/lib-common/modules/common => github.com/lmiccini/lib-common/modules/common v0.0.0-20260731054026-d02b1fca9d61
144+
145+
replace github.com/openstack-k8s-operators/lib-common/modules/edpm => github.com/lmiccini/lib-common/modules/edpm v0.0.0-20260731054026-d02b1fca9d61
146+
147+
replace github.com/openstack-k8s-operators/lib-common/modules/openstack => github.com/lmiccini/lib-common/modules/openstack v0.0.0-20260731054026-d02b1fca9d61
148+
149+
replace github.com/openstack-k8s-operators/lib-common/modules/storage => github.com/lmiccini/lib-common/modules/storage v0.0.0-20260731054026-d02b1fca9d61
150+
151+
replace github.com/openstack-k8s-operators/lib-common/modules/test => github.com/lmiccini/lib-common/modules/test v0.0.0-20260731054026-d02b1fca9d61

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ github.com/gkampitakis/go-diff v1.3.2/go.mod h1:LLgOrpqleQe26cte8s36HTWcTmMEur6O
3636
github.com/gkampitakis/go-snaps v0.5.15 h1:amyJrvM1D33cPHwVrjo9jQxX8g/7E2wYdZ+01KS3zGE=
3737
github.com/gkampitakis/go-snaps v0.5.15/go.mod h1:HNpx/9GoKisdhw9AFOBT1N7DBs9DiHo/hGheFGBZ+mc=
3838
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
39-
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
40-
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
39+
github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8=
40+
github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
4141
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
4242
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
4343
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
@@ -96,6 +96,18 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
9696
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
9797
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
9898
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
99+
github.com/lmiccini/infra-operator/apis v0.0.0-20260731051031-668c7bff774e h1:0Dmty66uh3CJZqqGK1ctr0BickQ0GzvpqpII3ZNOmqs=
100+
github.com/lmiccini/infra-operator/apis v0.0.0-20260731051031-668c7bff774e/go.mod h1:TPCXRvzvMt3pQxLYeqWGxzy8oBOujoU6MpXvsOYwMIc=
101+
github.com/lmiccini/lib-common/modules/common v0.0.0-20260731054026-d02b1fca9d61 h1:xxuoiIvG/wrA9RMWjfj4sHl0HSu1SGN+tE6CRChNRFc=
102+
github.com/lmiccini/lib-common/modules/common v0.0.0-20260731054026-d02b1fca9d61/go.mod h1:LY+Q6ms3A6E8DAKCpmvQaUxO5O2CKYm0XMcmTZ6PCcM=
103+
github.com/lmiccini/lib-common/modules/edpm v0.0.0-20260731054026-d02b1fca9d61 h1:hAmEFF+oizM68FvnoazFjE51oL1WiwUS0QaIZ40XKFk=
104+
github.com/lmiccini/lib-common/modules/edpm v0.0.0-20260731054026-d02b1fca9d61/go.mod h1:3QvDBBsMZyTKsl39o/ytP/npPtcC/tSDv8U3nIdo31c=
105+
github.com/lmiccini/lib-common/modules/openstack v0.0.0-20260731054026-d02b1fca9d61 h1:jAKJ6QkQkouTnV7KLwBQEtzhCHEfAF+d/v/HhK6q1xQ=
106+
github.com/lmiccini/lib-common/modules/openstack v0.0.0-20260731054026-d02b1fca9d61/go.mod h1:Q5wcK4PnlDJ55H+M38CFNLzL53OHYiwq81mR/gKtJXs=
107+
github.com/lmiccini/lib-common/modules/storage v0.0.0-20260731054026-d02b1fca9d61 h1:HoNTdYvi0x25TEbyCCtgGDiEzdyRhgDH81pDWEq36mg=
108+
github.com/lmiccini/lib-common/modules/storage v0.0.0-20260731054026-d02b1fca9d61/go.mod h1:fJ9CCRKpo8mQODfv4UDJ3tjUTbyCznYslXQwCkDaGg0=
109+
github.com/lmiccini/lib-common/modules/test v0.0.0-20260731054026-d02b1fca9d61 h1:l//vWaFNALtUPydGP1cvmvyrLPkdJV6LZamF3k/tCn0=
110+
github.com/lmiccini/lib-common/modules/test v0.0.0-20260731054026-d02b1fca9d61/go.mod h1:tT5uXteekJ3lRgFO5/C3i6Q5A7dj40SDy6XbOJhnRuw=
99111
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
100112
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
101113
github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo=
@@ -116,20 +128,8 @@ github.com/onsi/gomega v1.42.1 h1:iN1rCUX+44NZ1Dc97MPoeFYbFR0vh8zxoxMFwKdyZ6I=
116128
github.com/onsi/gomega v1.42.1/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg=
117129
github.com/openshift/api v0.0.0-20260710141509-36dec0bfafe4 h1:YVY7Mb0AdJBbNgC/Zz9R/ZwhixOmZNA8P+6ZPaDW/0M=
118130
github.com/openshift/api v0.0.0-20260710141509-36dec0bfafe4/go.mod h1:SPLf21TYPipzCO67BURkCfK6dcIIxx0oNRVWaOyRcXM=
119-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260723061747-66bf6fca9dfd h1:oMuK5kVUc/LmPi/5Sd7j+WKMtrrJdn1QuNcsmgfeUYU=
120-
github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20260723061747-66bf6fca9dfd/go.mod h1:1w5ZG9RCR3JQumJnLg/gAMdKOgV0O0He0ZxJuj65KN4=
121-
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260724091355-a86f6d29e055 h1:aQy9n6lVrxJWF0KA3R7TpD/qfYDJedL5UQJRuS3hm+k=
122-
github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:yA4tbcB62Dml5d0SP3n14hbwLVrKFicm690/eTWvusc=
123-
github.com/openstack-k8s-operators/lib-common/modules/edpm v0.0.0-20260724091355-a86f6d29e055 h1:8EKLg+aMklM3kXIjbyhy6Ssvce6dKy+oTT6cUrMTq4A=
124-
github.com/openstack-k8s-operators/lib-common/modules/edpm v0.0.0-20260724091355-a86f6d29e055/go.mod h1:IN0pCq/v2MsPcXrtcBIqcpVEqyq8oTIbNahmsc3tu28=
125-
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260724091355-a86f6d29e055 h1:L8imnczDjzpMljd/OD30lNL6a2kf07+FD6RacjZfb0w=
126-
github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:olVOkHWw1ZkXPqaiyQSsWsCNVrPIqkbyE1FH0Pv7UZY=
127-
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260724091355-a86f6d29e055 h1:yoCAKWZLE/d+ryC2rP+2uNezz5YrHdtNh+qgdMV0TEk=
128-
github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:1dmPW0KouURxFj14reaZzRVP+NSzlidgfBCbFoiKsKs=
129-
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260724091355-a86f6d29e055 h1:5efDvK9x0T8C8jEraByDlcroagFMLA9f7zRF9rwG1z4=
130-
github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20260724091355-a86f6d29e055/go.mod h1:W41icuwPMCo1MlVBwkFTFf5oHEYtV59oT9yKce5fcHI=
131-
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20260722153822-fa2443790f63 h1:F6kxfNd83m9kYqRmd93Ex+KhxDcT9rP+X2BHBlRutLU=
132-
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20260722153822-fa2443790f63/go.mod h1:y83MHOd7nSdWDivjThzM/5jcaZgsMM9SpnoVp+c0ufI=
131+
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20260728091439-b5039a181b44 h1:BttYra5YPoAczrVDe0krfj4YRNjmg2F53tmjakV7ikM=
132+
github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20260728091439-b5039a181b44/go.mod h1:0CZ2qdMZpt5mzUsjxGu/AG+X7JbP2t35O09keuTKwtk=
133133
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
134134
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
135135
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=

0 commit comments

Comments
 (0)