Skip SecretHashes update on ansibleLimit-scoped dataplane deployments#1781
Skip SecretHashes update on ansibleLimit-scoped dataplane deployments#1781lmiccini wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
Conversation
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/56ac80bd0e7547ad88350eb0206886b5 ✔️ openstack-k8s-operators-content-provider SUCCESS in 3h 18m 47s |
04cc55a to
1698305
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/db62c9cd33b34a538c7eccf243769b6a ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 02m 26s |
3885c4a to
c1fe8f8
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/b5d3972863e64857b2da5055f867ef55 ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 20m 43s |
|
/retest |
|
recheck |
|
/test openstack-operator-build-deploy-kuttl-4-18 |
cbfbb7c to
f52529a
Compare
f52529a to
017d2ca
Compare
|
/test functional |
97bb482 to
b1d9350
Compare
|
/test openstack-operator-build-deploy-kuttl-4-18 |
d974015 to
45f39f8
Compare
5b509f3 to
5880a65
Compare
|
/test openstack-operator-build-deploy-kuttl-4-18 |
5880a65 to
187eecc
Compare
187eecc to
9f7cae7
Compare
|
/test openstack-operator-build-deploy-kuttl-4-18 |
1 similar comment
|
/test openstack-operator-build-deploy-kuttl-4-18 |
|
Why can't infra-operator block deletion of there is mismatch between latest deployment and nodeset secret hashes? I am not sure if we should go this path as it is othrogonal to the original design. Also, users should be discouraged to do secret rotations using ansible_limits. It is there for scenarios where nodes are not reachable for some reason and users are expected to do full deployment across all nodes of the nodeset eventually to keep things in sync. |
Thanks @rabi . One of the challenges with that approach is that the last deployment may not be representative of the overall status of the nodeset. AFAICU we would have to introspect the deployments to check whether ansible_limits was used and/or if only a subset of the services were deployed, and repeat this pattern not just in infra but other operators that need to know if the dataplane is in sync (keystone for appcred, possibly others?). |
I am not sure if we need to solve that by adding per-node tracking or by introspecting all deployments. That would start to break the current NodeSet design and make it overly complex IMO. For this requirement, I think we can keep it simple:
With this approach, any scoped deployment, either via ansibleLimit or servicesOverride, keeps deletion blocked. Only a full unscoped deployment across all nodes brings the NodeSet back in sync. We can add the ansibleLimit guard where SecretHashes are copied back to the NodeSet in internal/controller/dataplane/openstackdataplanenodeset_controller.go. |
9f7cae7 to
e816aa3
Compare
|
/test functional |
|
Build failed (check pipeline). Post ✔️ openstack-k8s-operators-content-provider SUCCESS in 12m 54s |
| } | ||
| for k, v := range deployment.Status.SecretHashes { | ||
| instance.Status.SecretHashes[k] = v | ||
| for k, v := range deployment.Status.SecretHashes { |
There was a problem hiding this comment.
This is fine with me, but I think we can still update SecretHashes for servicesOverride deployments without resetting the full map, which is what we do for full deployments today.
e816aa3 to
13d1c14
Compare
For servicesOverride deployments, merge SecretHashes into the existing map without resetting it, since all nodes were touched. For ansibleLimit-scoped deployments, skip the update entirely as not all nodes received the secrets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
13d1c14 to
5761424
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. |
For servicesOverride deployments, merge SecretHashes into the existing map without resetting it, since all nodes were touched.
For ansibleLimit-scoped deployments, skip the update entirely as not all nodes received the secrets.