v1

package
v0.0.0-...-52377f0 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2025 License: Apache-2.0 Imports: 7 Imported by: 66

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 = ContainerRuntimeDefaultRuntimeRunc
)
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"`

	// 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.
	// +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"`

	// notAfter is the upper boundary for validity
	// +optional
	NotAfter *metav1.Time `json:"notAfter"`

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

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

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

	// 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 or RenderDegraded
	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"`
}

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

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

	// 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.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +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" patchStrategy:"merge" patchMergeKey:"type"`
	// 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

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.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	// TODO(jerzhang): add godoc after conditions are finalized. Also consider adding printer columns.
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// 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 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 and end with an alphanumeric character.
	// Example: "deployments", "deploymentconfigs", "pods", etc.
	// +required
	// +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
	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 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 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"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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