v1

package
v0.0.0-...-0e3c378 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2025 License: Apache-2.0 Imports: 7 Imported by: 100

Documentation

Overview

+kubebuilder:validation:Optional Package v1 is the v1 version of the API.

Index

Constants

View Source
const (
	ContainerRuntimeDefaultRuntimeEmpty   = ""
	ContainerRuntimeDefaultRuntimeRunc    = "runc"
	ContainerRuntimeDefaultRuntimeCrun    = "crun"
	ContainerRuntimeDefaultRuntimeDefault = ContainerRuntimeDefaultRuntimeCrun
)

These constants are used in the Machine Config Operator (MCO)

View Source
const KubeletConfigRoleLabelPrefix = "pools.operator.machineconfiguration.openshift.io/"

KubeletConfigRoleLabelPrefix is the label that must be present in the KubeletConfig CR

View Source
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

View Source
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 Kind

func Kind(kind string) schema.GroupKind

Kind is used to validate existence of a resource kind in this API group

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigCondition.

func (*ContainerRuntimeConfigCondition) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ContainerRuntimeConfigCondition) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigList.

func (*ContainerRuntimeConfigList) DeepCopyInto

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigSpec.

func (*ContainerRuntimeConfigSpec) DeepCopyInto

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfigStatus.

func (*ContainerRuntimeConfigStatus) DeepCopyInto

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntimeConfiguration.

func (*ContainerRuntimeConfiguration) DeepCopyInto

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

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

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigStatusCondition.

func (*ControllerConfigStatusCondition) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ControllerConfigStatusCondition) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSecretObjectReference.

func (*ImageSecretObjectReference) DeepCopyInto

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

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

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpecConfigImage.

func (*MachineConfigNodeSpecConfigImage) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeSpecConfigImage) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpecMachineConfigVersion.

func (*MachineConfigNodeSpecMachineConfigVersion) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeSpecMachineConfigVersion) SwaggerDoc

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusConfigImage.

func (*MachineConfigNodeStatusConfigImage) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeStatusConfigImage) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusInternalReleaseImage.

func (*MachineConfigNodeStatusInternalReleaseImage) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeStatusInternalReleaseImage) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusInternalReleaseImageRef.

func (*MachineConfigNodeStatusInternalReleaseImageRef) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeStatusInternalReleaseImageRef) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusMachineConfigVersion.

func (*MachineConfigNodeStatusMachineConfigVersion) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeStatusMachineConfigVersion) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusPinnedImageSet.

func (*MachineConfigNodeStatusPinnedImageSet) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigNodeStatusPinnedImageSet) SwaggerDoc

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolCondition.

func (*MachineConfigPoolCondition) DeepCopyInto

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolReference.

func (*MachineConfigPoolReference) DeepCopyInto

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"`

	// maxUnavailable defines either an integer number or percentage
	// 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

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"`

	// unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool.
	// 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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigPoolStatusConfiguration.

func (*MachineConfigPoolStatusConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MachineConfigPoolStatusConfiguration) SwaggerDoc

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

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

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineOSBuilderReference.

func (*MachineOSBuilderReference) DeepCopyInto

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

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

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

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

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

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"`
	// unavailableMachineCount is the number of machines managed by the node synchronizer but are unavailable.
	// +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

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"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL