Skip to content

Commit 3c234b2

Browse files
add v1 api for MachineConfigNode
1 parent 8fcc4e7 commit 3c234b2

11 files changed

+2327
-2
lines changed

hack/update-payload-crds.sh

+11-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
source "$(dirname "${BASH_SOURCE}")/lib/init.sh"
44

5-
#TODO(jerzhang): once MOSC/MOSB graduates, update the v1 crds to include them
5+
#TODO(ijanssen): once MCO side is ready for MCN v1 API, update the v1 crds back to
6+
# `machineconfiguration/v1/zz_generated.crd-manifests/*.crd.yaml` and remove MCN v1alpha1 crd ref
7+
# `machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes*.crd.yaml`.
68
crd_globs="\
79
authorization/v1/zz_generated.crd-manifests/*_config-operator_*.crd*yaml\
810
config/v1/zz_generated.crd-manifests/*_config-operator_*.crd*yaml\
@@ -22,7 +24,14 @@ crd_globs="\
2224
operator/v1/zz_generated.crd-manifests/0000_25_kube-controller-manager_01_kubecontrollermanagers*.crd.yaml
2325
config/v1/zz_generated.crd-manifests/0000_10_openshift-controller-manager_01_builds*.crd.yaml
2426
operator/v1/zz_generated.crd-manifests/0000_50_openshift-controller-manager_02_openshiftcontrollermanagers*.crd.yaml
25-
machineconfiguration/v1/zz_generated.crd-manifests/*.crd.yaml
27+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs*.crd.yaml
28+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs*.crd.yaml
29+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_kubeletconfigs*.crd.yaml
30+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools*.crd.yaml
31+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigs*.crd.yaml
32+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineosbuilds*.crd.yaml
33+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineosconfigs*.crd.yaml
34+
machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets*.crd.yaml
2635
machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes*.crd.yaml
2736
operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations*.crd.yaml
2837
config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clusterimagepolicies*.crd.yaml

machineconfiguration/v1/register.go

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ func addKnownTypes(scheme *runtime.Scheme) error {
4040
&MachineOSBuildList{},
4141
&PinnedImageSet{},
4242
&PinnedImageSetList{},
43+
&MachineConfigNode{},
44+
&MachineConfigNodeList{},
4345
)
4446

4547
metav1.AddToGroupVersion(scheme, GroupVersion)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this
2+
name: "[TechPreview] MachineConfigNode"
3+
crdName: machineconfignodes.machineconfiguration.openshift.io
4+
featureGates:
5+
- MachineConfigNodes
6+
tests:
7+
onCreate:
8+
- name: Should be able to create a minimal MachineConfigNode
9+
initial: |
10+
apiVersion: machineconfiguration.openshift.io/v1
11+
kind: MachineConfigNode
12+
metadata:
13+
name: foobar
14+
spec:
15+
node:
16+
name: foobar
17+
pool:
18+
name: worker
19+
configVersion:
20+
desired: rendered-worker-abc
21+
expected: |
22+
apiVersion: machineconfiguration.openshift.io/v1
23+
kind: MachineConfigNode
24+
metadata:
25+
name: foobar
26+
spec:
27+
node:
28+
name: foobar
29+
pool:
30+
name: worker
31+
configVersion:
32+
desired: rendered-worker-abc
33+
- name: Node name must match the Object name.
34+
initial: |
35+
apiVersion: machineconfiguration.openshift.io/v1
36+
kind: MachineConfigNode
37+
metadata:
38+
name: foobar
39+
spec:
40+
node:
41+
name: barfoo
42+
pool:
43+
name: worker
44+
configVersion:
45+
desired: rendered-worker-abc
46+
expectedError: "Invalid value: \"object\": spec.node.name should match metadata.name"
47+
- name: Pool is required.
48+
initial: |
49+
apiVersion: machineconfiguration.openshift.io/v1
50+
kind: MachineConfigNode
51+
metadata:
52+
name: foobar
53+
spec:
54+
node:
55+
name: barfoo
56+
configVersion:
57+
desired: rendered-worker-abc
58+
expectedError: "spec.pool: Required value, <nil>: Invalid value: \"null\""
59+
- name: Node is required.
60+
initial: |
61+
apiVersion: machineconfiguration.openshift.io/v1
62+
kind: MachineConfigNode
63+
metadata:
64+
name: foobar
65+
spec:
66+
pool:
67+
name: barfoo
68+
configVersion:
69+
desired: rendered-worker-abc
70+
expectedError: "spec.node: Required value, <nil>: Invalid value: \"null\""
71+
- name: ConfigVersion is required.
72+
initial: |
73+
apiVersion: machineconfiguration.openshift.io/v1
74+
kind: MachineConfigNode
75+
metadata:
76+
name: foobar
77+
spec:
78+
pool:
79+
name: barfoo
80+
node:
81+
name: foobar
82+
expectedError: "spec.configVersion: Required value, <nil>: Invalid value: \"null\""
83+
onUpdate:
84+
- name: PinnedImageSet desired generation must be greater than or equal to the current generation
85+
initial: |
86+
apiVersion: machineconfiguration.openshift.io/v1
87+
kind: MachineConfigNode
88+
metadata:
89+
name: foobar
90+
spec:
91+
node:
92+
name: foobar
93+
pool:
94+
name: worker
95+
configVersion:
96+
desired: rendered-worker-abc
97+
status:
98+
observedGeneration: 1
99+
configVersion:
100+
desired: rendered-worker-abc
101+
pinnedImageSets:
102+
- name: test-pinned-image-set
103+
currentGeneration: 1
104+
desiredGeneration: 1
105+
updated: |
106+
apiVersion: machineconfiguration.openshift.io/v1
107+
kind: MachineConfigNode
108+
metadata:
109+
name: foobar
110+
spec:
111+
node:
112+
name: foobar
113+
pool:
114+
name: worker
115+
configVersion:
116+
desired: rendered-worker-abc
117+
status:
118+
observedGeneration: 1
119+
configVersion:
120+
desired: rendered-worker-abc
121+
pinnedImageSets:
122+
- name: test-pinned-image-set
123+
currentGeneration: 2
124+
desiredGeneration: 1
125+
expectedStatusError: "Invalid value: \"object\": desired generation must be greater than or equal to the current generation"
126+
- name: PinnedImageSet desired generation must be greater than or equal to the last failed generation
127+
initial: |
128+
apiVersion: machineconfiguration.openshift.io/v1
129+
kind: MachineConfigNode
130+
metadata:
131+
name: foobar
132+
spec:
133+
node:
134+
name: foobar
135+
pool:
136+
name: worker
137+
configVersion:
138+
desired: rendered-worker-abc
139+
status:
140+
observedGeneration: 4
141+
configVersion:
142+
desired: rendered-worker-abc
143+
pinnedImageSets:
144+
- name: test-pinned-image-set
145+
currentGeneration: 2
146+
desiredGeneration: 2
147+
updated: |
148+
apiVersion: machineconfiguration.openshift.io/v1
149+
kind: MachineConfigNode
150+
metadata:
151+
name: foobar
152+
spec:
153+
node:
154+
name: foobar
155+
pool:
156+
name: worker
157+
configVersion:
158+
desired: rendered-worker-abc
159+
status:
160+
observedGeneration: 5
161+
configVersion:
162+
desired: rendered-worker-abc
163+
pinnedImageSets:
164+
- name: test-pinned-image-set
165+
currentGeneration: 3
166+
desiredGeneration: 3
167+
lastFailedGeneration: 4
168+
expectedStatusError: "Invalid value: \"object\": desired generation must be greater than or equal to the last failed generation"
169+
- name: PinnedImageSet last failed generation error must be defined on image pull and pin failure
170+
initial: |
171+
apiVersion: machineconfiguration.openshift.io/v1
172+
kind: MachineConfigNode
173+
metadata:
174+
name: foobar
175+
spec:
176+
node:
177+
name: foobar
178+
pool:
179+
name: worker
180+
configVersion:
181+
desired: rendered-worker-abc
182+
status:
183+
observedGeneration: 4
184+
configVersion:
185+
desired: rendered-worker-abc
186+
pinnedImageSets:
187+
- name: test-pinned-image-set
188+
currentGeneration: 2
189+
desiredGeneration: 2
190+
updated: |
191+
apiVersion: machineconfiguration.openshift.io/v1
192+
kind: MachineConfigNode
193+
metadata:
194+
name: foobar
195+
spec:
196+
node:
197+
name: foobar
198+
pool:
199+
name: worker
200+
configVersion:
201+
desired: rendered-worker-abc
202+
status:
203+
observedGeneration: 5
204+
configVersion:
205+
desired: rendered-worker-abc
206+
pinnedImageSets:
207+
- name: test-pinned-image-set
208+
currentGeneration: 2
209+
desiredGeneration: 3
210+
lastFailedGeneration: 3
211+
expectedStatusError: "Invalid value: \"object\": last failed generation error must be defined on image pull and pin failure"

0 commit comments

Comments
 (0)