Skip to content

Commit 8a95912

Browse files
committed
AGENT-1522: Promote IRI object from v1alpha1 to v1
The IRI object has stabilized enough to be graduated to v1.
1 parent 0122db3 commit 8a95912

12 files changed

Lines changed: 1567 additions & 5 deletions

hack/update-payload-crds.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ crd_globs="\
2323
config/v1/zz_generated.crd-manifests/0000_10_openshift-controller-manager_01_builds*.crd.yaml
2424
operator/v1/zz_generated.crd-manifests/0000_50_openshift-controller-manager_02_openshiftcontrollermanagers*.crd.yaml
2525
machineconfiguration/v1/zz_generated.crd-manifests/*.crd.yaml
26-
machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages*.crd.yaml
2726
machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_osimagestreams*.crd.yaml
2827
operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations*.crd.yaml
2928
config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clustermonitoring*.crd.yaml

machineconfiguration/v1/register.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func addKnownTypes(scheme *runtime.Scheme) error {
2828
&ContainerRuntimeConfigList{},
2929
&ControllerConfig{},
3030
&ControllerConfigList{},
31+
&InternalReleaseImage{},
32+
&InternalReleaseImageList{},
3133
&KubeletConfig{},
3234
&KubeletConfigList{},
3335
&MachineConfig{},
Lines changed: 306 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,306 @@
1+
apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this
2+
name: "InternalReleaseImage"
3+
crdName: internalreleaseimages.machineconfiguration.openshift.io
4+
featureGate: NoRegistryClusterInstall
5+
tests:
6+
onCreate:
7+
- name: Should be able to create a minimal InternalReleaseImage
8+
initial: |
9+
apiVersion: machineconfiguration.openshift.io/v1
10+
kind: InternalReleaseImage
11+
metadata:
12+
name: cluster
13+
spec:
14+
releases:
15+
- name: ocp-release-bundle-4.18.0-x86_64
16+
expected: |
17+
apiVersion: machineconfiguration.openshift.io/v1
18+
kind: InternalReleaseImage
19+
metadata:
20+
name: cluster
21+
spec:
22+
releases:
23+
- name: ocp-release-bundle-4.18.0-x86_64
24+
- name: Valid release names
25+
initial: |
26+
apiVersion: machineconfiguration.openshift.io/v1
27+
kind: InternalReleaseImage
28+
metadata:
29+
name: cluster
30+
spec:
31+
releases:
32+
- name: ocp-release-bundle-4.21.0-ec.3-x86_64
33+
- name: ocp-release-bundle-4.20.5-x86_64
34+
- name: ocp-release-bundle-4.14.0-0.nightly-2025-11-23-025204
35+
- name: ocp-release-bundle-4.21.0-ec.2-s390x
36+
- name: ocp-release-bundle-4.15.0-0.ci-2025-11-22-162639
37+
expected: |
38+
apiVersion: machineconfiguration.openshift.io/v1
39+
kind: InternalReleaseImage
40+
metadata:
41+
name: cluster
42+
spec:
43+
releases:
44+
- name: ocp-release-bundle-4.21.0-ec.3-x86_64
45+
- name: ocp-release-bundle-4.20.5-x86_64
46+
- name: ocp-release-bundle-4.14.0-0.nightly-2025-11-23-025204
47+
- name: ocp-release-bundle-4.21.0-ec.2-s390x
48+
- name: ocp-release-bundle-4.15.0-0.ci-2025-11-22-162639
49+
- name: Invalid undefined releases
50+
initial: |
51+
apiVersion: machineconfiguration.openshift.io/v1
52+
kind: InternalReleaseImage
53+
metadata:
54+
name: cluster
55+
spec:
56+
expectedError: "spec: Required value"
57+
- name: Invalid empty release name
58+
initial: |
59+
apiVersion: machineconfiguration.openshift.io/v1
60+
kind: InternalReleaseImage
61+
metadata:
62+
name: cluster
63+
spec:
64+
releases:
65+
- name: ""
66+
expectedError: "Invalid value: \"\": spec.releases[0].name in body should be at least 1 chars long"
67+
- name: Should reject duplicate releases
68+
initial: |
69+
apiVersion: machineconfiguration.openshift.io/v1
70+
kind: InternalReleaseImage
71+
metadata:
72+
name: cluster
73+
spec:
74+
releases:
75+
- name: ocp-release-bundle-4.18.0-x86_64
76+
- name: ocp-release-bundle-4.18.0-x86_64
77+
expectedError: "Duplicate value: map[string]interface {}{\"name\":\"ocp-release-bundle-4.18.0-x86_64\"}"
78+
- name: Invalid release name format
79+
initial: |
80+
apiVersion: machineconfiguration.openshift.io/v1
81+
kind: InternalReleaseImage
82+
metadata:
83+
name: cluster
84+
spec:
85+
releases:
86+
- name: "Not a valid release name format"
87+
expectedError: "Invalid value: \"string\": must be ocp-release-bundle-<version>-<arch|stream> and <= 64 chars"
88+
onUpdate:
89+
- name: A new mounted release has been discovered
90+
initial: |
91+
apiVersion: machineconfiguration.openshift.io/v1
92+
kind: InternalReleaseImage
93+
metadata:
94+
name: cluster
95+
spec:
96+
releases:
97+
- name: ocp-release-bundle-4.18.0-x86_64
98+
updated: |
99+
apiVersion: machineconfiguration.openshift.io/v1
100+
kind: InternalReleaseImage
101+
spec:
102+
releases:
103+
- name: ocp-release-bundle-4.18.0-x86_64
104+
status:
105+
releases:
106+
- name: ocp-release-bundle-4.18.0-x86_64
107+
image: example.com/example/openshift-release-dev@sha256:aa8795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d6860ff
108+
conditions:
109+
- type: Available
110+
status: "True"
111+
reason: "Available"
112+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
113+
lastTransitionTime: "2024-11-01T07:00:00Z"
114+
- name: ocp-release-bundle-4.19.0-x86_64
115+
conditions:
116+
- type: Mounted
117+
status: "True"
118+
reason: "Mounted"
119+
message: "Release ocp-release-bundle-4.19.0-x86_64 discovered on node master-0"
120+
lastTransitionTime: "2024-12-01T08:04:21Z"
121+
expected: |
122+
apiVersion: machineconfiguration.openshift.io/v1
123+
kind: InternalReleaseImage
124+
metadata:
125+
name: cluster
126+
spec:
127+
releases:
128+
- name: ocp-release-bundle-4.18.0-x86_64
129+
status:
130+
releases:
131+
- name: ocp-release-bundle-4.18.0-x86_64
132+
image: example.com/example/openshift-release-dev@sha256:aa8795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d6860ff
133+
conditions:
134+
- type: Available
135+
status: "True"
136+
reason: "Available"
137+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
138+
lastTransitionTime: "2024-11-01T07:00:00Z"
139+
- name: ocp-release-bundle-4.19.0-x86_64
140+
conditions:
141+
- type: Mounted
142+
status: "True"
143+
reason: "Mounted"
144+
message: "Release ocp-release-bundle-4.19.0-x86_64 discovered on node master-0"
145+
lastTransitionTime: "2024-12-01T08:04:21Z"
146+
- name: A release has been installed
147+
initial: |
148+
apiVersion: machineconfiguration.openshift.io/v1
149+
kind: InternalReleaseImage
150+
metadata:
151+
name: cluster
152+
spec:
153+
releases:
154+
- name: ocp-release-bundle-4.18.0-x86_64
155+
updated: |
156+
apiVersion: machineconfiguration.openshift.io/v1
157+
kind: InternalReleaseImage
158+
metadata:
159+
name: cluster
160+
spec:
161+
releases:
162+
- name: ocp-release-bundle-4.18.0-x86_64
163+
- name: ocp-release-bundle-4.19.0-x86_64
164+
status:
165+
releases:
166+
- name: ocp-release-bundle-4.18.0-x86_64
167+
image: example.com/example/openshift-release-dev@sha256:aa8795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d6860ff
168+
conditions:
169+
- type: Available
170+
status: "True"
171+
reason: "Available"
172+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
173+
lastTransitionTime: "2024-11-01T07:00:00Z"
174+
- name: ocp-release-bundle-4.19.0-x86_64
175+
image: example.com/example/openshift-release-dev@sha256:d98795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d68607f
176+
conditions:
177+
- type: Available
178+
status: "True"
179+
reason: "Available"
180+
message: "Release ocp-release-bundle-4.19.0-x86_64 is currently available"
181+
lastTransitionTime: "2024-12-01T09:00:00Z"
182+
expected: |
183+
apiVersion: machineconfiguration.openshift.io/v1
184+
kind: InternalReleaseImage
185+
metadata:
186+
name: cluster
187+
spec:
188+
releases:
189+
- name: ocp-release-bundle-4.18.0-x86_64
190+
- name: ocp-release-bundle-4.19.0-x86_64
191+
status:
192+
releases:
193+
- name: ocp-release-bundle-4.18.0-x86_64
194+
image: example.com/example/openshift-release-dev@sha256:aa8795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d6860ff
195+
conditions:
196+
- type: Available
197+
status: "True"
198+
reason: "Available"
199+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
200+
lastTransitionTime: "2024-11-01T07:00:00Z"
201+
- name: ocp-release-bundle-4.19.0-x86_64
202+
image: example.com/example/openshift-release-dev@sha256:d98795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d68607f
203+
conditions:
204+
- type: Available
205+
status: "True"
206+
reason: "Available"
207+
message: "Release ocp-release-bundle-4.19.0-x86_64 is currently available"
208+
lastTransitionTime: "2024-12-01T09:00:00Z"
209+
- name: A degraded release
210+
initial: |
211+
apiVersion: machineconfiguration.openshift.io/v1
212+
kind: InternalReleaseImage
213+
metadata:
214+
name: cluster
215+
spec:
216+
releases:
217+
- name: ocp-release-bundle-4.18.0-x86_64
218+
updated: |
219+
apiVersion: machineconfiguration.openshift.io/v1
220+
kind: InternalReleaseImage
221+
metadata:
222+
name: cluster
223+
spec:
224+
releases:
225+
- name: ocp-release-bundle-4.18.0-x86_64
226+
- name: ocp-release-bundle-4.19.0-x86_64
227+
status:
228+
releases:
229+
- name: ocp-release-bundle-4.18.0-x86_64
230+
image: example.com/example/openshift-release-dev@sha256:aa8795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d6860ff
231+
conditions:
232+
- type: Available
233+
status: "True"
234+
reason: "Available"
235+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
236+
lastTransitionTime: "2024-11-01T07:00:00Z"
237+
- name: ocp-release-bundle-4.19.0-x86_64
238+
conditions:
239+
- type: Degraded
240+
status: "True"
241+
reason: "Degraded"
242+
message: "Cannot install release ocp-release-bundle-4.19.0-x86_64 on master-0, out of disk space"
243+
lastTransitionTime: "2024-12-01T09:00:00Z"
244+
expected: |
245+
apiVersion: machineconfiguration.openshift.io/v1
246+
kind: InternalReleaseImage
247+
metadata:
248+
name: cluster
249+
spec:
250+
releases:
251+
- name: ocp-release-bundle-4.18.0-x86_64
252+
- name: ocp-release-bundle-4.19.0-x86_64
253+
status:
254+
releases:
255+
- name: ocp-release-bundle-4.18.0-x86_64
256+
image: example.com/example/openshift-release-dev@sha256:aa8795f7932441b30bb8bcfbbf05912875383fad1f2b3be08a22ec148d6860ff
257+
conditions:
258+
- type: Available
259+
status: "True"
260+
reason: "Available"
261+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
262+
lastTransitionTime: "2024-11-01T07:00:00Z"
263+
- name: ocp-release-bundle-4.19.0-x86_64
264+
conditions:
265+
- type: Degraded
266+
status: "True"
267+
reason: "Degraded"
268+
message: "Cannot install release ocp-release-bundle-4.19.0-x86_64 on master-0, out of disk space"
269+
lastTransitionTime: "2024-12-01T09:00:00Z"
270+
- name: Invalid image reference format
271+
initial: |
272+
apiVersion: machineconfiguration.openshift.io/v1
273+
kind: InternalReleaseImage
274+
metadata:
275+
name: cluster
276+
spec:
277+
releases:
278+
- name: ocp-release-bundle-4.18.0-x86_64
279+
status:
280+
releases:
281+
- name: ocp-release-bundle-4.18.0-x86_64
282+
conditions:
283+
- type: Available
284+
status: "True"
285+
reason: "Available"
286+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
287+
lastTransitionTime: "2024-11-01T07:00:00Z"
288+
updated: |
289+
apiVersion: machineconfiguration.openshift.io/v1
290+
kind: InternalReleaseImage
291+
metadata:
292+
name: cluster
293+
spec:
294+
releases:
295+
- name: ocp-release-bundle-4.18.0-x86_64
296+
status:
297+
releases:
298+
- name: ocp-release-bundle-4.18.0-x86_64
299+
image: not-a-valid-image-reference
300+
conditions:
301+
- type: Available
302+
status: "True"
303+
reason: "Available"
304+
message: "Release ocp-release-bundle-4.18.0-x86_64 is currently available"
305+
lastTransitionTime: "2024-11-01T07:00:00Z"
306+
expectedStatusError: "Invalid value: \"string\": the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"

0 commit comments

Comments
 (0)