Commit 1b100f7
committed
control-plane-operator/controllers/hostedcontrolplane/v2/cvo: Consume include.release.openshift.io/hypershift-bootstrap annotation
The cluster-version operator has a complicated system for deciding
whether a given release-image manifest should be managed in the
current cluster [1,2]. Implementing that system here, or even using
library-go and remembering to vendor-bump here, both seem like an
annoying maintenance load.
We could use the CVO's render command like the standalone installer
[3,4], but that logic is fairly complicated because it needs to
generate all the artifacts necessary for bootstrap MachineConfig
rendering, or the production machine-config operator will complain
about MachineConfigPools requesting rendered-... MachineConfig that
don't exist.
All we actually need out of the bootstrap container are the resources
that the cluster-version operator needs to launch and run, which are
labeled with the grep target since [5]. That avoids installing
anything the cluster doesn't actually need here by mistake. Once the
production CVO container starts, it will apply the remaining resources
that the cluster actually needs.
I'm also dropping the openshift-config and openshift-config-managed
Namespace creation. They are from a30db71 (Refactor
cluster-version-operator, 2024-11-18, openshift#5125), but that commit doesn't
explain why they were added or hint at where they lived before (if
anywhere). I would expect the cluster-version operator to be able to
create those Namespaces from the release-image manifests when they are
needed, as with other cluster resources.
[1]: https://github.com/openshift/enhancements/blob/2b38513b8661632f08e64f4acc3b856e842f8669/dev-guide/cluster-version-operator/dev/operators.md#manifest-inclusion-annotations
[2]: https://github.com/openshift/library-go/blob/ac826d10cb4081fe3034b027863c08953d95f602/pkg/manifest/manifest.go#L296-L376
[3]: https://github.com/openshift/installer/blob/a300d8c0e9d9d566a85740244a7da74d3d63e23c/data/data/bootstrap/files/usr/local/bin/bootkube.sh.template#L189-L216
[4]: https://github.com/openshift/cluster-version-operator/blob/eaf28f5165bde27435b0f0c9a69458677034a58d/pkg/payload/render.go
[5]: openshift/cluster-version-operator#13521 parent 8eaac17 commit 1b100f7
2 files changed
Lines changed: 2 additions & 47 deletions
File tree
- control-plane-operator/controllers/hostedcontrolplane/v2
- assets/cluster-version-operator
- cvo
Lines changed: 2 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
| 94 | + | |
99 | 95 | | |
100 | | - | |
| 96 | + | |
101 | 97 | | |
102 | 98 | | |
103 | 99 | | |
| |||
Lines changed: 0 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | 202 | | |
244 | 203 | | |
245 | 204 | | |
| |||
0 commit comments