diff --git a/go.mod b/go.mod
index fe09c53e9b..29726fd686 100644
--- a/go.mod
+++ b/go.mod
@@ -344,3 +344,5 @@ require (
)
replace k8s.io/kube-openapi => github.com/openshift/kube-openapi v0.0.0-20230816122517-ffc8f001abb0
+
+replace github.com/openshift/api => github.com/djoshy/api v0.0.0-20240726175932-7e2935d5d809
diff --git a/go.sum b/go.sum
index ece0566e0b..9171f0562c 100644
--- a/go.sum
+++ b/go.sum
@@ -166,6 +166,8 @@ github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42
github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY=
github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=
github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
+github.com/djoshy/api v0.0.0-20240726175932-7e2935d5d809 h1:/FwfZ/zuSzqcmTHo88xkA0HzWkgMAYAvih9pAQnCiNQ=
+github.com/djoshy/api v0.0.0-20240726175932-7e2935d5d809/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
github.com/docker/cli v24.0.7+incompatible h1:wa/nIwYFW7BVTGa7SWPVyyXU9lgORqUb1xfI36MSkFg=
github.com/docker/cli v24.0.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
@@ -595,8 +597,6 @@ github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf
github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8=
github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg=
github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-github.com/openshift/api v0.0.0-20240723231418-442f06d7e03b h1:icnwDdM7J4V19lkSiWBTY4+6iadOpOn4jX868ST4Z+0=
-github.com/openshift/api v0.0.0-20240723231418-442f06d7e03b/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
github.com/openshift/client-go v0.0.0-20240528061634-b054aa794d87 h1:JtLhaGpSEconE+1IKmIgCOof/Len5ceG6H1pk43yv5U=
github.com/openshift/client-go v0.0.0-20240528061634-b054aa794d87/go.mod h1:3IPD4U0qyovZS4EFady2kqY32m8lGcbs/Wx+yprg9z8=
github.com/openshift/kube-openapi v0.0.0-20230816122517-ffc8f001abb0 h1:GPlAy197Jkr+D0T2FNWanamraTdzS/r9ZkT29lxvHaA=
diff --git a/hack/crds-sync.sh b/hack/crds-sync.sh
index 3c07d94af3..d461d66372 100755
--- a/hack/crds-sync.sh
+++ b/hack/crds-sync.sh
@@ -7,5 +7,5 @@ cp vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-mani
cp vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.crd-manifests/*.crd.yaml install/.
# These are MCO CRDs that live in other parts of the openshift/api, so the copies need to be more specific
-cp vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-*.crd.yaml install/.
-cp vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clusterimagepolicies-*.crd.yaml install/.
\ No newline at end of file
+cp vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations*.crd.yaml install/.
+cp vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clusterimagepolicies*.crd.yaml install/.
diff --git a/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml
deleted file mode 100644
index 9300526ebb..0000000000
--- a/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml
+++ /dev/null
@@ -1,203 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/1453
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: Default
- name: machineconfigurations.operator.openshift.io
-spec:
- group: operator.openshift.io
- names:
- kind: MachineConfiguration
- listKind: MachineConfigurationList
- plural: machineconfigurations
- singular: machineconfiguration
- scope: Cluster
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: "MachineConfiguration provides information to configure an operator
- to manage Machine Configuration. \n Compatibility level 1: Stable within
- a major release for a minimum of 12 months or 3 minor releases (whichever
- is longer)."
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: spec is the specification of the desired behavior of the
- Machine Config Operator
- properties:
- failedRevisionLimit:
- description: failedRevisionLimit is the number of failed static pod
- installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- forceRedeploymentReason:
- description: forceRedeploymentReason can be used to force the redeployment
- of the operand by providing a unique string. This provides a mechanism
- to kick a previously failed deployment and provide a reason why
- you think it will work this time instead of failing again on the
- same config.
- type: string
- logLevel:
- default: Normal
- description: "logLevel is an intent based logging for an overall component.
- \ It does not give fine grained control, but it is a simple way
- to manage coarse grained logging choices that operators have to
- interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
- \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- managementState:
- description: managementState indicates whether and how the operator
- should manage the component
- pattern: ^(Managed|Unmanaged|Force|Removed)$
- type: string
- observedConfig:
- description: observedConfig holds a sparse config that controller
- has observed from the cluster state. It exists in spec because
- it is an input to the level for the operator
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- operatorLogLevel:
- default: Normal
- description: "operatorLogLevel is an intent based logging for the
- operator itself. It does not give fine grained control, but it
- is a simple way to manage coarse grained logging choices that operators
- have to interpret for themselves. \n Valid values are: \"Normal\",
- \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- succeededRevisionLimit:
- description: succeededRevisionLimit is the number of successful static
- pod installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- unsupportedConfigOverrides:
- description: unsupportedConfigOverrides overrides the final configuration
- that was computed by the operator. Red Hat does not support the
- use of this field. Misuse of this field could lead to unexpected
- behavior or conflict with other configuration options. Seek guidance
- from the Red Hat support before using this field. Use of this property
- blocks cluster upgrades, it must be removed before upgrading your
- cluster.
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- type: object
- status:
- description: status is the most recently observed status of the Machine
- Config Operator
- properties:
- conditions:
- description: conditions is a list of conditions and their status
- items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
- properties:
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- observedGeneration:
- description: observedGeneration is the last generation change you've
- dealt with
- format: int64
- type: integer
- type: object
- required:
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index 02034dc3f2..0000000000
--- a/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,1237 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/1453
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: DevPreviewNoUpgrade
- name: machineconfigurations.operator.openshift.io
-spec:
- group: operator.openshift.io
- names:
- kind: MachineConfiguration
- listKind: MachineConfigurationList
- plural: machineconfigurations
- singular: machineconfiguration
- scope: Cluster
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: "MachineConfiguration provides information to configure an operator
- to manage Machine Configuration. \n Compatibility level 1: Stable within
- a major release for a minimum of 12 months or 3 minor releases (whichever
- is longer)."
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: spec is the specification of the desired behavior of the
- Machine Config Operator
- properties:
- failedRevisionLimit:
- description: failedRevisionLimit is the number of failed static pod
- installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- forceRedeploymentReason:
- description: forceRedeploymentReason can be used to force the redeployment
- of the operand by providing a unique string. This provides a mechanism
- to kick a previously failed deployment and provide a reason why
- you think it will work this time instead of failing again on the
- same config.
- type: string
- logLevel:
- default: Normal
- description: "logLevel is an intent based logging for an overall component.
- \ It does not give fine grained control, but it is a simple way
- to manage coarse grained logging choices that operators have to
- interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
- \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- managedBootImages:
- description: managedBootImages allows configuration for the management
- of boot images for machine resources within the cluster. This configuration
- allows users to select resources that should be updated to the latest
- boot images during cluster upgrades, ensuring that new machines
- always boot with the current cluster version's boot image. When
- omitted, no boot images will be updated.
- properties:
- machineManagers:
- description: machineManagers can be used to register machine management
- resources for boot image updates. The Machine Config Operator
- will watch for changes to this list. Only one entry is permitted
- per type of machine management resource.
- items:
- description: MachineManager describes a target machine resource
- that is registered for boot image updates. It stores identifying
- information such as the resource type and the API Group of
- the resource. It also provides granular control via the selection
- field.
- 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.
- enum:
- - machine.openshift.io
- type: string
- resource:
- description: resource is the machine management resource's
- type. The only current valid value is machinesets. machinesets
- means that the machine manager will only register resources
- of the kind MachineSet.
- enum:
- - machinesets
- type: string
- selection:
- description: selection allows granular control of the machine
- management resources that will be registered for boot
- image updates.
- properties:
- mode:
- description: mode determines how machine managers will
- be selected for updates. Valid values are All and
- Partial. All means that every resource matched by
- the machine manager will be updated. Partial requires
- specified selector(s) and allows customisation of
- which resources matched by the machine manager will
- be updated.
- enum:
- - All
- - Partial
- type: string
- partial:
- description: partial provides label selector(s) that
- can be used to match machine management resources.
- Only permitted when mode is set to "Partial".
- properties:
- machineResourceSelector:
- description: machineResourceSelector is a label
- selector that can be used to select machine resources
- like MachineSets.
- properties:
- matchExpressions:
- description: matchExpressions is a list of label
- selector requirements. The requirements are
- ANDed.
- items:
- description: A label selector requirement
- is a selector that contains values, a key,
- and an operator that relates the key and
- values.
- properties:
- key:
- description: key is the label key that
- the selector applies to.
- type: string
- operator:
- description: operator represents a key's
- relationship to a set of values. Valid
- operators are In, NotIn, Exists and
- DoesNotExist.
- type: string
- values:
- description: values is an array of string
- values. If the operator is In or NotIn,
- the values array must be non-empty.
- If the operator is Exists or DoesNotExist,
- the values array must be empty. This
- array is replaced during a strategic
- merge patch.
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- description: matchLabels is a map of {key,value}
- pairs. A single {key,value} in the matchLabels
- map is equivalent to an element of matchExpressions,
- whose key field is "key", the operator is
- "In", and the values array contains only "value".
- The requirements are ANDed.
- type: object
- type: object
- x-kubernetes-map-type: atomic
- required:
- - machineResourceSelector
- type: object
- required:
- - mode
- type: object
- x-kubernetes-validations:
- - message: Partial is required when type is partial, and
- forbidden otherwise
- rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial)
- : !has(self.partial)'
- required:
- - apiGroup
- - resource
- - selection
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - resource
- - apiGroup
- x-kubernetes-list-type: map
- type: object
- managementState:
- description: managementState indicates whether and how the operator
- should manage the component
- pattern: ^(Managed|Unmanaged|Force|Removed)$
- type: string
- nodeDisruptionPolicy:
- description: nodeDisruptionPolicy allows an admin to set granular
- node disruption actions for MachineConfig-based updates, such as
- drains, service reloads, etc. Specifying this will allow for less
- downtime when doing small configuration updates to the cluster.
- This configuration has no effect on cluster upgrades which will
- still incur node disruption where required.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecFile is a file entry and
- corresponding actions to take and is used in the NodeDisruptionPolicyConfig
- object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy will
- apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey maps to the ignition.sshkeys field in the
- MachineConfig object, definition an action for this will apply
- to all sshkey changes in the cluster
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that require
- a reboot, the reboot will supercede these actions. Valid
- actions are Reboot, Drain, Reload, DaemonReload and None.
- The Reboot action and the None action cannot be used in
- conjunction with any of the other actions. This list supports
- a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the reload/restart
- field. Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and forbidden
- otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart)
- : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self) ==
- 1 : true'
- - message: None action can only be specified standalone, as
- it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions and
- actions to take on changes to those services This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecUnit is a systemd unit
- name and corresponding actions to take and is used in the
- NodeDisruptionPolicyConfig object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service. Service
- names should be of the format ${NAME}${SERVICETYPE} and
- can up to 255 characters long. ${NAME} must be atleast
- 1 character long and can only consist of alphabets, digits,
- ":", "-", "_", ".", and "\". ${SERVICETYPE} must be one
- of ".service", ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot", ".slice"
- or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected format
- is ${NAME}${SERVICETYPE}, where {NAME} must be atleast
- 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- observedConfig:
- description: observedConfig holds a sparse config that controller
- has observed from the cluster state. It exists in spec because
- it is an input to the level for the operator
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- operatorLogLevel:
- default: Normal
- description: "operatorLogLevel is an intent based logging for the
- operator itself. It does not give fine grained control, but it
- is a simple way to manage coarse grained logging choices that operators
- have to interpret for themselves. \n Valid values are: \"Normal\",
- \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- succeededRevisionLimit:
- description: succeededRevisionLimit is the number of successful static
- pod installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- unsupportedConfigOverrides:
- description: unsupportedConfigOverrides overrides the final configuration
- that was computed by the operator. Red Hat does not support the
- use of this field. Misuse of this field could lead to unexpected
- behavior or conflict with other configuration options. Seek guidance
- from the Red Hat support before using this field. Use of this property
- blocks cluster upgrades, it must be removed before upgrading your
- cluster.
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- type: object
- status:
- description: status is the most recently observed status of the Machine
- Config Operator
- properties:
- conditions:
- description: conditions is a list of conditions and their status
- items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
- properties:
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- nodeDisruptionPolicyStatus:
- description: nodeDisruptionPolicyStatus status reflects what the latest
- cluster-validated policies are, and will be used by the Machine
- Config Daemon during future node updates.
- properties:
- clusterPolicies:
- description: clusterPolicies is a merge of cluster default and
- user provided node disruption policies.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths
- items:
- description: NodeDisruptionPolicyStatusFile is a file entry
- and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus
- object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy
- will apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey is the overall sshkey MachineConfig definition
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same update
- that require a reboot, the reboot will supercede these
- actions. Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload, None and Special. reload/restart
- requires a corresponding service target specified
- in the reload/restart field. Other values require
- no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ?
- has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions
- and actions to take on changes to those services
- items:
- description: NodeDisruptionPolicyStatusUnit is a systemd
- unit name and corresponding actions to take and is used
- in the NodeDisruptionPolicyClusterStatus object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service.
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\". ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",
- ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device",
- ".mount", ".automount", ".swap", ".target", ".path",
- ".timer",".snapshot", ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- type: object
- observedGeneration:
- description: observedGeneration is the last generation change you've
- dealt with
- format: int64
- type: integer
- type: object
- required:
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index 36dc2f8cb3..0000000000
--- a/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,1237 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/1453
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: TechPreviewNoUpgrade
- name: machineconfigurations.operator.openshift.io
-spec:
- group: operator.openshift.io
- names:
- kind: MachineConfiguration
- listKind: MachineConfigurationList
- plural: machineconfigurations
- singular: machineconfiguration
- scope: Cluster
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: "MachineConfiguration provides information to configure an operator
- to manage Machine Configuration. \n Compatibility level 1: Stable within
- a major release for a minimum of 12 months or 3 minor releases (whichever
- is longer)."
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: spec is the specification of the desired behavior of the
- Machine Config Operator
- properties:
- failedRevisionLimit:
- description: failedRevisionLimit is the number of failed static pod
- installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- forceRedeploymentReason:
- description: forceRedeploymentReason can be used to force the redeployment
- of the operand by providing a unique string. This provides a mechanism
- to kick a previously failed deployment and provide a reason why
- you think it will work this time instead of failing again on the
- same config.
- type: string
- logLevel:
- default: Normal
- description: "logLevel is an intent based logging for an overall component.
- \ It does not give fine grained control, but it is a simple way
- to manage coarse grained logging choices that operators have to
- interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
- \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- managedBootImages:
- description: managedBootImages allows configuration for the management
- of boot images for machine resources within the cluster. This configuration
- allows users to select resources that should be updated to the latest
- boot images during cluster upgrades, ensuring that new machines
- always boot with the current cluster version's boot image. When
- omitted, no boot images will be updated.
- properties:
- machineManagers:
- description: machineManagers can be used to register machine management
- resources for boot image updates. The Machine Config Operator
- will watch for changes to this list. Only one entry is permitted
- per type of machine management resource.
- items:
- description: MachineManager describes a target machine resource
- that is registered for boot image updates. It stores identifying
- information such as the resource type and the API Group of
- the resource. It also provides granular control via the selection
- field.
- 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.
- enum:
- - machine.openshift.io
- type: string
- resource:
- description: resource is the machine management resource's
- type. The only current valid value is machinesets. machinesets
- means that the machine manager will only register resources
- of the kind MachineSet.
- enum:
- - machinesets
- type: string
- selection:
- description: selection allows granular control of the machine
- management resources that will be registered for boot
- image updates.
- properties:
- mode:
- description: mode determines how machine managers will
- be selected for updates. Valid values are All and
- Partial. All means that every resource matched by
- the machine manager will be updated. Partial requires
- specified selector(s) and allows customisation of
- which resources matched by the machine manager will
- be updated.
- enum:
- - All
- - Partial
- type: string
- partial:
- description: partial provides label selector(s) that
- can be used to match machine management resources.
- Only permitted when mode is set to "Partial".
- properties:
- machineResourceSelector:
- description: machineResourceSelector is a label
- selector that can be used to select machine resources
- like MachineSets.
- properties:
- matchExpressions:
- description: matchExpressions is a list of label
- selector requirements. The requirements are
- ANDed.
- items:
- description: A label selector requirement
- is a selector that contains values, a key,
- and an operator that relates the key and
- values.
- properties:
- key:
- description: key is the label key that
- the selector applies to.
- type: string
- operator:
- description: operator represents a key's
- relationship to a set of values. Valid
- operators are In, NotIn, Exists and
- DoesNotExist.
- type: string
- values:
- description: values is an array of string
- values. If the operator is In or NotIn,
- the values array must be non-empty.
- If the operator is Exists or DoesNotExist,
- the values array must be empty. This
- array is replaced during a strategic
- merge patch.
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- description: matchLabels is a map of {key,value}
- pairs. A single {key,value} in the matchLabels
- map is equivalent to an element of matchExpressions,
- whose key field is "key", the operator is
- "In", and the values array contains only "value".
- The requirements are ANDed.
- type: object
- type: object
- x-kubernetes-map-type: atomic
- required:
- - machineResourceSelector
- type: object
- required:
- - mode
- type: object
- x-kubernetes-validations:
- - message: Partial is required when type is partial, and
- forbidden otherwise
- rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial)
- : !has(self.partial)'
- required:
- - apiGroup
- - resource
- - selection
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - resource
- - apiGroup
- x-kubernetes-list-type: map
- type: object
- managementState:
- description: managementState indicates whether and how the operator
- should manage the component
- pattern: ^(Managed|Unmanaged|Force|Removed)$
- type: string
- nodeDisruptionPolicy:
- description: nodeDisruptionPolicy allows an admin to set granular
- node disruption actions for MachineConfig-based updates, such as
- drains, service reloads, etc. Specifying this will allow for less
- downtime when doing small configuration updates to the cluster.
- This configuration has no effect on cluster upgrades which will
- still incur node disruption where required.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecFile is a file entry and
- corresponding actions to take and is used in the NodeDisruptionPolicyConfig
- object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy will
- apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey maps to the ignition.sshkeys field in the
- MachineConfig object, definition an action for this will apply
- to all sshkey changes in the cluster
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that require
- a reboot, the reboot will supercede these actions. Valid
- actions are Reboot, Drain, Reload, DaemonReload and None.
- The Reboot action and the None action cannot be used in
- conjunction with any of the other actions. This list supports
- a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the reload/restart
- field. Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and forbidden
- otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart)
- : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self) ==
- 1 : true'
- - message: None action can only be specified standalone, as
- it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions and
- actions to take on changes to those services This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecUnit is a systemd unit
- name and corresponding actions to take and is used in the
- NodeDisruptionPolicyConfig object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service. Service
- names should be of the format ${NAME}${SERVICETYPE} and
- can up to 255 characters long. ${NAME} must be atleast
- 1 character long and can only consist of alphabets, digits,
- ":", "-", "_", ".", and "\". ${SERVICETYPE} must be one
- of ".service", ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot", ".slice"
- or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected format
- is ${NAME}${SERVICETYPE}, where {NAME} must be atleast
- 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- observedConfig:
- description: observedConfig holds a sparse config that controller
- has observed from the cluster state. It exists in spec because
- it is an input to the level for the operator
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- operatorLogLevel:
- default: Normal
- description: "operatorLogLevel is an intent based logging for the
- operator itself. It does not give fine grained control, but it
- is a simple way to manage coarse grained logging choices that operators
- have to interpret for themselves. \n Valid values are: \"Normal\",
- \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- succeededRevisionLimit:
- description: succeededRevisionLimit is the number of successful static
- pod installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- unsupportedConfigOverrides:
- description: unsupportedConfigOverrides overrides the final configuration
- that was computed by the operator. Red Hat does not support the
- use of this field. Misuse of this field could lead to unexpected
- behavior or conflict with other configuration options. Seek guidance
- from the Red Hat support before using this field. Use of this property
- blocks cluster upgrades, it must be removed before upgrading your
- cluster.
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- type: object
- status:
- description: status is the most recently observed status of the Machine
- Config Operator
- properties:
- conditions:
- description: conditions is a list of conditions and their status
- items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
- properties:
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- nodeDisruptionPolicyStatus:
- description: nodeDisruptionPolicyStatus status reflects what the latest
- cluster-validated policies are, and will be used by the Machine
- Config Daemon during future node updates.
- properties:
- clusterPolicies:
- description: clusterPolicies is a merge of cluster default and
- user provided node disruption policies.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths
- items:
- description: NodeDisruptionPolicyStatusFile is a file entry
- and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus
- object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy
- will apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey is the overall sshkey MachineConfig definition
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same update
- that require a reboot, the reboot will supercede these
- actions. Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload, None and Special. reload/restart
- requires a corresponding service target specified
- in the reload/restart field. Other values require
- no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ?
- has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions
- and actions to take on changes to those services
- items:
- description: NodeDisruptionPolicyStatusUnit is a systemd
- unit name and corresponding actions to take and is used
- in the NodeDisruptionPolicyClusterStatus object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service.
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\". ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",
- ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device",
- ".mount", ".automount", ".swap", ".target", ".path",
- ".timer",".snapshot", ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- type: object
- observedGeneration:
- description: observedGeneration is the last generation change you've
- dealt with
- format: int64
- type: integer
- type: object
- required:
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations.crd.yaml
similarity index 99%
rename from install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml
rename to install/0000_80_machine-config_01_machineconfigurations.crd.yaml
index f445bf8aec..09463d1971 100644
--- a/install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml
+++ b/install/0000_80_machine-config_01_machineconfigurations.crd.yaml
@@ -6,7 +6,6 @@ metadata:
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade
name: machineconfigurations.operator.openshift.io
spec:
group: operator.openshift.io
diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md
index 1459eaeadf..6823db505c 100644
--- a/vendor/github.com/openshift/api/features.md
+++ b/vendor/github.com/openshift/api/features.md
@@ -31,14 +31,12 @@
| InstallAlternateInfrastructureAWS| | | Enabled | Enabled | Enabled | Enabled |
| MachineAPIProviderOpenStack| | | Enabled | Enabled | Enabled | Enabled |
| MachineConfigNodes| | | Enabled | Enabled | Enabled | Enabled |
-| ManagedBootImages| | | Enabled | Enabled | Enabled | Enabled |
| ManagedBootImagesAWS| | | Enabled | Enabled | Enabled | Enabled |
| MaxUnavailableStatefulSet| | | Enabled | Enabled | Enabled | Enabled |
| MetricsCollectionProfiles| | | Enabled | Enabled | Enabled | Enabled |
| MixedCPUsAllocation| | | Enabled | Enabled | Enabled | Enabled |
| NetworkSegmentation| | | Enabled | Enabled | Enabled | Enabled |
| NewOLM| | | Enabled | Enabled | Enabled | Enabled |
-| NodeDisruptionPolicy| | | Enabled | Enabled | Enabled | Enabled |
| NodeSwap| | | Enabled | Enabled | Enabled | Enabled |
| OnClusterBuild| | | Enabled | Enabled | Enabled | Enabled |
| PersistentIPsForVirtualization| | | Enabled | Enabled | Enabled | Enabled |
@@ -46,6 +44,7 @@
| PlatformOperators| | | Enabled | Enabled | Enabled | Enabled |
| RouteExternalCertificate| | | Enabled | Enabled | Enabled | Enabled |
| ServiceAccountTokenNodeBinding| | | Enabled | Enabled | Enabled | Enabled |
+| SetEIPForNLBIngressController| | | Enabled | Enabled | Enabled | Enabled |
| SignatureStores| | | Enabled | Enabled | Enabled | Enabled |
| SigstoreImageVerification| | | Enabled | Enabled | Enabled | Enabled |
| TranslateStreamCloseWebsocketRequests| | | Enabled | Enabled | Enabled | Enabled |
@@ -70,9 +69,11 @@
| ExternalCloudProviderGCP| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| HardwareSpeed| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| KMSv1| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
+| ManagedBootImages| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| MetricsServer| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| NetworkDiagnosticsConfig| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| NetworkLiveMigration| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
+| NodeDisruptionPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| OpenShiftPodSecurityAdmission| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| PrivateHostedZoneAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| VSphereControlPlaneMachineSet| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
diff --git a/vendor/github.com/openshift/api/features/features.go b/vendor/github.com/openshift/api/features/features.go
index b8510a2a5c..03e3f61f14 100644
--- a/vendor/github.com/openshift/api/features/features.go
+++ b/vendor/github.com/openshift/api/features/features.go
@@ -57,6 +57,13 @@ var (
enableIn(configv1.DevPreviewNoUpgrade).
mustRegister()
+ FeatureGateSetEIPForNLBIngressController = newFeatureGate("SetEIPForNLBIngressController").
+ reportProblemsToJiraComponent("Networking / router").
+ contactPerson("miheer").
+ productScope(ocpSpecific).
+ enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ mustRegister()
+
FeatureGateOpenShiftPodSecurityAdmission = newFeatureGate("OpenShiftPodSecurityAdmission").
reportProblemsToJiraComponent("auth").
contactPerson("stlaz").
@@ -324,7 +331,7 @@ var (
reportProblemsToJiraComponent("MachineConfigOperator").
contactPerson("djoshy").
productScope(ocpSpecific).
- enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
mustRegister()
FeatureGateManagedBootImagesAWS = newFeatureGate("ManagedBootImagesAWS").
@@ -458,7 +465,7 @@ var (
reportProblemsToJiraComponent("MachineConfigOperator").
contactPerson("jerzhang").
productScope(ocpSpecific).
- enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
mustRegister()
FeatureGateMetricsCollectionProfiles = newFeatureGate("MetricsCollectionProfiles").
diff --git a/vendor/github.com/openshift/api/operator/v1/types_ingress.go b/vendor/github.com/openshift/api/operator/v1/types_ingress.go
index 5c9883a7f5..33ae3ec8db 100644
--- a/vendor/github.com/openshift/api/operator/v1/types_ingress.go
+++ b/vendor/github.com/openshift/api/operator/v1/types_ingress.go
@@ -391,6 +391,7 @@ var (
type CIDR string
// LoadBalancerStrategy holds parameters for a load balancer.
+// +kubebuilder:validation:XValidation:rule="!has(self.scope) || self.scope != 'Internal' || !has(self.providerParameters) || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer) || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)",message="eipAllocations are forbidden when the scope is Internal."
type LoadBalancerStrategy struct {
// scope indicates the scope at which the load balancer is exposed.
// Possible values are "External" and "Internal".
@@ -698,7 +699,10 @@ type AWSClassicLoadBalancerParameters struct {
}
// AWSNetworkLoadBalancerParameters holds configuration parameters for an
-// AWS Network load balancer.
+// AWS Network load balancer. For Example: Setting AWS EIPs https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+// +kubebuilder:validation:XValidation:rule=`has(self.subnets) && has(self.subnets.ids) && has(self.subnets.names) && has(self.eipAllocations) ? size(self.subnets.ids + self.subnets.names) == size(self.eipAllocations) : true`,message="number of subnets must be equal to number of eipAllocations"
+// +kubebuilder:validation:XValidation:rule=`has(self.subnets) && has(self.subnets.ids) && !has(self.subnets.names) && has(self.eipAllocations) ? size(self.subnets.ids) == size(self.eipAllocations) : true`,message="number of subnets must be equal to number of eipAllocations"
+// +kubebuilder:validation:XValidation:rule=`has(self.subnets) && has(self.subnets.names) && !has(self.subnets.ids) && has(self.eipAllocations) ? size(self.subnets.names) == size(self.eipAllocations) : true`,message="number of subnets must be equal to number of eipAllocations"
type AWSNetworkLoadBalancerParameters struct {
// subnets specifies the subnets to which the load balancer will
// attach. The subnets may be specified by either their
@@ -716,8 +720,48 @@ type AWSNetworkLoadBalancerParameters struct {
// +optional
// +openshift:enable:FeatureGate=IngressControllerLBSubnetsAWS
Subnets *AWSSubnets `json:"subnets,omitempty"`
+
+ // eipAllocations is a list of IDs for Elastic IP (EIP) addresses that
+ // are assigned to the Network Load Balancer.
+ // The following restrictions apply:
+ //
+ // eipAllocations can only be used with external scope, not internal.
+ // An EIP can be allocated to only a single IngressController.
+ // The number of EIP allocations must match the number of subnets that are used for the load balancer.
+ // Each EIP allocation must be unique.
+ // A maximum of 10 EIP allocations are permitted.
+ //
+ // See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html for general
+ // information about configuration, characteristics, and limitations of Elastic IP addresses.
+ //
+ // +openshift:enable:FeatureGate=SetEIPForNLBIngressController
+ // +optional
+ // +listType=atomic
+ // +kubebuilder:validation:XValidation:rule=`self.all(x, self.exists_one(y, x == y))`,message="eipAllocations cannot contain duplicates"
+ // +kubebuilder:validation:MaxItems=10
+ EIPAllocations []EIPAllocation `json:"eipAllocations"`
}
+// EIPAllocation is an ID for an Elastic IP (EIP) address that can be allocated to an ELB in the AWS environment.
+// Values must begin with `eipalloc-` followed by exactly 17 hexadecimal (`[0-9a-fA-F]`) characters.
+// + Explanation of the regex `^eipalloc-[0-9a-fA-F]{17}$` for validating value of the EIPAllocation:
+// + ^eipalloc- ensures the string starts with "eipalloc-".
+// + [0-9a-fA-F]{17} matches exactly 17 hexadecimal characters (0-9, a-f, A-F).
+// + $ ensures the string ends after the 17 hexadecimal characters.
+// + Example of Valid and Invalid values:
+// + eipalloc-1234567890abcdef1 is valid.
+// + eipalloc-1234567890abcde is not valid (too short).
+// + eipalloc-1234567890abcdefg is not valid (contains a non-hex character 'g').
+// + Max length is calculated as follows:
+// + eipalloc- = 9 chars and 17 hexadecimal chars after `-`
+// + So, total is 17 + 9 = 26 chars required for value of an EIPAllocation.
+//
+// +kubebuilder:validation:MinLength=26
+// +kubebuilder:validation:MaxLength=26
+// +kubebuilder:validation:XValidation:rule=`self.startsWith('eipalloc-')`,message="eipAllocations should start with 'eipalloc-'"
+// +kubebuilder:validation:XValidation:rule=`self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')`,message="eipAllocations must be 'eipalloc-' followed by exactly 17 hexadecimal characters (0-9, a-f, A-F)"
+type EIPAllocation string
+
// HostNetworkStrategy holds parameters for the HostNetwork endpoint publishing
// strategy.
type HostNetworkStrategy struct {
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml
index 69c18d48eb..4c5814e376 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml
@@ -368,6 +368,44 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
properties:
+ eipAllocations:
+ description: "eipAllocations is a list of IDs
+ for Elastic IP (EIP) addresses that are assigned
+ to the Network Load Balancer. The following
+ restrictions apply: \n eipAllocations can only
+ be used with external scope, not internal. An
+ EIP can be allocated to only a single IngressController.
+ The number of EIP allocations must match the
+ number of subnets that are used for the load
+ balancer. Each EIP allocation must be unique.
+ A maximum of 10 EIP allocations are permitted.
+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+ for general information about configuration,
+ characteristics, and limitations of Elastic
+ IP addresses."
+ items:
+ description: EIPAllocation is an ID for an Elastic
+ IP (EIP) address that can be allocated to
+ an ELB in the AWS environment. Values must
+ begin with `eipalloc-` followed by exactly
+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
+ maxLength: 26
+ minLength: 26
+ type: string
+ x-kubernetes-validations:
+ - message: eipAllocations should start with
+ 'eipalloc-'
+ rule: self.startsWith('eipalloc-')
+ - message: eipAllocations must be 'eipalloc-'
+ followed by exactly 17 hexadecimal characters
+ (0-9, a-f, A-F)
+ rule: self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
+ maxItems: 10
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-validations:
+ - message: eipAllocations cannot contain duplicates
+ rule: self.all(x, self.exists_one(y, x == y))
subnets:
description: "subnets specifies the subnets to
which the load balancer will attach. The subnets
@@ -444,6 +482,25 @@ spec:
rule: has(self.ids) && self.ids.size() > 0 ||
has(self.names) && self.names.size() > 0
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -547,6 +604,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
@@ -2172,6 +2234,44 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
properties:
+ eipAllocations:
+ description: "eipAllocations is a list of IDs
+ for Elastic IP (EIP) addresses that are assigned
+ to the Network Load Balancer. The following
+ restrictions apply: \n eipAllocations can only
+ be used with external scope, not internal. An
+ EIP can be allocated to only a single IngressController.
+ The number of EIP allocations must match the
+ number of subnets that are used for the load
+ balancer. Each EIP allocation must be unique.
+ A maximum of 10 EIP allocations are permitted.
+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+ for general information about configuration,
+ characteristics, and limitations of Elastic
+ IP addresses."
+ items:
+ description: EIPAllocation is an ID for an Elastic
+ IP (EIP) address that can be allocated to
+ an ELB in the AWS environment. Values must
+ begin with `eipalloc-` followed by exactly
+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
+ maxLength: 26
+ minLength: 26
+ type: string
+ x-kubernetes-validations:
+ - message: eipAllocations should start with
+ 'eipalloc-'
+ rule: self.startsWith('eipalloc-')
+ - message: eipAllocations must be 'eipalloc-'
+ followed by exactly 17 hexadecimal characters
+ (0-9, a-f, A-F)
+ rule: self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
+ maxItems: 10
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-validations:
+ - message: eipAllocations cannot contain duplicates
+ rule: self.all(x, self.exists_one(y, x == y))
subnets:
description: "subnets specifies the subnets to
which the load balancer will attach. The subnets
@@ -2248,6 +2348,25 @@ spec:
rule: has(self.ids) && self.ids.size() > 0 ||
has(self.names) && self.names.size() > 0
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -2351,6 +2470,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml
index ce41c4df03..8c4ecc8964 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml
@@ -293,6 +293,25 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -396,6 +415,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
@@ -1946,6 +1970,25 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -2049,6 +2092,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml
index 04d240a46f..8f6814700a 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml
@@ -368,6 +368,44 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
properties:
+ eipAllocations:
+ description: "eipAllocations is a list of IDs
+ for Elastic IP (EIP) addresses that are assigned
+ to the Network Load Balancer. The following
+ restrictions apply: \n eipAllocations can only
+ be used with external scope, not internal. An
+ EIP can be allocated to only a single IngressController.
+ The number of EIP allocations must match the
+ number of subnets that are used for the load
+ balancer. Each EIP allocation must be unique.
+ A maximum of 10 EIP allocations are permitted.
+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+ for general information about configuration,
+ characteristics, and limitations of Elastic
+ IP addresses."
+ items:
+ description: EIPAllocation is an ID for an Elastic
+ IP (EIP) address that can be allocated to
+ an ELB in the AWS environment. Values must
+ begin with `eipalloc-` followed by exactly
+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
+ maxLength: 26
+ minLength: 26
+ type: string
+ x-kubernetes-validations:
+ - message: eipAllocations should start with
+ 'eipalloc-'
+ rule: self.startsWith('eipalloc-')
+ - message: eipAllocations must be 'eipalloc-'
+ followed by exactly 17 hexadecimal characters
+ (0-9, a-f, A-F)
+ rule: self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
+ maxItems: 10
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-validations:
+ - message: eipAllocations cannot contain duplicates
+ rule: self.all(x, self.exists_one(y, x == y))
subnets:
description: "subnets specifies the subnets to
which the load balancer will attach. The subnets
@@ -444,6 +482,25 @@ spec:
rule: has(self.ids) && self.ids.size() > 0 ||
has(self.names) && self.names.size() > 0
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -547,6 +604,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
@@ -2172,6 +2234,44 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
properties:
+ eipAllocations:
+ description: "eipAllocations is a list of IDs
+ for Elastic IP (EIP) addresses that are assigned
+ to the Network Load Balancer. The following
+ restrictions apply: \n eipAllocations can only
+ be used with external scope, not internal. An
+ EIP can be allocated to only a single IngressController.
+ The number of EIP allocations must match the
+ number of subnets that are used for the load
+ balancer. Each EIP allocation must be unique.
+ A maximum of 10 EIP allocations are permitted.
+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+ for general information about configuration,
+ characteristics, and limitations of Elastic
+ IP addresses."
+ items:
+ description: EIPAllocation is an ID for an Elastic
+ IP (EIP) address that can be allocated to
+ an ELB in the AWS environment. Values must
+ begin with `eipalloc-` followed by exactly
+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
+ maxLength: 26
+ minLength: 26
+ type: string
+ x-kubernetes-validations:
+ - message: eipAllocations should start with
+ 'eipalloc-'
+ rule: self.startsWith('eipalloc-')
+ - message: eipAllocations must be 'eipalloc-'
+ followed by exactly 17 hexadecimal characters
+ (0-9, a-f, A-F)
+ rule: self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
+ maxItems: 10
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-validations:
+ - message: eipAllocations cannot contain duplicates
+ rule: self.all(x, self.exists_one(y, x == y))
subnets:
description: "subnets specifies the subnets to
which the load balancer will attach. The subnets
@@ -2248,6 +2348,25 @@ spec:
rule: has(self.ids) && self.ids.size() > 0 ||
has(self.names) && self.names.size() > 0
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -2351,6 +2470,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml
index 33a722a30e..9ea55a41c7 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml
@@ -368,6 +368,44 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
properties:
+ eipAllocations:
+ description: "eipAllocations is a list of IDs
+ for Elastic IP (EIP) addresses that are assigned
+ to the Network Load Balancer. The following
+ restrictions apply: \n eipAllocations can only
+ be used with external scope, not internal. An
+ EIP can be allocated to only a single IngressController.
+ The number of EIP allocations must match the
+ number of subnets that are used for the load
+ balancer. Each EIP allocation must be unique.
+ A maximum of 10 EIP allocations are permitted.
+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+ for general information about configuration,
+ characteristics, and limitations of Elastic
+ IP addresses."
+ items:
+ description: EIPAllocation is an ID for an Elastic
+ IP (EIP) address that can be allocated to
+ an ELB in the AWS environment. Values must
+ begin with `eipalloc-` followed by exactly
+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
+ maxLength: 26
+ minLength: 26
+ type: string
+ x-kubernetes-validations:
+ - message: eipAllocations should start with
+ 'eipalloc-'
+ rule: self.startsWith('eipalloc-')
+ - message: eipAllocations must be 'eipalloc-'
+ followed by exactly 17 hexadecimal characters
+ (0-9, a-f, A-F)
+ rule: self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
+ maxItems: 10
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-validations:
+ - message: eipAllocations cannot contain duplicates
+ rule: self.all(x, self.exists_one(y, x == y))
subnets:
description: "subnets specifies the subnets to
which the load balancer will attach. The subnets
@@ -444,6 +482,25 @@ spec:
rule: has(self.ids) && self.ids.size() > 0 ||
has(self.names) && self.names.size() > 0
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -547,6 +604,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
@@ -2172,6 +2234,44 @@ spec:
parameters for an AWS network load balancer. Present
only if type is NLB.
properties:
+ eipAllocations:
+ description: "eipAllocations is a list of IDs
+ for Elastic IP (EIP) addresses that are assigned
+ to the Network Load Balancer. The following
+ restrictions apply: \n eipAllocations can only
+ be used with external scope, not internal. An
+ EIP can be allocated to only a single IngressController.
+ The number of EIP allocations must match the
+ number of subnets that are used for the load
+ balancer. Each EIP allocation must be unique.
+ A maximum of 10 EIP allocations are permitted.
+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
+ for general information about configuration,
+ characteristics, and limitations of Elastic
+ IP addresses."
+ items:
+ description: EIPAllocation is an ID for an Elastic
+ IP (EIP) address that can be allocated to
+ an ELB in the AWS environment. Values must
+ begin with `eipalloc-` followed by exactly
+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
+ maxLength: 26
+ minLength: 26
+ type: string
+ x-kubernetes-validations:
+ - message: eipAllocations should start with
+ 'eipalloc-'
+ rule: self.startsWith('eipalloc-')
+ - message: eipAllocations must be 'eipalloc-'
+ followed by exactly 17 hexadecimal characters
+ (0-9, a-f, A-F)
+ rule: self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
+ maxItems: 10
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-validations:
+ - message: eipAllocations cannot contain duplicates
+ rule: self.all(x, self.exists_one(y, x == y))
subnets:
description: "subnets specifies the subnets to
which the load balancer will attach. The subnets
@@ -2248,6 +2348,25 @@ spec:
rule: has(self.ids) && self.ids.size() > 0 ||
has(self.names) && self.names.size() > 0
type: object
+ x-kubernetes-validations:
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids + self.subnets.names)
+ == size(self.eipAllocations) : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.ids)
+ && !has(self.subnets.names) && has(self.eipAllocations)
+ ? size(self.subnets.ids) == size(self.eipAllocations)
+ : true'
+ - message: number of subnets must be equal to number
+ of eipAllocations
+ rule: 'has(self.subnets) && has(self.subnets.names)
+ && !has(self.subnets.ids) && has(self.eipAllocations)
+ ? size(self.subnets.names) == size(self.eipAllocations)
+ : true'
type:
description: "type is the type of AWS load balancer
to instantiate for an ingresscontroller. \n Valid
@@ -2351,6 +2470,11 @@ spec:
- dnsManagementPolicy
- scope
type: object
+ x-kubernetes-validations:
+ - message: eipAllocations are forbidden when the scope is Internal.
+ rule: '!has(self.scope) || self.scope != ''Internal'' || !has(self.providerParameters)
+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
nodePort:
description: nodePort holds parameters for the NodePortService
endpoint publishing strategy. Present only if type is NodePortService.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml
deleted file mode 100644
index 9300526ebb..0000000000
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml
+++ /dev/null
@@ -1,203 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/1453
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: Default
- name: machineconfigurations.operator.openshift.io
-spec:
- group: operator.openshift.io
- names:
- kind: MachineConfiguration
- listKind: MachineConfigurationList
- plural: machineconfigurations
- singular: machineconfiguration
- scope: Cluster
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: "MachineConfiguration provides information to configure an operator
- to manage Machine Configuration. \n Compatibility level 1: Stable within
- a major release for a minimum of 12 months or 3 minor releases (whichever
- is longer)."
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: spec is the specification of the desired behavior of the
- Machine Config Operator
- properties:
- failedRevisionLimit:
- description: failedRevisionLimit is the number of failed static pod
- installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- forceRedeploymentReason:
- description: forceRedeploymentReason can be used to force the redeployment
- of the operand by providing a unique string. This provides a mechanism
- to kick a previously failed deployment and provide a reason why
- you think it will work this time instead of failing again on the
- same config.
- type: string
- logLevel:
- default: Normal
- description: "logLevel is an intent based logging for an overall component.
- \ It does not give fine grained control, but it is a simple way
- to manage coarse grained logging choices that operators have to
- interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
- \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- managementState:
- description: managementState indicates whether and how the operator
- should manage the component
- pattern: ^(Managed|Unmanaged|Force|Removed)$
- type: string
- observedConfig:
- description: observedConfig holds a sparse config that controller
- has observed from the cluster state. It exists in spec because
- it is an input to the level for the operator
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- operatorLogLevel:
- default: Normal
- description: "operatorLogLevel is an intent based logging for the
- operator itself. It does not give fine grained control, but it
- is a simple way to manage coarse grained logging choices that operators
- have to interpret for themselves. \n Valid values are: \"Normal\",
- \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- succeededRevisionLimit:
- description: succeededRevisionLimit is the number of successful static
- pod installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- unsupportedConfigOverrides:
- description: unsupportedConfigOverrides overrides the final configuration
- that was computed by the operator. Red Hat does not support the
- use of this field. Misuse of this field could lead to unexpected
- behavior or conflict with other configuration options. Seek guidance
- from the Red Hat support before using this field. Use of this property
- blocks cluster upgrades, it must be removed before upgrading your
- cluster.
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- type: object
- status:
- description: status is the most recently observed status of the Machine
- Config Operator
- properties:
- conditions:
- description: conditions is a list of conditions and their status
- items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
- properties:
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- observedGeneration:
- description: observedGeneration is the last generation change you've
- dealt with
- format: int64
- type: integer
- type: object
- required:
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index 02034dc3f2..0000000000
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,1237 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/1453
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: DevPreviewNoUpgrade
- name: machineconfigurations.operator.openshift.io
-spec:
- group: operator.openshift.io
- names:
- kind: MachineConfiguration
- listKind: MachineConfigurationList
- plural: machineconfigurations
- singular: machineconfiguration
- scope: Cluster
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: "MachineConfiguration provides information to configure an operator
- to manage Machine Configuration. \n Compatibility level 1: Stable within
- a major release for a minimum of 12 months or 3 minor releases (whichever
- is longer)."
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: spec is the specification of the desired behavior of the
- Machine Config Operator
- properties:
- failedRevisionLimit:
- description: failedRevisionLimit is the number of failed static pod
- installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- forceRedeploymentReason:
- description: forceRedeploymentReason can be used to force the redeployment
- of the operand by providing a unique string. This provides a mechanism
- to kick a previously failed deployment and provide a reason why
- you think it will work this time instead of failing again on the
- same config.
- type: string
- logLevel:
- default: Normal
- description: "logLevel is an intent based logging for an overall component.
- \ It does not give fine grained control, but it is a simple way
- to manage coarse grained logging choices that operators have to
- interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
- \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- managedBootImages:
- description: managedBootImages allows configuration for the management
- of boot images for machine resources within the cluster. This configuration
- allows users to select resources that should be updated to the latest
- boot images during cluster upgrades, ensuring that new machines
- always boot with the current cluster version's boot image. When
- omitted, no boot images will be updated.
- properties:
- machineManagers:
- description: machineManagers can be used to register machine management
- resources for boot image updates. The Machine Config Operator
- will watch for changes to this list. Only one entry is permitted
- per type of machine management resource.
- items:
- description: MachineManager describes a target machine resource
- that is registered for boot image updates. It stores identifying
- information such as the resource type and the API Group of
- the resource. It also provides granular control via the selection
- field.
- 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.
- enum:
- - machine.openshift.io
- type: string
- resource:
- description: resource is the machine management resource's
- type. The only current valid value is machinesets. machinesets
- means that the machine manager will only register resources
- of the kind MachineSet.
- enum:
- - machinesets
- type: string
- selection:
- description: selection allows granular control of the machine
- management resources that will be registered for boot
- image updates.
- properties:
- mode:
- description: mode determines how machine managers will
- be selected for updates. Valid values are All and
- Partial. All means that every resource matched by
- the machine manager will be updated. Partial requires
- specified selector(s) and allows customisation of
- which resources matched by the machine manager will
- be updated.
- enum:
- - All
- - Partial
- type: string
- partial:
- description: partial provides label selector(s) that
- can be used to match machine management resources.
- Only permitted when mode is set to "Partial".
- properties:
- machineResourceSelector:
- description: machineResourceSelector is a label
- selector that can be used to select machine resources
- like MachineSets.
- properties:
- matchExpressions:
- description: matchExpressions is a list of label
- selector requirements. The requirements are
- ANDed.
- items:
- description: A label selector requirement
- is a selector that contains values, a key,
- and an operator that relates the key and
- values.
- properties:
- key:
- description: key is the label key that
- the selector applies to.
- type: string
- operator:
- description: operator represents a key's
- relationship to a set of values. Valid
- operators are In, NotIn, Exists and
- DoesNotExist.
- type: string
- values:
- description: values is an array of string
- values. If the operator is In or NotIn,
- the values array must be non-empty.
- If the operator is Exists or DoesNotExist,
- the values array must be empty. This
- array is replaced during a strategic
- merge patch.
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- description: matchLabels is a map of {key,value}
- pairs. A single {key,value} in the matchLabels
- map is equivalent to an element of matchExpressions,
- whose key field is "key", the operator is
- "In", and the values array contains only "value".
- The requirements are ANDed.
- type: object
- type: object
- x-kubernetes-map-type: atomic
- required:
- - machineResourceSelector
- type: object
- required:
- - mode
- type: object
- x-kubernetes-validations:
- - message: Partial is required when type is partial, and
- forbidden otherwise
- rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial)
- : !has(self.partial)'
- required:
- - apiGroup
- - resource
- - selection
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - resource
- - apiGroup
- x-kubernetes-list-type: map
- type: object
- managementState:
- description: managementState indicates whether and how the operator
- should manage the component
- pattern: ^(Managed|Unmanaged|Force|Removed)$
- type: string
- nodeDisruptionPolicy:
- description: nodeDisruptionPolicy allows an admin to set granular
- node disruption actions for MachineConfig-based updates, such as
- drains, service reloads, etc. Specifying this will allow for less
- downtime when doing small configuration updates to the cluster.
- This configuration has no effect on cluster upgrades which will
- still incur node disruption where required.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecFile is a file entry and
- corresponding actions to take and is used in the NodeDisruptionPolicyConfig
- object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy will
- apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey maps to the ignition.sshkeys field in the
- MachineConfig object, definition an action for this will apply
- to all sshkey changes in the cluster
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that require
- a reboot, the reboot will supercede these actions. Valid
- actions are Reboot, Drain, Reload, DaemonReload and None.
- The Reboot action and the None action cannot be used in
- conjunction with any of the other actions. This list supports
- a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the reload/restart
- field. Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and forbidden
- otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart)
- : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self) ==
- 1 : true'
- - message: None action can only be specified standalone, as
- it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions and
- actions to take on changes to those services This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecUnit is a systemd unit
- name and corresponding actions to take and is used in the
- NodeDisruptionPolicyConfig object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service. Service
- names should be of the format ${NAME}${SERVICETYPE} and
- can up to 255 characters long. ${NAME} must be atleast
- 1 character long and can only consist of alphabets, digits,
- ":", "-", "_", ".", and "\". ${SERVICETYPE} must be one
- of ".service", ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot", ".slice"
- or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected format
- is ${NAME}${SERVICETYPE}, where {NAME} must be atleast
- 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- observedConfig:
- description: observedConfig holds a sparse config that controller
- has observed from the cluster state. It exists in spec because
- it is an input to the level for the operator
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- operatorLogLevel:
- default: Normal
- description: "operatorLogLevel is an intent based logging for the
- operator itself. It does not give fine grained control, but it
- is a simple way to manage coarse grained logging choices that operators
- have to interpret for themselves. \n Valid values are: \"Normal\",
- \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- succeededRevisionLimit:
- description: succeededRevisionLimit is the number of successful static
- pod installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- unsupportedConfigOverrides:
- description: unsupportedConfigOverrides overrides the final configuration
- that was computed by the operator. Red Hat does not support the
- use of this field. Misuse of this field could lead to unexpected
- behavior or conflict with other configuration options. Seek guidance
- from the Red Hat support before using this field. Use of this property
- blocks cluster upgrades, it must be removed before upgrading your
- cluster.
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- type: object
- status:
- description: status is the most recently observed status of the Machine
- Config Operator
- properties:
- conditions:
- description: conditions is a list of conditions and their status
- items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
- properties:
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- nodeDisruptionPolicyStatus:
- description: nodeDisruptionPolicyStatus status reflects what the latest
- cluster-validated policies are, and will be used by the Machine
- Config Daemon during future node updates.
- properties:
- clusterPolicies:
- description: clusterPolicies is a merge of cluster default and
- user provided node disruption policies.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths
- items:
- description: NodeDisruptionPolicyStatusFile is a file entry
- and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus
- object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy
- will apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey is the overall sshkey MachineConfig definition
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same update
- that require a reboot, the reboot will supercede these
- actions. Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload, None and Special. reload/restart
- requires a corresponding service target specified
- in the reload/restart field. Other values require
- no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ?
- has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions
- and actions to take on changes to those services
- items:
- description: NodeDisruptionPolicyStatusUnit is a systemd
- unit name and corresponding actions to take and is used
- in the NodeDisruptionPolicyClusterStatus object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service.
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\". ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",
- ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device",
- ".mount", ".automount", ".swap", ".target", ".path",
- ".timer",".snapshot", ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- type: object
- observedGeneration:
- description: observedGeneration is the last generation change you've
- dealt with
- format: int64
- type: integer
- type: object
- required:
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index 36dc2f8cb3..0000000000
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,1237 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/1453
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: TechPreviewNoUpgrade
- name: machineconfigurations.operator.openshift.io
-spec:
- group: operator.openshift.io
- names:
- kind: MachineConfiguration
- listKind: MachineConfigurationList
- plural: machineconfigurations
- singular: machineconfiguration
- scope: Cluster
- versions:
- - name: v1
- schema:
- openAPIV3Schema:
- description: "MachineConfiguration provides information to configure an operator
- to manage Machine Configuration. \n Compatibility level 1: Stable within
- a major release for a minimum of 12 months or 3 minor releases (whichever
- is longer)."
- properties:
- apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
- type: string
- kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
- type: string
- metadata:
- type: object
- spec:
- description: spec is the specification of the desired behavior of the
- Machine Config Operator
- properties:
- failedRevisionLimit:
- description: failedRevisionLimit is the number of failed static pod
- installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- forceRedeploymentReason:
- description: forceRedeploymentReason can be used to force the redeployment
- of the operand by providing a unique string. This provides a mechanism
- to kick a previously failed deployment and provide a reason why
- you think it will work this time instead of failing again on the
- same config.
- type: string
- logLevel:
- default: Normal
- description: "logLevel is an intent based logging for an overall component.
- \ It does not give fine grained control, but it is a simple way
- to manage coarse grained logging choices that operators have to
- interpret for their operands. \n Valid values are: \"Normal\", \"Debug\",
- \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- managedBootImages:
- description: managedBootImages allows configuration for the management
- of boot images for machine resources within the cluster. This configuration
- allows users to select resources that should be updated to the latest
- boot images during cluster upgrades, ensuring that new machines
- always boot with the current cluster version's boot image. When
- omitted, no boot images will be updated.
- properties:
- machineManagers:
- description: machineManagers can be used to register machine management
- resources for boot image updates. The Machine Config Operator
- will watch for changes to this list. Only one entry is permitted
- per type of machine management resource.
- items:
- description: MachineManager describes a target machine resource
- that is registered for boot image updates. It stores identifying
- information such as the resource type and the API Group of
- the resource. It also provides granular control via the selection
- field.
- 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.
- enum:
- - machine.openshift.io
- type: string
- resource:
- description: resource is the machine management resource's
- type. The only current valid value is machinesets. machinesets
- means that the machine manager will only register resources
- of the kind MachineSet.
- enum:
- - machinesets
- type: string
- selection:
- description: selection allows granular control of the machine
- management resources that will be registered for boot
- image updates.
- properties:
- mode:
- description: mode determines how machine managers will
- be selected for updates. Valid values are All and
- Partial. All means that every resource matched by
- the machine manager will be updated. Partial requires
- specified selector(s) and allows customisation of
- which resources matched by the machine manager will
- be updated.
- enum:
- - All
- - Partial
- type: string
- partial:
- description: partial provides label selector(s) that
- can be used to match machine management resources.
- Only permitted when mode is set to "Partial".
- properties:
- machineResourceSelector:
- description: machineResourceSelector is a label
- selector that can be used to select machine resources
- like MachineSets.
- properties:
- matchExpressions:
- description: matchExpressions is a list of label
- selector requirements. The requirements are
- ANDed.
- items:
- description: A label selector requirement
- is a selector that contains values, a key,
- and an operator that relates the key and
- values.
- properties:
- key:
- description: key is the label key that
- the selector applies to.
- type: string
- operator:
- description: operator represents a key's
- relationship to a set of values. Valid
- operators are In, NotIn, Exists and
- DoesNotExist.
- type: string
- values:
- description: values is an array of string
- values. If the operator is In or NotIn,
- the values array must be non-empty.
- If the operator is Exists or DoesNotExist,
- the values array must be empty. This
- array is replaced during a strategic
- merge patch.
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- description: matchLabels is a map of {key,value}
- pairs. A single {key,value} in the matchLabels
- map is equivalent to an element of matchExpressions,
- whose key field is "key", the operator is
- "In", and the values array contains only "value".
- The requirements are ANDed.
- type: object
- type: object
- x-kubernetes-map-type: atomic
- required:
- - machineResourceSelector
- type: object
- required:
- - mode
- type: object
- x-kubernetes-validations:
- - message: Partial is required when type is partial, and
- forbidden otherwise
- rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial)
- : !has(self.partial)'
- required:
- - apiGroup
- - resource
- - selection
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - resource
- - apiGroup
- x-kubernetes-list-type: map
- type: object
- managementState:
- description: managementState indicates whether and how the operator
- should manage the component
- pattern: ^(Managed|Unmanaged|Force|Removed)$
- type: string
- nodeDisruptionPolicy:
- description: nodeDisruptionPolicy allows an admin to set granular
- node disruption actions for MachineConfig-based updates, such as
- drains, service reloads, etc. Specifying this will allow for less
- downtime when doing small configuration updates to the cluster.
- This configuration has no effect on cluster upgrades which will
- still incur node disruption where required.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecFile is a file entry and
- corresponding actions to take and is used in the NodeDisruptionPolicyConfig
- object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy will
- apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey maps to the ignition.sshkeys field in the
- MachineConfig object, definition an action for this will apply
- to all sshkey changes in the cluster
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that require
- a reboot, the reboot will supercede these actions. Valid
- actions are Reboot, Drain, Reload, DaemonReload and None.
- The Reboot action and the None action cannot be used in
- conjunction with any of the other actions. This list supports
- a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted Service
- names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE}, where
- ${SERVICETYPE} must be one of ".service", ".socket",
- ".device", ".mount", ".automount", ".swap",
- ".target", ".path", ".timer",".snapshot", ".slice"
- or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the reload/restart
- field. Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and forbidden
- otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart)
- : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self) ==
- 1 : true'
- - message: None action can only be specified standalone, as
- it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions and
- actions to take on changes to those services This list supports
- a maximum of 50 entries.
- items:
- description: NodeDisruptionPolicySpecUnit is a systemd unit
- name and corresponding actions to take and is used in the
- NodeDisruptionPolicyConfig object
- properties:
- actions:
- description: actions represents the series of commands to
- be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that they
- are set in this list. If there are other incoming changes
- to other MachineConfig entries in the same update that
- require a reboot, the reboot will supercede these actions.
- Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and
- "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicySpecActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload and None. reload/restart requires
- a corresponding service target specified in the
- reload/restart field. Other values require no further
- configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload)
- : !has(self.reload)'
- - message: restart is required when type is Restart, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart'' ?
- has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self) ==
- 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service. Service
- names should be of the format ${NAME}${SERVICETYPE} and
- can up to 255 characters long. ${NAME} must be atleast
- 1 character long and can only consist of alphabets, digits,
- ":", "-", "_", ".", and "\". ${SERVICETYPE} must be one
- of ".service", ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot", ".slice"
- or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected format
- is ${NAME}${SERVICETYPE}, where {NAME} must be atleast
- 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 50
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- observedConfig:
- description: observedConfig holds a sparse config that controller
- has observed from the cluster state. It exists in spec because
- it is an input to the level for the operator
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- operatorLogLevel:
- default: Normal
- description: "operatorLogLevel is an intent based logging for the
- operator itself. It does not give fine grained control, but it
- is a simple way to manage coarse grained logging choices that operators
- have to interpret for themselves. \n Valid values are: \"Normal\",
- \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
- enum:
- - ""
- - Normal
- - Debug
- - Trace
- - TraceAll
- type: string
- succeededRevisionLimit:
- description: succeededRevisionLimit is the number of successful static
- pod installer revisions to keep on disk and in the api -1 = unlimited,
- 0 or unset = 5 (default)
- format: int32
- type: integer
- unsupportedConfigOverrides:
- description: unsupportedConfigOverrides overrides the final configuration
- that was computed by the operator. Red Hat does not support the
- use of this field. Misuse of this field could lead to unexpected
- behavior or conflict with other configuration options. Seek guidance
- from the Red Hat support before using this field. Use of this property
- blocks cluster upgrades, it must be removed before upgrading your
- cluster.
- nullable: true
- type: object
- x-kubernetes-preserve-unknown-fields: true
- type: object
- status:
- description: status is the most recently observed status of the Machine
- Config Operator
- properties:
- conditions:
- description: conditions is a list of conditions and their status
- items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
- properties:
- lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- nodeDisruptionPolicyStatus:
- description: nodeDisruptionPolicyStatus status reflects what the latest
- cluster-validated policies are, and will be used by the Machine
- Config Daemon during future node updates.
- properties:
- clusterPolicies:
- description: clusterPolicies is a merge of cluster default and
- user provided node disruption policies.
- properties:
- files:
- description: files is a list of MachineConfig file definitions
- and actions to take to changes on those paths
- items:
- description: NodeDisruptionPolicyStatusFile is a file entry
- and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus
- object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- path:
- description: path is the location of a file being managed
- through a MachineConfig. The Actions in the policy
- will apply to changes to the file at this path.
- type: string
- required:
- - actions
- - path
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - path
- x-kubernetes-list-type: map
- sshkey:
- description: sshkey is the overall sshkey MachineConfig definition
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same update
- that require a reboot, the reboot will supercede these
- actions. Valid actions are Reboot, Drain, Reload, DaemonReload
- and None. The Reboot action and the None action cannot
- be used in conjunction with any of the other actions.
- This list supports a maximum of 10 entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be reloaded
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to restart,
- only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name (e.g.
- crio.service) of the service to be restarted
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME}
- must be atleast 1 character long and can only
- consist of alphabets, digits, ":", "-", "_",
- ".", and "\". ${SERVICETYPE} must be one of
- ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path",
- ".timer", ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that will
- be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain, Reload,
- Restart, DaemonReload, None and Special. reload/restart
- requires a corresponding service target specified
- in the reload/restart field. Other values require
- no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload, and
- forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload'' ?
- has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- required:
- - actions
- type: object
- units:
- description: units is a list MachineConfig unit definitions
- and actions to take on changes to those services
- items:
- description: NodeDisruptionPolicyStatusUnit is a systemd
- unit name and corresponding actions to take and is used
- in the NodeDisruptionPolicyClusterStatus object
- properties:
- actions:
- description: actions represents the series of commands
- to be executed on changes to the file at the corresponding
- file path. Actions will be applied in the order that
- they are set in this list. If there are other incoming
- changes to other MachineConfig entries in the same
- update that require a reboot, the reboot will supercede
- these actions. Valid actions are Reboot, Drain, Reload,
- DaemonReload and None. The Reboot action and the None
- action cannot be used in conjunction with any of the
- other actions. This list supports a maximum of 10
- entries.
- items:
- properties:
- reload:
- description: reload specifies the service to reload,
- only valid if type is reload
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- reloaded Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- restart:
- description: restart specifies the service to
- restart, only valid if type is restart
- properties:
- serviceName:
- description: serviceName is the full name
- (e.g. crio.service) of the service to be
- restarted Service names should be of the
- format ${NAME}${SERVICETYPE} and can up
- to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".",
- and "\". ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer", ".snapshot",
- ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service
- name. Expected format is ${NAME}${SERVICETYPE},
- where ${SERVICETYPE} must be one of ".service",
- ".socket", ".device", ".mount", ".automount",
- ".swap", ".target", ".path", ".timer",".snapshot",
- ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name.
- Expected format is ${NAME}${SERVICETYPE},
- where {NAME} must be atleast 1 character
- long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - serviceName
- type: object
- type:
- description: type represents the commands that
- will be carried out if this NodeDisruptionPolicyStatusActionType
- is executed Valid values are Reboot, Drain,
- Reload, Restart, DaemonReload, None and Special.
- reload/restart requires a corresponding service
- target specified in the reload/restart field.
- Other values require no further configuration
- enum:
- - Reboot
- - Drain
- - Reload
- - Restart
- - DaemonReload
- - None
- - Special
- type: string
- required:
- - type
- type: object
- x-kubernetes-validations:
- - message: reload is required when type is Reload,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Reload''
- ? has(self.reload) : !has(self.reload)'
- - message: restart is required when type is Restart,
- and forbidden otherwise
- rule: 'has(self.type) && self.type == ''Restart''
- ? has(self.restart) : !has(self.restart)'
- maxItems: 10
- type: array
- x-kubernetes-list-type: atomic
- x-kubernetes-validations:
- - message: Reboot action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''Reboot'') ? size(self)
- == 1 : true'
- - message: None action can only be specified standalone,
- as it will override any other actions
- rule: 'self.exists(x, x.type==''None'') ? size(self)
- == 1 : true'
- name:
- description: name represents the service name of a systemd
- service managed through a MachineConfig Actions specified
- will be applied for changes to the named service.
- Service names should be of the format ${NAME}${SERVICETYPE}
- and can up to 255 characters long. ${NAME} must be
- atleast 1 character long and can only consist of alphabets,
- digits, ":", "-", "_", ".", and "\". ${SERVICETYPE}
- must be one of ".service", ".socket", ".device", ".mount",
- ".automount", ".swap", ".target", ".path", ".timer",
- ".snapshot", ".slice" or ".scope".
- maxLength: 255
- type: string
- x-kubernetes-validations:
- - message: Invalid ${SERVICETYPE} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE}
- must be one of ".service", ".socket", ".device",
- ".mount", ".automount", ".swap", ".target", ".path",
- ".timer",".snapshot", ".slice" or ".scope".
- rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$')
- - message: Invalid ${NAME} in service name. Expected
- format is ${NAME}${SERVICETYPE}, where {NAME} must
- be atleast 1 character long and can only consist
- of alphabets, digits, ":", "-", "_", ".", and "\"
- rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..')
- required:
- - actions
- - name
- type: object
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- type: object
- observedGeneration:
- description: observedGeneration is the last generation change you've
- dealt with
- format: int64
- type: integer
- type: object
- required:
- - spec
- type: object
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations.crd.yaml
similarity index 99%
rename from vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml
rename to vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations.crd.yaml
index f445bf8aec..09463d1971 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations.crd.yaml
@@ -6,7 +6,6 @@ metadata:
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade
name: machineconfigurations.operator.openshift.io
spec:
group: operator.openshift.io
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go
index 78ddf4ed8f..24be801a17 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go
@@ -85,6 +85,11 @@ func (in *AWSNetworkLoadBalancerParameters) DeepCopyInto(out *AWSNetworkLoadBala
*out = new(AWSSubnets)
(*in).DeepCopyInto(*out)
}
+ if in.EIPAllocations != nil {
+ in, out := &in.EIPAllocations, &out.EIPAllocations
+ *out = make([]EIPAllocation, len(*in))
+ copy(*out, *in)
+ }
return
}
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml
index 7d6e336989..595f49e276 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml
@@ -178,6 +178,7 @@ ingresscontrollers.operator.openshift.io:
Category: ""
FeatureGates:
- IngressControllerLBSubnetsAWS
+ - SetEIPForNLBIngressController
FilenameOperatorName: ingress
FilenameOperatorOrdering: "00"
FilenameRunLevel: "0000_50"
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go
index 198614d5e2..3700f2bd01 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go
@@ -741,8 +741,9 @@ func (AWSLoadBalancerParameters) SwaggerDoc() map[string]string {
}
var map_AWSNetworkLoadBalancerParameters = map[string]string{
- "": "AWSNetworkLoadBalancerParameters holds configuration parameters for an AWS Network load balancer.",
- "subnets": "subnets specifies the subnets to which the load balancer will attach. The subnets may be specified by either their ID or name. The total number of subnets is limited to 10.\n\nIn order for the load balancer to be provisioned with subnets, each subnet must exist, each subnet must be from a different availability zone, and the load balancer service must be recreated to pick up new values.\n\nWhen omitted from the spec, the subnets will be auto-discovered for each availability zone. Auto-discovered subnets are not reported in the status of the IngressController object.",
+ "": "AWSNetworkLoadBalancerParameters holds configuration parameters for an AWS Network load balancer. For Example: Setting AWS EIPs https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html",
+ "subnets": "subnets specifies the subnets to which the load balancer will attach. The subnets may be specified by either their ID or name. The total number of subnets is limited to 10.\n\nIn order for the load balancer to be provisioned with subnets, each subnet must exist, each subnet must be from a different availability zone, and the load balancer service must be recreated to pick up new values.\n\nWhen omitted from the spec, the subnets will be auto-discovered for each availability zone. Auto-discovered subnets are not reported in the status of the IngressController object.",
+ "eipAllocations": "eipAllocations is a list of IDs for Elastic IP (EIP) addresses that are assigned to the Network Load Balancer. The following restrictions apply:\n\neipAllocations can only be used with external scope, not internal. An EIP can be allocated to only a single IngressController. The number of EIP allocations must match the number of subnets that are used for the load balancer. Each EIP allocation must be unique. A maximum of 10 EIP allocations are permitted.\n\nSee https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html for general information about configuration, characteristics, and limitations of Elastic IP addresses.",
}
func (AWSNetworkLoadBalancerParameters) SwaggerDoc() map[string]string {
diff --git a/vendor/k8s.io/code-generator/generate-groups.sh b/vendor/k8s.io/code-generator/generate-groups.sh
old mode 100644
new mode 100755
diff --git a/vendor/k8s.io/code-generator/generate-internal-groups.sh b/vendor/k8s.io/code-generator/generate-internal-groups.sh
old mode 100644
new mode 100755
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 503b797819..7beb0bc411 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -962,7 +962,7 @@ github.com/opencontainers/runc/libcontainer/user
# github.com/opencontainers/runtime-spec v1.1.0
## explicit
github.com/opencontainers/runtime-spec/specs-go
-# github.com/openshift/api v0.0.0-20240723231418-442f06d7e03b
+# github.com/openshift/api v0.0.0-20240723231418-442f06d7e03b => github.com/djoshy/api v0.0.0-20240726175932-7e2935d5d809
## explicit; go 1.22.0
github.com/openshift/api
github.com/openshift/api/annotations
@@ -2527,3 +2527,4 @@ sigs.k8s.io/structured-merge-diff/v4/value
sigs.k8s.io/yaml
sigs.k8s.io/yaml/goyaml.v2
# k8s.io/kube-openapi => github.com/openshift/kube-openapi v0.0.0-20230816122517-ffc8f001abb0
+# github.com/openshift/api => github.com/djoshy/api v0.0.0-20240726175932-7e2935d5d809