Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions features.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
| MachineAPIMigration| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| MachineAPIMigrationAWS| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| MachineAPIMigrationOpenStack| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| ManagedBootImagesAWSCAPI| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| MaxUnavailableStatefulSet| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| MinimumKubeletVersion| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
| MixedCPUsAllocation| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
Expand Down
10 changes: 9 additions & 1 deletion features/features.go
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,14 @@ var (
enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()).
mustRegister()

FeatureGateManagedBootImagesAWSCAPI = newFeatureGate("ManagedBootImagesAWSCAPI").
reportProblemsToJiraComponent("MachineConfigOperator").
contactPerson("djoshy").
productScope(ocpSpecific).
enhancementPR("https://github.com/openshift/enhancements/pull/1496").
enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()).
mustRegister()

FeatureGateBootcNodeManagement = newFeatureGate("BootcNodeManagement").
reportProblemsToJiraComponent("MachineConfigOperator").
contactPerson("inesqyx").
Expand Down Expand Up @@ -657,7 +665,7 @@ var (
enhancementPR("https://github.com/openshift/enhancements/pull/2033").
enable(inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()).
mustRegister()

FeatureGateIngressControllerMultipleHAProxyVersions = newFeatureGate("IngressControllerMultipleHAProxyVersions").
reportProblemsToJiraComponent("Networking/router").
contactPerson("miciah").
Expand Down
4 changes: 2 additions & 2 deletions openapi/generated_openapi/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions openapi/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -35220,12 +35220,12 @@
],
"properties": {
"apiGroup": {
"description": "apiGroup is name of the APIGroup that the machine management resource belongs to. The only current valid value is machine.openshift.io. machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group.",
"description": "apiGroup is name of the APIGroup that the machine management resource belongs to. Valid values are machine.openshift.io and cluster.x-k8s.io. machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. cluster.x-k8s.io means that the machine manager will only register resources that belong to the Cluster API group.",
"type": "string",
"default": ""
},
"resource": {
"description": "resource is the machine management resource's type. Valid values are machinesets and controlplanemachinesets. machinesets means that the machine manager will only register resources of the kind MachineSet. controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet.",
"description": "resource is the machine management resource's type. Valid values are machinesets, controlplanemachinesets and machinedeployments. machinesets means that the machine manager will only register resources of the kind MachineSet. controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. machinedeployments means that the machine manager will only register resources of the kind MachineDeployment.",
"type": "string",
"default": ""
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this
name: "MachineConfiguration"
crdName: machineconfigurations.operator.openshift.io
featureGates:
- ManagedBootImagesAWSCAPI
tests:
onCreate:
- name: Should be able to create a minimal MachineConfiguration
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec: {} # No spec is required for a MachineConfiguration
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
- name: Should be able to create a ManagedBootImages configuration knob that opts in all CAPI MachineSets
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- name: Should be able to create a ManagedBootImages configuration knob that opts in CAPI MachineSets in partial mode
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: Partial
partial:
machineResourceSelector:
matchLabels: {}
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: Partial
partial:
machineResourceSelector:
matchLabels: {}
- name: Should be able to create a ManagedBootImages configuration knob that opts in all CAPI MachineDeployments
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
- name: Should be able to create a ManagedBootImages configuration knob that opts in CAPI MachineDeployments in partial mode
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: Partial
partial:
machineResourceSelector:
matchLabels: {}
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: Partial
partial:
machineResourceSelector:
matchLabels: {}
- name: Should be able to mix MAPI MachineSets and CAPI MachineSets in machineManagers
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: machine.openshift.io
selection:
mode: All
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: machine.openshift.io
selection:
mode: All
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- name: Should be able to mix CAPI MachineSets and CAPI MachineDeployments in machineManagers
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
- name: Should not permit machinedeployments with machine.openshift.io API group
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinedeployments
apiGroup: machine.openshift.io
selection:
mode: All
expectedError: "the machinedeployments resource is only supported in the cluster.x-k8s.io API group"
- name: Only one unique pair of resource/apiGroup is allowed in machineManagers
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: None
expectedError: "spec.managedBootImages.machineManagers[1]: Duplicate value: map[string]interface {}{\"apiGroup\":\"cluster.x-k8s.io\", \"resource\":\"machinesets\"}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
apiVersion: apiextensions.k8s.io/v1 # Hack because controller-gen complains if we don't have this
name: "MachineConfiguration"
crdName: machineconfigurations.operator.openshift.io
featureGates:
- ManagedBootImagesCPMS
- ManagedBootImagesAWSCAPI
tests:
onCreate:
- name: Should be able to use all resource types when both feature gates are enabled
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: machine.openshift.io
selection:
mode: All
- resource: controlplanemachinesets
apiGroup: machine.openshift.io
selection:
mode: All
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
expected: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
logLevel: Normal
operatorLogLevel: Normal
managedBootImages:
machineManagers:
- resource: machinesets
apiGroup: machine.openshift.io
selection:
mode: All
- resource: controlplanemachinesets
apiGroup: machine.openshift.io
selection:
mode: All
- resource: machinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
- name: Should not permit ControlPlaneMachineSets in Partial mode even when ManagedBootImagesAWSCAPI is also enabled
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: controlplanemachinesets
apiGroup: machine.openshift.io
selection:
mode: Partial
partial:
machineResourceSelector:
matchLabels: {}
expectedError: "Only All or None selection mode is permitted for ControlPlaneMachineSets"
- name: Should not permit controlplanemachinesets with cluster.x-k8s.io API group
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: controlplanemachinesets
apiGroup: cluster.x-k8s.io
selection:
mode: All
expectedError: "the controlplanemachinesets resource is only supported in the machine.openshift.io API group"
- name: Only one unique pair of resource/apiGroup is allowed across all resource types
initial: |
apiVersion: operator.openshift.io/v1
kind: MachineConfiguration
spec:
managedBootImages:
machineManagers:
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: All
- resource: machinedeployments
apiGroup: cluster.x-k8s.io
selection:
mode: None
expectedError: "spec.managedBootImages.machineManagers[1]: Duplicate value: map[string]interface {}{\"apiGroup\":\"cluster.x-k8s.io\", \"resource\":\"machinedeployments\"}"
Loading