Documentation ¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API.
Index ¶
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type BuildInputs
- type BuildOutputs
- type BuildProgress
- type ContainerfileArch
- type ImageSecretObjectReference
- type MCOObjectReference
- type MachineConfigNode
- type MachineConfigNodeList
- type MachineConfigNodeSpec
- type MachineConfigNodeSpecMachineConfigVersion
- func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopy() *MachineConfigNodeSpecMachineConfigVersion
- func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeSpecMachineConfigVersion)
- func (MachineConfigNodeSpecMachineConfigVersion) SwaggerDoc() map[string]string
- type MachineConfigNodeSpecPinnedImageSet
- type MachineConfigNodeStatus
- type MachineConfigNodeStatusMachineConfigVersion
- func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopy() *MachineConfigNodeStatusMachineConfigVersion
- func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeStatusMachineConfigVersion)
- func (MachineConfigNodeStatusMachineConfigVersion) SwaggerDoc() map[string]string
- type MachineConfigNodeStatusPinnedImageSet
- type MachineConfigPoolReference
- 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 ObjectReference
- type PinnedImageRef
- type PinnedImageSet
- type PinnedImageSetList
- type PinnedImageSetSpec
- type PinnedImageSetStatus
- type RenderedMachineConfigReference
- type StateProgress
Constants ¶
This section is empty.
Variables ¶
var ( GroupName = "machineconfiguration.openshift.io" GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} // Install is a function which adds this version to a scheme Install = schemeBuilder.AddToScheme // SchemeGroupVersion generated code relies on this name // Deprecated SchemeGroupVersion = GroupVersion // AddToScheme exists solely to keep the old generators creating valid code // DEPRECATED AddToScheme = schemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED
Types ¶
type BuildInputs ¶
type BuildInputs struct { // baseOSExtensionsImagePullspec is the base Extensions image used in the build process // 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. // The format of the image pullspec is: // host[:port][/namespace]/name@sha256:<digest> // +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 BaseOSExtensionsImagePullspec string `json:"baseOSExtensionsImagePullspec,omitempty"` // baseOSImagePullspec is the base OSImage we use to build our custom 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. // The format of the image pullspec is: // host[:port][/namespace]/name@sha256:<digest> // +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 BaseOSImagePullspec string `json:"baseOSImagePullspec,omitempty"` // baseImagePullSecret is the secret used to pull the base image. // must live in the openshift-machine-config-operator namespace // +required BaseImagePullSecret ImageSecretObjectReference `json:"baseImagePullSecret"` // machineOSImageBuilder describes which image builder will be used in each build triggered by this MachineOSConfig // +required ImageBuilder *MachineOSImageBuilder `json:"imageBuilder"` // renderedImagePushSecret is the secret used to connect to a user registry. // the final image push and pull secrets should be separate for security concerns. If the final image push secret is somehow exfiltrated, // that gives someone the power to push images to the image repository. By comparison, if the final image pull secret gets exfiltrated, // that only gives someone to pull images from the image repository. It's basically the principle of least permissions. // this push secret will be used only by the MachineConfigController pod to push the image to the final destination. Not all nodes will need to push this image, most of them // will only need to pull the image in order to use it. // +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. // The format of the image pushspec is: // host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag> // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=447 // +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && self.split(':')[1].matches('^([a-zA-Z0-9-./:])+$')) || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$'))`,message="the OCI Image reference must end with a valid :<tag>, where '<digest>' is 64 characters long and '<tag>' is any valid string Or it must be a valid .svc followed by a port, repository, image name, and tag." // +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && 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-_.]*?$')) || 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." // +required RenderedImagePushspec string `json:"renderedImagePushspec"` // releaseVersion is associated with the base OS Image. This is the version of Openshift that the Base Image is associated with. // This field is populated from the machine-config-osimageurl configmap in the openshift-machine-config-operator namespace. // It will come in the format: 4.16.0-0.nightly-2024-04-03-065948 or any valid release. The MachineOSBuilder populates this field and validates that this is a valid stream. // This is used as a label in the dockerfile that builds the OS image. // +optional ReleaseVersion string `json:"releaseVersion,omitempty"` // 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. // +patchMergeKey=containerfileArch // +patchStrategy=merge // +listType=map // +listMapKey=containerfileArch // +kubebuilder:validation:MinItems=0 // +kubebuilder:validation:MaxItems=7 // +optional Containerfile []MachineOSContainerfile `json:"containerFile" patchStrategy:"merge" patchMergeKey:"containerfileArch"` }
BuildInputs holds all of the information needed to trigger a build
func (*BuildInputs) DeepCopy ¶
func (in *BuildInputs) DeepCopy() *BuildInputs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildInputs.
func (*BuildInputs) DeepCopyInto ¶
func (in *BuildInputs) DeepCopyInto(out *BuildInputs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BuildInputs) SwaggerDoc ¶
func (BuildInputs) SwaggerDoc() map[string]string
type BuildOutputs ¶
type BuildOutputs struct { // currentImagePullSecret is the secret used to pull the final produced image. // must live in the openshift-machine-config-operator namespace // the final image push and pull secrets should be separate for security concerns. If the final image push secret is somehow exfiltrated, // that gives someone the power to push images to the image repository. By comparison, if the final image pull secret gets exfiltrated, // that only gives someone to pull images from the image repository. It's basically the principle of least permissions. // this pull secret will be used on all nodes in the pool. These nodes will need to pull the final OS image and boot into it using rpm-ostree or bootc. // +optional CurrentImagePullSecret ImageSecretObjectReference `json:"currentImagePullSecret,omitempty"` }
BuildOutputs holds all information needed to handle booting the image after a build +union
func (*BuildOutputs) DeepCopy ¶
func (in *BuildOutputs) DeepCopy() *BuildOutputs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildOutputs.
func (*BuildOutputs) DeepCopyInto ¶
func (in *BuildOutputs) DeepCopyInto(out *BuildOutputs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BuildOutputs) SwaggerDoc ¶
func (BuildOutputs) SwaggerDoc() map[string]string
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 ContainerfileArch ¶
type ContainerfileArch string
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 the aarch64 architecture Aarch64 ContainerfileArch = "aarch64" // describes the fx86_64 architecture X86_64 ContainerfileArch = "x86_64" // describes a containerfile that can be applied to any arch NoArch ContainerfileArch = "noarch" )
type ImageSecretObjectReference ¶
type ImageSecretObjectReference struct { // name is the name of the secret used to push or pull this MachineOSConfig object. // this secret must be in the openshift-machine-config-operator namespace. // +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 MCOObjectReference ¶
type MCOObjectReference struct { // name is the object name. // Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) // It may consist of only alphanumeric characters, hyphens (-) and periods (.) // and must be at most 253 characters in length. // +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"` }
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 MachineConfigNode ¶
type MachineConfigNode struct { metav1.TypeMeta `json:",inline"` 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 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4 +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"` metav1.ListMeta `json:"metadata"` Items []MachineConfigNode `json:"items"` }
MachineConfigNodeList describes all of the MachinesStates on the system
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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. This gets set before the machine config operator validates // the new machine config against the current machine config. // +required ConfigVersion MachineConfigNodeSpecMachineConfigVersion `json:"configVersion"` // pinnedImageSets holds the desired pinned image sets that this node should pin and pull. // +listType=map // +listMapKey=name // +kubebuilder:validation:MaxItems=100 // +optional PinnedImageSets []MachineConfigNodeSpecPinnedImageSet `json:"pinnedImageSets,omitempty"` }
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 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 hostname (https://tools.ietf.org/html/rfc1123) // It may consist of only alphanumeric characters, hyphens (-) and periods (.) // and must be at most 253 characters in length. // +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 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 MachineConfigNodeSpecPinnedImageSet ¶
type MachineConfigNodeSpecPinnedImageSet struct { // name is the name of the pinned image set. // Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) // It may consist of only alphanumeric characters, hyphens (-) and periods (.) // and must be at most 253 characters in length. // +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 (*MachineConfigNodeSpecPinnedImageSet) DeepCopy ¶
func (in *MachineConfigNodeSpecPinnedImageSet) DeepCopy() *MachineConfigNodeSpecPinnedImageSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpecPinnedImageSet.
func (*MachineConfigNodeSpecPinnedImageSet) DeepCopyInto ¶
func (in *MachineConfigNodeSpecPinnedImageSet) DeepCopyInto(out *MachineConfigNodeSpecPinnedImageSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineConfigNodeSpecPinnedImageSet) SwaggerDoc ¶
func (MachineConfigNodeSpecPinnedImageSet) SwaggerDoc() map[string]string
type MachineConfigNodeStatus ¶
type MachineConfigNodeStatus struct { // conditions represent the observations of a machine config node's current state. // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` // observedGeneration represents the generation observed by the controller. // This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec. // +required ObservedGeneration int64 `json:"observedGeneration,omitempty"` // configVersion describes the current and desired machine config for this node. // The current version represents the current machine config for the node and is updated after a successful update. // The desired version represents the machine config the node will attempt to update to. // This desired machine config has been compared to the current machine config and has been validated by the machine config operator as one that is valid and that exists. // +required ConfigVersion MachineConfigNodeStatusMachineConfigVersion `json:"configVersion"` // pinnedImageSets describes the current and desired pinned image sets for this node. // The current version is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node. // The desired version is the generation of the pinned image set that is targeted to be pulled and pinned on this node. // +listType=map // +listMapKey=name // +kubebuilder:validation:MaxItems=100 // +optional PinnedImageSets []MachineConfigNodeStatusPinnedImageSet `json:"pinnedImageSets,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 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 hostname (https://tools.ietf.org/html/rfc1123) // It may consist of only alphanumeric characters, hyphens (-) and periods (.) // and must be at most 253 characters in length. // +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]))*$` // +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 hostname (https://tools.ietf.org/html/rfc1123) // It may consist of only alphanumeric characters, hyphens (-) and periods (.) // and must be at most 253 characters in length. // +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 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 are not matched, 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 not 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 hostname (https://tools.ietf.org/html/rfc1123) // It may consist of only alphanumeric characters, hyphens (-) and periods (.) // and must be at most 253 characters in length. // +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"` // currentGeneration is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node. // +optional CurrentGeneration int32 `json:"currentGeneration,omitempty"` // desiredGeneration version is the generation of the pinned image set that is targeted to be pulled and pinned on this node. // +kubebuilder:validation:Minimum=0 // +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:Minimum=0 // +optional LastFailedGeneration int32 `json:"lastFailedGeneration,omitempty"` // lastFailedGenerationErrors is a list of errors why the lastFailed generation failed to be pulled and pinned. // +kubebuilder:validation:MaxItems=10 // +optional LastFailedGenerationErrors []string `json:"lastFailedGenerationErrors,omitempty"` }
+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 last failed generation" +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) ? has(self.desiredGeneration): true",message="desired generation must be defined if last failed generation is defined"
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 MachineConfigPoolReference ¶
type MachineConfigPoolReference struct { // name of the MachineConfigPool object. // +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"` }
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 MachineOSBuild ¶
type MachineOSBuild struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // spec describes the configuration of the machine os build // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="machineOSBuildSpec is immutable once set" // +required Spec MachineOSBuildSpec `json:"spec"` // status describes the lst observed state of this machine os build // +optional Status MachineOSBuildStatus `json:"status"` }
MachineOSBuild describes a build process managed and deployed by the MCO Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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"` metav1.ListMeta `json:"metadata"` Items []MachineOSBuild `json:"items"` }
MachineOSBuildList describes all of the Builds on the system
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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 { // configGeneration tracks which version of MachineOSConfig this build is based off of // +kubebuilder:validation:Minimum=1 // +required ConfigGeneration int64 `json:"configGeneration"` // desiredConfig is the desired config we want to build an image for. // +required DesiredConfig RenderedMachineConfigReference `json:"desiredConfig"` // machineOSConfig is the config object which the build is based off of // +required MachineOSConfig MachineOSConfigReference `json:"machineOSConfig"` // version tracks the newest MachineOSBuild for each MachineOSConfig // +kubebuilder:validation:Minimum=1 // +required Version int64 `json:"version"` // renderedImagePushspec is set from the MachineOSConfig // The format of the image pullspec is: // host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag> // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=447 // +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && self.split(':')[1].matches('^([a-zA-Z0-9-./:])+$')) || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$'))`,message="the OCI Image reference must end with a valid :<tag>, where '<digest>' is 64 characters long and '<tag>' is any valid string Or it must be a valid .svc followed by a port, repository, image name, and tag." // +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && 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-_.]*?$')) || 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." // +required RenderedImagePushspec string `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, no future conditions can be set. This is enforced by the MCO. // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type // +optional Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` // ImageBuilderType describes the image builder set in the MachineOSConfig // +optional BuilderReference *MachineOSBuilderReference `json:"builderReference"` // relatedObjects is a list of objects that are related to the build process. RelatedObjects []ObjectReference `json:"relatedObjects,omitempty"` // buildStart describes when the build started. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="buildStart is immutable once set" // +required BuildStart *metav1.Time `json:"buildStart"` // buildEnd describes when the build ended. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="buildEnd is immutable once set" //+optional BuildEnd *metav1.Time `json:"buildEnd,omitempty"` // finalImagePushSpec describes the fully qualified pushspec produced by this build that the final image can be. Must be in sha format. // +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" // +optional FinalImagePushspec string `json:"finalImagePullspec,omitempty"` }
MachineOSBuildStatus describes the state of a build and other helpful information.
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 image builder set in the MachineOSConfig // +unionDiscriminator ImageBuilderType MachineOSImageBuilderType `json:"imageBuilderType"` // relatedObjects is a list of objects that are related to the build process. // +unionMember,optional PodImageBuilder *ObjectReference `json:"buildPod,omitempty"` }
MachineOSBuilderReference describes which ImageBuilder backend to use for this build/ +union +kubebuilder:validation:XValidation:rule="has(self.imageBuilderType) && self.imageBuilderType == 'PodImageBuilder' ? true : !has(self.buildPod)",message="buildPod is required when imageBuilderType is PodImageBuilder, 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"` 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 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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"` metav1.ListMeta `json:"metadata,omitempty"` Items []MachineOSConfig `json:"items"` }
MachineOSConfigList describes all configurations for image builds on the system
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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 // +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 // +required MachineConfigPool MachineConfigPoolReference `json:"machineConfigPool"` // buildInputs is where user input options for the build live // +required BuildInputs BuildInputs `json:"buildInputs"` // buildOutputs is where user input options for the build live // +optional BuildOutputs BuildOutputs `json:"buildOutputs,omitempty"` }
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 config. // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type // +optional Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` // observedGeneration represents the generation observed by the controller. // this field is updated when the user changes the configuration in BuildSettings or the MCP this object is associated with. // +required ObservedGeneration int64 `json:"observedGeneration,omitempty"` // currentImagePullspec is the fully qualified image pull spec used by the MCO to pull down the new OSImage. This must include sha256. // +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 CurrentImagePullspec string `json:"currentImagePullspec,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;aarch64;x86_64;noarch // +kubebuilder:default:=noarch // +optional ContainerfileArch ContainerfileArch `json:"containerfileArch"` // content is the custom content to be built // +required 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:default:=PodImageBuilder // +kubebuilder:validation:Enum:=PodImageBuilder // Valid options are: PodImageBuilder 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
const ( // describes that the machine-os-builder will use a custom pod builder that uses buildah PodBuilder MachineOSImageBuilderType = "PodImageBuilder" )
type ObjectReference ¶
type ObjectReference struct { // group of the referent. // +required Group string `json:"group"` // resource of the referent. // +required Resource string `json:"resource"` // namespace of the referent. // +optional Namespace string `json:"namespace,omitempty"` // name of the referent. // +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 ref is: // host[:port][/namespace]/name@sha256:<digest> // +required // +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" Name string `json:"name"` }
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"` metav1.ObjectMeta `json:"metadata,omitempty"` // spec describes the configuration of this pinned image set. // +required Spec PinnedImageSetSpec `json:"spec"` // status describes the last observed state of this pinned image set. // +optional Status PinnedImageSetStatus `json:"status"` }
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 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata metav1.ListMeta `json:"metadata"` Items []PinnedImageSet `json:"items"` }
PinnedImageSetList is a list of PinnedImageSet resources
Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4
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 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:...", // ... // ] // // These image references should all be by digest, tags aren't allowed. // +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 PinnedImageSetStatus ¶
type PinnedImageSetStatus struct { // conditions represent the observations of a pinned image set's current state. // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` }
PinnedImageSetStatus describes the current state of a PinnedImageSet.
func (*PinnedImageSetStatus) DeepCopy ¶
func (in *PinnedImageSetStatus) DeepCopy() *PinnedImageSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetStatus.
func (*PinnedImageSetStatus) DeepCopyInto ¶
func (in *PinnedImageSetStatus) DeepCopyInto(out *PinnedImageSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (PinnedImageSetStatus) SwaggerDoc ¶
func (PinnedImageSetStatus) SwaggerDoc() map[string]string
type RenderedMachineConfigReference ¶
type RenderedMachineConfigReference struct { // name is the name of the rendered MachineConfig object. // +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"` }
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 (*RenderedMachineConfigReference) DeepCopy ¶
func (in *RenderedMachineConfigReference) DeepCopy() *RenderedMachineConfigReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RenderedMachineConfigReference.
func (*RenderedMachineConfigReference) DeepCopyInto ¶
func (in *RenderedMachineConfigReference) DeepCopyInto(out *RenderedMachineConfigReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (RenderedMachineConfigReference) SwaggerDoc ¶
func (RenderedMachineConfigReference) SwaggerDoc() map[string]string
type StateProgress ¶
type StateProgress string
StateProgress is each possible state for each possible MachineConfigNodeType UpgradeProgression Kind will only use the "MachinConfigPoolUpdate..." types for example Please note: These conditions are subject to change. Both additions and deletions may be made.
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 has a matching desired and current config after executing an update MachineConfigNodeUpdated StateProgress = "Updated" // MachineConfigNodeUpdateResumed describes a machine that has resumed normal processes MachineConfigNodeResumed StateProgress = "Resumed" // MachineConfigNodeUpdateCompatible the part of the preparing phase where the mco decides whether it can update MachineConfigNodeUpdateCompatible StateProgress = "UpdateCompatible" // MachineConfigNodeUpdateDrained describes the part of the inprogress phase where the node drains MachineConfigNodeUpdateDrained StateProgress = "Drained" // MachineConfigNodeUpdateFilesAndOS describes the part of the inprogress phase where the nodes file and OS config change MachineConfigNodeUpdateFilesAndOS StateProgress = "AppliedFilesAndOS" // MachineConfigNodeUpdateCordoned describes the part of the completing 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" // MachineConfigNodeUpdateReloaded describes the part of the post action phase where the node reloads its CRIO service MachineConfigNodeUpdateReloaded StateProgress = "ReloadedCRIO" // 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" )