Documentation
¶
Overview ¶
+kubebuilder:validation:Optional Package v1 is the v1 version of the API.
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type BuildProgress
- type CertExpiry
- type ContainerRuntimeConfig
- type ContainerRuntimeConfigCondition
- type ContainerRuntimeConfigList
- type ContainerRuntimeConfigSpec
- type ContainerRuntimeConfigStatus
- type ContainerRuntimeConfigStatusConditionType
- type ContainerRuntimeConfiguration
- type ContainerRuntimeDefaultRuntime
- type ContainerfileArch
- type ControllerCertificate
- type ControllerConfig
- type ControllerConfigList
- type ControllerConfigSpec
- type ControllerConfigStatus
- type ControllerConfigStatusCondition
- type ControllerConfigStatusConditionType
- type IPFamiliesType
- type ImageDigestFormat
- type ImageRegistryBundle
- type ImageSecretObjectReference
- type ImageTagFormat
- type InternalReleaseImageConditionType
- type IrreconcilableChangeDiff
- type KubeletConfig
- type KubeletConfigCondition
- type KubeletConfigList
- type KubeletConfigSpec
- type KubeletConfigStatus
- type KubeletConfigStatusConditionType
- type MCOObjectReference
- type MachineConfig
- type MachineConfigList
- type MachineConfigNode
- type MachineConfigNodeList
- type MachineConfigNodeSpec
- type MachineConfigNodeSpecConfigImage
- type MachineConfigNodeSpecMachineConfigVersion
- func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopy() *MachineConfigNodeSpecMachineConfigVersion
- func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeSpecMachineConfigVersion)
- func (MachineConfigNodeSpecMachineConfigVersion) SwaggerDoc() map[string]string
- type MachineConfigNodeStatus
- type MachineConfigNodeStatusConfigImage
- type MachineConfigNodeStatusInternalReleaseImage
- func (in *MachineConfigNodeStatusInternalReleaseImage) DeepCopy() *MachineConfigNodeStatusInternalReleaseImage
- func (in *MachineConfigNodeStatusInternalReleaseImage) DeepCopyInto(out *MachineConfigNodeStatusInternalReleaseImage)
- func (MachineConfigNodeStatusInternalReleaseImage) SwaggerDoc() map[string]string
- type MachineConfigNodeStatusInternalReleaseImageRef
- func (in *MachineConfigNodeStatusInternalReleaseImageRef) DeepCopy() *MachineConfigNodeStatusInternalReleaseImageRef
- func (in *MachineConfigNodeStatusInternalReleaseImageRef) DeepCopyInto(out *MachineConfigNodeStatusInternalReleaseImageRef)
- func (MachineConfigNodeStatusInternalReleaseImageRef) SwaggerDoc() map[string]string
- type MachineConfigNodeStatusMachineConfigVersion
- func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopy() *MachineConfigNodeStatusMachineConfigVersion
- func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeStatusMachineConfigVersion)
- func (MachineConfigNodeStatusMachineConfigVersion) SwaggerDoc() map[string]string
- type MachineConfigNodeStatusPinnedImageSet
- type MachineConfigPool
- type MachineConfigPoolCondition
- type MachineConfigPoolConditionType
- type MachineConfigPoolList
- type MachineConfigPoolReference
- type MachineConfigPoolSpec
- type MachineConfigPoolStatus
- type MachineConfigPoolStatusConfiguration
- type MachineConfigReference
- type MachineConfigSpec
- type MachineOSBuild
- type MachineOSBuildList
- type MachineOSBuildSpec
- type MachineOSBuildStatus
- type MachineOSBuilderReference
- type MachineOSConfig
- type MachineOSConfigList
- type MachineOSConfigReference
- type MachineOSConfigSpec
- type MachineOSConfigStatus
- type MachineOSContainerfile
- type MachineOSImageBuilder
- type MachineOSImageBuilderType
- type NetworkInfo
- type OSImageStreamReference
- type ObjectReference
- type PinnedImageRef
- type PinnedImageSet
- type PinnedImageSetList
- type PinnedImageSetRef
- type PinnedImageSetSpec
- type PoolSynchronizerStatus
- type PoolSynchronizerType
- type StateProgress
Constants ¶
const ( ContainerRuntimeDefaultRuntimeEmpty = "" ContainerRuntimeDefaultRuntimeRunc = "runc" ContainerRuntimeDefaultRuntimeCrun = "crun" ContainerRuntimeDefaultRuntimeDefault = ContainerRuntimeDefaultRuntimeCrun )
These constants are used in the Machine Config Operator (MCO)
const KubeletConfigRoleLabelPrefix = "pools.operator.machineconfiguration.openshift.io/"
KubeletConfigRoleLabelPrefix is the label that must be present in the KubeletConfig CR
const MachineConfigRoleLabelKey = "machineconfiguration.openshift.io/role"
MachineConfigRoleLabelKey is metadata key in the MachineConfig. Specifies the node role that config should be applied to. For example: `master` or `worker`
Variables ¶
var ( // GroupName is the group name of this api GroupName = "machineconfiguration.openshift.io" // GroupVersion is the version of this api group GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} // Install is a function which adds this version to a scheme Install = schemeBuilder.AddToScheme // SchemeGroupVersion is DEPRECATED SchemeGroupVersion = GroupVersion // AddToScheme is DEPRECATED AddToScheme = Install )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is used to validate existence of a resource in this API group
Types ¶
type BuildProgress ¶
type BuildProgress string
BuildProgess highlights some of the key phases of a build to be tracked in Conditions.
const ( // prepared indicates that the build has finished preparing. A build is prepared // by gathering the build inputs, validating them, and making sure we can do an update as specified. MachineOSBuildPrepared BuildProgress = "Prepared" // building indicates that the build has been kicked off with the specified image builder MachineOSBuilding BuildProgress = "Building" // failed indicates that during the build or preparation process, the build failed. MachineOSBuildFailed BuildProgress = "Failed" // interrupted indicates that the user stopped the build process by modifying part of the build config MachineOSBuildInterrupted BuildProgress = "Interrupted" // succeeded indicates that the build has completed and the image is ready to roll out. MachineOSBuildSucceeded BuildProgress = "Succeeded" )
type CertExpiry ¶
type CertExpiry struct {
// bundle is the name of the bundle in which the subject certificate resides
// +required
Bundle string `json:"bundle"`
// subject is the subject of the certificate
// +required
Subject string `json:"subject"`
// expiry is the date after which the certificate will no longer be valid
// +optional
Expiry *metav1.Time `json:"expiry"`
}
ceryExpiry contains the bundle name and the expiry date
func (*CertExpiry) DeepCopy ¶
func (in *CertExpiry) DeepCopy() *CertExpiry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertExpiry.
func (*CertExpiry) DeepCopyInto ¶
func (in *CertExpiry) DeepCopyInto(out *CertExpiry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (CertExpiry) SwaggerDoc ¶
func (CertExpiry) SwaggerDoc() map[string]string
type ContainerRuntimeConfig ¶
type ContainerRuntimeConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec contains the desired container runtime configuration.
// +required
Spec ContainerRuntimeConfigSpec `json:"spec"`
// status contains observed information about the container runtime configuration.
// +optional
Status ContainerRuntimeConfigStatus `json:"status"`
}
ContainerRuntimeConfig describes a customized Container Runtime configuration.
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +kubebuilder:object:root=true +kubebuilder:resource:path=containerruntimeconfigs,scope=Cluster,shortName=ctrcfg +kubebuilder:subresource:status +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/1453 +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 +kubebuilder:metadata:labels="openshift.io/operator-managed=" +openshift:compatibility-gen:level=1
func (*ContainerRuntimeConfig) DeepCopy ¶
func (in *ContainerRuntimeConfig) DeepCopy() *ContainerRuntimeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfig.
func (*ContainerRuntimeConfig) DeepCopyInto ¶
func (in *ContainerRuntimeConfig) DeepCopyInto(out *ContainerRuntimeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerRuntimeConfig) DeepCopyObject ¶
func (in *ContainerRuntimeConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (ContainerRuntimeConfig) SwaggerDoc ¶
func (ContainerRuntimeConfig) SwaggerDoc() map[string]string
type ContainerRuntimeConfigCondition ¶
type ContainerRuntimeConfigCondition struct {
// type specifies the state of the operator's reconciliation functionality.
// +optional
Type ContainerRuntimeConfigStatusConditionType `json:"type"`
// status of the condition, one of True, False, Unknown.
// +optional
Status corev1.ConditionStatus `json:"status,omitempty"`
// lastTransitionTime is the time of the last update to the current status object.
// +nullable
// +optional
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
// reason is the reason for the condition's last transition. Reasons are PascalCase
// +optional
Reason string `json:"reason,omitempty"`
// message provides additional information about the current condition.
// This is only to be consumed by humans.
// +optional
Message string `json:"message,omitempty"`
}
ContainerRuntimeConfigCondition defines the state of the ContainerRuntimeConfig
func (*ContainerRuntimeConfigCondition) DeepCopy ¶
func (in *ContainerRuntimeConfigCondition) DeepCopy() *ContainerRuntimeConfigCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigCondition.
func (*ContainerRuntimeConfigCondition) DeepCopyInto ¶
func (in *ContainerRuntimeConfigCondition) DeepCopyInto(out *ContainerRuntimeConfigCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ContainerRuntimeConfigCondition) SwaggerDoc ¶
func (ContainerRuntimeConfigCondition) SwaggerDoc() map[string]string
type ContainerRuntimeConfigList ¶
type ContainerRuntimeConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []ContainerRuntimeConfig `json:"items"`
}
ContainerRuntimeConfigList is a list of ContainerRuntimeConfig resources
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*ContainerRuntimeConfigList) DeepCopy ¶
func (in *ContainerRuntimeConfigList) DeepCopy() *ContainerRuntimeConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigList.
func (*ContainerRuntimeConfigList) DeepCopyInto ¶
func (in *ContainerRuntimeConfigList) DeepCopyInto(out *ContainerRuntimeConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerRuntimeConfigList) DeepCopyObject ¶
func (in *ContainerRuntimeConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (ContainerRuntimeConfigList) SwaggerDoc ¶
func (ContainerRuntimeConfigList) SwaggerDoc() map[string]string
type ContainerRuntimeConfigSpec ¶
type ContainerRuntimeConfigSpec struct {
// machineConfigPoolSelector selects which pools the ContainerRuntimeConfig shoud apply to.
// A nil selector will result in no pools being selected.
// +optional
MachineConfigPoolSelector *metav1.LabelSelector `json:"machineConfigPoolSelector,omitempty"`
// containerRuntimeConfig defines the tuneables of the container runtime.
// +required
ContainerRuntimeConfig *ContainerRuntimeConfiguration `json:"containerRuntimeConfig,omitempty"`
}
ContainerRuntimeConfigSpec defines the desired state of ContainerRuntimeConfig
func (*ContainerRuntimeConfigSpec) DeepCopy ¶
func (in *ContainerRuntimeConfigSpec) DeepCopy() *ContainerRuntimeConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigSpec.
func (*ContainerRuntimeConfigSpec) DeepCopyInto ¶
func (in *ContainerRuntimeConfigSpec) DeepCopyInto(out *ContainerRuntimeConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ContainerRuntimeConfigSpec) SwaggerDoc ¶
func (ContainerRuntimeConfigSpec) SwaggerDoc() map[string]string
type ContainerRuntimeConfigStatus ¶
type ContainerRuntimeConfigStatus struct {
// observedGeneration represents the generation observed by the controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// conditions represents the latest available observations of current state.
// +listType=atomic
// +optional
Conditions []ContainerRuntimeConfigCondition `json:"conditions"`
}
ContainerRuntimeConfigStatus defines the observed state of a ContainerRuntimeConfig
func (*ContainerRuntimeConfigStatus) DeepCopy ¶
func (in *ContainerRuntimeConfigStatus) DeepCopy() *ContainerRuntimeConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigStatus.
func (*ContainerRuntimeConfigStatus) DeepCopyInto ¶
func (in *ContainerRuntimeConfigStatus) DeepCopyInto(out *ContainerRuntimeConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ContainerRuntimeConfigStatus) SwaggerDoc ¶
func (ContainerRuntimeConfigStatus) SwaggerDoc() map[string]string
type ContainerRuntimeConfigStatusConditionType ¶
type ContainerRuntimeConfigStatusConditionType string
ContainerRuntimeConfigStatusConditionType is the state of the operator's reconciliation functionality.
const ( // ContainerRuntimeConfigSuccess designates a successful application of a ContainerRuntimeConfig CR. ContainerRuntimeConfigSuccess ContainerRuntimeConfigStatusConditionType = "Success" // ContainerRuntimeConfigFailure designates a failure applying a ContainerRuntimeConfig CR. ContainerRuntimeConfigFailure ContainerRuntimeConfigStatusConditionType = "Failure" )
type ContainerRuntimeConfiguration ¶
type ContainerRuntimeConfiguration struct {
// pidsLimit specifies the maximum number of processes allowed in a container
// +optional
PidsLimit *int64 `json:"pidsLimit,omitempty"`
// logLevel specifies the verbosity of the logs based on the level it is set to.
// Options are fatal, panic, error, warn, info, and debug.
// +optional
LogLevel string `json:"logLevel,omitempty"`
// logSizeMax specifies the Maximum size allowed for the container log file.
// Negative numbers indicate that no size limit is imposed.
// If it is positive, it must be >= 8192 to match/exceed conmon's read buffer.
// +optional
LogSizeMax *resource.Quantity `json:"logSizeMax,omitempty"`
// overlaySize specifies the maximum size of a container image.
// This flag can be used to set quota on the size of container images. (default: 10GB)
// +optional
OverlaySize *resource.Quantity `json:"overlaySize,omitempty"`
// defaultRuntime is the name of the OCI runtime to be used as the default for containers.
// Allowed values are `runc` and `crun`.
// When set to `runc`, OpenShift will use runc to execute the container
// When set to `crun`, OpenShift will use crun to execute the container
// When omitted, this means no opinion and the platform is left to choose a reasonable default,
// which is subject to change over time. Currently, the default is `crun`.
// +kubebuilder:validation:Enum=crun;runc
// +optional
DefaultRuntime ContainerRuntimeDefaultRuntime `json:"defaultRuntime,omitempty"`
}
ContainerRuntimeConfiguration defines the tuneables of the container runtime
func (*ContainerRuntimeConfiguration) DeepCopy ¶
func (in *ContainerRuntimeConfiguration) DeepCopy() *ContainerRuntimeConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfiguration.
func (*ContainerRuntimeConfiguration) DeepCopyInto ¶
func (in *ContainerRuntimeConfiguration) DeepCopyInto(out *ContainerRuntimeConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ContainerRuntimeConfiguration) SwaggerDoc ¶
func (ContainerRuntimeConfiguration) SwaggerDoc() map[string]string
type ContainerRuntimeDefaultRuntime ¶
type ContainerRuntimeDefaultRuntime string
type ContainerfileArch ¶
type ContainerfileArch string
+enum
const ( // describes the arm64 architecture Arm64 ContainerfileArch = "ARM64" // describes the amd64 architecture Amd64 ContainerfileArch = "AMD64" // describes the ppc64le architecture Ppc ContainerfileArch = "PPC64LE" // describes the s390x architecture S390 ContainerfileArch = "S390X" // describes a containerfile that can be applied to any arch NoArch ContainerfileArch = "NoArch" )
type ControllerCertificate ¶
type ControllerCertificate struct {
// subject is the cert subject
// +required
Subject string `json:"subject"`
// signer is the cert Issuer
// +required
Signer string `json:"signer"`
// notBefore is the lower boundary for validity
// +optional
NotBefore *metav1.Time `json:"notBefore,omitempty"`
// notAfter is the upper boundary for validity
// +optional
NotAfter *metav1.Time `json:"notAfter,omitempty"`
// bundleFile is the larger bundle a cert comes from
// +required
BundleFile string `json:"bundleFile"`
}
ControllerCertificate contains info about a specific cert.
func (*ControllerCertificate) DeepCopy ¶
func (in *ControllerCertificate) DeepCopy() *ControllerCertificate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerCertificate.
func (*ControllerCertificate) DeepCopyInto ¶
func (in *ControllerCertificate) DeepCopyInto(out *ControllerCertificate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ControllerCertificate) SwaggerDoc ¶
func (ControllerCertificate) SwaggerDoc() map[string]string
type ControllerConfig ¶
type ControllerConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec contains the desired controller config configuration.
// +required
Spec ControllerConfigSpec `json:"spec"`
// status contains observed information about the controller config.
// +optional
Status ControllerConfigStatus `json:"status"`
}
ControllerConfig describes configuration for MachineConfigController. This is currently only used to drive the MachineConfig objects generated by the TemplateController.
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*ControllerConfig) DeepCopy ¶
func (in *ControllerConfig) DeepCopy() *ControllerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfig.
func (*ControllerConfig) DeepCopyInto ¶
func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControllerConfig) DeepCopyObject ¶
func (in *ControllerConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (ControllerConfig) SwaggerDoc ¶
func (ControllerConfig) SwaggerDoc() map[string]string
type ControllerConfigList ¶
type ControllerConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []ControllerConfig `json:"items"`
}
ControllerConfigList is a list of ControllerConfig resources
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*ControllerConfigList) DeepCopy ¶
func (in *ControllerConfigList) DeepCopy() *ControllerConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigList.
func (*ControllerConfigList) DeepCopyInto ¶
func (in *ControllerConfigList) DeepCopyInto(out *ControllerConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControllerConfigList) DeepCopyObject ¶
func (in *ControllerConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (ControllerConfigList) SwaggerDoc ¶
func (ControllerConfigList) SwaggerDoc() map[string]string
type ControllerConfigSpec ¶
type ControllerConfigSpec struct {
// clusterDNSIP is the cluster DNS IP address
// +required
ClusterDNSIP string `json:"clusterDNSIP"`
// cloudProviderConfig is the configuration for the given cloud provider
// +required
CloudProviderConfig string `json:"cloudProviderConfig"`
// platform is deprecated, use Infra.Status.PlatformStatus.Type instead
// +optional
Platform string `json:"platform,omitempty"`
// etcdDiscoveryDomain is deprecated, use Infra.Status.EtcdDiscoveryDomain instead
// +optional
EtcdDiscoveryDomain string `json:"etcdDiscoveryDomain,omitempty"`
// kubeAPIServerServingCAData managed Kubelet to API Server Cert... Rotated automatically
// +required
KubeAPIServerServingCAData []byte `json:"kubeAPIServerServingCAData"`
// rootCAData specifies the root CA data
// +required
RootCAData []byte `json:"rootCAData"`
// cloudProviderCAData specifies the cloud provider CA data
// +required
// +nullable
CloudProviderCAData []byte `json:"cloudProviderCAData"`
// additionalTrustBundle is a certificate bundle that will be added to the nodes
// trusted certificate store.
// +required
// +nullable
AdditionalTrustBundle []byte `json:"additionalTrustBundle"`
// imageRegistryBundleUserData is Image Registry Data provided by the user
// +listType=atomic
// +optional
ImageRegistryBundleUserData []ImageRegistryBundle `json:"imageRegistryBundleUserData"`
// imageRegistryBundleData is the ImageRegistryData
// +listType=atomic
// +optional
ImageRegistryBundleData []ImageRegistryBundle `json:"imageRegistryBundleData"`
// pullSecret is the default pull secret that needs to be installed
// on all machines.
// +optional
PullSecret *corev1.ObjectReference `json:"pullSecret,omitempty"`
// internalRegistryPullSecret is the pull secret for the internal registry, used by
// rpm-ostree to pull images from the internal registry if present
// +optional
// +nullable
InternalRegistryPullSecret []byte `json:"internalRegistryPullSecret"`
// images is map of images that are used by the controller to render templates under ./templates/
// +required
Images map[string]string `json:"images"`
// baseOSContainerImage is the new-format container image for operating system updates.
// +required
BaseOSContainerImage string `json:"baseOSContainerImage"`
// baseOSExtensionsContainerImage is the matching extensions container for the new-format container
// +optional
BaseOSExtensionsContainerImage string `json:"baseOSExtensionsContainerImage"`
// osImageURL is the old-format container image that contains the OS update payload.
// +optional
OSImageURL string `json:"osImageURL"`
// releaseImage is the image used when installing the cluster
// +required
ReleaseImage string `json:"releaseImage"`
// proxy holds the current proxy configuration for the nodes
// +required
// +nullable
Proxy *configv1.ProxyStatus `json:"proxy"`
// infra holds the infrastructure details
// +kubebuilder:validation:EmbeddedResource
// +required
// +nullable
Infra *configv1.Infrastructure `json:"infra"`
// dns holds the cluster dns details
// +kubebuilder:validation:EmbeddedResource
// +required
// +nullable
DNS *configv1.DNS `json:"dns"`
// ipFamilies indicates the IP families in use by the cluster network
// +required
IPFamilies IPFamiliesType `json:"ipFamilies"`
// networkType holds the type of network the cluster is using
// XXX: this is temporary and will be dropped as soon as possible in favor of a better support
// to start network related services the proper way.
// Nobody is also changing this once the cluster is up and running the first time, so, disallow
// regeneration if this changes.
// +optional
NetworkType string `json:"networkType,omitempty"`
// network contains additional network related information
// +required
// +nullable
Network *NetworkInfo `json:"network"`
}
ControllerConfigSpec is the spec for ControllerConfig resource.
func (*ControllerConfigSpec) DeepCopy ¶
func (in *ControllerConfigSpec) DeepCopy() *ControllerConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigSpec.
func (*ControllerConfigSpec) DeepCopyInto ¶
func (in *ControllerConfigSpec) DeepCopyInto(out *ControllerConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ControllerConfigSpec) SwaggerDoc ¶
func (ControllerConfigSpec) SwaggerDoc() map[string]string
type ControllerConfigStatus ¶
type ControllerConfigStatus struct {
// observedGeneration represents the generation observed by the controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// conditions represents the latest available observations of current state.
// +listType=map
// +listMapKey=type
// +optional
Conditions []ControllerConfigStatusCondition `json:"conditions"`
// controllerCertificates represents the latest available observations of the automatically rotating certificates in the MCO.
// +listType=atomic
// +optional
ControllerCertificates []ControllerCertificate `json:"controllerCertificates"`
}
ControllerConfigStatus is the status for ControllerConfig
func (*ControllerConfigStatus) DeepCopy ¶
func (in *ControllerConfigStatus) DeepCopy() *ControllerConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigStatus.
func (*ControllerConfigStatus) DeepCopyInto ¶
func (in *ControllerConfigStatus) DeepCopyInto(out *ControllerConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ControllerConfigStatus) SwaggerDoc ¶
func (ControllerConfigStatus) SwaggerDoc() map[string]string
type ControllerConfigStatusCondition ¶
type ControllerConfigStatusCondition struct {
// type specifies the state of the operator's reconciliation functionality.
// +required
Type ControllerConfigStatusConditionType `json:"type"`
// status of the condition, one of True, False, Unknown.
// +required
Status corev1.ConditionStatus `json:"status"`
// lastTransitionTime is the time of the last update to the current status object.
// +required
// +nullable
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
// reason is the reason for the condition's last transition. Reasons are PascalCase
// +optional
Reason string `json:"reason,omitempty"`
// message provides additional information about the current condition.
// This is only to be consumed by humans.
// +optional
Message string `json:"message,omitempty"`
}
ControllerConfigStatusCondition contains condition information for ControllerConfigStatus
func (*ControllerConfigStatusCondition) DeepCopy ¶
func (in *ControllerConfigStatusCondition) DeepCopy() *ControllerConfigStatusCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigStatusCondition.
func (*ControllerConfigStatusCondition) DeepCopyInto ¶
func (in *ControllerConfigStatusCondition) DeepCopyInto(out *ControllerConfigStatusCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ControllerConfigStatusCondition) SwaggerDoc ¶
func (ControllerConfigStatusCondition) SwaggerDoc() map[string]string
type ControllerConfigStatusConditionType ¶
type ControllerConfigStatusConditionType string
ControllerConfigStatusConditionType valid conditions of a ControllerConfigStatus
const ( // TemplateControllerRunning means the template controller is currently running. TemplateControllerRunning ControllerConfigStatusConditionType = "TemplateControllerRunning" // TemplateControllerCompleted means the template controller has completed reconciliation. TemplateControllerCompleted ControllerConfigStatusConditionType = "TemplateControllerCompleted" // TemplateControllerFailing means the template controller is failing. TemplateControllerFailing ControllerConfigStatusConditionType = "TemplateControllerFailing" )
type IPFamiliesType ¶
type IPFamiliesType string
IPFamiliesType indicates whether the cluster network is IPv4-only, IPv6-only, or dual-stack
const ( IPFamiliesIPv4 IPFamiliesType = "IPv4" IPFamiliesIPv6 IPFamiliesType = "IPv6" IPFamiliesDualStack IPFamiliesType = "DualStack" IPFamiliesDualStackIPv6Primary IPFamiliesType = "DualStackIPv6Primary" )
type ImageDigestFormat ¶
type ImageDigestFormat string
ImageDigestFormat is a type that conforms to the format host[:port][/namespace]/name@sha256:<digest>. The digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the field must be between 1 to 447 characters. +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=447 +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long" +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
type ImageRegistryBundle ¶
type ImageRegistryBundle struct {
// file holds the name of the file where the bundle will be written to disk
// +required
File string `json:"file"`
// data holds the contents of the bundle that will be written to the file location
// +required
Data []byte `json:"data"`
}
ImageRegistryBundle contains information for writing image registry certificates
func (*ImageRegistryBundle) DeepCopy ¶
func (in *ImageRegistryBundle) DeepCopy() *ImageRegistryBundle
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageRegistryBundle.
func (*ImageRegistryBundle) DeepCopyInto ¶
func (in *ImageRegistryBundle) DeepCopyInto(out *ImageRegistryBundle)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ImageRegistryBundle) SwaggerDoc ¶
func (ImageRegistryBundle) SwaggerDoc() map[string]string
type ImageSecretObjectReference ¶
type ImageSecretObjectReference struct {
// name is the name of the secret used to push or pull this MachineOSConfig object.
// Must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character.
// This secret must be in the openshift-machine-config-operator namespace.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Name string `json:"name"`
}
Refers to the name of an image registry push/pull secret needed in the build process.
func (*ImageSecretObjectReference) DeepCopy ¶
func (in *ImageSecretObjectReference) DeepCopy() *ImageSecretObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSecretObjectReference.
func (*ImageSecretObjectReference) DeepCopyInto ¶
func (in *ImageSecretObjectReference) DeepCopyInto(out *ImageSecretObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ImageSecretObjectReference) SwaggerDoc ¶
func (ImageSecretObjectReference) SwaggerDoc() map[string]string
type ImageTagFormat ¶
type ImageTagFormat string
ImageTagFormat is a type that conforms to the format host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag>. The length of the field must be between 1 to 447 characters. +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=447 +kubebuilder:validation:XValidation:rule=`self.matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?(/[a-zA-Z0-9-_]{1,61})*/[a-zA-Z0-9-_.]+:[a-zA-Z0-9._-]+$') || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$')`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme. Or it must be a valid .svc followed by a port, repository, image name, and tag."
type InternalReleaseImageConditionType ¶
type InternalReleaseImageConditionType string
InternalReleaseImageConditionType is each possible state for each possible InternalReleaseImageBundleStatus conditions type. +enum
const ( // InternalReleaseImageConditionTypeMounted describes a new release, not yet installed, that has been discovered when an ISO has been attached to // the current node InternalReleaseImageConditionTypeMounted InternalReleaseImageConditionType = "Mounted" // InternalReleaseImageConditionTypeInstalling describes a new release that is getting installed on the current node. Due the size of the data // transfered, the operation could take several minutes InternalReleaseImageConditionTypeInstalling InternalReleaseImageConditionType = "Installing" // InternalReleaseImageConditionTypeAvailable describes a release that has been successfully installed on the current node, ready to be consumed InternalReleaseImageConditionTypeAvailable InternalReleaseImageConditionType = "Available" // InternalReleaseImageConditionTypeRemoving describes an existing release that is getting removed from the current node InternalReleaseImageConditionTypeRemoving InternalReleaseImageConditionType = "Removing" // InternalReleaseImageConditionTypeDegraded describes a failure for the current release InternalReleaseImageConditionTypeDegraded InternalReleaseImageConditionType = "Degraded" )
type IrreconcilableChangeDiff ¶
type IrreconcilableChangeDiff struct {
// fieldPath is a required reference to the path in the latest rendered MachineConfig that differs from this nodes
// configuration.
// Must not be empty and must not exceed 70 characters in length.
// Must begin with the prefix 'spec.' and only contain alphanumeric characters, square brackets ('[]'), or dots ('.').
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=70
// +kubebuilder:validation:XValidation:rule="self.startsWith('spec.')",message="The fieldPath must start with `spec.`"
// +kubebuilder:validation:XValidation:rule=`self.matches('^[\\da-zA-Z\\.\\[\\]]+$')`,message="The fieldPath must consist only of alphanumeric characters, brackets [] and dots ('.')."
FieldPath string `json:"fieldPath,omitempty"`
// diff is a required field containing the difference between the nodes current configuration and the latest
// rendered MachineConfig for the field specified in fieldPath.
// Must not be an empty string and must not exceed 4096 characters in length.
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=4096
Diff string `json:"diff,omitempty"`
}
IrreconcilableChangeDiff holds an individual diff between the initial install-time MachineConfig and the latest applied one caused by the presence of irreconcilable changes.
func (*IrreconcilableChangeDiff) DeepCopy ¶
func (in *IrreconcilableChangeDiff) DeepCopy() *IrreconcilableChangeDiff
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IrreconcilableChangeDiff.
func (*IrreconcilableChangeDiff) DeepCopyInto ¶
func (in *IrreconcilableChangeDiff) DeepCopyInto(out *IrreconcilableChangeDiff)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (IrreconcilableChangeDiff) SwaggerDoc ¶
func (IrreconcilableChangeDiff) SwaggerDoc() map[string]string
type KubeletConfig ¶
type KubeletConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec contains the desired kubelet configuration.
// +required
Spec KubeletConfigSpec `json:"spec"`
// status contains observed information about the kubelet configuration.
// +optional
Status KubeletConfigStatus `json:"status"`
}
KubeletConfig describes a customized Kubelet configuration.
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +kubebuilder:object:root=true +kubebuilder:resource:path=kubeletconfigs,scope=Cluster +kubebuilder:subresource:status +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/1453 +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 +kubebuilder:metadata:labels="openshift.io/operator-managed=" +openshift:compatibility-gen:level=1
func (*KubeletConfig) DeepCopy ¶
func (in *KubeletConfig) DeepCopy() *KubeletConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig.
func (*KubeletConfig) DeepCopyInto ¶
func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeletConfig) DeepCopyObject ¶
func (in *KubeletConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (KubeletConfig) SwaggerDoc ¶
func (KubeletConfig) SwaggerDoc() map[string]string
type KubeletConfigCondition ¶
type KubeletConfigCondition struct {
// type specifies the state of the operator's reconciliation functionality.
// +optional
Type KubeletConfigStatusConditionType `json:"type"`
// status of the condition, one of True, False, Unknown.
// +optional
Status corev1.ConditionStatus `json:"status,omitempty"`
// lastTransitionTime is the time of the last update to the current status object.
// +optional
// +nullable
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
// reason is the reason for the condition's last transition. Reasons are PascalCase
// +optional
Reason string `json:"reason,omitempty"`
// message provides additional information about the current condition.
// This is only to be consumed by humans.
// +optional
Message string `json:"message,omitempty"`
}
KubeletConfigCondition defines the state of the KubeletConfig
func (*KubeletConfigCondition) DeepCopy ¶
func (in *KubeletConfigCondition) DeepCopy() *KubeletConfigCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigCondition.
func (*KubeletConfigCondition) DeepCopyInto ¶
func (in *KubeletConfigCondition) DeepCopyInto(out *KubeletConfigCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (KubeletConfigCondition) SwaggerDoc ¶
func (KubeletConfigCondition) SwaggerDoc() map[string]string
type KubeletConfigList ¶
type KubeletConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []KubeletConfig `json:"items"`
}
KubeletConfigList is a list of KubeletConfig resources
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*KubeletConfigList) DeepCopy ¶
func (in *KubeletConfigList) DeepCopy() *KubeletConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigList.
func (*KubeletConfigList) DeepCopyInto ¶
func (in *KubeletConfigList) DeepCopyInto(out *KubeletConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeletConfigList) DeepCopyObject ¶
func (in *KubeletConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (KubeletConfigList) SwaggerDoc ¶
func (KubeletConfigList) SwaggerDoc() map[string]string
type KubeletConfigSpec ¶
type KubeletConfigSpec struct {
// +optional
AutoSizingReserved *bool `json:"autoSizingReserved,omitempty"`
// +optional
LogLevel *int32 `json:"logLevel,omitempty"`
// machineConfigPoolSelector selects which pools the KubeletConfig shoud apply to.
// A nil selector will result in no pools being selected.
// +optional
MachineConfigPoolSelector *metav1.LabelSelector `json:"machineConfigPoolSelector,omitempty"`
// kubeletConfig fields are defined in kubernetes upstream. Please refer to the types defined in the version/commit used by
// OpenShift of the upstream kubernetes. It's important to note that, since the fields of the kubelet configuration are directly fetched from
// upstream the validation of those values is handled directly by the kubelet. Please refer to the upstream version of the relevant kubernetes
// for the valid values of these fields. Invalid values of the kubelet configuration fields may render cluster nodes unusable.
// +optional
KubeletConfig *runtime.RawExtension `json:"kubeletConfig,omitempty"`
// If unset, the default is based on the apiservers.config.openshift.io/cluster resource.
// Note that only Old and Intermediate profiles are currently supported, and
// the maximum available minTLSVersion is VersionTLS12.
// +optional
TLSSecurityProfile *configv1.TLSSecurityProfile `json:"tlsSecurityProfile,omitempty"`
}
KubeletConfigSpec defines the desired state of KubeletConfig
func (*KubeletConfigSpec) DeepCopy ¶
func (in *KubeletConfigSpec) DeepCopy() *KubeletConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigSpec.
func (*KubeletConfigSpec) DeepCopyInto ¶
func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (KubeletConfigSpec) SwaggerDoc ¶
func (KubeletConfigSpec) SwaggerDoc() map[string]string
type KubeletConfigStatus ¶
type KubeletConfigStatus struct {
// observedGeneration represents the generation observed by the controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// conditions represents the latest available observations of current state.
// +optional
Conditions []KubeletConfigCondition `json:"conditions"`
}
KubeletConfigStatus defines the observed state of a KubeletConfig
func (*KubeletConfigStatus) DeepCopy ¶
func (in *KubeletConfigStatus) DeepCopy() *KubeletConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigStatus.
func (*KubeletConfigStatus) DeepCopyInto ¶
func (in *KubeletConfigStatus) DeepCopyInto(out *KubeletConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (KubeletConfigStatus) SwaggerDoc ¶
func (KubeletConfigStatus) SwaggerDoc() map[string]string
type KubeletConfigStatusConditionType ¶
type KubeletConfigStatusConditionType string
KubeletConfigStatusConditionType is the state of the operator's reconciliation functionality.
const ( // KubeletConfigSuccess designates a successful application of a KubeletConfig CR. KubeletConfigSuccess KubeletConfigStatusConditionType = "Success" // KubeletConfigFailure designates a failure applying a KubeletConfig CR. KubeletConfigFailure KubeletConfigStatusConditionType = "Failure" )
type MCOObjectReference ¶
type MCOObjectReference struct {
// name is the name of the object being referenced. For example, this can represent a machine
// config pool or node name.
// Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
// of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
// with an alphanumeric character, and be at most 253 characters in length.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Name string `json:"name"`
}
MCOObjectReference holds information about an object the MCO either owns or modifies in some way
func (*MCOObjectReference) DeepCopy ¶
func (in *MCOObjectReference) DeepCopy() *MCOObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCOObjectReference.
func (*MCOObjectReference) DeepCopyInto ¶
func (in *MCOObjectReference) DeepCopyInto(out *MCOObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MCOObjectReference) SwaggerDoc ¶
func (MCOObjectReference) SwaggerDoc() map[string]string
type MachineConfig ¶
type MachineConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +optional
Spec MachineConfigSpec `json:"spec"`
}
MachineConfig defines the configuration for a machine
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +kubebuilder:object:root=true +kubebuilder:resource:path=machineconfigs,scope=Cluster,shortName=mc +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/1453 +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 +kubebuilder:metadata:labels="openshift.io/operator-managed=" +kubebuilder:printcolumn:name=GeneratedByController,JSONPath=.metadata.annotations.machineconfiguration\.openshift\.io/generated-by-controller-version,type=string,description=Version of the controller that generated the machineconfig. This will be empty if the machineconfig is not managed by a controller. +kubebuilder:printcolumn:name=IgnitionVersion,JSONPath=.spec.config.ignition.version,type=string,description=Version of the Ignition Config defined in the machineconfig. +kubebuilder:printcolumn:name=Age,JSONPath=.metadata.creationTimestamp,type=date +openshift:compatibility-gen:level=1
func (*MachineConfig) DeepCopy ¶
func (in *MachineConfig) DeepCopy() *MachineConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfig.
func (*MachineConfig) DeepCopyInto ¶
func (in *MachineConfig) DeepCopyInto(out *MachineConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfig) DeepCopyObject ¶
func (in *MachineConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineConfig) SwaggerDoc ¶
func (MachineConfig) SwaggerDoc() map[string]string
type MachineConfigList ¶
type MachineConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []MachineConfig `json:"items"`
}
MachineConfigList is a list of MachineConfig resources
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*MachineConfigList) DeepCopy ¶
func (in *MachineConfigList) DeepCopy() *MachineConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigList.
func (*MachineConfigList) DeepCopyInto ¶
func (in *MachineConfigList) DeepCopyInto(out *MachineConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigList) DeepCopyObject ¶
func (in *MachineConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineConfigList) SwaggerDoc ¶
func (MachineConfigList) SwaggerDoc() map[string]string
type MachineConfigNode ¶
type MachineConfigNode struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object metadata.
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec describes the configuration of the machine config node.
// +required
Spec MachineConfigNodeSpec `json:"spec"`
// status describes the last observed state of this machine config node.
// +optional
Status MachineConfigNodeStatus `json:"status"`
}
MachineConfigNode describes the health of the Machines on the system Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1 +kubebuilder:validation:XValidation:rule="self.metadata.name == self.spec.node.name",message="spec.node.name should match metadata.name"
func (*MachineConfigNode) DeepCopy ¶
func (in *MachineConfigNode) DeepCopy() *MachineConfigNode
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNode.
func (*MachineConfigNode) DeepCopyInto ¶
func (in *MachineConfigNode) DeepCopyInto(out *MachineConfigNode)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigNode) DeepCopyObject ¶
func (in *MachineConfigNode) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineConfigNode) SwaggerDoc ¶
func (MachineConfigNode) SwaggerDoc() map[string]string
type MachineConfigNodeList ¶
type MachineConfigNodeList struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard list metadata.
// +optional
metav1.ListMeta `json:"metadata"`
// items contains a collection of MachineConfigNode resources.
// +kubebuilder:validation:MaxItems=100
// +optional
Items []MachineConfigNode `json:"items"`
}
MachineConfigNodeList describes all of the MachinesStates on the system
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*MachineConfigNodeList) DeepCopy ¶
func (in *MachineConfigNodeList) DeepCopy() *MachineConfigNodeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeList.
func (*MachineConfigNodeList) DeepCopyInto ¶
func (in *MachineConfigNodeList) DeepCopyInto(out *MachineConfigNodeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigNodeList) DeepCopyObject ¶
func (in *MachineConfigNodeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineConfigNodeList) SwaggerDoc ¶
func (MachineConfigNodeList) SwaggerDoc() map[string]string
type MachineConfigNodeSpec ¶
type MachineConfigNodeSpec struct {
// node contains a reference to the node for this machine config node.
// +required
Node MCOObjectReference `json:"node"`
// pool contains a reference to the machine config pool that this machine config node's
// referenced node belongs to.
// +required
Pool MCOObjectReference `json:"pool"`
// configVersion holds the desired config version for the node targeted by this machine config node resource.
// The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
// the new machine config against the current machine config.
// +required
ConfigVersion MachineConfigNodeSpecMachineConfigVersion `json:"configVersion"`
// configImage is an optional field for configuring the OS image to be used for this node. This field will only exist if the node belongs to a pool opted into on-cluster image builds, and will override any MachineConfig referenced OSImageURL fields
// When omitted, Image Mode is not be enabled and the node will follow the standard update process of creating a rendered MachineConfig and updating to its specifications.
// When specified, Image Mode is enabled and will attempt to update the node to use the desired image. Following this, the node will follow the standard update process of creating a rendered MachineConfig and updating to its specifications.
// +openshift:enable:FeatureGate=ImageModeStatusReporting
// +optional
ConfigImage MachineConfigNodeSpecConfigImage `json:"configImage,omitempty,omitzero"`
}
MachineConfigNodeSpec describes the MachineConfigNode we are managing.
func (*MachineConfigNodeSpec) DeepCopy ¶
func (in *MachineConfigNodeSpec) DeepCopy() *MachineConfigNodeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpec.
func (*MachineConfigNodeSpec) DeepCopyInto ¶
func (in *MachineConfigNodeSpec) DeepCopyInto(out *MachineConfigNodeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeSpec) SwaggerDoc ¶
func (MachineConfigNodeSpec) SwaggerDoc() map[string]string
type MachineConfigNodeSpecConfigImage ¶
type MachineConfigNodeSpecConfigImage struct {
// desiredImage is a required field that configures the image that the node should be updated to use.
// It must be a fully qualified OCI image pull spec of the format host[:port][/namespace]/name@sha256:, where the digest must be exactly 64 characters in length and consist only of lowercase hexadecimal characters, a-f and 0-9.
// desiredImage must not be an empty string and must not exceed 447 characters in length.
// +required
DesiredImage ImageDigestFormat `json:"desiredImage,omitempty"`
}
MachineConfigNodeSpecConfigImage holds the desired image for the node. This structure is populated from the `machineconfiguration.openshift.io/desiredImage` annotation on the target node, which is set by the Machine Config Pool controller to signal the desired image pullspec for the node to update to.
func (*MachineConfigNodeSpecConfigImage) DeepCopy ¶
func (in *MachineConfigNodeSpecConfigImage) DeepCopy() *MachineConfigNodeSpecConfigImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpecConfigImage.
func (*MachineConfigNodeSpecConfigImage) DeepCopyInto ¶
func (in *MachineConfigNodeSpecConfigImage) DeepCopyInto(out *MachineConfigNodeSpecConfigImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeSpecConfigImage) SwaggerDoc ¶
func (MachineConfigNodeSpecConfigImage) SwaggerDoc() map[string]string
type MachineConfigNodeSpecMachineConfigVersion ¶
type MachineConfigNodeSpecMachineConfigVersion struct {
// desired is the name of the machine config that the the node should be upgraded to.
// This value is set when the machine config pool generates a new version of its rendered configuration.
// When this value is changed, the machine config daemon starts the node upgrade process.
// This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
// Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
// of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
// with an alphanumeric character, and be at most 253 characters in length.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Desired string `json:"desired"`
}
MachineConfigNodeSpecMachineConfigVersion holds the desired config version for the current observed machine config node. When Current is not equal to Desired, the MachineConfigOperator is in an upgrade phase and the machine config node will take account of upgrade related events. Otherwise, they will be ignored given that certain operations happen both during the MCO's upgrade mode and the daily operations mode.
func (*MachineConfigNodeSpecMachineConfigVersion) DeepCopy ¶
func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopy() *MachineConfigNodeSpecMachineConfigVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpecMachineConfigVersion.
func (*MachineConfigNodeSpecMachineConfigVersion) DeepCopyInto ¶
func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeSpecMachineConfigVersion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeSpecMachineConfigVersion) SwaggerDoc ¶
func (MachineConfigNodeSpecMachineConfigVersion) SwaggerDoc() map[string]string
type MachineConfigNodeStatus ¶
type MachineConfigNodeStatus struct {
// conditions represent the observations of a machine config node's current state. Valid types are:
// UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
// Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
// and PinnedImageSetsDegraded.
// The following types are only available when the ImageModeStatusReporting feature gate is enabled: ImagePulledFromRegistry,
// AppliedOSImage, AppliedFiles
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=20
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
// This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
// +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="observedGeneration must not decrease"
// +kubebuilder:validation:Minimum=1
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// configVersion describes the current and desired machine config version for this node.
// +optional
ConfigVersion *MachineConfigNodeStatusMachineConfigVersion `json:"configVersion,omitempty"`
// configImage is an optional field for configuring the OS image to be used for this node. This field will only exist if the node belongs to a pool opted into on-cluster image builds, and will override any MachineConfig referenced OSImageURL fields.
// When omitted, this means that the Image Mode feature is not being used and the node will be up to date with the specific current rendered config version for the nodes MachinePool.
// When specified, the Image Mode feature is enabled and the contents of this field show the observed state of the node image.
// When Image Mode is enabled and a new MachineConfig is applied such that a new OS image build is not created, only the configVersion field will change.
// When Image Mode is enabled and a new MachineConfig is applied such that a new OS image build is created, then only the configImage field will change. It is also possible that both the configImage
// and configVersion change during the same update.
// +openshift:enable:FeatureGate=ImageModeStatusReporting
// +optional
ConfigImage MachineConfigNodeStatusConfigImage `json:"configImage,omitempty,omitzero"`
// pinnedImageSets describes the current and desired pinned image sets for this node.
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MaxItems=100
// +optional
PinnedImageSets []MachineConfigNodeStatusPinnedImageSet `json:"pinnedImageSets,omitempty"`
// irreconcilableChanges is an optional field that contains the observed differences between this nodes
// configuration and the target rendered MachineConfig.
// This field will be set when there are changes to the target rendered MachineConfig that can only be applied to
// new nodes joining the cluster.
// Entries must be unique, keyed on the fieldPath field.
// Must not exceed 32 entries.
// +listType=map
// +listMapKey=fieldPath
// +openshift:enable:FeatureGate=IrreconcilableMachineConfig
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=32
// +optional
IrreconcilableChanges []IrreconcilableChangeDiff `json:"irreconcilableChanges,omitempty"`
// internalReleaseImage describes the status of the release payloads stored in the node.
// When specified, an internalReleaseImage custom resource exists on the cluster, and the specified images will be made available on the control plane nodes.
// This field will reflect the actual on-disk state of those release images.
// +openshift:enable:FeatureGate=NoRegistryClusterInstall
// +optional
InternalReleaseImage MachineConfigNodeStatusInternalReleaseImage `json:"internalReleaseImage,omitzero,omitempty"`
}
MachineConfigNodeStatus holds the reported information on a particular machine config node.
func (*MachineConfigNodeStatus) DeepCopy ¶
func (in *MachineConfigNodeStatus) DeepCopy() *MachineConfigNodeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatus.
func (*MachineConfigNodeStatus) DeepCopyInto ¶
func (in *MachineConfigNodeStatus) DeepCopyInto(out *MachineConfigNodeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeStatus) SwaggerDoc ¶
func (MachineConfigNodeStatus) SwaggerDoc() map[string]string
type MachineConfigNodeStatusConfigImage ¶
type MachineConfigNodeStatusConfigImage struct {
// currentImage is an optional field that represents the current image that is applied to the node.
// When omitted, this means that no image updates have been applied to the node and it will be up to date with the specific current rendered config version.
// When specified, this means that the node is currently using this image.
// currentImage must be a fully qualified OCI image pull spec of the format host[:port][/namespace]/name@sha256:, where the digest must be exactly 64 characters in length and consist only of lowercase hexadecimal characters, a-f and 0-9.
// currentImage must not be an empty string and must not exceed 447 characters in length.
// +optional
CurrentImage ImageDigestFormat `json:"currentImage,omitzero,omitempty"`
// desiredImage is an optional field that represents the currently observed state of image that the node should be updated to use.
// When not specified, this means that Image Mode has been disabled and the node will up to date with the specific current rendered config version.
// When specified, this means that Image Mode has been enabled and the node is actively progressing to update the node to this image.
// If currentImage and desiredImage match, the node has been successfully updated to use the desired image.
// desiredImage must be a fully qualified OCI image pull spec of the format host[:port][/namespace]/name@sha256:, where the digest must be exactly 64 characters in length and consist only of lowercase hexadecimal characters, a-f and 0-9.
// desiredImage must not be an empty string and must not exceed 447 characters in length.
// +optional
DesiredImage ImageDigestFormat `json:"desiredImage,omitzero,omitempty"`
}
MachineConfigNodeStatusConfigImage holds the observed state of the image on the node, including both the image targeted for an update and the image currently applied. This allows for monitoring the progress of the layering rollout. If Image Mode is enabled, desiredImage must be defined. +kubebuilder:validation:MinProperties:=1
func (*MachineConfigNodeStatusConfigImage) DeepCopy ¶
func (in *MachineConfigNodeStatusConfigImage) DeepCopy() *MachineConfigNodeStatusConfigImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusConfigImage.
func (*MachineConfigNodeStatusConfigImage) DeepCopyInto ¶
func (in *MachineConfigNodeStatusConfigImage) DeepCopyInto(out *MachineConfigNodeStatusConfigImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeStatusConfigImage) SwaggerDoc ¶
func (MachineConfigNodeStatusConfigImage) SwaggerDoc() map[string]string
type MachineConfigNodeStatusInternalReleaseImage ¶
type MachineConfigNodeStatusInternalReleaseImage struct {
// releases is a list of the release bundles currently owned and managed by the
// cluster.
// A release bundle content could be safely pulled only when its Conditions field
// contains at least an Available entry set to "True" and Degraded to "False".
// Entries must be unique, keyed on the name field.
// releases must contain at least one entry and must not exceed 32 entries.
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=32
// +required
Releases []MachineConfigNodeStatusInternalReleaseImageRef `json:"releases,omitempty"`
}
MachineConfigNodeStatusInternalReleaseImage holds information about the current and discovered release bundles for the observed machine config node.
func (*MachineConfigNodeStatusInternalReleaseImage) DeepCopy ¶
func (in *MachineConfigNodeStatusInternalReleaseImage) DeepCopy() *MachineConfigNodeStatusInternalReleaseImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusInternalReleaseImage.
func (*MachineConfigNodeStatusInternalReleaseImage) DeepCopyInto ¶
func (in *MachineConfigNodeStatusInternalReleaseImage) DeepCopyInto(out *MachineConfigNodeStatusInternalReleaseImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeStatusInternalReleaseImage) SwaggerDoc ¶
func (MachineConfigNodeStatusInternalReleaseImage) SwaggerDoc() map[string]string
type MachineConfigNodeStatusInternalReleaseImageRef ¶
type MachineConfigNodeStatusInternalReleaseImageRef struct {
// conditions represent the observations of an internal release image current state. Valid types are:
// Mounted, Installing, Available, Removing and Degraded.
//
// If Mounted is true, that means that a valid ISO has been mounted on the current node.
// If Installing is true, that means that a new release bundle is currently being copied on the current node, and not yet completed.
// If Available is true, it means that the release has been previously installed on the current node, and it can be used.
// If Removing is true, it means that a release deletion is in progress on the current node, and not yet completed.
// If Degraded is true, that means something has gone wrong in the current node.
//
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=5
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
// The expected name format is ocp-release-bundle-<version>-<arch|stream>.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=64
// +kubebuilder:validation:XValidation:rule=`self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')`,message="must be ocp-release-bundle-<version>-<arch|stream> and <= 64 chars"
// +required
Name string `json:"name,omitempty"`
// image is an OCP release image referenced by digest.
// The format of the image pull spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// The field is optional, and it will be provided after a release will be successfully installed.
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=447
// +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
// +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
// +optional
Image string `json:"image,omitempty"`
}
MachineConfigNodeStatusInternalReleaseImageRef is used to provide a more detailed reference for a release bundle.
func (*MachineConfigNodeStatusInternalReleaseImageRef) DeepCopy ¶
func (in *MachineConfigNodeStatusInternalReleaseImageRef) DeepCopy() *MachineConfigNodeStatusInternalReleaseImageRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusInternalReleaseImageRef.
func (*MachineConfigNodeStatusInternalReleaseImageRef) DeepCopyInto ¶
func (in *MachineConfigNodeStatusInternalReleaseImageRef) DeepCopyInto(out *MachineConfigNodeStatusInternalReleaseImageRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeStatusInternalReleaseImageRef) SwaggerDoc ¶
func (MachineConfigNodeStatusInternalReleaseImageRef) SwaggerDoc() map[string]string
type MachineConfigNodeStatusMachineConfigVersion ¶
type MachineConfigNodeStatusMachineConfigVersion struct {
// current is the name of the machine config currently in use on the node.
// This value is updated once the machine config daemon has completed the update of the configuration for the node.
// This value should match the desired version unless an upgrade is in progress.
// Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
// of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
// with an alphanumeric character, and be at most 253 characters in length.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +optional
Current string `json:"current"`
// desired is the MachineConfig the node wants to upgrade to.
// This value gets set in the machine config node status once the machine config has been validated
// against the current machine config.
// Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
// of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
// with an alphanumeric character, and be at most 253 characters in length.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Desired string `json:"desired"`
}
MachineConfigNodeStatusMachineConfigVersion holds the current and desired config versions as last updated in the MCN status. When the current and desired versions do not match, the machine config pool is processing an upgrade and the machine config node will monitor the upgrade process. When the current and desired versions do match, the machine config node will ignore these events given that certain operations happen both during the MCO's upgrade mode and the daily operations mode.
func (*MachineConfigNodeStatusMachineConfigVersion) DeepCopy ¶
func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopy() *MachineConfigNodeStatusMachineConfigVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusMachineConfigVersion.
func (*MachineConfigNodeStatusMachineConfigVersion) DeepCopyInto ¶
func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeStatusMachineConfigVersion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeStatusMachineConfigVersion) SwaggerDoc ¶
func (MachineConfigNodeStatusMachineConfigVersion) SwaggerDoc() map[string]string
type MachineConfigNodeStatusPinnedImageSet ¶
type MachineConfigNodeStatusPinnedImageSet struct {
// name is the name of the pinned image set.
// Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
// of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
// with an alphanumeric character, and be at most 253 characters in length.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Name string `json:"name"`
// currentGeneration is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node.
// +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="currentGeneration must not decrease"
// +kubebuilder:validation:Minimum=1
// +optional
CurrentGeneration int32 `json:"currentGeneration,omitempty"`
// desiredGeneration is the generation of the pinned image set that is targeted to be pulled and pinned on this node.
// +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="desiredGeneration must not decrease"
// +kubebuilder:validation:Minimum=1
// +optional
DesiredGeneration int32 `json:"desiredGeneration,omitempty"`
// lastFailedGeneration is the generation of the most recent pinned image set that failed to be pulled and pinned on this node.
// +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="lastFailedGeneration must not decrease"
// +kubebuilder:validation:Minimum=1
// +optional
LastFailedGeneration int32 `json:"lastFailedGeneration,omitempty"`
// lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
// The error is an empty string if the image pull and pin is successful.
// +kubebuilder:validation:MaxLength=32768
// +optional
LastFailedGenerationError string `json:"lastFailedGenerationError,omitempty"`
}
MachineConfigNodeStatusPinnedImageSet holds information about the current, desired, and failed pinned image sets for the observed machine config node. +kubebuilder:validation:XValidation:rule="has(self.desiredGeneration) && has(self.currentGeneration) ? self.desiredGeneration >= self.currentGeneration : true",message="desired generation must be greater than or equal to the current generation" +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) && has(self.desiredGeneration) ? self.desiredGeneration >= self.lastFailedGeneration : true",message="desired generation must be greater than or equal to the last failed generation" +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError) : true",message="last failed generation error must be defined on image pull and pin failure"
func (*MachineConfigNodeStatusPinnedImageSet) DeepCopy ¶
func (in *MachineConfigNodeStatusPinnedImageSet) DeepCopy() *MachineConfigNodeStatusPinnedImageSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusPinnedImageSet.
func (*MachineConfigNodeStatusPinnedImageSet) DeepCopyInto ¶
func (in *MachineConfigNodeStatusPinnedImageSet) DeepCopyInto(out *MachineConfigNodeStatusPinnedImageSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeStatusPinnedImageSet) SwaggerDoc ¶
func (MachineConfigNodeStatusPinnedImageSet) SwaggerDoc() map[string]string
type MachineConfigPool ¶
type MachineConfigPool struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec contains the desired machine config pool configuration.
// +required
Spec MachineConfigPoolSpec `json:"spec"`
// status contains observed information about the machine config pool.
// +optional
Status MachineConfigPoolStatus `json:"status"`
}
MachineConfigPool describes a pool of MachineConfigs.
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +kubebuilder:object:root=true +kubebuilder:resource:path=machineconfigpools,scope=Cluster,shortName=mcp +kubebuilder:subresource:status +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/1453 +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 +kubebuilder:metadata:labels="openshift.io/operator-managed=" +kubebuilder:printcolumn:name=Config,JSONPath=.status.configuration.name,type=string +kubebuilder:printcolumn:name=Updated,JSONPath=.status.conditions[?(@.type=="Updated")].status,type=string,description=When all the machines in the pool are updated to the correct machine config. +kubebuilder:printcolumn:name=Updating,JSONPath=.status.conditions[?(@.type=="Updating")].status,type=string,description=When at least one of machine is not either not updated or is in the process of updating to the desired machine config. +kubebuilder:printcolumn:name=Degraded,JSONPath=.status.conditions[?(@.type=="Degraded")].status,type=string,description=When progress is blocked on updating one or more nodes or the pool configuration is failing. +kubebuilder:printcolumn:name=MachineCount,JSONPath=.status.machineCount,type=number,description=Total number of machines in the machine config pool +kubebuilder:printcolumn:name=ReadyMachineCount,JSONPath=.status.readyMachineCount,type=number,description=Total number of ready machines targeted by the pool +kubebuilder:printcolumn:name=UpdatedMachineCount,JSONPath=.status.updatedMachineCount,type=number,description=Total number of machines targeted by the pool that have the CurrentMachineConfig as their config +kubebuilder:printcolumn:name=DegradedMachineCount,JSONPath=.status.degradedMachineCount,type=number,description=Total number of machines marked degraded (or unreconcilable) +kubebuilder:printcolumn:name=Age,JSONPath=.metadata.creationTimestamp,type=date +openshift:compatibility-gen:level=1
func (*MachineConfigPool) DeepCopy ¶
func (in *MachineConfigPool) DeepCopy() *MachineConfigPool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPool.
func (*MachineConfigPool) DeepCopyInto ¶
func (in *MachineConfigPool) DeepCopyInto(out *MachineConfigPool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigPool) DeepCopyObject ¶
func (in *MachineConfigPool) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineConfigPool) SwaggerDoc ¶
func (MachineConfigPool) SwaggerDoc() map[string]string
type MachineConfigPoolCondition ¶
type MachineConfigPoolCondition struct {
// type of the condition, currently ('Done', 'Updating', 'Failed').
// +optional
Type MachineConfigPoolConditionType `json:"type"`
// status of the condition, one of ('True', 'False', 'Unknown').
// +optional
Status corev1.ConditionStatus `json:"status,omitempty"`
// lastTransitionTime is the timestamp corresponding to the last status
// change of this condition.
// +nullable
// +optional
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
// reason is a brief machine readable explanation for the condition's last
// transition.
// +optional
Reason string `json:"reason"`
// message is a human readable description of the details of the last
// transition, complementing reason.
// +optional
Message string `json:"message"`
}
MachineConfigPoolCondition contains condition information for an MachineConfigPool.
func (*MachineConfigPoolCondition) DeepCopy ¶
func (in *MachineConfigPoolCondition) DeepCopy() *MachineConfigPoolCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolCondition.
func (*MachineConfigPoolCondition) DeepCopyInto ¶
func (in *MachineConfigPoolCondition) DeepCopyInto(out *MachineConfigPoolCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigPoolCondition) SwaggerDoc ¶
func (MachineConfigPoolCondition) SwaggerDoc() map[string]string
type MachineConfigPoolConditionType ¶
type MachineConfigPoolConditionType string
MachineConfigPoolConditionType valid conditions of a MachineConfigPool
const ( // MachineConfigPoolUpdated means MachineConfigPool is updated completely. // When the all the machines in the pool are updated to the correct machine config. MachineConfigPoolUpdated MachineConfigPoolConditionType = "Updated" // MachineConfigPoolUpdating means MachineConfigPool is updating. // When at least one of machine is not either not updated or is in the process of updating // to the desired machine config. MachineConfigPoolUpdating MachineConfigPoolConditionType = "Updating" // MachineConfigPoolNodeDegraded means the update for one of the machine is not progressing MachineConfigPoolNodeDegraded MachineConfigPoolConditionType = "NodeDegraded" // MachineConfigPoolRenderDegraded means the rendered configuration for the pool cannot be generated because of an error MachineConfigPoolRenderDegraded MachineConfigPoolConditionType = "RenderDegraded" // MachineConfigPoolImageBuildDegraded means the image build for the pool was not successful // This condition is only used when Image Mode is enabled for the pool MachineConfigPoolImageBuildDegraded MachineConfigPoolConditionType = "ImageBuildDegraded" // MachineConfigPoolPinnedImageSetsDegraded means the pinned image sets for the pool cannot be populated because of an error // +openshift:enable:FeatureGate=PinnedImages MachineConfigPoolPinnedImageSetsDegraded MachineConfigPoolConditionType = "PinnedImageSetsDegraded" // MachineConfigPoolSynchronizerDegraded means the pool synchronizer can not be updated because of an error // +openshift:enable:FeatureGate=PinnedImages MachineConfigPoolSynchronizerDegraded MachineConfigPoolConditionType = "PoolSynchronizerDegraded" // MachineConfigPoolDegraded is the overall status of the pool based, today, on whether we fail with NodeDegraded, RenderDegraded, or ImageBuildDegraded MachineConfigPoolDegraded MachineConfigPoolConditionType = "Degraded" MachineConfigPoolBuildPending MachineConfigPoolConditionType = "BuildPending" MachineConfigPoolBuilding MachineConfigPoolConditionType = "Building" MachineConfigPoolBuildSuccess MachineConfigPoolConditionType = "BuildSuccess" MachineConfigPoolBuildFailed MachineConfigPoolConditionType = "BuildFailed" MachineConfigPoolBuildInterrupted MachineConfigPoolConditionType = "BuildInterrupted" )
type MachineConfigPoolList ¶
type MachineConfigPoolList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []MachineConfigPool `json:"items"`
}
MachineConfigPoolList is a list of MachineConfigPool resources
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*MachineConfigPoolList) DeepCopy ¶
func (in *MachineConfigPoolList) DeepCopy() *MachineConfigPoolList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolList.
func (*MachineConfigPoolList) DeepCopyInto ¶
func (in *MachineConfigPoolList) DeepCopyInto(out *MachineConfigPoolList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineConfigPoolList) DeepCopyObject ¶
func (in *MachineConfigPoolList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineConfigPoolList) SwaggerDoc ¶
func (MachineConfigPoolList) SwaggerDoc() map[string]string
type MachineConfigPoolReference ¶
type MachineConfigPoolReference struct {
// name of the MachineConfigPool object.
// This value should be at most 253 characters, and must contain only lowercase
// alphanumeric characters, hyphens and periods, and should start and end with an alphanumeric character.
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Name string `json:"name"`
}
Refers to the name of a MachineConfigPool (e.g., "worker", "infra", etc.): the MachineOSBuilder pod validates that the user has provided a valid pool
func (*MachineConfigPoolReference) DeepCopy ¶
func (in *MachineConfigPoolReference) DeepCopy() *MachineConfigPoolReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolReference.
func (*MachineConfigPoolReference) DeepCopyInto ¶
func (in *MachineConfigPoolReference) DeepCopyInto(out *MachineConfigPoolReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigPoolReference) SwaggerDoc ¶
func (MachineConfigPoolReference) SwaggerDoc() map[string]string
type MachineConfigPoolSpec ¶
type MachineConfigPoolSpec struct {
// machineConfigSelector specifies a label selector for MachineConfigs.
// Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work.
// +optional
MachineConfigSelector *metav1.LabelSelector `json:"machineConfigSelector,omitempty"`
// nodeSelector specifies a label selector for Machines
// +optional
NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty"`
// paused specifies whether or not changes to this machine config pool should be stopped.
// This includes generating new desiredMachineConfig and update of machines.
// +optional
Paused bool `json:"paused"`
// of nodes in the pool that can go Unavailable during an update.
// This includes nodes Unavailable for any reason, including user
// initiated cordons, failing nodes, etc. The default value is 1.
//
// A value larger than 1 will mean multiple nodes going unavailable during
// the update, which may affect your workload stress on the remaining nodes.
// You cannot set this value to 0 to stop updates (it will default back to 1);
// to stop updates, use the 'paused' property instead. Drain will respect
// Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if
// maxUnavailable is greater than one.
// +optional
MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
// The targeted MachineConfig object for the machine config pool.
// +optional
Configuration MachineConfigPoolStatusConfiguration `json:"configuration"`
// pinnedImageSets specifies a sequence of PinnedImageSetRef objects for the
// pool. Nodes within this pool will preload and pin images defined in the
// PinnedImageSet. Before pulling images the MachineConfigDaemon will ensure
// the total uncompressed size of all the images does not exceed available
// resources. If the total size of the images exceeds the available
// resources the controller will report a Degraded status to the
// MachineConfigPool and not attempt to pull any images. Also to help ensure
// the kubelet can mitigate storage risk, the pinned_image configuration and
// subsequent service reload will happen only after all of the images have
// been pulled for each set. Images from multiple PinnedImageSets are loaded
// and pinned sequentially as listed. Duplicate and existing images will be
// skipped.
//
// Any failure to prefetch or pin images will result in a Degraded pool.
// Resolving these failures is the responsibility of the user. The admin
// should be proactive in ensuring adequate storage and proper image
// authentication exists in advance.
// +openshift:enable:FeatureGate=PinnedImages
// +optional
// +listType=map
// +listMapKey=name
// +kubebuilder:validation:MaxItems=100
PinnedImageSets []PinnedImageSetRef `json:"pinnedImageSets,omitempty"`
// osImageStream specifies an OS stream to be used for the pool.
//
// This field can be optionally set to a known OSImageStream name to change the
// OS and Extension images with a well-known, tested, release-provided set of images.
// This enables a streamlined way of switching the pool's node OS to a different version
// than the cluster default, such as transitioning to a major RHEL version.
//
// When set, the referenced stream overrides the cluster-wide OS
// images for the pool with the OS and Extensions associated to stream.
// When omitted, the pool uses the cluster-wide default OS images.
//
// +openshift:enable:FeatureGate=OSStreams
// +optional
OSImageStream OSImageStreamReference `json:"osImageStream,omitempty,omitzero"`
}
MachineConfigPoolSpec is the spec for MachineConfigPool resource.
func (*MachineConfigPoolSpec) DeepCopy ¶
func (in *MachineConfigPoolSpec) DeepCopy() *MachineConfigPoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolSpec.
func (*MachineConfigPoolSpec) DeepCopyInto ¶
func (in *MachineConfigPoolSpec) DeepCopyInto(out *MachineConfigPoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigPoolSpec) SwaggerDoc ¶
func (MachineConfigPoolSpec) SwaggerDoc() map[string]string
type MachineConfigPoolStatus ¶
type MachineConfigPoolStatus struct {
// observedGeneration represents the generation observed by the controller.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// configuration represents the current MachineConfig object for the machine config pool.
// +optional
Configuration MachineConfigPoolStatusConfiguration `json:"configuration"`
// machineCount represents the total number of machines in the machine config pool.
// +optional
MachineCount int32 `json:"machineCount"`
// updatedMachineCount represents the total number of machines targeted by the pool that have the CurrentMachineConfig as their config.
// +optional
UpdatedMachineCount int32 `json:"updatedMachineCount"`
// readyMachineCount represents the total number of ready machines targeted by the pool.
// +optional
ReadyMachineCount int32 `json:"readyMachineCount"`
// A node is marked unavailable if it is in updating state or NodeReady condition is false.
// +optional
UnavailableMachineCount int32 `json:"unavailableMachineCount"`
// degradedMachineCount represents the total number of machines marked degraded (or unreconcilable).
// A node is marked degraded if applying a configuration failed..
// +optional
DegradedMachineCount int32 `json:"degradedMachineCount"`
// conditions represents the latest available observations of current state.
// +listType=atomic
// +optional
Conditions []MachineConfigPoolCondition `json:"conditions"`
// certExpirys keeps track of important certificate expiration data
// +listType=atomic
// +optional
CertExpirys []CertExpiry `json:"certExpirys"`
// poolSynchronizersStatus is the status of the machines managed by the pool synchronizers.
// +openshift:enable:FeatureGate=PinnedImages
// +listType=map
// +listMapKey=poolSynchronizerType
// +optional
PoolSynchronizersStatus []PoolSynchronizerStatus `json:"poolSynchronizersStatus,omitempty"`
// osImageStream specifies the last updated OSImageStream for the pool.
//
// When omitted, the pool is using the cluster-wide default OS images.
// +openshift:enable:FeatureGate=OSStreams
// +optional
OSImageStream OSImageStreamReference `json:"osImageStream,omitempty,omitzero"`
}
MachineConfigPoolStatus is the status for MachineConfigPool resource.
func (*MachineConfigPoolStatus) DeepCopy ¶
func (in *MachineConfigPoolStatus) DeepCopy() *MachineConfigPoolStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolStatus.
func (*MachineConfigPoolStatus) DeepCopyInto ¶
func (in *MachineConfigPoolStatus) DeepCopyInto(out *MachineConfigPoolStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigPoolStatus) SwaggerDoc ¶
func (MachineConfigPoolStatus) SwaggerDoc() map[string]string
type MachineConfigPoolStatusConfiguration ¶
type MachineConfigPoolStatusConfiguration struct {
corev1.ObjectReference `json:",inline"`
// source is the list of MachineConfig objects that were used to generate the single MachineConfig object specified in `content`.
// +listType=atomic
// +optional
Source []corev1.ObjectReference `json:"source,omitempty"`
}
MachineConfigPoolStatusConfiguration stores the current configuration for the pool, and optionally also stores the list of MachineConfig objects used to generate the configuration.
func (*MachineConfigPoolStatusConfiguration) DeepCopy ¶
func (in *MachineConfigPoolStatusConfiguration) DeepCopy() *MachineConfigPoolStatusConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolStatusConfiguration.
func (*MachineConfigPoolStatusConfiguration) DeepCopyInto ¶
func (in *MachineConfigPoolStatusConfiguration) DeepCopyInto(out *MachineConfigPoolStatusConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigPoolStatusConfiguration) SwaggerDoc ¶
func (MachineConfigPoolStatusConfiguration) SwaggerDoc() map[string]string
type MachineConfigReference ¶
type MachineConfigReference struct {
// name is the name of the rendered MachineConfig object.
// This value should be between 10 and 253 characters, and must contain only lowercase
// alphanumeric characters, hyphens and periods, and should start and end with an alphanumeric character.
// +kubebuilder:validation:MinLength:=10
// +kubebuilder:validation:MaxLength:=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +required
Name string `json:"name"`
}
Refers to the name of a rendered MachineConfig (e.g., "rendered-worker-ec40d2965ff81bce7cd7a7e82a680739", etc.): the build targets this MachineConfig, this is often used to tell us whether we need an update.
func (*MachineConfigReference) DeepCopy ¶
func (in *MachineConfigReference) DeepCopy() *MachineConfigReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigReference.
func (*MachineConfigReference) DeepCopyInto ¶
func (in *MachineConfigReference) DeepCopyInto(out *MachineConfigReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigReference) SwaggerDoc ¶
func (MachineConfigReference) SwaggerDoc() map[string]string
type MachineConfigSpec ¶
type MachineConfigSpec struct {
// osImageURL specifies the remote location that will be used to
// fetch the OS.
// +optional
OSImageURL string `json:"osImageURL"`
// baseOSExtensionsContainerImage specifies the remote location that will be used
// to fetch the extensions container matching a new-format OS image
// +optional
BaseOSExtensionsContainerImage string `json:"baseOSExtensionsContainerImage"`
// config is a Ignition Config object.
// +optional
Config runtime.RawExtension `json:"config,omitempty"`
// kernelArguments contains a list of kernel arguments to be added
// +listType=atomic
// +nullable
// +optional
KernelArguments []string `json:"kernelArguments"`
// extensions contains a list of additional features that can be enabled on host
// +listType=atomic
// +optional
Extensions []string `json:"extensions"`
// fips controls FIPS mode
// +optional
FIPS bool `json:"fips"`
// kernelType contains which kernel we want to be running like default
// (traditional), realtime, 64k-pages (aarch64 only).
// +optional
KernelType string `json:"kernelType"`
}
MachineConfigSpec is the spec for MachineConfig
func (*MachineConfigSpec) DeepCopy ¶
func (in *MachineConfigSpec) DeepCopy() *MachineConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigSpec.
func (*MachineConfigSpec) DeepCopyInto ¶
func (in *MachineConfigSpec) DeepCopyInto(out *MachineConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigSpec) SwaggerDoc ¶
func (MachineConfigSpec) SwaggerDoc() map[string]string
type MachineOSBuild ¶
type MachineOSBuild struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object metadata.
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec describes the configuration of the machine os build.
// It is immutable once set.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="machineOSBuildSpec is immutable once set"
// +required
Spec MachineOSBuildSpec `json:"spec"`
// status describes the last observed state of this machine os build.
// +optional
Status MachineOSBuildStatus `json:"status,omitempty"`
}
MachineOSBuild describes a build process managed and deployed by the MCO Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*MachineOSBuild) DeepCopy ¶
func (in *MachineOSBuild) DeepCopy() *MachineOSBuild
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSBuild.
func (*MachineOSBuild) DeepCopyInto ¶
func (in *MachineOSBuild) DeepCopyInto(out *MachineOSBuild)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOSBuild) DeepCopyObject ¶
func (in *MachineOSBuild) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineOSBuild) SwaggerDoc ¶
func (MachineOSBuild) SwaggerDoc() map[string]string
type MachineOSBuildList ¶
type MachineOSBuildList struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard list metadata.
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a collection of MachineOSBuild resources.
// +optional
Items []MachineOSBuild `json:"items,omitempty"`
}
MachineOSBuildList describes all of the Builds on the system
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*MachineOSBuildList) DeepCopy ¶
func (in *MachineOSBuildList) DeepCopy() *MachineOSBuildList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSBuildList.
func (*MachineOSBuildList) DeepCopyInto ¶
func (in *MachineOSBuildList) DeepCopyInto(out *MachineOSBuildList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOSBuildList) DeepCopyObject ¶
func (in *MachineOSBuildList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineOSBuildList) SwaggerDoc ¶
func (MachineOSBuildList) SwaggerDoc() map[string]string
type MachineOSBuildSpec ¶
type MachineOSBuildSpec struct {
// machineConfig points to the rendered MachineConfig resource to be included in this image build.
// +required
MachineConfig MachineConfigReference `json:"machineConfig"`
// machineOSConfig references the MachineOSConfig resource that this image build extends.
// +required
MachineOSConfig MachineOSConfigReference `json:"machineOSConfig"`
// renderedImagePushSpec is set by the Machine Config Operator from the MachineOSConfig object this build is attached to.
// This field describes the location of the final image, which will be pushed by the build once complete.
// The format of the image push spec is: host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag>.
// The length of the push spec must be between 1 to 447 characters.
// +required
RenderedImagePushSpec ImageTagFormat `json:"renderedImagePushSpec"`
}
MachineOSBuildSpec describes information about a build process primarily populated from a MachineOSConfig object.
func (*MachineOSBuildSpec) DeepCopy ¶
func (in *MachineOSBuildSpec) DeepCopy() *MachineOSBuildSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSBuildSpec.
func (*MachineOSBuildSpec) DeepCopyInto ¶
func (in *MachineOSBuildSpec) DeepCopyInto(out *MachineOSBuildSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSBuildSpec) SwaggerDoc ¶
func (MachineOSBuildSpec) SwaggerDoc() map[string]string
type MachineOSBuildStatus ¶
type MachineOSBuildStatus struct {
// conditions are state related conditions for the build. Valid types are:
// Prepared, Building, Failed, Interrupted, and Succeeded.
// Once a Build is marked as Failed, Interrupted or Succeeded, no future conditions can be set.
// +listType=map
// +listMapKey=type
// +kubebuilder:validation:MaxItems=8
// +kubebuilder:validation:XValidation:rule="oldSelf.exists(x, x.type=='Failed' && x.status=='True') ? self==oldSelf : true",message="once a Failed condition is set, conditions are immutable"
// +kubebuilder:validation:XValidation:rule="oldSelf.exists(x, x.type=='Interrupted' && x.status=='True') ? self==oldSelf : true",message="once an Interrupted condition is set, conditions are immutable"
// +kubebuilder:validation:XValidation:rule="oldSelf.exists(x, x.type=='Succeeded' && x.status=='True') ? self==oldSelf : true",message="once an Succeeded condition is set, conditions are immutable"
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// builder describes the image builder backend used for this build.
// +optional
Builder *MachineOSBuilderReference `json:"builder,omitempty"`
// relatedObjects is a list of references to ephemeral objects such as ConfigMaps or Secrets that are meant to be consumed while the build process runs.
// After a successful build or when this MachineOSBuild is deleted, these ephemeral objects will be removed.
// In the event of a failed build, the objects will remain until the build is removed to allow for inspection.
// +kubebuilder:validation:MaxItems=10
// +listType=map
// +listMapKey=name
// +listMapKey=resource
// +optional
RelatedObjects []ObjectReference `json:"relatedObjects,omitempty"`
// buildStart is the timestamp corresponding to the build controller initiating the build backend for this MachineOSBuild.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="buildStart is immutable once set"
// +optional
BuildStart *metav1.Time `json:"buildStart,omitempty"`
// buildEnd is the timestamp corresponding to completion of the builder backend.
// When omitted the build has either not been started, or is in progress.
// It will be populated once the build completes, fails or is interrupted.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="buildEnd is immutable once set"
// +optional
BuildEnd *metav1.Time `json:"buildEnd,omitempty"`
// digestedImagePushSpec describes the fully qualified push spec produced by this build.
// The format of the push spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// +optional
DigestedImagePushSpec ImageDigestFormat `json:"digestedImagePushSpec,omitempty"`
}
MachineOSBuildStatus describes the state of a build and other helpful information. +kubebuilder:validation:XValidation:rule="has(self.buildEnd) ? has(self.buildStart) && timestamp(self.buildStart) < timestamp(self.buildEnd) : true",message="buildEnd must be after buildStart"
func (*MachineOSBuildStatus) DeepCopy ¶
func (in *MachineOSBuildStatus) DeepCopy() *MachineOSBuildStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSBuildStatus.
func (*MachineOSBuildStatus) DeepCopyInto ¶
func (in *MachineOSBuildStatus) DeepCopyInto(out *MachineOSBuildStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSBuildStatus) SwaggerDoc ¶
func (MachineOSBuildStatus) SwaggerDoc() map[string]string
type MachineOSBuilderReference ¶
type MachineOSBuilderReference struct {
// imageBuilderType describes the type of image builder used to build this image.
// Valid values are Job only.
// When set to Job, a pod based builder, using buildah, is launched to build the specified image.
// +unionDiscriminator
// +required
ImageBuilderType MachineOSImageBuilderType `json:"imageBuilderType"`
// job is a reference to the job object that is managing the image build.
// This is required if the imageBuilderType is Job, and forbidden otherwise.
// +unionMember
// +optional
Job *ObjectReference `json:"job,omitempty"`
}
MachineOSBuilderReference describes which ImageBuilder backend to use for this build +union +kubebuilder:validation:XValidation:rule="has(self.imageBuilderType) && self.imageBuilderType == 'Job' ? has(self.job) : !has(self.job)",message="job is required when imageBuilderType is Job, and forbidden otherwise"
func (*MachineOSBuilderReference) DeepCopy ¶
func (in *MachineOSBuilderReference) DeepCopy() *MachineOSBuilderReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSBuilderReference.
func (*MachineOSBuilderReference) DeepCopyInto ¶
func (in *MachineOSBuilderReference) DeepCopyInto(out *MachineOSBuilderReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSBuilderReference) SwaggerDoc ¶
func (MachineOSBuilderReference) SwaggerDoc() map[string]string
type MachineOSConfig ¶
type MachineOSConfig struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object metadata.
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec describes the configuration of the machineosconfig
// +required
Spec MachineOSConfigSpec `json:"spec"`
// status describes the status of the machineosconfig
// +optional
Status MachineOSConfigStatus `json:"status,omitempty"`
}
MachineOSConfig describes the configuration for a build process managed by the MCO Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1 +kubebuilder:validation:XValidation:rule="self.metadata.name == self.spec.machineConfigPool.name || oldSelf.hasValue() && oldSelf.spec.machineConfigPool.name.value() == self.spec.machineConfigPool.name",optionalOldSelf=true,message="MachineOSConfig name must match the referenced MachineConfigPool name; can only have one MachineOSConfig per MachineConfigPool"
func (*MachineOSConfig) DeepCopy ¶
func (in *MachineOSConfig) DeepCopy() *MachineOSConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSConfig.
func (*MachineOSConfig) DeepCopyInto ¶
func (in *MachineOSConfig) DeepCopyInto(out *MachineOSConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOSConfig) DeepCopyObject ¶
func (in *MachineOSConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineOSConfig) SwaggerDoc ¶
func (MachineOSConfig) SwaggerDoc() map[string]string
type MachineOSConfigList ¶
type MachineOSConfigList struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard list metadata.
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a collection of MachineOSConfig resources.
// +optional
Items []MachineOSConfig `json:"items"`
}
MachineOSConfigList describes all configurations for image builds on the system
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*MachineOSConfigList) DeepCopy ¶
func (in *MachineOSConfigList) DeepCopy() *MachineOSConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSConfigList.
func (*MachineOSConfigList) DeepCopyInto ¶
func (in *MachineOSConfigList) DeepCopyInto(out *MachineOSConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineOSConfigList) DeepCopyObject ¶
func (in *MachineOSConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineOSConfigList) SwaggerDoc ¶
func (MachineOSConfigList) SwaggerDoc() map[string]string
type MachineOSConfigReference ¶
type MachineOSConfigReference struct {
// name of the MachineOSConfig.
// The name must contain only lowercase alphanumeric characters, '-' or '.' and start/end with an alphanumeric character.
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +required
Name string `json:"name"`
}
MachineOSConfigReference refers to the MachineOSConfig this build is based off of
func (*MachineOSConfigReference) DeepCopy ¶
func (in *MachineOSConfigReference) DeepCopy() *MachineOSConfigReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSConfigReference.
func (*MachineOSConfigReference) DeepCopyInto ¶
func (in *MachineOSConfigReference) DeepCopyInto(out *MachineOSConfigReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSConfigReference) SwaggerDoc ¶
func (MachineOSConfigReference) SwaggerDoc() map[string]string
type MachineOSConfigSpec ¶
type MachineOSConfigSpec struct {
// machineConfigPool is the pool which the build is for.
// The Machine Config Operator will perform the build and roll out the built image to the specified pool.
// +required
MachineConfigPool MachineConfigPoolReference `json:"machineConfigPool"`
// imageBuilder describes which image builder will be used in each build triggered by this MachineOSConfig.
// Currently supported type(s): Job
// +required
ImageBuilder MachineOSImageBuilder `json:"imageBuilder"`
// baseImagePullSecret is the secret used to pull the base image.
// Must live in the openshift-machine-config-operator namespace if provided.
// Defaults to using the cluster-wide pull secret if not specified. This is provided during install time of the cluster, and lives in the openshift-config namespace as a secret.
// +optional
BaseImagePullSecret *ImageSecretObjectReference `json:"baseImagePullSecret,omitempty"`
// renderedImagePushSecret is the secret used to connect to a user registry.
// The final image push and pull secrets should be separate and assume the principal of least privilege.
// The push secret with write privilege is only required to be present on the node hosting the MachineConfigController pod.
// The pull secret with read only privileges is required on all nodes.
// By separating the two secrets, the risk of write credentials becoming compromised is reduced.
// +required
RenderedImagePushSecret ImageSecretObjectReference `json:"renderedImagePushSecret"`
// renderedImagePushSpec describes the location of the final image.
// The MachineOSConfig object will use the in cluster image registry configuration.
// If you wish to use a mirror or any other settings specific to registries.conf, please specify those in the cluster wide registries.conf via the cluster image.config, ImageContentSourcePolicies, ImageDigestMirrorSet, or ImageTagMirrorSet objects.
// The format of the image push spec is: host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag>.
// The length of the push spec must be between 1 to 447 characters.
// +required
RenderedImagePushSpec ImageTagFormat `json:"renderedImagePushSpec"`
// containerFile describes the custom data the user has specified to build into the image.
// This is also commonly called a Dockerfile and you can treat it as such. The content is the content of your Dockerfile.
// See https://github.com/containers/common/blob/main/docs/Containerfile.5.md for the spec reference.
// This is a list indexed by architecture name (e.g. AMD64), and allows specifying one containerFile per arch, up to 4.
// +patchMergeKey=containerfileArch
// +patchStrategy=merge
// +listType=map
// +listMapKey=containerfileArch
// +kubebuilder:validation:MinItems=0
// +kubebuilder:validation:MaxItems=4
// +optional
Containerfile []MachineOSContainerfile `json:"containerFile" patchStrategy:"merge" patchMergeKey:"containerfileArch"`
}
MachineOSConfigSpec describes user-configurable options as well as information about a build process.
func (*MachineOSConfigSpec) DeepCopy ¶
func (in *MachineOSConfigSpec) DeepCopy() *MachineOSConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSConfigSpec.
func (*MachineOSConfigSpec) DeepCopyInto ¶
func (in *MachineOSConfigSpec) DeepCopyInto(out *MachineOSConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSConfigSpec) SwaggerDoc ¶
func (MachineOSConfigSpec) SwaggerDoc() map[string]string
type MachineOSConfigStatus ¶
type MachineOSConfigStatus struct {
// conditions are state related conditions for the object.
// +listType=map
// +listMapKey=type
// +optional
// TODO(jerzhang): add godoc after conditions are finalized. Also consider adding printer columns.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// observedGeneration represents the generation of the MachineOSConfig object observed by the Machine Config Operator's build controller.
// +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="observedGeneration must not move backwards"
// +kubebuilder:validation:Minimum=0
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// currentImagePullSpec is the fully qualified image pull spec used by the MCO to pull down the new OSImage. This includes the sha256 image digest.
// This is generated when the Machine Config Operator's build controller successfully completes the build, and is populated from the corresponding
// MachineOSBuild object's FinalImagePushSpec. This may change after completion in reaction to spec changes that would cause a new image build,
// but will not be removed.
// The format of the image pull spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// +optional
CurrentImagePullSpec ImageDigestFormat `json:"currentImagePullSpec,omitempty"`
// machineOSBuild is a reference to the MachineOSBuild object for this MachineOSConfig, which contains the status for the image build.
// +optional
MachineOSBuild *ObjectReference `json:"machineOSBuild,omitempty"`
}
MachineOSConfigStatus describes the status this config object and relates it to the builds associated with this MachineOSConfig
func (*MachineOSConfigStatus) DeepCopy ¶
func (in *MachineOSConfigStatus) DeepCopy() *MachineOSConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSConfigStatus.
func (*MachineOSConfigStatus) DeepCopyInto ¶
func (in *MachineOSConfigStatus) DeepCopyInto(out *MachineOSConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSConfigStatus) SwaggerDoc ¶
func (MachineOSConfigStatus) SwaggerDoc() map[string]string
type MachineOSContainerfile ¶
type MachineOSContainerfile struct {
// containerfileArch describes the architecture this containerfile is to be built for.
// This arch is optional. If the user does not specify an architecture, it is assumed
// that the content can be applied to all architectures, or in a single arch cluster: the only architecture.
// +kubebuilder:validation:Enum:=ARM64;AMD64;PPC64LE;S390X;NoArch
// +kubebuilder:default:=NoArch
// +optional
ContainerfileArch ContainerfileArch `json:"containerfileArch,omitempty"`
// content is an embedded Containerfile/Dockerfile that defines the contents to be built into your image.
// See https://github.com/containers/common/blob/main/docs/Containerfile.5.md for the spec reference.
// for example, this would add the tree package to your hosts:
// FROM configs AS final
// RUN rpm-ostree install tree && \
// ostree container commit
// This is a required field and can have a maximum length of **4096** characters.
// +required
// +kubebuilder:validation:MaxLength=4096
Content string `json:"content"`
}
MachineOSContainerfile contains all custom content the user wants built into the image
func (*MachineOSContainerfile) DeepCopy ¶
func (in *MachineOSContainerfile) DeepCopy() *MachineOSContainerfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSContainerfile.
func (*MachineOSContainerfile) DeepCopyInto ¶
func (in *MachineOSContainerfile) DeepCopyInto(out *MachineOSContainerfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSContainerfile) SwaggerDoc ¶
func (MachineOSContainerfile) SwaggerDoc() map[string]string
type MachineOSImageBuilder ¶
type MachineOSImageBuilder struct {
// imageBuilderType specifies the backend to be used to build the image.
// +kubebuilder:validation:Enum:=Job
// Valid options are: Job
// +required
ImageBuilderType MachineOSImageBuilderType `json:"imageBuilderType"`
}
func (*MachineOSImageBuilder) DeepCopy ¶
func (in *MachineOSImageBuilder) DeepCopy() *MachineOSImageBuilder
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSImageBuilder.
func (*MachineOSImageBuilder) DeepCopyInto ¶
func (in *MachineOSImageBuilder) DeepCopyInto(out *MachineOSImageBuilder)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineOSImageBuilder) SwaggerDoc ¶
func (MachineOSImageBuilder) SwaggerDoc() map[string]string
type MachineOSImageBuilderType ¶
type MachineOSImageBuilderType string
+enum
const ( // describes that the machine-os-builder will use a Job to spin up a custom pod builder that uses buildah JobBuilder MachineOSImageBuilderType = "Job" )
type NetworkInfo ¶
type NetworkInfo struct {
// mtuMigration contains the MTU migration configuration.
// +required
// +nullable
MTUMigration *configv1.MTUMigration `json:"mtuMigration"`
}
Network contains network related configuration
func (*NetworkInfo) DeepCopy ¶
func (in *NetworkInfo) DeepCopy() *NetworkInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkInfo.
func (*NetworkInfo) DeepCopyInto ¶
func (in *NetworkInfo) DeepCopyInto(out *NetworkInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (NetworkInfo) SwaggerDoc ¶
func (NetworkInfo) SwaggerDoc() map[string]string
type OSImageStreamReference ¶
type OSImageStreamReference struct {
// name is a required reference to an OSImageStream to be used for the pool.
//
// It must be a valid RFC 1123 subdomain between 1 and 253 characters in length,
// consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.').
//
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
Name string `json:"name,omitempty"`
}
func (*OSImageStreamReference) DeepCopy ¶
func (in *OSImageStreamReference) DeepCopy() *OSImageStreamReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamReference.
func (*OSImageStreamReference) DeepCopyInto ¶
func (in *OSImageStreamReference) DeepCopyInto(out *OSImageStreamReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OSImageStreamReference) SwaggerDoc ¶
func (OSImageStreamReference) SwaggerDoc() map[string]string
type ObjectReference ¶
type ObjectReference struct {
// group of the referent.
// The name must contain only lowercase alphanumeric characters, '-' or '.' and start/end with an alphanumeric character.
// Example: "", "apps", "build.openshift.io", etc.
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +kubebuilder:validation:MaxLength:=253
// +required
Group string `json:"group"`
// resource of the referent.
// This value should consist of at most 63 characters, and of only lowercase alphanumeric characters and hyphens,
// and should start with an alphabetic character and end with an alphanumeric character.
// Example: "deployments", "deploymentconfigs", "pods", etc.
// +required
// +kubebuilder:validation:XValidation:rule=`!format.dns1035Label().validate(self).hasValue()`,message="a DNS-1035 label must consist of lower case alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
Resource string `json:"resource"`
// namespace of the referent.
// This value should consist of at most 63 characters, and of only lowercase alphanumeric characters and hyphens,
// and should start and end with an alphanumeric character.
// +kubebuilder:validation:XValidation:rule=`!format.dns1123Label().validate(self).hasValue()`,message="the value must consist of only lowercase alphanumeric characters and hyphens"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=63
// +optional
Namespace string `json:"namespace,omitempty"`
// name of the referent.
// The name must contain only lowercase alphanumeric characters, '-' or '.' and start/end with an alphanumeric character.
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character."
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +required
Name string `json:"name"`
}
ObjectReference contains enough information to let you inspect or modify the referred object.
func (*ObjectReference) DeepCopy ¶
func (in *ObjectReference) DeepCopy() *ObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.
func (*ObjectReference) DeepCopyInto ¶
func (in *ObjectReference) DeepCopyInto(out *ObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ObjectReference) SwaggerDoc ¶
func (ObjectReference) SwaggerDoc() map[string]string
type PinnedImageRef ¶
type PinnedImageRef struct {
// name is an OCI Image referenced by digest.
// The format of the image pull spec is: host[:port][/namespace]/name@sha256:<digest>,
// where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9.
// The length of the whole spec must be between 1 to 447 characters.
// +required
Name ImageDigestFormat `json:"name"`
}
PinnedImageRef represents a reference to an OCI image
func (*PinnedImageRef) DeepCopy ¶
func (in *PinnedImageRef) DeepCopy() *PinnedImageRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageRef.
func (*PinnedImageRef) DeepCopyInto ¶
func (in *PinnedImageRef) DeepCopyInto(out *PinnedImageRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PinnedImageRef) SwaggerDoc ¶
func (PinnedImageRef) SwaggerDoc() map[string]string
type PinnedImageSet ¶
type PinnedImageSet struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard object metadata.
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec describes the configuration of this pinned image set.
// +required
Spec PinnedImageSetSpec `json:"spec"`
}
PinnedImageSet describes a set of images that should be pinned by CRI-O and pulled to the nodes which are members of the declared MachineConfigPools.
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*PinnedImageSet) DeepCopy ¶
func (in *PinnedImageSet) DeepCopy() *PinnedImageSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSet.
func (*PinnedImageSet) DeepCopyInto ¶
func (in *PinnedImageSet) DeepCopyInto(out *PinnedImageSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PinnedImageSet) DeepCopyObject ¶
func (in *PinnedImageSet) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (PinnedImageSet) SwaggerDoc ¶
func (PinnedImageSet) SwaggerDoc() map[string]string
type PinnedImageSetList ¶
type PinnedImageSetList struct {
metav1.TypeMeta `json:",inline"`
// metadata is the standard list metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
// items contains a collection of PinnedImageSet resources.
// +kubebuilder:validation:MaxItems=500
// +optional
Items []PinnedImageSet `json:"items"`
}
PinnedImageSetList is a list of PinnedImageSet resources
Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1
func (*PinnedImageSetList) DeepCopy ¶
func (in *PinnedImageSetList) DeepCopy() *PinnedImageSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetList.
func (*PinnedImageSetList) DeepCopyInto ¶
func (in *PinnedImageSetList) DeepCopyInto(out *PinnedImageSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PinnedImageSetList) DeepCopyObject ¶
func (in *PinnedImageSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (PinnedImageSetList) SwaggerDoc ¶
func (PinnedImageSetList) SwaggerDoc() map[string]string
type PinnedImageSetRef ¶
type PinnedImageSetRef struct {
// name is a reference to the name of a PinnedImageSet. Must adhere to
// RFC-1123 (https://tools.ietf.org/html/rfc1123).
// Made up of one of more period-separated (.) segments, where each segment
// consists of alphanumeric characters and hyphens (-), must begin and end
// with an alphanumeric character, and is at most 63 characters in length.
// The total length of the name must not exceed 253 characters.
// +openshift:enable:FeatureGate=PinnedImages
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
// +required
Name string `json:"name"`
}
func (*PinnedImageSetRef) DeepCopy ¶
func (in *PinnedImageSetRef) DeepCopy() *PinnedImageSetRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetRef.
func (*PinnedImageSetRef) DeepCopyInto ¶
func (in *PinnedImageSetRef) DeepCopyInto(out *PinnedImageSetRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PinnedImageSetRef) SwaggerDoc ¶
func (PinnedImageSetRef) SwaggerDoc() map[string]string
type PinnedImageSetSpec ¶
type PinnedImageSetSpec struct {
// pinnedImages is a list of OCI Image referenced by digest that should be
// pinned and pre-loaded by the nodes of a MachineConfigPool.
// Translates into a new file inside the /etc/crio/crio.conf.d directory
// with content similar to this:
//
// pinned_images = [
// "quay.io/openshift-release-dev/ocp-release@sha256:...",
// "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...",
// "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...",
// ...
// ]
//
// Image references must be by digest.
// A maximum of 500 images may be specified.
// +required
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=500
// +listType=map
// +listMapKey=name
PinnedImages []PinnedImageRef `json:"pinnedImages"`
}
PinnedImageSetSpec defines the desired state of a PinnedImageSet.
func (*PinnedImageSetSpec) DeepCopy ¶
func (in *PinnedImageSetSpec) DeepCopy() *PinnedImageSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetSpec.
func (*PinnedImageSetSpec) DeepCopyInto ¶
func (in *PinnedImageSetSpec) DeepCopyInto(out *PinnedImageSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PinnedImageSetSpec) SwaggerDoc ¶
func (PinnedImageSetSpec) SwaggerDoc() map[string]string
type PoolSynchronizerStatus ¶
type PoolSynchronizerStatus struct {
// poolSynchronizerType describes the type of the pool synchronizer.
// +required
PoolSynchronizerType PoolSynchronizerType `json:"poolSynchronizerType"`
// machineCount is the number of machines that are managed by the node synchronizer.
// +required
// +kubebuilder:validation:Minimum=0
MachineCount int64 `json:"machineCount"`
// updatedMachineCount is the number of machines that have been updated by the node synchronizer.
// +required
// +kubebuilder:validation:Minimum=0
UpdatedMachineCount int64 `json:"updatedMachineCount"`
// readyMachineCount is the number of machines managed by the node synchronizer that are in a ready state.
// +required
// +kubebuilder:validation:Minimum=0
ReadyMachineCount int64 `json:"readyMachineCount"`
// availableMachineCount is the number of machines managed by the node synchronizer which are available.
// +required
// +kubebuilder:validation:Minimum=0
AvailableMachineCount int64 `json:"availableMachineCount"`
// +required
// +kubebuilder:validation:Minimum=0
UnavailableMachineCount int64 `json:"unavailableMachineCount"`
// +kubebuilder:validation:XValidation:rule="self >= oldSelf || (self == 0 && oldSelf > 0)", message="observedGeneration must not move backwards except to zero"
// observedGeneration is the last generation change that has been applied.
// +kubebuilder:validation:Minimum=0
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
+kubebuilder:validation:XValidation:rule="self.machineCount >= self.updatedMachineCount", message="machineCount must be greater than or equal to updatedMachineCount" +kubebuilder:validation:XValidation:rule="self.machineCount >= self.availableMachineCount", message="machineCount must be greater than or equal to availableMachineCount" +kubebuilder:validation:XValidation:rule="self.machineCount >= self.unavailableMachineCount", message="machineCount must be greater than or equal to unavailableMachineCount" +kubebuilder:validation:XValidation:rule="self.machineCount >= self.readyMachineCount", message="machineCount must be greater than or equal to readyMachineCount" +kubebuilder:validation:XValidation:rule="self.availableMachineCount >= self.readyMachineCount", message="availableMachineCount must be greater than or equal to readyMachineCount"
func (*PoolSynchronizerStatus) DeepCopy ¶
func (in *PoolSynchronizerStatus) DeepCopy() *PoolSynchronizerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolSynchronizerStatus.
func (*PoolSynchronizerStatus) DeepCopyInto ¶
func (in *PoolSynchronizerStatus) DeepCopyInto(out *PoolSynchronizerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PoolSynchronizerStatus) SwaggerDoc ¶
func (PoolSynchronizerStatus) SwaggerDoc() map[string]string
type PoolSynchronizerType ¶
type PoolSynchronizerType string
PoolSynchronizerType is an enum that describe the type of pool synchronizer. A pool synchronizer is a one or more controllers that manages the on disk state of a set of machines within a pool. +kubebuilder:validation:Enum:="PinnedImageSets" +kubebuilder:validation:MaxLength=256
const ( // PinnedImageSets represents a pool synchronizer for pinned image sets. PinnedImageSets PoolSynchronizerType = "PinnedImageSets" )
type StateProgress ¶
type StateProgress string
StateProgress is each possible state for each possible MachineConfigNodeType +enum
const ( // MachineConfigNodeUpdatePrepared describes a machine that is preparing in the daemon to trigger an update MachineConfigNodeUpdatePrepared StateProgress = "UpdatePrepared" // MachineConfigNodeUpdateExecuted describes a machine that has executed the body of the upgrade MachineConfigNodeUpdateExecuted StateProgress = "UpdateExecuted" // MachineConfigNodeUpdatePostActionComplete describes a machine that has executed its post update action MachineConfigNodeUpdatePostActionComplete StateProgress = "UpdatePostActionComplete" // MachineConfigNodeUpdateComplete describes a machine that has completed the core parts of an upgrade MachineConfigNodeUpdateComplete StateProgress = "UpdateComplete" // MachineConfigNodeUpdated describes a machine that is fully updated and has a matching desired and current config MachineConfigNodeUpdated StateProgress = "Updated" // MachineConfigNodeUpdateResumed describes a machine that has resumed normal processes MachineConfigNodeResumed StateProgress = "Resumed" // MachineConfigNodeUpdateDrained describes the part of the in progress phase where the node drains MachineConfigNodeUpdateDrained StateProgress = "Drained" // MachineConfigNodeUpdateFiles describes the part of the in progress phase where the nodes files changes MachineConfigNodeUpdateFiles StateProgress = "AppliedFiles" // MachineConfigNodeUpdateOS describes the part of the in progress phase where the OS config changes MachineConfigNodeUpdateOS StateProgress = "AppliedOSImage" // MachineConfigNodeUpdateFilesAndOS describes the part of the in progress phase where the nodes files and OS config change MachineConfigNodeUpdateFilesAndOS StateProgress = "AppliedFilesAndOS" // MachineConfigNodeImagePulledFromRegistry describes the part of the in progress phase where the update image is pulled from the registry MachineConfigNodeImagePulledFromRegistry StateProgress = "ImagePulledFromRegistry" // MachineConfigNodeUpdateCordoned describes the part of the in progress phase where the node cordons MachineConfigNodeUpdateCordoned StateProgress = "Cordoned" // MachineConfigNodeUpdateUncordoned describes the part of the completing phase where the node uncordons MachineConfigNodeUpdateUncordoned StateProgress = "Uncordoned" // MachineConfigNodeUpdateRebooted describes the part of the post action phase where the node reboots itself MachineConfigNodeUpdateRebooted StateProgress = "RebootedNode" // MachineConfigNodeNodeDegraded describes a machine that has failed to update to the desired machine config and is in a degraded state MachineConfigNodeNodeDegraded StateProgress = "NodeDegraded" // MachineConfigNodePinnedImageSetsProgressing describes a machine currently progressing to the desired pinned image sets MachineConfigNodePinnedImageSetsProgressing StateProgress = "PinnedImageSetsProgressing" // MachineConfigNodePinnedImageSetsDegraded describes a machine that has failed to progress to the desired pinned image sets MachineConfigNodePinnedImageSetsDegraded StateProgress = "PinnedImageSetsDegraded" )