v1alpha1

package
v0.0.0-...-188620a Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2024 License: Apache-2.0 Imports: 3 Imported by: 10

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Index

Constants

This section is empty.

Variables

View Source
var (
	GroupName    = "machineconfiguration.openshift.io"
	GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

	// Install is a function which adds this version to a scheme
	Install = schemeBuilder.AddToScheme

	// SchemeGroupVersion generated code relies on this name
	// Deprecated
	SchemeGroupVersion = GroupVersion
	// AddToScheme exists solely to keep the old generators creating valid code
	// DEPRECATED
	AddToScheme = schemeBuilder.AddToScheme
)

Functions

func 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 generated code relies on this being here, but it logically belongs to the group DEPRECATED

Types

type BuildInputs

type BuildInputs struct {
	// baseOSExtensionsImagePullspec is the base Extensions image used in the build process
	// the MachineOSConfig object will use the in cluster image registry configuration.
	// if you wish to use a mirror or any other settings specific to registries.conf, please specify those in the cluster wide registries.conf.
	// The format of the image pullspec is:
	// host[:port][/namespace]/name@sha256:<digest>
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=447
	// +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
	// +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
	// +optional
	BaseOSExtensionsImagePullspec string `json:"baseOSExtensionsImagePullspec,omitempty"`
	// baseOSImagePullspec is the base OSImage we use to build our custom image.
	// the MachineOSConfig object will use the in cluster image registry configuration.
	// if you wish to use a mirror or any other settings specific to registries.conf, please specify those in the cluster wide registries.conf.
	// The format of the image pullspec is:
	// host[:port][/namespace]/name@sha256:<digest>
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=447
	// +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
	// +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
	// +optional
	BaseOSImagePullspec string `json:"baseOSImagePullspec,omitempty"`
	// baseImagePullSecret is the secret used to pull the base image.
	// must live in the openshift-machine-config-operator namespace
	// +required
	BaseImagePullSecret ImageSecretObjectReference `json:"baseImagePullSecret"`
	// machineOSImageBuilder describes which image builder will be used in each build triggered by this MachineOSConfig
	// +required
	ImageBuilder *MachineOSImageBuilder `json:"imageBuilder"`
	// renderedImagePushSecret is the secret used to connect to a user registry.
	// the final image push and pull secrets should be separate for security concerns. If the final image push secret is somehow exfiltrated,
	// that gives someone the power to push images to the image repository. By comparison, if the final image pull secret gets exfiltrated,
	// that only gives someone to pull images from the image repository. It's basically the principle of least permissions.
	// this push secret will be used only by the MachineConfigController pod to push the image to the final destination. Not all nodes will need to push this image, most of them
	// will only need to pull the image in order to use it.
	// +required
	RenderedImagePushSecret ImageSecretObjectReference `json:"renderedImagePushSecret"`
	// renderedImagePushspec describes the location of the final image.
	// the MachineOSConfig object will use the in cluster image registry configuration.
	// if you wish to use a mirror or any other settings specific to registries.conf, please specify those in the cluster wide registries.conf.
	// The format of the image pushspec is:
	// host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag>
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=447
	// +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && self.split(':')[1].matches('^([a-zA-Z0-9-./:])+$')) || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$'))`,message="the OCI Image reference must end with a valid :<tag>, where '<digest>' is 64 characters long and '<tag>' is any valid string  Or it must be a valid .svc followed by a port, repository, image name, and tag."
	// +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && self.split(':')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')) || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme. Or it must be a valid .svc followed by a port, repository, image name, and tag."
	// +required
	RenderedImagePushspec string `json:"renderedImagePushspec"`
	// releaseVersion is associated with the base OS Image. This is the version of Openshift that the Base Image is associated with.
	// This field is populated from the machine-config-osimageurl configmap in the openshift-machine-config-operator namespace.
	// It will come in the format: 4.16.0-0.nightly-2024-04-03-065948 or any valid release. The MachineOSBuilder populates this field and validates that this is a valid stream.
	// This is used as a label in the dockerfile that builds the OS image.
	// +optional
	ReleaseVersion string `json:"releaseVersion,omitempty"`
	// containerFile describes the custom data the user has specified to build into the image.
	// this is also commonly called a Dockerfile and you can treat it as such. The content is the content of your Dockerfile.
	// +patchMergeKey=containerfileArch
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=containerfileArch
	// +kubebuilder:validation:MinItems=0
	// +kubebuilder:validation:MaxItems=7
	// +optional
	Containerfile []MachineOSContainerfile `json:"containerFile" patchStrategy:"merge" patchMergeKey:"containerfileArch"`
}

BuildInputs holds all of the information needed to trigger a build

func (*BuildInputs) DeepCopy

func (in *BuildInputs) DeepCopy() *BuildInputs

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

func (*BuildInputs) DeepCopyInto

func (in *BuildInputs) DeepCopyInto(out *BuildInputs)

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

func (BuildInputs) SwaggerDoc

func (BuildInputs) SwaggerDoc() map[string]string

type BuildOutputs

type BuildOutputs struct {
	// currentImagePullSecret is the secret used to pull the final produced image.
	// must live in the openshift-machine-config-operator namespace
	// the final image push and pull secrets should be separate for security concerns. If the final image push secret is somehow exfiltrated,
	// that gives someone the power to push images to the image repository. By comparison, if the final image pull secret gets exfiltrated,
	// that only gives someone to pull images from the image repository. It's basically the principle of least permissions.
	// this pull secret will be used on all nodes in the pool. These nodes will need to pull the final OS image and boot into it using rpm-ostree or bootc.
	// +optional
	CurrentImagePullSecret ImageSecretObjectReference `json:"currentImagePullSecret,omitempty"`
}

BuildOutputs holds all information needed to handle booting the image after a build +union

func (*BuildOutputs) DeepCopy

func (in *BuildOutputs) DeepCopy() *BuildOutputs

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

func (*BuildOutputs) DeepCopyInto

func (in *BuildOutputs) DeepCopyInto(out *BuildOutputs)

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

func (BuildOutputs) SwaggerDoc

func (BuildOutputs) SwaggerDoc() map[string]string

type BuildProgress

type BuildProgress string

BuildProgess highlights some of the key phases of a build to be tracked in Conditions.

const (
	// prepared indicates that the build has finished preparing. A build is prepared
	// by gathering the build inputs, validating them, and making sure we can do an update as specified.
	MachineOSBuildPrepared BuildProgress = "Prepared"
	// building indicates that the build has been kicked off with the specified image builder
	MachineOSBuilding BuildProgress = "Building"
	// failed indicates that during the build or preparation process, the build failed.
	MachineOSBuildFailed BuildProgress = "Failed"
	// interrupted indicates that the user stopped the build process by modifying part of the build config
	MachineOSBuildInterrupted BuildProgress = "Interrupted"
	// succeeded indicates that the build has completed and the image is ready to roll out.
	MachineOSBuildSucceeded BuildProgress = "Succeeded"
)

type ContainerfileArch

type ContainerfileArch string
const (
	// describes the arm64 architecture
	Arm64 ContainerfileArch = "arm64"
	// describes the amd64 architecture
	Amd64 ContainerfileArch = "amd64"
	// describes the ppc64le architecture
	Ppc ContainerfileArch = "ppc64le"
	// describes the s390x architecture
	S390 ContainerfileArch = "s390x"
	// describes the aarch64 architecture
	Aarch64 ContainerfileArch = "aarch64"
	// describes the fx86_64 architecture
	X86_64 ContainerfileArch = "x86_64"
	// describes a containerfile that can be applied to any arch
	NoArch ContainerfileArch = "noarch"
)

type ImageSecretObjectReference

type ImageSecretObjectReference struct {
	// name is the name of the secret used to push or pull this MachineOSConfig object.
	// this secret must be in the openshift-machine-config-operator namespace.
	// +required
	Name string `json:"name"`
}

Refers to the name of an image registry push/pull secret needed in the build process.

func (*ImageSecretObjectReference) DeepCopy

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 MCOObjectReference

type MCOObjectReference struct {
	// name is the object name.
	// Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
	// It may consist of only alphanumeric characters, hyphens (-) and periods (.)
	// and must be at most 253 characters in length.
	// +kubebuilder:validation:MaxLength:=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Name string `json:"name"`
}

MCOObjectReference holds information about an object the MCO either owns or modifies in some way

func (*MCOObjectReference) DeepCopy

func (in *MCOObjectReference) DeepCopy() *MCOObjectReference

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

func (*MCOObjectReference) DeepCopyInto

func (in *MCOObjectReference) DeepCopyInto(out *MCOObjectReference)

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

func (MCOObjectReference) SwaggerDoc

func (MCOObjectReference) SwaggerDoc() map[string]string

type MachineConfigNode

type MachineConfigNode struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec describes the configuration of the machine config node.
	// +required
	Spec MachineConfigNodeSpec `json:"spec"`

	// status describes the last observed state of this machine config node.
	// +optional
	Status MachineConfigNodeStatus `json:"status"`
}

MachineConfigNode describes the health of the Machines on the system Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4 +kubebuilder:validation:XValidation:rule="self.metadata.name == self.spec.node.name",message="spec.node.name should match metadata.name"

func (*MachineConfigNode) DeepCopy

func (in *MachineConfigNode) DeepCopy() *MachineConfigNode

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

func (*MachineConfigNode) DeepCopyInto

func (in *MachineConfigNode) DeepCopyInto(out *MachineConfigNode)

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

func (*MachineConfigNode) DeepCopyObject

func (in *MachineConfigNode) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (MachineConfigNode) SwaggerDoc

func (MachineConfigNode) SwaggerDoc() map[string]string

type MachineConfigNodeList

type MachineConfigNodeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []MachineConfigNode `json:"items"`
}

MachineConfigNodeList describes all of the MachinesStates on the system

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*MachineConfigNodeList) DeepCopy

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

func (*MachineConfigNodeList) DeepCopyInto

func (in *MachineConfigNodeList) DeepCopyInto(out *MachineConfigNodeList)

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

func (*MachineConfigNodeList) DeepCopyObject

func (in *MachineConfigNodeList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (MachineConfigNodeList) SwaggerDoc

func (MachineConfigNodeList) SwaggerDoc() map[string]string

type MachineConfigNodeSpec

type MachineConfigNodeSpec struct {
	// node contains a reference to the node for this machine config node.
	// +required
	Node MCOObjectReference `json:"node"`

	// pool contains a reference to the machine config pool that this machine config node's
	// referenced node belongs to.
	// +required
	Pool MCOObjectReference `json:"pool"`

	// configVersion holds the desired config version for the node targeted by this machine config node resource.
	// The desired version represents the machine config the node will attempt to update to. This gets set before the machine config operator validates
	// the new machine config against the current machine config.
	// +required
	ConfigVersion MachineConfigNodeSpecMachineConfigVersion `json:"configVersion"`

	// pinnedImageSets holds the desired pinned image sets that this node should pin and pull.
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MaxItems=100
	// +optional
	PinnedImageSets []MachineConfigNodeSpecPinnedImageSet `json:"pinnedImageSets,omitempty"`
}

MachineConfigNodeSpec describes the MachineConfigNode we are managing.

func (*MachineConfigNodeSpec) DeepCopy

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

func (*MachineConfigNodeSpec) DeepCopyInto

func (in *MachineConfigNodeSpec) DeepCopyInto(out *MachineConfigNodeSpec)

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

func (MachineConfigNodeSpec) SwaggerDoc

func (MachineConfigNodeSpec) SwaggerDoc() map[string]string

type MachineConfigNodeSpecMachineConfigVersion

type MachineConfigNodeSpecMachineConfigVersion struct {
	// desired is the name of the machine config that the the node should be upgraded to.
	// This value is set when the machine config pool generates a new version of its rendered configuration.
	// When this value is changed, the machine config daemon starts the node upgrade process.
	// This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
	// Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
	// It may consist of only alphanumeric characters, hyphens (-) and periods (.)
	// and must be at most 253 characters in length.
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Desired string `json:"desired"`
}

MachineConfigNodeSpecMachineConfigVersion holds the desired config version for the current observed machine config node. When Current is not equal to Desired; the MachineConfigOperator is in an upgrade phase and the machine config node will take account of upgrade related events. Otherwise they will be ignored given that certain operations happen both during the MCO's upgrade mode and the daily operations mode.

func (*MachineConfigNodeSpecMachineConfigVersion) DeepCopy

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 MachineConfigNodeSpecPinnedImageSet

type MachineConfigNodeSpecPinnedImageSet struct {
	// name is the name of the pinned image set.
	// Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
	// It may consist of only alphanumeric characters, hyphens (-) and periods (.)
	// and must be at most 253 characters in length.
	// +kubebuilder:validation:MaxLength:=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Name string `json:"name"`
}

func (*MachineConfigNodeSpecPinnedImageSet) DeepCopy

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

func (*MachineConfigNodeSpecPinnedImageSet) DeepCopyInto

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

func (MachineConfigNodeSpecPinnedImageSet) SwaggerDoc

type MachineConfigNodeStatus

type MachineConfigNodeStatus struct {
	// conditions represent the observations of a machine config node's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// observedGeneration represents the generation observed by the controller.
	// This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
	// +required
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// configVersion describes the current and desired machine config for this node.
	// The current version represents the current machine config for the node and is updated after a successful update.
	// The desired version represents the machine config the node will attempt to update to.
	// This desired machine config has been compared to the current machine config and has been validated by the machine config operator as one that is valid and that exists.
	// +required
	ConfigVersion MachineConfigNodeStatusMachineConfigVersion `json:"configVersion"`
	// pinnedImageSets describes the current and desired pinned image sets for this node.
	// The current version is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node.
	// The desired version is the generation of the pinned image set that is targeted to be pulled and pinned on this node.
	// +listType=map
	// +listMapKey=name
	// +kubebuilder:validation:MaxItems=100
	// +optional
	PinnedImageSets []MachineConfigNodeStatusPinnedImageSet `json:"pinnedImageSets,omitempty"`
}

MachineConfigNodeStatus holds the reported information on a particular machine config node.

func (*MachineConfigNodeStatus) DeepCopy

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

func (*MachineConfigNodeStatus) DeepCopyInto

func (in *MachineConfigNodeStatus) DeepCopyInto(out *MachineConfigNodeStatus)

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

func (MachineConfigNodeStatus) SwaggerDoc

func (MachineConfigNodeStatus) SwaggerDoc() map[string]string

type MachineConfigNodeStatusMachineConfigVersion

type MachineConfigNodeStatusMachineConfigVersion struct {
	// current is the name of the machine config currently in use on the node.
	// This value is updated once the machine config daemon has completed the update of the configuration for the node.
	// This value should match the desired version unless an upgrade is in progress.
	// Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
	// It may consist of only alphanumeric characters, hyphens (-) and periods (.)
	// and must be at most 253 characters in length.
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +optional
	Current string `json:"current"`
	// desired is the MachineConfig the node wants to upgrade to.
	// This value gets set in the machine config node status once the machine config has been validated
	// against the current machine config.
	// Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
	// It may consist of only alphanumeric characters, hyphens (-) and periods (.)
	// and must be at most 253 characters in length.
	// +kubebuilder:validation:MaxLength=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Desired string `json:"desired"`
}

MachineConfigNodeStatusMachineConfigVersion holds the current and desired config versions as last updated in the MCN status. When the current and desired versions are not matched, the machine config pool is processing an upgrade and the machine config node will monitor the upgrade process. When the current and desired versions do not match, the machine config node will ignore these events given that certain operations happen both during the MCO's upgrade mode and the daily operations mode.

func (*MachineConfigNodeStatusMachineConfigVersion) DeepCopy

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 hostname (https://tools.ietf.org/html/rfc1123)
	// It may consist of only alphanumeric characters, hyphens (-) and periods (.)
	// and must be at most 253 characters in length.
	// +kubebuilder:validation:MaxLength:=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Name string `json:"name"`
	// currentGeneration is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node.
	// +optional
	CurrentGeneration int32 `json:"currentGeneration,omitempty"`
	// desiredGeneration version is the generation of the pinned image set that is targeted to be pulled and pinned on this node.
	// +kubebuilder:validation:Minimum=0
	// +optional
	DesiredGeneration int32 `json:"desiredGeneration,omitempty"`
	// lastFailedGeneration is the generation of the most recent pinned image set that failed to be pulled and pinned on this node.
	// +kubebuilder:validation:Minimum=0
	// +optional
	LastFailedGeneration int32 `json:"lastFailedGeneration,omitempty"`
	// lastFailedGenerationErrors is a list of errors why the lastFailed generation failed to be pulled and pinned.
	// +kubebuilder:validation:MaxItems=10
	// +optional
	LastFailedGenerationErrors []string `json:"lastFailedGenerationErrors,omitempty"`
}

+kubebuilder:validation:XValidation:rule="has(self.desiredGeneration) && has(self.currentGeneration) ? self.desiredGeneration >= self.currentGeneration : true",message="desired generation must be greater than or equal to the current generation" +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) && has(self.desiredGeneration) ? self.desiredGeneration >= self.lastFailedGeneration : true",message="desired generation must be greater than last failed generation" +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) ? has(self.desiredGeneration): true",message="desired generation must be defined if last failed generation is defined"

func (*MachineConfigNodeStatusPinnedImageSet) DeepCopy

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 MachineConfigPoolReference

type MachineConfigPoolReference struct {
	// name of the MachineConfigPool object.
	// +kubebuilder:validation:MaxLength:=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Name string `json:"name"`
}

Refers to the name of a MachineConfigPool (e.g., "worker", "infra", etc.): the MachineOSBuilder pod validates that the user has provided a valid pool

func (*MachineConfigPoolReference) DeepCopy

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 MachineOSBuild

type MachineOSBuild struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec describes the configuration of the machine os build
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="machineOSBuildSpec is immutable once set"
	// +required
	Spec MachineOSBuildSpec `json:"spec"`

	// status describes the lst observed state of this machine os build
	// +optional
	Status MachineOSBuildStatus `json:"status"`
}

MachineOSBuild describes a build process managed and deployed by the MCO Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*MachineOSBuild) DeepCopy

func (in *MachineOSBuild) DeepCopy() *MachineOSBuild

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

func (*MachineOSBuild) DeepCopyInto

func (in *MachineOSBuild) DeepCopyInto(out *MachineOSBuild)

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

func (*MachineOSBuild) DeepCopyObject

func (in *MachineOSBuild) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (MachineOSBuild) SwaggerDoc

func (MachineOSBuild) SwaggerDoc() map[string]string

type MachineOSBuildList

type MachineOSBuildList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []MachineOSBuild `json:"items"`
}

MachineOSBuildList describes all of the Builds on the system

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*MachineOSBuildList) DeepCopy

func (in *MachineOSBuildList) DeepCopy() *MachineOSBuildList

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

func (*MachineOSBuildList) DeepCopyInto

func (in *MachineOSBuildList) DeepCopyInto(out *MachineOSBuildList)

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

func (*MachineOSBuildList) DeepCopyObject

func (in *MachineOSBuildList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (MachineOSBuildList) SwaggerDoc

func (MachineOSBuildList) SwaggerDoc() map[string]string

type MachineOSBuildSpec

type MachineOSBuildSpec struct {
	// configGeneration tracks which version of MachineOSConfig this build is based off of
	// +kubebuilder:validation:Minimum=1
	// +required
	ConfigGeneration int64 `json:"configGeneration"`
	// desiredConfig is the desired config we want to build an image for.
	// +required
	DesiredConfig RenderedMachineConfigReference `json:"desiredConfig"`
	// machineOSConfig is the config object which the build is based off of
	// +required
	MachineOSConfig MachineOSConfigReference `json:"machineOSConfig"`
	// version tracks the newest MachineOSBuild for each MachineOSConfig
	// +kubebuilder:validation:Minimum=1
	// +required
	Version int64 `json:"version"`
	// renderedImagePushspec is set from the MachineOSConfig
	// The format of the image pullspec is:
	// host[:port][/namespace]/name:<tag> or svc_name.namespace.svc[:port]/repository/name:<tag>
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=447
	// +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && self.split(':')[1].matches('^([a-zA-Z0-9-./:])+$')) || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$'))`,message="the OCI Image reference must end with a valid :<tag>, where '<digest>' is 64 characters long and '<tag>' is any valid string  Or it must be a valid .svc followed by a port, repository, image name, and tag."
	// +kubebuilder:validation:XValidation:rule=`((self.split(':').size() == 2 && self.split(':')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')) || self.matches('^[^.]+\\.[^.]+\\.svc:\\d+\\/[^\\/]+\\/[^\\/]+:[^\\/]+$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme. Or it must be a valid .svc followed by a port, repository, image name, and tag."
	// +required
	RenderedImagePushspec string `json:"renderedImagePushspec"`
}

MachineOSBuildSpec describes information about a build process primarily populated from a MachineOSConfig object.

func (*MachineOSBuildSpec) DeepCopy

func (in *MachineOSBuildSpec) DeepCopy() *MachineOSBuildSpec

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

func (*MachineOSBuildSpec) DeepCopyInto

func (in *MachineOSBuildSpec) DeepCopyInto(out *MachineOSBuildSpec)

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

func (MachineOSBuildSpec) SwaggerDoc

func (MachineOSBuildSpec) SwaggerDoc() map[string]string

type MachineOSBuildStatus

type MachineOSBuildStatus struct {
	// conditions are state related conditions for the build. Valid types are:
	// Prepared, Building, Failed, Interrupted, and Succeeded
	// once a Build is marked as Failed, no future conditions can be set. This is enforced by the MCO.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// ImageBuilderType describes the image builder set in the MachineOSConfig
	// +optional
	BuilderReference *MachineOSBuilderReference `json:"builderReference"`
	// relatedObjects is a list of objects that are related to the build process.
	RelatedObjects []ObjectReference `json:"relatedObjects,omitempty"`
	// buildStart describes when the build started.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="buildStart is immutable once set"
	// +required
	BuildStart *metav1.Time `json:"buildStart"`
	// buildEnd describes when the build ended.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="buildEnd is immutable once set"
	//+optional
	BuildEnd *metav1.Time `json:"buildEnd,omitempty"`
	// finalImagePushSpec describes the fully qualified pushspec produced by this build that the final image can be. Must be in sha format.
	// +kubebuilder:validation:XValidation:rule=`((self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$')))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
	// +optional
	FinalImagePushspec string `json:"finalImagePullspec,omitempty"`
}

MachineOSBuildStatus describes the state of a build and other helpful information.

func (*MachineOSBuildStatus) DeepCopy

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

func (*MachineOSBuildStatus) DeepCopyInto

func (in *MachineOSBuildStatus) DeepCopyInto(out *MachineOSBuildStatus)

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

func (MachineOSBuildStatus) SwaggerDoc

func (MachineOSBuildStatus) SwaggerDoc() map[string]string

type MachineOSBuilderReference

type MachineOSBuilderReference struct {
	// imageBuilderType describes the image builder set in the MachineOSConfig
	// +unionDiscriminator
	ImageBuilderType MachineOSImageBuilderType `json:"imageBuilderType"`

	// relatedObjects is a list of objects that are related to the build process.
	// +unionMember,optional
	PodImageBuilder *ObjectReference `json:"buildPod,omitempty"`
}

MachineOSBuilderReference describes which ImageBuilder backend to use for this build/ +union +kubebuilder:validation:XValidation:rule="has(self.imageBuilderType) && self.imageBuilderType == 'PodImageBuilder' ? true : !has(self.buildPod)",message="buildPod is required when imageBuilderType is PodImageBuilder, and forbidden otherwise"

func (*MachineOSBuilderReference) DeepCopy

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"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec describes the configuration of the machineosconfig
	// +required
	Spec MachineOSConfigSpec `json:"spec"`

	// status describes the status of the machineosconfig
	// +optional
	Status MachineOSConfigStatus `json:"status,omitempty"`
}

MachineOSConfig describes the configuration for a build process managed by the MCO Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*MachineOSConfig) DeepCopy

func (in *MachineOSConfig) DeepCopy() *MachineOSConfig

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

func (*MachineOSConfig) DeepCopyInto

func (in *MachineOSConfig) DeepCopyInto(out *MachineOSConfig)

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

func (*MachineOSConfig) DeepCopyObject

func (in *MachineOSConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (MachineOSConfig) SwaggerDoc

func (MachineOSConfig) SwaggerDoc() map[string]string

type MachineOSConfigList

type MachineOSConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []MachineOSConfig `json:"items"`
}

MachineOSConfigList describes all configurations for image builds on the system

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*MachineOSConfigList) DeepCopy

func (in *MachineOSConfigList) DeepCopy() *MachineOSConfigList

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

func (*MachineOSConfigList) DeepCopyInto

func (in *MachineOSConfigList) DeepCopyInto(out *MachineOSConfigList)

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

func (*MachineOSConfigList) DeepCopyObject

func (in *MachineOSConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (MachineOSConfigList) SwaggerDoc

func (MachineOSConfigList) SwaggerDoc() map[string]string

type MachineOSConfigReference

type MachineOSConfigReference struct {
	// name of the MachineOSConfig
	// +required
	Name string `json:"name"`
}

MachineOSConfigReference refers to the MachineOSConfig this build is based off of

func (*MachineOSConfigReference) DeepCopy

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

func (*MachineOSConfigReference) DeepCopyInto

func (in *MachineOSConfigReference) DeepCopyInto(out *MachineOSConfigReference)

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

func (MachineOSConfigReference) SwaggerDoc

func (MachineOSConfigReference) SwaggerDoc() map[string]string

type MachineOSConfigSpec

type MachineOSConfigSpec struct {
	// machineConfigPool is the pool which the build is for
	// +required
	MachineConfigPool MachineConfigPoolReference `json:"machineConfigPool"`
	// buildInputs is where user input options for the build live
	// +required
	BuildInputs BuildInputs `json:"buildInputs"`
	// buildOutputs is where user input options for the build live
	// +optional
	BuildOutputs BuildOutputs `json:"buildOutputs,omitempty"`
}

MachineOSConfigSpec describes user-configurable options as well as information about a build process.

func (*MachineOSConfigSpec) DeepCopy

func (in *MachineOSConfigSpec) DeepCopy() *MachineOSConfigSpec

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

func (*MachineOSConfigSpec) DeepCopyInto

func (in *MachineOSConfigSpec) DeepCopyInto(out *MachineOSConfigSpec)

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

func (MachineOSConfigSpec) SwaggerDoc

func (MachineOSConfigSpec) SwaggerDoc() map[string]string

type MachineOSConfigStatus

type MachineOSConfigStatus struct {
	// conditions are state related conditions for the config.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// observedGeneration represents the generation observed by the controller.
	// this field is updated when the user changes the configuration in BuildSettings or the MCP this object is associated with.
	// +required
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// currentImagePullspec is the fully qualified image pull spec used by the MCO to pull down the new OSImage. This must include sha256.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=447
	// +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
	// +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
	// +optional
	CurrentImagePullspec string `json:"currentImagePullspec,omitempty"`
}

MachineOSConfigStatus describes the status this config object and relates it to the builds associated with this MachineOSConfig

func (*MachineOSConfigStatus) DeepCopy

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

func (*MachineOSConfigStatus) DeepCopyInto

func (in *MachineOSConfigStatus) DeepCopyInto(out *MachineOSConfigStatus)

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

func (MachineOSConfigStatus) SwaggerDoc

func (MachineOSConfigStatus) SwaggerDoc() map[string]string

type MachineOSContainerfile

type MachineOSContainerfile struct {
	// containerfileArch describes the architecture this containerfile is to be built for
	// this arch is optional. If the user does not specify an architecture, it is assumed
	// that the content can be applied to all architectures, or in a single arch cluster: the only architecture.
	// +kubebuilder:validation:Enum:=arm64;amd64;ppc64le;s390x;aarch64;x86_64;noarch
	// +kubebuilder:default:=noarch
	// +optional
	ContainerfileArch ContainerfileArch `json:"containerfileArch"`
	// content is the custom content to be built
	// +required
	Content string `json:"content"`
}

MachineOSContainerfile contains all custom content the user wants built into the image

func (*MachineOSContainerfile) DeepCopy

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

func (*MachineOSContainerfile) DeepCopyInto

func (in *MachineOSContainerfile) DeepCopyInto(out *MachineOSContainerfile)

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

func (MachineOSContainerfile) SwaggerDoc

func (MachineOSContainerfile) SwaggerDoc() map[string]string

type MachineOSImageBuilder

type MachineOSImageBuilder struct {
	// imageBuilderType specifies the backend to be used to build the image.
	// +kubebuilder:default:=PodImageBuilder
	// +kubebuilder:validation:Enum:=PodImageBuilder
	// Valid options are: PodImageBuilder
	ImageBuilderType MachineOSImageBuilderType `json:"imageBuilderType"`
}

func (*MachineOSImageBuilder) DeepCopy

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

func (*MachineOSImageBuilder) DeepCopyInto

func (in *MachineOSImageBuilder) DeepCopyInto(out *MachineOSImageBuilder)

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

func (MachineOSImageBuilder) SwaggerDoc

func (MachineOSImageBuilder) SwaggerDoc() map[string]string

type MachineOSImageBuilderType

type MachineOSImageBuilderType string
const (
	// describes that the machine-os-builder will use a custom pod builder that uses buildah
	PodBuilder MachineOSImageBuilderType = "PodImageBuilder"
)

type ObjectReference

type ObjectReference struct {
	// group of the referent.
	// +required
	Group string `json:"group"`
	// resource of the referent.
	// +required
	Resource string `json:"resource"`
	// namespace of the referent.
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// name of the referent.
	// +required
	Name string `json:"name"`
}

ObjectReference contains enough information to let you inspect or modify the referred object.

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

func (ObjectReference) SwaggerDoc

func (ObjectReference) SwaggerDoc() map[string]string

type PinnedImageRef

type PinnedImageRef struct {
	// name is an OCI Image referenced by digest.
	//
	// The format of the image ref is:
	// host[:port][/namespace]/name@sha256:<digest>
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=447
	// +kubebuilder:validation:XValidation:rule=`self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$')`,message="the OCI Image reference must end with a valid '@sha256:<digest>' suffix, where '<digest>' is 64 characters long"
	// +kubebuilder:validation:XValidation:rule=`self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme"
	Name string `json:"name"`
}

func (*PinnedImageRef) DeepCopy

func (in *PinnedImageRef) DeepCopy() *PinnedImageRef

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

func (*PinnedImageRef) DeepCopyInto

func (in *PinnedImageRef) DeepCopyInto(out *PinnedImageRef)

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

func (PinnedImageRef) SwaggerDoc

func (PinnedImageRef) SwaggerDoc() map[string]string

type PinnedImageSet

type PinnedImageSet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec describes the configuration of this pinned image set.
	// +required
	Spec PinnedImageSetSpec `json:"spec"`

	// status describes the last observed state of this pinned image set.
	// +optional
	Status PinnedImageSetStatus `json:"status"`
}

PinnedImageSet describes a set of images that should be pinned by CRI-O and pulled to the nodes which are members of the declared MachineConfigPools.

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*PinnedImageSet) DeepCopy

func (in *PinnedImageSet) DeepCopy() *PinnedImageSet

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

func (*PinnedImageSet) DeepCopyInto

func (in *PinnedImageSet) DeepCopyInto(out *PinnedImageSet)

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

func (*PinnedImageSet) DeepCopyObject

func (in *PinnedImageSet) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (PinnedImageSet) SwaggerDoc

func (PinnedImageSet) SwaggerDoc() map[string]string

type PinnedImageSetList

type PinnedImageSetList struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is the standard list's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ListMeta `json:"metadata"`

	Items []PinnedImageSet `json:"items"`
}

PinnedImageSetList is a list of PinnedImageSet resources

Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. +openshift:compatibility-gen:level=4

func (*PinnedImageSetList) DeepCopy

func (in *PinnedImageSetList) DeepCopy() *PinnedImageSetList

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

func (*PinnedImageSetList) DeepCopyInto

func (in *PinnedImageSetList) DeepCopyInto(out *PinnedImageSetList)

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

func (*PinnedImageSetList) DeepCopyObject

func (in *PinnedImageSetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (PinnedImageSetList) SwaggerDoc

func (PinnedImageSetList) SwaggerDoc() map[string]string

type PinnedImageSetSpec

type PinnedImageSetSpec struct {
	// pinnedImages is a list of OCI Image referenced by digest that should be
	// pinned and pre-loaded by the nodes of a MachineConfigPool.
	// Translates into a new file inside the /etc/crio/crio.conf.d directory
	// with content similar to this:
	//
	//      pinned_images = [
	//              "quay.io/openshift-release-dev/ocp-release@sha256:...",
	//              "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...",
	//              "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...",
	//              ...
	//      ]
	//
	// These image references should all be by digest, tags aren't allowed.
	// +required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=500
	// +listType=map
	// +listMapKey=name
	PinnedImages []PinnedImageRef `json:"pinnedImages"`
}

PinnedImageSetSpec defines the desired state of a PinnedImageSet.

func (*PinnedImageSetSpec) DeepCopy

func (in *PinnedImageSetSpec) DeepCopy() *PinnedImageSetSpec

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

func (*PinnedImageSetSpec) DeepCopyInto

func (in *PinnedImageSetSpec) DeepCopyInto(out *PinnedImageSetSpec)

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

func (PinnedImageSetSpec) SwaggerDoc

func (PinnedImageSetSpec) SwaggerDoc() map[string]string

type PinnedImageSetStatus

type PinnedImageSetStatus struct {
	// conditions represent the observations of a pinned image set's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PinnedImageSetStatus describes the current state of a PinnedImageSet.

func (*PinnedImageSetStatus) DeepCopy

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

func (*PinnedImageSetStatus) DeepCopyInto

func (in *PinnedImageSetStatus) DeepCopyInto(out *PinnedImageSetStatus)

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

func (PinnedImageSetStatus) SwaggerDoc

func (PinnedImageSetStatus) SwaggerDoc() map[string]string

type RenderedMachineConfigReference

type RenderedMachineConfigReference struct {
	// name is the name of the rendered MachineConfig object.
	// +kubebuilder:validation:MaxLength:=253
	// +kubebuilder:validation:Pattern=`^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$`
	// +required
	Name string `json:"name"`
}

Refers to the name of a rendered MachineConfig (e.g., "rendered-worker-ec40d2965ff81bce7cd7a7e82a680739", etc.): the build targets this MachineConfig, this is often used to tell us whether we need an update.

func (*RenderedMachineConfigReference) DeepCopy

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

func (*RenderedMachineConfigReference) DeepCopyInto

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

func (RenderedMachineConfigReference) SwaggerDoc

func (RenderedMachineConfigReference) SwaggerDoc() map[string]string

type StateProgress

type StateProgress string

StateProgress is each possible state for each possible MachineConfigNodeType UpgradeProgression Kind will only use the "MachinConfigPoolUpdate..." types for example Please note: These conditions are subject to change. Both additions and deletions may be made.

const (
	// MachineConfigNodeUpdatePrepared describes a machine that is preparing in the daemon to trigger an update
	MachineConfigNodeUpdatePrepared StateProgress = "UpdatePrepared"
	// MachineConfigNodeUpdateExecuted describes a machine that has executed the body of the upgrade
	MachineConfigNodeUpdateExecuted StateProgress = "UpdateExecuted"
	// MachineConfigNodeUpdatePostActionComplete describes a machine that has executed its post update action
	MachineConfigNodeUpdatePostActionComplete StateProgress = "UpdatePostActionComplete"
	// MachineConfigNodeUpdateComplete describes a machine that has completed the core parts of an upgrade.
	MachineConfigNodeUpdateComplete StateProgress = "UpdateComplete"
	// MachineConfigNodeUpdated describes a machine that has a matching desired and current config after executing an update
	MachineConfigNodeUpdated StateProgress = "Updated"
	// MachineConfigNodeUpdateResumed describes a machine that has resumed normal processes
	MachineConfigNodeResumed StateProgress = "Resumed"
	// MachineConfigNodeUpdateCompatible the part of the preparing phase where the mco decides whether it can update
	MachineConfigNodeUpdateCompatible StateProgress = "UpdateCompatible"
	// MachineConfigNodeUpdateDrained describes the part of the inprogress phase where the node drains
	MachineConfigNodeUpdateDrained StateProgress = "Drained"
	// MachineConfigNodeUpdateFilesAndOS describes the part of the inprogress phase where the nodes file and OS config change
	MachineConfigNodeUpdateFilesAndOS StateProgress = "AppliedFilesAndOS"
	// MachineConfigNodeUpdateCordoned describes the part of the completing phase where the node cordons
	MachineConfigNodeUpdateCordoned StateProgress = "Cordoned"
	// MachineConfigNodeUpdateUncordoned describes the part of the completing phase where the node uncordons
	MachineConfigNodeUpdateUncordoned StateProgress = "Uncordoned"
	// MachineConfigNodeUpdateRebooted describes the part of the post action phase where the node reboots itself
	MachineConfigNodeUpdateRebooted StateProgress = "RebootedNode"
	// MachineConfigNodeUpdateReloaded describes the part of the post action phase where the node reloads its CRIO service
	MachineConfigNodeUpdateReloaded StateProgress = "ReloadedCRIO"
	// MachineConfigNodePinnedImageSetsProgressing describes a machine currently progressing to the desired pinned image sets
	MachineConfigNodePinnedImageSetsProgressing StateProgress = "PinnedImageSetsProgressing"
	// MachineConfigNodePinnedImageSetsDegraded describes a machine that has failed to progress to the desired pinned image sets
	MachineConfigNodePinnedImageSetsDegraded StateProgress = "PinnedImageSetsDegraded"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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