Commit 7acee07
Normalize ServicesOverride to avoid CEL immutability check failure
On k8s 1.33 (OCP 4.20), the API server normalizes nil and empty
slices differently during admission, causing the CEL validation
rule `self == oldSelf` on OpenStackDataPlaneDeployment Spec to fail
when updating a deployment (even just adding an annotation).
Move the immutability check from CEL to the webhook ValidateUpdate
where both old and new specs are normalized via Default() before
comparison, making nil vs empty slice differences transparent.
Also default ServicesOverride to []string{} in the webhook defaulter
for consistent serialization across k8s versions.
This is a backportable fix — affects any operator version running on
OCP 4.20 regardless of the operator's build-time dependencies.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Martin Schuppert <mschuppert@redhat.com>1 parent b243f21 commit 7acee07
6 files changed
Lines changed: 33 additions & 22 deletions
File tree
- api
- bases
- dataplane/v1beta1
- bindata/crds
- config/crd/bases
- test/functional/dataplane
Lines changed: 0 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | 123 | | |
127 | 124 | | |
128 | 125 | | |
| |||
Lines changed: 0 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
156 | 155 | | |
157 | 156 | | |
158 | 157 | | |
| |||
Lines changed: 28 additions & 4 deletions
| 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 | | |
| |||
49 | 52 | | |
50 | 53 | | |
51 | 54 | | |
52 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
53 | 58 | | |
54 | 59 | | |
55 | 60 | | |
| |||
86 | 91 | | |
87 | 92 | | |
88 | 93 | | |
89 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
90 | 102 | | |
91 | 103 | | |
92 | 104 | | |
| |||
101 | 113 | | |
102 | 114 | | |
103 | 115 | | |
104 | | - | |
105 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
106 | 130 | | |
107 | 131 | | |
108 | 132 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20889 | 20889 | | |
20890 | 20890 | | |
20891 | 20891 | | |
20892 | | - | |
20893 | | - | |
20894 | | - | |
20895 | 20892 | | |
20896 | 20893 | | |
20897 | 20894 | | |
| |||
Lines changed: 0 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | 123 | | |
127 | 124 | | |
128 | 125 | | |
| |||
Lines changed: 5 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
166 | | - | |
| 166 | + | |
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| |||
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
363 | | - | |
364 | 363 | | |
365 | 364 | | |
366 | 365 | | |
| |||
571 | 570 | | |
572 | 571 | | |
573 | 572 | | |
574 | | - | |
575 | 573 | | |
576 | 574 | | |
577 | 575 | | |
| |||
686 | 684 | | |
687 | 685 | | |
688 | 686 | | |
689 | | - | |
| 687 | + | |
690 | 688 | | |
691 | 689 | | |
692 | 690 | | |
| |||
839 | 837 | | |
840 | 838 | | |
841 | 839 | | |
842 | | - | |
843 | 840 | | |
844 | 841 | | |
845 | 842 | | |
| |||
1539 | 1536 | | |
1540 | 1537 | | |
1541 | 1538 | | |
1542 | | - | |
| 1539 | + | |
1543 | 1540 | | |
1544 | 1541 | | |
1545 | 1542 | | |
| |||
1640 | 1637 | | |
1641 | 1638 | | |
1642 | 1639 | | |
1643 | | - | |
| 1640 | + | |
1644 | 1641 | | |
1645 | 1642 | | |
1646 | 1643 | | |
| |||
1742 | 1739 | | |
1743 | 1740 | | |
1744 | 1741 | | |
1745 | | - | |
| 1742 | + | |
1746 | 1743 | | |
1747 | 1744 | | |
1748 | 1745 | | |
| |||
0 commit comments