Documentation
¶
Overview ¶
Package v1beta2 contains API Schema definitions for the kubeadm v1beta2 API group. +kubebuilder:object:generate=true +groupName=bootstrap.cluster.x-k8s.io
Index ¶
- Constants
- Variables
- func ConvertFromArgs(in []Arg) map[string]string
- type APIEndpoint
- type APIServer
- type Arg
- type BootstrapToken
- type BootstrapTokenDiscovery
- type BootstrapTokenString
- func (in *BootstrapTokenString) DeepCopy() *BootstrapTokenString
- func (in *BootstrapTokenString) DeepCopyInto(out *BootstrapTokenString)
- func (bts BootstrapTokenString) MarshalJSON() ([]byte, error)
- func (bts BootstrapTokenString) String() string
- func (bts *BootstrapTokenString) UnmarshalJSON(b []byte) error
- type ClusterConfiguration
- type ContainerLinuxConfig
- type ControllerManager
- type DNS
- type Discovery
- type DiskSetup
- type Encoding
- type EnvVar
- type Etcd
- type ExternalEtcd
- type File
- type FileDiscovery
- type FileDiscoveryKubeConfig
- type FileSource
- type Filesystem
- type Format
- type HostPathMount
- type IgnitionSpec
- type InitConfiguration
- type JoinConfiguration
- type JoinControlPlane
- type KubeConfigAuthExec
- type KubeConfigAuthExecEnv
- type KubeConfigAuthProvider
- type KubeConfigCluster
- type KubeConfigUser
- type KubeadmConfig
- func (in *KubeadmConfig) DeepCopy() *KubeadmConfig
- func (in *KubeadmConfig) DeepCopyInto(out *KubeadmConfig)
- func (in *KubeadmConfig) DeepCopyObject() runtime.Object
- func (c *KubeadmConfig) GetConditions() []metav1.Condition
- func (c *KubeadmConfig) GetV1Beta1Conditions() clusterv1.Conditions
- func (*KubeadmConfig) Hub()
- func (c *KubeadmConfig) SetConditions(conditions []metav1.Condition)
- func (c *KubeadmConfig) SetV1Beta1Conditions(conditions clusterv1.Conditions)
- type KubeadmConfigDeprecatedStatus
- type KubeadmConfigInitializationStatus
- type KubeadmConfigList
- type KubeadmConfigSpec
- type KubeadmConfigStatus
- type KubeadmConfigTemplate
- type KubeadmConfigTemplateList
- type KubeadmConfigTemplateResource
- type KubeadmConfigTemplateSpec
- type KubeadmConfigV1Beta1DeprecatedStatus
- type LocalEtcd
- type MountPoints
- type NTP
- type NodeRegistrationOptions
- type Partition
- type PasswdSource
- type Patches
- type Scheduler
- type SecretFileSource
- type SecretPasswdSource
- type Timeouts
- type User
Constants ¶
const ( // KubeadmConfigReadyCondition is true if the KubeadmConfig is not deleted, // and both DataSecretCreated, CertificatesAvailable conditions are true. KubeadmConfigReadyCondition = clusterv1.ReadyCondition // KubeadmConfigReadyReason surfaces when the KubeadmConfig is ready. KubeadmConfigReadyReason = clusterv1.ReadyReason // KubeadmConfigNotReadyReason surfaces when the KubeadmConfig is not ready. KubeadmConfigNotReadyReason = clusterv1.NotReadyReason // KubeadmConfigReadyUnknownReason surfaces when KubeadmConfig readiness is unknown. KubeadmConfigReadyUnknownReason = clusterv1.ReadyUnknownReason )
KubeadmConfig's Ready condition and corresponding reasons.
const ( // KubeadmConfigCertificatesAvailableCondition documents that cluster certificates required // for generating the bootstrap data secret are available. KubeadmConfigCertificatesAvailableCondition = "CertificatesAvailable" // KubeadmConfigCertificatesAvailableReason surfaces when certificates required for machine bootstrap are is available. KubeadmConfigCertificatesAvailableReason = clusterv1.AvailableReason // KubeadmConfigCertificatesAvailableInternalErrorReason surfaces unexpected failures when reading or // generating certificates required for machine bootstrap. KubeadmConfigCertificatesAvailableInternalErrorReason = clusterv1.InternalErrorReason )
KubeadmConfig's CertificatesAvailable condition and corresponding reasons.
const ( // KubeadmConfigDataSecretAvailableCondition is true if the bootstrap secret is available. KubeadmConfigDataSecretAvailableCondition = "DataSecretAvailable" // KubeadmConfigDataSecretAvailableReason surfaces when the bootstrap secret is available. KubeadmConfigDataSecretAvailableReason = clusterv1.AvailableReason // KubeadmConfigDataSecretNotAvailableReason surfaces when the bootstrap secret is not available. KubeadmConfigDataSecretNotAvailableReason = clusterv1.NotAvailableReason )
KubeadmConfig's DataSecretAvailable condition and corresponding reasons.
const ( // DataSecretAvailableV1Beta1Condition documents the status of the bootstrap secret generation process. // // NOTE: When the DataSecret generation starts the process completes immediately and within the // same reconciliation, so the user will always see a transition from Wait to Generated without having // evidence that BootstrapSecret generation is started/in progress. DataSecretAvailableV1Beta1Condition clusterv1.ConditionType = "DataSecretAvailable" // WaitingForClusterInfrastructureV1Beta1Reason (Severity=Info) document a bootstrap secret generation process // waiting for the cluster infrastructure to be ready. // // NOTE: Having the cluster infrastructure ready is a pre-condition for starting to create machines; // the KubeadmConfig controller ensure this pre-condition is satisfied. WaitingForClusterInfrastructureV1Beta1Reason = "WaitingForClusterInfrastructure" // DataSecretGenerationFailedV1Beta1Reason (Severity=Warning) documents a KubeadmConfig controller detecting // an error while generating a data secret; those kind of errors are usually due to misconfigurations // and user intervention is required to get them fixed. DataSecretGenerationFailedV1Beta1Reason = "DataSecretGenerationFailed" )
const ( // CertificatesAvailableV1Beta1Condition documents that cluster certificates are available. // // NOTE: Cluster certificates are generated only for the KubeadmConfig object linked to the initial control plane // machine, if the cluster is not using a control plane ref object, if the certificates are not provided // by the users. // IMPORTANT: This condition won't be re-created after clusterctl move. CertificatesAvailableV1Beta1Condition clusterv1.ConditionType = "CertificatesAvailable" // CertificatesGenerationFailedV1Beta1Reason (Severity=Warning) documents a KubeadmConfig controller detecting // an error while generating certificates; those kind of errors are usually temporary and the controller // automatically recover from them. CertificatesGenerationFailedV1Beta1Reason = "CertificatesGenerationFailed" // CertificatesCorruptedV1Beta1Reason (Severity=Error) documents a KubeadmConfig controller detecting // an error while retrieving certificates for a joining node. CertificatesCorruptedV1Beta1Reason = "CertificatesCorrupted" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "bootstrap.cluster.x-k8s.io", Version: "v1beta2"} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = schemeBuilder.AddToScheme )
Functions ¶
func ConvertFromArgs ¶
ConvertFromArgs takes a slice of arguments and returns an argument map. Duplicate argument keys will be de-duped, where later keys will take precedence. NOTE: this is a util function intended only for usage in API conversions.
Types ¶
type APIEndpoint ¶
type APIEndpoint struct { // advertiseAddress sets the IP address for the API server to advertise. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=39 AdvertiseAddress string `json:"advertiseAddress,omitempty"` // bindPort sets the secure port for the API Server to bind to. // Defaults to 6443. // +optional // +kubebuilder:validation:Minimum=1 BindPort int32 `json:"bindPort,omitempty"` }
APIEndpoint struct contains elements of API server instance deployed on a node. +kubebuilder:validation:MinProperties=1
func (*APIEndpoint) DeepCopy ¶
func (in *APIEndpoint) DeepCopy() *APIEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIEndpoint.
func (*APIEndpoint) DeepCopyInto ¶
func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type APIServer ¶
type APIServer struct { // extraArgs is a list of args to pass to the control plane component. // The arg name must match the command line flag name except without leading dash(es). // Extra arguments will override existing default arguments set by kubeadm. // +optional // +listType=map // +listMapKey=name // +listMapKey=value // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x.name == y.name))",message="extraArgs name must be unique" ExtraArgs []Arg `json:"extraArgs,omitempty"` // extraVolumes is an extra set of host volumes, mounted to the control plane component. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraVolumes []HostPathMount `json:"extraVolumes,omitempty"` // extraEnvs is an extra set of environment variables to pass to the control plane component. // Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. // This option takes effect only on Kubernetes >=1.31.0. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraEnvs *[]EnvVar `json:"extraEnvs,omitempty"` // certSANs sets extra Subject Alternative Names for the API Server signing cert. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=253 CertSANs []string `json:"certSANs,omitempty"` }
APIServer holds settings necessary for API server deployments in the cluster. +kubebuilder:validation:MinProperties=1
func (*APIServer) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServer.
func (*APIServer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Arg ¶
type Arg struct { // name is the Name of the extraArg. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Name string `json:"name,omitempty"` // value is the Value of the extraArg. // +required // +kubebuilder:validation:MinLength=0 // +kubebuilder:validation:MaxLength=1024 Value *string `json:"value,omitempty"` }
Arg represents an argument with a name and a value.
func ConvertToArgs ¶
ConvertToArgs takes a argument map and converts it to a slice of arguments. The resulting argument slice is sorted alpha-numerically. NOTE: this is a util function intended only for usage in API conversions.
func (*Arg) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Arg.
func (*Arg) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BootstrapToken ¶
type BootstrapToken struct { // token is used for establishing bidirectional trust between nodes and control-planes. // Used for joining nodes in the cluster. // +required Token BootstrapTokenString `json:"token,omitempty,omitzero"` // description sets a human-friendly message why this token exists and what it's used // for, so other administrators can know its purpose. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Description string `json:"description,omitempty"` // ttlSeconds defines the time to live for this token. Defaults to 24h. // Expires and ttlSeconds are mutually exclusive. // +optional // +kubebuilder:validation:Minimum=0 TTLSeconds *int32 `json:"ttlSeconds,omitempty"` // expires specifies the timestamp when this token expires. Defaults to being set // dynamically at runtime based on the ttlSeconds. Expires and ttlSeconds are mutually exclusive. // +optional Expires metav1.Time `json:"expires,omitempty,omitzero"` // usages describes the ways in which this token can be used. Can by default be used // for establishing bidirectional trust, but that can be changed here. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=256 Usages []string `json:"usages,omitempty"` // groups specifies the extra groups that this token will authenticate as when/if // used for authentication // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=256 Groups []string `json:"groups,omitempty"` }
BootstrapToken describes one bootstrap token, stored as a Secret in the cluster.
func (*BootstrapToken) DeepCopy ¶
func (in *BootstrapToken) DeepCopy() *BootstrapToken
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapToken.
func (*BootstrapToken) DeepCopyInto ¶
func (in *BootstrapToken) DeepCopyInto(out *BootstrapToken)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BootstrapTokenDiscovery ¶
type BootstrapTokenDiscovery struct { // token is a token used to validate cluster information // fetched from the control-plane. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Token string `json:"token,omitempty"` // apiServerEndpoint is an IP or domain name to the API server from which info will be fetched. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 APIServerEndpoint string `json:"apiServerEndpoint,omitempty"` // caCertHashes specifies a set of public key pins to verify // when token-based discovery is used. The root CA found during discovery // must match one of these values. Specifying an empty set disables root CA // pinning, which can be unsafe. Each hash is specified as "<type>:<value>", // where the only currently supported type is "sha256". This is a hex-encoded // SHA-256 hash of the Subject Public Key Info (SPKI) object in DER-encoded // ASN.1. These hashes can be calculated using, for example, OpenSSL: // openssl x509 -pubkey -in ca.crt openssl rsa -pubin -outform der 2>&/dev/null | openssl dgst -sha256 -hex // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=512 CACertHashes []string `json:"caCertHashes,omitempty"` // unsafeSkipCAVerification allows token-based discovery // without CA verification via CACertHashes. This can weaken // the security of kubeadm since other nodes can impersonate the control-plane. // +optional UnsafeSkipCAVerification *bool `json:"unsafeSkipCAVerification,omitempty"` }
BootstrapTokenDiscovery is used to set the options for bootstrap token based discovery. +kubebuilder:validation:MinProperties=1
func (*BootstrapTokenDiscovery) DeepCopy ¶
func (in *BootstrapTokenDiscovery) DeepCopy() *BootstrapTokenDiscovery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapTokenDiscovery.
func (*BootstrapTokenDiscovery) DeepCopyInto ¶
func (in *BootstrapTokenDiscovery) DeepCopyInto(out *BootstrapTokenDiscovery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BootstrapTokenDiscovery) IsDefined ¶
func (r *BootstrapTokenDiscovery) IsDefined() bool
IsDefined returns true if the BootstrapTokenDiscovery is defined.
type BootstrapTokenString ¶
BootstrapTokenString is a token of the format abcdef.abcdef0123456789 that is used for both validation of the practically of the API server from a joining node's point of view and as an authentication method for the node in the bootstrap phase of "kubeadm join". This token is and should be short-lived.
+kubebuilder:validation:Type=string +kubebuilder:validation:MinLength=1 +kubebuilder:validation:MaxLength=23
func NewBootstrapTokenString ¶
func NewBootstrapTokenString(token string) (*BootstrapTokenString, error)
NewBootstrapTokenString converts the given Bootstrap Token as a string to the BootstrapTokenString object used for serialization/deserialization and internal usage. It also automatically validates that the given token is of the right format.
func (*BootstrapTokenString) DeepCopy ¶
func (in *BootstrapTokenString) DeepCopy() *BootstrapTokenString
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapTokenString.
func (*BootstrapTokenString) DeepCopyInto ¶
func (in *BootstrapTokenString) DeepCopyInto(out *BootstrapTokenString)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BootstrapTokenString) MarshalJSON ¶
func (bts BootstrapTokenString) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (BootstrapTokenString) String ¶
func (bts BootstrapTokenString) String() string
String returns the string representation of the BootstrapTokenString.
func (*BootstrapTokenString) UnmarshalJSON ¶
func (bts *BootstrapTokenString) UnmarshalJSON(b []byte) error
UnmarshalJSON implements the json.Unmarshaller interface.
type ClusterConfiguration ¶
type ClusterConfiguration struct { // etcd holds configuration for etcd. // NB: This value defaults to a Local (stacked) etcd // +optional Etcd Etcd `json:"etcd,omitempty,omitzero"` // controlPlaneEndpoint sets a stable IP address or DNS name for the control plane; it // can be a valid IP address or a RFC-1123 DNS subdomain, both with optional TCP port. // In case the ControlPlaneEndpoint is not specified, the AdvertiseAddress + BindPort // are used; in case the ControlPlaneEndpoint is specified but without a TCP port, // the BindPort is used. // Possible usages are: // e.g. In a cluster with more than one control plane instances, this field should be // assigned the address of the external load balancer in front of the // control plane instances. // e.g. in environments with enforced node recycling, the ControlPlaneEndpoint // could be used for assigning a stable DNS to the control plane. // NB: This value defaults to the first value in the Cluster object status.apiEndpoints array. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"` // apiServer contains extra settings for the API server control plane component // +optional APIServer APIServer `json:"apiServer,omitempty,omitzero"` // controllerManager contains extra settings for the controller manager control plane component // +optional ControllerManager ControllerManager `json:"controllerManager,omitempty,omitzero"` // scheduler contains extra settings for the scheduler control plane component // +optional Scheduler Scheduler `json:"scheduler,omitempty,omitzero"` // dns defines the options for the DNS add-on installed in the cluster. // +optional DNS DNS `json:"dns,omitempty,omitzero"` // certificatesDir specifies where to store or look for all required certificates. // NB: if not provided, this will default to `/etc/kubernetes/pki` // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 CertificatesDir string `json:"certificatesDir,omitempty"` // imageRepository sets the container registry to pull images from. // * If not set, the default registry of kubeadm will be used, i.e. // * registry.k8s.io (new registry): >= v1.22.17, >= v1.23.15, >= v1.24.9, >= v1.25.0 // * k8s.gcr.io (old registry): all older versions // Please note that when imageRepository is not set we don't allow upgrades to // versions >= v1.22.0 which use the old registry (k8s.gcr.io). Please use // a newer patch version with the new registry instead (i.e. >= v1.22.17, // >= v1.23.15, >= v1.24.9, >= v1.25.0). // * If the version is a CI build (kubernetes version starts with `ci/` or `ci-cross/`) // `gcr.io/k8s-staging-ci-images` will be used as a default for control plane components // and for kube-proxy, while `registry.k8s.io` will be used for all the other images. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 ImageRepository string `json:"imageRepository,omitempty"` // featureGates enabled by the user. // +optional FeatureGates map[string]bool `json:"featureGates,omitempty"` // certificateValidityPeriodDays specifies the validity period for non-CA certificates generated by kubeadm. // If not specified, kubeadm will use a default of 365 days (1 year). // This field is only supported with Kubernetes v1.31 or above. // +optional // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=1095 CertificateValidityPeriodDays int32 `json:"certificateValidityPeriodDays,omitempty"` // caCertificateValidityPeriodDays specifies the validity period for CA certificates generated by Cluster API. // If not specified, Cluster API will use a default of 3650 days (10 years). // This field cannot be modified. // +optional // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=36500 CACertificateValidityPeriodDays int32 `json:"caCertificateValidityPeriodDays,omitempty"` }
ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster. +kubebuilder:validation:MinProperties=1
func (*ClusterConfiguration) DeepCopy ¶
func (in *ClusterConfiguration) DeepCopy() *ClusterConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfiguration.
func (*ClusterConfiguration) DeepCopyInto ¶
func (in *ClusterConfiguration) DeepCopyInto(out *ClusterConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterConfiguration) Hub ¶
func (*ClusterConfiguration) Hub()
func (*ClusterConfiguration) IsDefined ¶
func (r *ClusterConfiguration) IsDefined() bool
IsDefined returns true if the ClusterConfiguration is defined.
type ContainerLinuxConfig ¶
type ContainerLinuxConfig struct { // additionalConfig contains additional configuration to be merged with the Ignition // configuration generated by the bootstrapper controller. More info: https://coreos.github.io/ignition/operator-notes/#config-merging // // The data format is documented here: https://kinvolk.io/docs/flatcar-container-linux/latest/provisioning/cl-config/ // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=32768 AdditionalConfig string `json:"additionalConfig,omitempty"` // strict controls if AdditionalConfig should be strictly parsed. If so, warnings are treated as errors. // +optional Strict *bool `json:"strict,omitempty"` }
ContainerLinuxConfig contains CLC-specific configuration.
We use a structured type here to allow adding additional fields, for example 'version'. +kubebuilder:validation:MinProperties=1
func (*ContainerLinuxConfig) DeepCopy ¶
func (in *ContainerLinuxConfig) DeepCopy() *ContainerLinuxConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerLinuxConfig.
func (*ContainerLinuxConfig) DeepCopyInto ¶
func (in *ContainerLinuxConfig) DeepCopyInto(out *ContainerLinuxConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerLinuxConfig) IsDefined ¶
func (r *ContainerLinuxConfig) IsDefined() bool
IsDefined returns true if the ContainerLinuxConfig is defined.
type ControllerManager ¶
type ControllerManager struct { // extraArgs is a list of args to pass to the control plane component. // The arg name must match the command line flag name except without leading dash(es). // Extra arguments will override existing default arguments set by kubeadm. // +optional // +listType=map // +listMapKey=name // +listMapKey=value // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x.name == y.name))",message="extraArgs name must be unique" ExtraArgs []Arg `json:"extraArgs,omitempty"` // extraVolumes is an extra set of host volumes, mounted to the control plane component. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraVolumes []HostPathMount `json:"extraVolumes,omitempty"` // extraEnvs is an extra set of environment variables to pass to the control plane component. // Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. // This option takes effect only on Kubernetes >=1.31.0. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraEnvs *[]EnvVar `json:"extraEnvs,omitempty"` }
ControllerManager holds settings necessary for controller-manager deployments in the cluster. +kubebuilder:validation:MinProperties=1
func (*ControllerManager) DeepCopy ¶
func (in *ControllerManager) DeepCopy() *ControllerManager
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerManager.
func (*ControllerManager) DeepCopyInto ¶
func (in *ControllerManager) DeepCopyInto(out *ControllerManager)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DNS ¶
type DNS struct { // imageRepository sets the container registry to pull images from. // if not set, the ImageRepository defined in ClusterConfiguration will be used instead. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 ImageRepository string `json:"imageRepository,omitempty"` // imageTag allows to specify a tag for the image. // In case this value is set, kubeadm does not change automatically the version of the above components during upgrades. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 ImageTag string `json:"imageTag,omitempty"` }
DNS defines the DNS addon that should be used in the cluster. +kubebuilder:validation:MinProperties=1
func (*DNS) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNS.
func (*DNS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Discovery ¶
type Discovery struct { // bootstrapToken is used to set the options for bootstrap token based discovery // BootstrapToken and File are mutually exclusive // +optional BootstrapToken BootstrapTokenDiscovery `json:"bootstrapToken,omitempty,omitzero"` // file is used to specify a file or URL to a kubeconfig file from which to load cluster information // BootstrapToken and File are mutually exclusive // +optional File FileDiscovery `json:"file,omitempty,omitzero"` // tlsBootstrapToken is a token used for TLS bootstrapping. // If .BootstrapToken is set, this field is defaulted to .BootstrapToken.Token, but can be overridden. // If .File is set, this field **must be set** in case the KubeConfigFile does not contain any other authentication information // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 TLSBootstrapToken string `json:"tlsBootstrapToken,omitempty"` }
Discovery specifies the options for the kubelet to use during the TLS Bootstrap process. +kubebuilder:validation:MinProperties=1
func (*Discovery) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Discovery.
func (*Discovery) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DiskSetup ¶
type DiskSetup struct { // partitions specifies the list of the partitions to setup. // +optional // +listType=atomic // +kubebuilder:validation:MaxItems=100 Partitions []Partition `json:"partitions,omitempty"` // filesystems specifies the list of file systems to setup. // +optional // +listType=atomic // +kubebuilder:validation:MaxItems=100 Filesystems []Filesystem `json:"filesystems,omitempty"` }
DiskSetup defines input for generated disk_setup and fs_setup in cloud-init. +kubebuilder:validation:MinProperties=1
func (*DiskSetup) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskSetup.
func (*DiskSetup) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Encoding ¶
type Encoding string
Encoding specifies the cloud-init file encoding. +kubebuilder:validation:Enum=base64;gzip;gzip+base64
const ( // Base64 implies the contents of the file are encoded as base64. Base64 Encoding = "base64" // Gzip implies the contents of the file are encoded with gzip. Gzip Encoding = "gzip" // GzipBase64 implies the contents of the file are first base64 encoded and then gzip encoded. GzipBase64 Encoding = "gzip+base64" )
type EnvVar ¶
EnvVar represents an environment variable present in a Container.
func (*EnvVar) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Etcd ¶
type Etcd struct { // local provides configuration knobs for configuring the local etcd instance // Local and External are mutually exclusive // +optional Local LocalEtcd `json:"local,omitempty,omitzero"` // external describes how to connect to an external etcd cluster // Local and External are mutually exclusive // +optional External ExternalEtcd `json:"external,omitempty,omitzero"` }
Etcd contains elements describing Etcd configuration. +kubebuilder:validation:MinProperties=1
func (*Etcd) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Etcd.
func (*Etcd) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalEtcd ¶
type ExternalEtcd struct { // endpoints of etcd members. Required for ExternalEtcd. // +required // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=50 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=512 Endpoints []string `json:"endpoints,omitempty"` // caFile is an SSL Certificate Authority file used to secure etcd communication. // Required if using a TLS connection. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 CAFile string `json:"caFile,omitempty"` // certFile is an SSL certification file used to secure etcd communication. // Required if using a TLS connection. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 CertFile string `json:"certFile,omitempty"` // keyFile is an SSL key file used to secure etcd communication. // Required if using a TLS connection. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 KeyFile string `json:"keyFile,omitempty"` }
ExternalEtcd describes an external etcd cluster. Kubeadm has no knowledge of where certificate files live and they must be supplied.
func (*ExternalEtcd) DeepCopy ¶
func (in *ExternalEtcd) DeepCopy() *ExternalEtcd
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalEtcd.
func (*ExternalEtcd) DeepCopyInto ¶
func (in *ExternalEtcd) DeepCopyInto(out *ExternalEtcd)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExternalEtcd) IsDefined ¶
func (r *ExternalEtcd) IsDefined() bool
IsDefined returns true if the ExternalEtcd is defined.
type File ¶
type File struct { // path specifies the full path on disk where to store the file. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Path string `json:"path,omitempty"` // owner specifies the ownership of the file, e.g. "root:root". // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Owner string `json:"owner,omitempty"` // permissions specifies the permissions to assign to the file, e.g. "0640". // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=16 Permissions string `json:"permissions,omitempty"` // encoding specifies the encoding of the file contents. // +optional Encoding Encoding `json:"encoding,omitempty"` // append specifies whether to append Content to existing file if Path exists. // +optional Append *bool `json:"append,omitempty"` // content is the actual content of the file. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=10240 Content string `json:"content,omitempty"` // contentFrom is a referenced source of content to populate the file. // +optional ContentFrom FileSource `json:"contentFrom,omitempty,omitzero"` }
File defines the input for generating write_files in cloud-init.
func (*File) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new File.
func (*File) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FileDiscovery ¶
type FileDiscovery struct { // kubeConfigPath is used to specify the actual file path or URL to the kubeconfig file from which to load cluster information // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 KubeConfigPath string `json:"kubeConfigPath,omitempty"` // kubeConfig is used (optionally) to generate a KubeConfig based on the KubeadmConfig's information. // The file is generated at the path specified in KubeConfigPath. // // Host address (server field) information is automatically populated based on the Cluster's ControlPlaneEndpoint. // Certificate Authority (certificate-authority-data field) is gathered from the cluster's CA secret. // // +optional KubeConfig FileDiscoveryKubeConfig `json:"kubeConfig,omitempty,omitzero"` }
FileDiscovery is used to specify a file or URL to a kubeconfig file from which to load cluster information.
func (*FileDiscovery) DeepCopy ¶
func (in *FileDiscovery) DeepCopy() *FileDiscovery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileDiscovery.
func (*FileDiscovery) DeepCopyInto ¶
func (in *FileDiscovery) DeepCopyInto(out *FileDiscovery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FileDiscovery) IsDefined ¶
func (r *FileDiscovery) IsDefined() bool
IsDefined returns true if the FileDiscovery is defined.
type FileDiscoveryKubeConfig ¶
type FileDiscoveryKubeConfig struct { // cluster contains information about how to communicate with the kubernetes cluster. // // By default the following fields are automatically populated: // - Server with the Cluster's ControlPlaneEndpoint. // - CertificateAuthorityData with the Cluster's CA certificate. // +optional Cluster KubeConfigCluster `json:"cluster,omitempty,omitzero"` // user contains information that describes identity information. // This is used to tell the kubernetes cluster who you are. // +required User KubeConfigUser `json:"user,omitempty,omitzero"` }
FileDiscoveryKubeConfig contains elements describing how to generate the kubeconfig for bootstrapping.
func (*FileDiscoveryKubeConfig) DeepCopy ¶
func (in *FileDiscoveryKubeConfig) DeepCopy() *FileDiscoveryKubeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileDiscoveryKubeConfig.
func (*FileDiscoveryKubeConfig) DeepCopyInto ¶
func (in *FileDiscoveryKubeConfig) DeepCopyInto(out *FileDiscoveryKubeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FileDiscoveryKubeConfig) IsDefined ¶
func (r *FileDiscoveryKubeConfig) IsDefined() bool
IsDefined returns true if the FileDiscoveryKubeConfig is defined.
type FileSource ¶
type FileSource struct { // secret represents a secret that should populate this file. // +required Secret SecretFileSource `json:"secret,omitempty,omitzero"` }
FileSource is a union of all possible external source types for file data. Only one field may be populated in any given instance. Developers adding new sources of data for target systems should add them here.
func (*FileSource) DeepCopy ¶
func (in *FileSource) DeepCopy() *FileSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSource.
func (*FileSource) DeepCopyInto ¶
func (in *FileSource) DeepCopyInto(out *FileSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FileSource) IsDefined ¶
func (r *FileSource) IsDefined() bool
IsDefined returns true if the FileSource is defined.
type Filesystem ¶
type Filesystem struct { // device specifies the device name // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Device string `json:"device,omitempty"` // filesystem specifies the file system type. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=128 Filesystem string `json:"filesystem,omitempty"` // label specifies the file system label to be used. If set to None, no label is used. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Label string `json:"label,omitempty"` // partition specifies the partition to use. The valid options are: "auto|any", "auto", "any", "none", and <NUM>, where NUM is the actual partition number. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=128 Partition string `json:"partition,omitempty"` // overwrite defines whether or not to overwrite any existing filesystem. // If true, any pre-existing file system will be destroyed. Use with Caution. // +optional Overwrite *bool `json:"overwrite,omitempty"` // replaceFS is a special directive, used for Microsoft Azure that instructs cloud-init to replace a file system of <FS_TYPE>. // NOTE: unless you define a label, this requires the use of the 'any' partition directive. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=128 ReplaceFS string `json:"replaceFS,omitempty"` // extraOpts defined extra options to add to the command for creating the file system. // +optional // +listType=atomic // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=256 ExtraOpts []string `json:"extraOpts,omitempty"` }
Filesystem defines the file systems to be created.
func (*Filesystem) DeepCopy ¶
func (in *Filesystem) DeepCopy() *Filesystem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Filesystem.
func (*Filesystem) DeepCopyInto ¶
func (in *Filesystem) DeepCopyInto(out *Filesystem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Format ¶
type Format string
Format specifies the output format of the bootstrap data +kubebuilder:validation:Enum=cloud-config;ignition
type HostPathMount ¶
type HostPathMount struct { // name of the volume inside the pod template. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Name string `json:"name,omitempty"` // hostPath is the path in the host that will be mounted inside // the pod. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 HostPath string `json:"hostPath,omitempty"` // mountPath is the path inside the pod where hostPath will be mounted. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 MountPath string `json:"mountPath,omitempty"` // readOnly controls write access to the volume // +optional ReadOnly *bool `json:"readOnly,omitempty"` // pathType is the type of the HostPath. // +optional PathType corev1.HostPathType `json:"pathType,omitempty"` }
HostPathMount contains elements describing volumes that are mounted from the host.
func (*HostPathMount) DeepCopy ¶
func (in *HostPathMount) DeepCopy() *HostPathMount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathMount.
func (*HostPathMount) DeepCopyInto ¶
func (in *HostPathMount) DeepCopyInto(out *HostPathMount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IgnitionSpec ¶
type IgnitionSpec struct { // containerLinuxConfig contains CLC specific configuration. // +optional ContainerLinuxConfig ContainerLinuxConfig `json:"containerLinuxConfig,omitempty,omitzero"` }
IgnitionSpec contains Ignition specific configuration. +kubebuilder:validation:MinProperties=1
func (*IgnitionSpec) DeepCopy ¶
func (in *IgnitionSpec) DeepCopy() *IgnitionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IgnitionSpec.
func (*IgnitionSpec) DeepCopyInto ¶
func (in *IgnitionSpec) DeepCopyInto(out *IgnitionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*IgnitionSpec) IsDefined ¶
func (r *IgnitionSpec) IsDefined() bool
IsDefined returns true if the IgnitionSpec is defined.
type InitConfiguration ¶
type InitConfiguration struct { // bootstrapTokens is respected at `kubeadm init` time and describes a set of Bootstrap Tokens to create. // This information IS NOT uploaded to the kubeadm cluster configmap, partly because of its sensitive nature // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 BootstrapTokens []BootstrapToken `json:"bootstrapTokens,omitempty"` // nodeRegistration holds fields that relate to registering the new control-plane node to the cluster. // When used in the context of control plane nodes, NodeRegistration should remain consistent // across both InitConfiguration and JoinConfiguration // +optional NodeRegistration NodeRegistrationOptions `json:"nodeRegistration,omitempty,omitzero"` // localAPIEndpoint represents the endpoint of the API server instance that's deployed on this control plane node // In HA setups, this differs from ClusterConfiguration.ControlPlaneEndpoint in the sense that ControlPlaneEndpoint // is the global endpoint for the cluster, which then loadbalances the requests to each individual API server. This // configuration object lets you customize what IP/DNS name and port the local API server advertises it's accessible // on. By default, kubeadm tries to auto-detect the IP of the default interface and use that, but in case that process // fails you may set the desired value here. // +optional LocalAPIEndpoint APIEndpoint `json:"localAPIEndpoint,omitempty,omitzero"` // skipPhases is a list of phases to skip during command execution. // The list of phases can be obtained with the "kubeadm init --help" command. // This option takes effect only on Kubernetes >=1.22.0. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=50 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=256 SkipPhases []string `json:"skipPhases,omitempty"` // patches contains options related to applying patches to components deployed by kubeadm during // "kubeadm init". The minimum kubernetes version needed to support Patches is v1.22 // +optional Patches Patches `json:"patches,omitempty,omitzero"` // timeouts holds various timeouts that apply to kubeadm commands. // +optional Timeouts Timeouts `json:"timeouts,omitempty,omitzero"` }
InitConfiguration contains a list of elements that is specific "kubeadm init"-only runtime information. +kubebuilder:validation:MinProperties=1
func (*InitConfiguration) DeepCopy ¶
func (in *InitConfiguration) DeepCopy() *InitConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InitConfiguration.
func (*InitConfiguration) DeepCopyInto ¶
func (in *InitConfiguration) DeepCopyInto(out *InitConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InitConfiguration) Hub ¶
func (*InitConfiguration) Hub()
func (*InitConfiguration) IsDefined ¶
func (r *InitConfiguration) IsDefined() bool
IsDefined returns true if the InitConfiguration is defined.
type JoinConfiguration ¶
type JoinConfiguration struct { // nodeRegistration holds fields that relate to registering the new control-plane node to the cluster. // When used in the context of control plane nodes, NodeRegistration should remain consistent // across both InitConfiguration and JoinConfiguration // +optional NodeRegistration NodeRegistrationOptions `json:"nodeRegistration,omitempty,omitzero"` // caCertPath is the path to the SSL certificate authority used to // secure communications between node and control-plane. // Defaults to "/etc/kubernetes/pki/ca.crt". // +optional // TODO: revisit when there is defaulting from k/k // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 CACertPath string `json:"caCertPath,omitempty"` // discovery specifies the options for the kubelet to use during the TLS Bootstrap process // +optional // TODO: revisit when there is defaulting from k/k Discovery Discovery `json:"discovery,omitempty,omitzero"` // controlPlane defines the additional control plane instance to be deployed on the joining node. // If nil, no additional control plane instance will be deployed. // +optional ControlPlane *JoinControlPlane `json:"controlPlane,omitempty"` // skipPhases is a list of phases to skip during command execution. // The list of phases can be obtained with the "kubeadm init --help" command. // This option takes effect only on Kubernetes >=1.22.0. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=50 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=256 SkipPhases []string `json:"skipPhases,omitempty"` // patches contains options related to applying patches to components deployed by kubeadm during // "kubeadm join". The minimum kubernetes version needed to support Patches is v1.22 // +optional Patches Patches `json:"patches,omitempty,omitzero"` // timeouts holds various timeouts that apply to kubeadm commands. // +optional Timeouts Timeouts `json:"timeouts,omitempty,omitzero"` }
JoinConfiguration contains elements describing a particular node. +kubebuilder:validation:MinProperties=1
func (*JoinConfiguration) DeepCopy ¶
func (in *JoinConfiguration) DeepCopy() *JoinConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JoinConfiguration.
func (*JoinConfiguration) DeepCopyInto ¶
func (in *JoinConfiguration) DeepCopyInto(out *JoinConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JoinConfiguration) Hub ¶
func (*JoinConfiguration) Hub()
func (*JoinConfiguration) IsDefined ¶
func (r *JoinConfiguration) IsDefined() bool
IsDefined returns true if the JoinConfiguration is defined.
type JoinControlPlane ¶
type JoinControlPlane struct { // localAPIEndpoint represents the endpoint of the API server instance to be deployed on this node. // +optional LocalAPIEndpoint APIEndpoint `json:"localAPIEndpoint,omitempty,omitzero"` }
JoinControlPlane contains elements describing an additional control plane instance to be deployed on the joining node.
func (*JoinControlPlane) DeepCopy ¶
func (in *JoinControlPlane) DeepCopy() *JoinControlPlane
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JoinControlPlane.
func (*JoinControlPlane) DeepCopyInto ¶
func (in *JoinControlPlane) DeepCopyInto(out *JoinControlPlane)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeConfigAuthExec ¶
type KubeConfigAuthExec struct { // command to execute. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=1024 Command string `json:"command,omitempty"` // args is the arguments to pass to the command when executing it. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=512 Args []string `json:"args,omitempty"` // env defines additional environment variables to expose to the process. These // are unioned with the host's environment, as well as variables client-go uses // to pass argument to the plugin. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 Env []KubeConfigAuthExecEnv `json:"env,omitempty"` // apiVersion is preferred input version of the ExecInfo. The returned ExecCredentials MUST use // the same encoding version as the input. // Defaults to client.authentication.k8s.io/v1 if not set. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 APIVersion string `json:"apiVersion,omitempty"` // provideClusterInfo determines whether or not to provide cluster information, // which could potentially contain very large CA data, to this exec plugin as a // part of the KUBERNETES_EXEC_INFO environment variable. By default, it is set // to false. Package k8s.io/client-go/tools/auth/exec provides helper methods for // reading this environment variable. // +optional ProvideClusterInfo *bool `json:"provideClusterInfo,omitempty"` }
KubeConfigAuthExec specifies a command to provide client credentials. The command is exec'd and outputs structured stdout holding credentials.
See the client.authentication.k8s.io API group for specifications of the exact input and output format.
func (*KubeConfigAuthExec) DeepCopy ¶
func (in *KubeConfigAuthExec) DeepCopy() *KubeConfigAuthExec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigAuthExec.
func (*KubeConfigAuthExec) DeepCopyInto ¶
func (in *KubeConfigAuthExec) DeepCopyInto(out *KubeConfigAuthExec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeConfigAuthExec) IsDefined ¶
func (r *KubeConfigAuthExec) IsDefined() bool
IsDefined returns true if the KubeConfigAuthExec is defined.
type KubeConfigAuthExecEnv ¶
type KubeConfigAuthExecEnv struct { // name of the environment variable // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Name string `json:"name,omitempty"` // value of the environment variable // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Value string `json:"value,omitempty"` }
KubeConfigAuthExecEnv is used for setting environment variables when executing an exec-based credential plugin.
func (*KubeConfigAuthExecEnv) DeepCopy ¶
func (in *KubeConfigAuthExecEnv) DeepCopy() *KubeConfigAuthExecEnv
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigAuthExecEnv.
func (*KubeConfigAuthExecEnv) DeepCopyInto ¶
func (in *KubeConfigAuthExecEnv) DeepCopyInto(out *KubeConfigAuthExecEnv)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeConfigAuthProvider ¶
type KubeConfigAuthProvider struct { // name is the name of the authentication plugin. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Name string `json:"name,omitempty"` // config holds the parameters for the authentication plugin. // +optional Config map[string]string `json:"config,omitempty"` }
KubeConfigAuthProvider holds the configuration for a specified auth provider.
func (*KubeConfigAuthProvider) DeepCopy ¶
func (in *KubeConfigAuthProvider) DeepCopy() *KubeConfigAuthProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigAuthProvider.
func (*KubeConfigAuthProvider) DeepCopyInto ¶
func (in *KubeConfigAuthProvider) DeepCopyInto(out *KubeConfigAuthProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeConfigAuthProvider) IsDefined ¶
func (r *KubeConfigAuthProvider) IsDefined() bool
IsDefined returns true if the KubeConfigAuthProvider is defined.
type KubeConfigCluster ¶
type KubeConfigCluster struct { // server is the address of the kubernetes cluster (https://hostname:port). // // Defaults to https:// + Cluster.Spec.ControlPlaneEndpoint. // // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Server string `json:"server,omitempty"` // tlsServerName is used to check server certificate. If TLSServerName is empty, the hostname used to contact the server is used. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 TLSServerName string `json:"tlsServerName,omitempty"` // insecureSkipTLSVerify skips the validity check for the server's certificate. This will make your HTTPS connections insecure. // +optional InsecureSkipTLSVerify *bool `json:"insecureSkipTLSVerify,omitempty"` // certificateAuthorityData contains PEM-encoded certificate authority certificates. // // Defaults to the Cluster's CA certificate if empty. // // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=51200 CertificateAuthorityData []byte `json:"certificateAuthorityData,omitempty"` // proxyURL is the URL to the proxy to be used for all requests made by this // client. URLs with "http", "https", and "socks5" schemes are supported. If // this configuration is not provided or the empty string, the client // attempts to construct a proxy configuration from http_proxy and // https_proxy environment variables. If these environment variables are not // set, the client does not attempt to proxy requests. // // socks5 proxying does not currently support spdy streaming endpoints (exec, // attach, port forward). // // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 ProxyURL string `json:"proxyURL,omitempty"` }
KubeConfigCluster contains information about how to communicate with a kubernetes cluster.
Adapted from clientcmdv1.Cluster. +kubebuilder:validation:MinProperties=1
func (*KubeConfigCluster) DeepCopy ¶
func (in *KubeConfigCluster) DeepCopy() *KubeConfigCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigCluster.
func (*KubeConfigCluster) DeepCopyInto ¶
func (in *KubeConfigCluster) DeepCopyInto(out *KubeConfigCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeConfigCluster) IsDefined ¶
func (r *KubeConfigCluster) IsDefined() bool
IsDefined returns true if the KubeConfigCluster is defined.
type KubeConfigUser ¶
type KubeConfigUser struct { // authProvider specifies a custom authentication plugin for the kubernetes cluster. // +optional AuthProvider KubeConfigAuthProvider `json:"authProvider,omitempty,omitzero"` // exec specifies a custom exec-based authentication plugin for the kubernetes cluster. // +optional Exec KubeConfigAuthExec `json:"exec,omitempty,omitzero"` }
KubeConfigUser contains information that describes identity information. This is used to tell the kubernetes cluster who you are.
Either authProvider or exec must be filled.
Adapted from clientcmdv1.AuthInfo. +kubebuilder:validation:MinProperties=1
func (*KubeConfigUser) DeepCopy ¶
func (in *KubeConfigUser) DeepCopy() *KubeConfigUser
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigUser.
func (*KubeConfigUser) DeepCopyInto ¶
func (in *KubeConfigUser) DeepCopyInto(out *KubeConfigUser)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfig ¶
type KubeadmConfig struct { metav1.TypeMeta `json:",inline"` // metadata is the standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // spec is the desired state of KubeadmConfig. // +optional Spec KubeadmConfigSpec `json:"spec,omitempty,omitzero"` // status is the observed state of KubeadmConfig. // +optional Status KubeadmConfigStatus `json:"status,omitempty,omitzero"` }
KubeadmConfig is the Schema for the kubeadmconfigs API.
func (*KubeadmConfig) DeepCopy ¶
func (in *KubeadmConfig) DeepCopy() *KubeadmConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfig.
func (*KubeadmConfig) DeepCopyInto ¶
func (in *KubeadmConfig) DeepCopyInto(out *KubeadmConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeadmConfig) DeepCopyObject ¶
func (in *KubeadmConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*KubeadmConfig) GetConditions ¶
func (c *KubeadmConfig) GetConditions() []metav1.Condition
GetConditions returns the set of conditions for this object.
func (*KubeadmConfig) GetV1Beta1Conditions ¶
func (c *KubeadmConfig) GetV1Beta1Conditions() clusterv1.Conditions
GetV1Beta1Conditions returns the set of conditions for this object.
func (*KubeadmConfig) Hub ¶
func (*KubeadmConfig) Hub()
func (*KubeadmConfig) SetConditions ¶
func (c *KubeadmConfig) SetConditions(conditions []metav1.Condition)
SetConditions sets conditions for an API object.
func (*KubeadmConfig) SetV1Beta1Conditions ¶
func (c *KubeadmConfig) SetV1Beta1Conditions(conditions clusterv1.Conditions)
SetV1Beta1Conditions sets the conditions on this object.
type KubeadmConfigDeprecatedStatus ¶
type KubeadmConfigDeprecatedStatus struct { // v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. // +optional V1Beta1 *KubeadmConfigV1Beta1DeprecatedStatus `json:"v1beta1,omitempty"` }
KubeadmConfigDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
func (*KubeadmConfigDeprecatedStatus) DeepCopy ¶
func (in *KubeadmConfigDeprecatedStatus) DeepCopy() *KubeadmConfigDeprecatedStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigDeprecatedStatus.
func (*KubeadmConfigDeprecatedStatus) DeepCopyInto ¶
func (in *KubeadmConfigDeprecatedStatus) DeepCopyInto(out *KubeadmConfigDeprecatedStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfigInitializationStatus ¶
type KubeadmConfigInitializationStatus struct { // dataSecretCreated is true when the Machine's boostrap secret is created. // NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Machine provisioning. // +optional DataSecretCreated *bool `json:"dataSecretCreated,omitempty"` }
KubeadmConfigInitializationStatus provides observations of the KubeadmConfig initialization process. +kubebuilder:validation:MinProperties=1
func (*KubeadmConfigInitializationStatus) DeepCopy ¶
func (in *KubeadmConfigInitializationStatus) DeepCopy() *KubeadmConfigInitializationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigInitializationStatus.
func (*KubeadmConfigInitializationStatus) DeepCopyInto ¶
func (in *KubeadmConfigInitializationStatus) DeepCopyInto(out *KubeadmConfigInitializationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfigList ¶
type KubeadmConfigList 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#lists-and-simple-kinds // +optional metav1.ListMeta `json:"metadata,omitempty"` // items is the list of KubeadmConfigs. Items []KubeadmConfig `json:"items"` }
KubeadmConfigList contains a list of KubeadmConfig.
func (*KubeadmConfigList) DeepCopy ¶
func (in *KubeadmConfigList) DeepCopy() *KubeadmConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigList.
func (*KubeadmConfigList) DeepCopyInto ¶
func (in *KubeadmConfigList) DeepCopyInto(out *KubeadmConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeadmConfigList) DeepCopyObject ¶
func (in *KubeadmConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KubeadmConfigSpec ¶
type KubeadmConfigSpec struct { // clusterConfiguration along with InitConfiguration are the configurations necessary for the init command // +optional ClusterConfiguration ClusterConfiguration `json:"clusterConfiguration,omitempty,omitzero"` // initConfiguration along with ClusterConfiguration are the configurations necessary for the init command // +optional InitConfiguration InitConfiguration `json:"initConfiguration,omitempty,omitzero"` // joinConfiguration is the kubeadm configuration for the join command // +optional JoinConfiguration JoinConfiguration `json:"joinConfiguration,omitempty,omitzero"` // files specifies extra files to be passed to user_data upon creation. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=200 Files []File `json:"files,omitempty"` // diskSetup specifies options for the creation of partition tables and file systems on devices. // +optional DiskSetup DiskSetup `json:"diskSetup,omitempty,omitzero"` // mounts specifies a list of mount points to be setup. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 Mounts []MountPoints `json:"mounts,omitempty"` // bootCommands specifies extra commands to run very early in the boot process via the cloud-init bootcmd // module. bootcmd will run on every boot, 'cloud-init-per' command can be used to make bootcmd run exactly // once. This is typically run in the cloud-init.service systemd unit. This has no effect in Ignition. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=1000 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=10240 BootCommands []string `json:"bootCommands,omitempty"` // preKubeadmCommands specifies extra commands to run before kubeadm runs. // With cloud-init, this is prepended to the runcmd module configuration, and is typically executed in // the cloud-final.service systemd unit. In Ignition, this is prepended to /etc/kubeadm.sh. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=1000 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=10240 PreKubeadmCommands []string `json:"preKubeadmCommands,omitempty"` // postKubeadmCommands specifies extra commands to run after kubeadm runs. // With cloud-init, this is appended to the runcmd module configuration, and is typically executed in // the cloud-final.service systemd unit. In Ignition, this is appended to /etc/kubeadm.sh. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=1000 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=10240 PostKubeadmCommands []string `json:"postKubeadmCommands,omitempty"` // users specifies extra users to add // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 Users []User `json:"users,omitempty"` // ntp specifies NTP configuration // +optional NTP NTP `json:"ntp,omitempty,omitzero"` // format specifies the output format of the bootstrap data. // Defaults to cloud-config if not set. // +optional Format Format `json:"format,omitempty"` // verbosity is the number for the kubeadm log level verbosity. // It overrides the `--v` flag in kubeadm commands. // +optional Verbosity *int32 `json:"verbosity,omitempty"` // ignition contains Ignition specific configuration. // +optional Ignition IgnitionSpec `json:"ignition,omitempty,omitzero"` }
KubeadmConfigSpec defines the desired state of KubeadmConfig. Either ClusterConfiguration and InitConfiguration should be defined or the JoinConfiguration should be defined. +kubebuilder:validation:MinProperties=1
func (*KubeadmConfigSpec) DeepCopy ¶
func (in *KubeadmConfigSpec) DeepCopy() *KubeadmConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigSpec.
func (*KubeadmConfigSpec) DeepCopyInto ¶
func (in *KubeadmConfigSpec) DeepCopyInto(out *KubeadmConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfigStatus ¶
type KubeadmConfigStatus struct { // conditions represents the observations of a KubeadmConfig's current state. // Known condition types are Ready, DataSecretAvailable, CertificatesAvailable. // +optional // +listType=map // +listMapKey=type // +kubebuilder:validation:MaxItems=32 Conditions []metav1.Condition `json:"conditions,omitempty"` // initialization provides observations of the KubeadmConfig initialization process. // NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning. // +optional Initialization KubeadmConfigInitializationStatus `json:"initialization,omitempty,omitzero"` // dataSecretName is the name of the secret that stores the bootstrap data script. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 DataSecretName string `json:"dataSecretName,omitempty"` // observedGeneration is the latest generation observed by the controller. // +optional // +kubebuilder:validation:Minimum=1 ObservedGeneration int64 `json:"observedGeneration,omitempty"` // deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. // +optional Deprecated *KubeadmConfigDeprecatedStatus `json:"deprecated,omitempty"` }
KubeadmConfigStatus defines the observed state of KubeadmConfig. +kubebuilder:validation:MinProperties=1
func (*KubeadmConfigStatus) DeepCopy ¶
func (in *KubeadmConfigStatus) DeepCopy() *KubeadmConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigStatus.
func (*KubeadmConfigStatus) DeepCopyInto ¶
func (in *KubeadmConfigStatus) DeepCopyInto(out *KubeadmConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfigTemplate ¶
type KubeadmConfigTemplate struct { metav1.TypeMeta `json:",inline"` // metadata is the standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // spec is the desired state of KubeadmConfigTemplate. // +optional Spec KubeadmConfigTemplateSpec `json:"spec,omitempty,omitzero"` }
KubeadmConfigTemplate is the Schema for the kubeadmconfigtemplates API.
func (*KubeadmConfigTemplate) DeepCopy ¶
func (in *KubeadmConfigTemplate) DeepCopy() *KubeadmConfigTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigTemplate.
func (*KubeadmConfigTemplate) DeepCopyInto ¶
func (in *KubeadmConfigTemplate) DeepCopyInto(out *KubeadmConfigTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeadmConfigTemplate) DeepCopyObject ¶
func (in *KubeadmConfigTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*KubeadmConfigTemplate) Hub ¶
func (*KubeadmConfigTemplate) Hub()
type KubeadmConfigTemplateList ¶
type KubeadmConfigTemplateList 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#lists-and-simple-kinds // +optional metav1.ListMeta `json:"metadata,omitempty"` // items is the list of KubeadmConfigTemplates. Items []KubeadmConfigTemplate `json:"items"` }
KubeadmConfigTemplateList contains a list of KubeadmConfigTemplate.
func (*KubeadmConfigTemplateList) DeepCopy ¶
func (in *KubeadmConfigTemplateList) DeepCopy() *KubeadmConfigTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigTemplateList.
func (*KubeadmConfigTemplateList) DeepCopyInto ¶
func (in *KubeadmConfigTemplateList) DeepCopyInto(out *KubeadmConfigTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KubeadmConfigTemplateList) DeepCopyObject ¶
func (in *KubeadmConfigTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KubeadmConfigTemplateResource ¶
type KubeadmConfigTemplateResource struct { // metadata is the standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional ObjectMeta clusterv1.ObjectMeta `json:"metadata,omitempty,omitzero"` // spec is the desired state of KubeadmConfig. // +optional Spec KubeadmConfigSpec `json:"spec,omitempty,omitzero"` }
KubeadmConfigTemplateResource defines the Template structure. +kubebuilder:validation:MinProperties=1
func (*KubeadmConfigTemplateResource) DeepCopy ¶
func (in *KubeadmConfigTemplateResource) DeepCopy() *KubeadmConfigTemplateResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigTemplateResource.
func (*KubeadmConfigTemplateResource) DeepCopyInto ¶
func (in *KubeadmConfigTemplateResource) DeepCopyInto(out *KubeadmConfigTemplateResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfigTemplateSpec ¶
type KubeadmConfigTemplateSpec struct { // template defines the desired state of KubeadmConfigTemplate. // +required Template KubeadmConfigTemplateResource `json:"template,omitempty,omitzero"` }
KubeadmConfigTemplateSpec defines the desired state of KubeadmConfigTemplate.
func (*KubeadmConfigTemplateSpec) DeepCopy ¶
func (in *KubeadmConfigTemplateSpec) DeepCopy() *KubeadmConfigTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigTemplateSpec.
func (*KubeadmConfigTemplateSpec) DeepCopyInto ¶
func (in *KubeadmConfigTemplateSpec) DeepCopyInto(out *KubeadmConfigTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeadmConfigV1Beta1DeprecatedStatus ¶
type KubeadmConfigV1Beta1DeprecatedStatus struct { // conditions defines current service state of the KubeadmConfig. // // Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. // // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` // failureReason will be set on non-retryable errors // // Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. // // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 FailureReason string `json:"failureReason,omitempty"` // failureMessage will be set on non-retryable errors // // Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. // // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=10240 FailureMessage string `json:"failureMessage,omitempty"` }
KubeadmConfigV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
func (*KubeadmConfigV1Beta1DeprecatedStatus) DeepCopy ¶
func (in *KubeadmConfigV1Beta1DeprecatedStatus) DeepCopy() *KubeadmConfigV1Beta1DeprecatedStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeadmConfigV1Beta1DeprecatedStatus.
func (*KubeadmConfigV1Beta1DeprecatedStatus) DeepCopyInto ¶
func (in *KubeadmConfigV1Beta1DeprecatedStatus) DeepCopyInto(out *KubeadmConfigV1Beta1DeprecatedStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalEtcd ¶
type LocalEtcd struct { // imageRepository sets the container registry to pull images from. // if not set, the ImageRepository defined in ClusterConfiguration will be used instead. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 ImageRepository string `json:"imageRepository,omitempty"` // imageTag allows to specify a tag for the image. // In case this value is set, kubeadm does not change automatically the version of the above components during upgrades. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 ImageTag string `json:"imageTag,omitempty"` // dataDir is the directory etcd will place its data. // Defaults to "/var/lib/etcd". // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 DataDir string `json:"dataDir,omitempty"` // extraArgs is a list of args to pass to etcd. // The arg name must match the command line flag name except without leading dash(es). // Extra arguments will override existing default arguments set by kubeadm. // +optional // +listType=map // +listMapKey=name // +listMapKey=value // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x.name == y.name))",message="extraArgs name must be unique" ExtraArgs []Arg `json:"extraArgs,omitempty"` // extraEnvs is an extra set of environment variables to pass to etcd. // Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. // This option takes effect only on Kubernetes >=1.31.0. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraEnvs *[]EnvVar `json:"extraEnvs,omitempty"` // serverCertSANs sets extra Subject Alternative Names for the etcd server signing cert. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=253 ServerCertSANs []string `json:"serverCertSANs,omitempty"` // peerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=253 PeerCertSANs []string `json:"peerCertSANs,omitempty"` }
LocalEtcd describes that kubeadm should run an etcd cluster locally. +kubebuilder:validation:MinProperties=1
func (*LocalEtcd) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalEtcd.
func (*LocalEtcd) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MountPoints ¶
type MountPoints []string
MountPoints defines input for generated mounts in cloud-init. +kubebuilder:validation:MinItems=1 +kubebuilder:validation:MaxItems=100 +kubebuilder:validation:items:MinLength=1 +kubebuilder:validation:items:MaxLength=512
func (MountPoints) DeepCopy ¶
func (in MountPoints) DeepCopy() MountPoints
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MountPoints.
func (MountPoints) DeepCopyInto ¶
func (in MountPoints) DeepCopyInto(out *MountPoints)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NTP ¶
type NTP struct { // servers specifies which NTP servers to use // +optional // +listType=atomic // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=512 Servers []string `json:"servers,omitempty"` // enabled specifies whether NTP should be enabled // +optional Enabled *bool `json:"enabled,omitempty"` }
NTP defines input for generated ntp in cloud-init. +kubebuilder:validation:MinProperties=1
func (*NTP) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NTP.
func (*NTP) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeRegistrationOptions ¶
type NodeRegistrationOptions struct { // name is the `.Metadata.Name` field of the Node API object that will be created in this `kubeadm init` or `kubeadm join` operation. // This field is also used in the CommonName field of the kubelet's client certificate to the API server. // Defaults to the hostname of the node if not provided. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 Name string `json:"name,omitempty"` // criSocket is used to retrieve container runtime info. This information will be annotated to the Node API object, for later re-use // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 CRISocket string `json:"criSocket,omitempty"` // taints specifies the taints the Node API object should be registered with. If this field is unset, i.e. nil, in the `kubeadm init` process // it will be defaulted to []v1.Taint{'node-role.kubernetes.io/master=""'}. If you don't want to taint your control-plane node, set this field to an // empty slice, i.e. `taints: []` in the YAML file. This field is solely used for Node registration. // +optional // +kubebuilder:validation:MinItems=0 // +kubebuilder:validation:MaxItems=100 Taints *[]corev1.Taint `json:"taints,omitempty"` // kubeletExtraArgs is a list of args to pass to kubelet. // The arg name must match the command line flag name except without leading dash(es). // Extra arguments will override existing default arguments set by kubeadm. // +optional // +listType=map // +listMapKey=name // +listMapKey=value // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x.name == y.name))",message="kubeletExtraArgs name must be unique" KubeletExtraArgs []Arg `json:"kubeletExtraArgs,omitempty"` // ignorePreflightErrors provides a slice of pre-flight errors to be ignored when the current node is registered, e.g. 'IsPrivilegedUser,Swap'. // Value 'all' ignores errors from all checks. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=50 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=512 IgnorePreflightErrors []string `json:"ignorePreflightErrors,omitempty"` // imagePullPolicy specifies the policy for image pulling // during kubeadm "init" and "join" operations. The value of // this field must be one of "Always", "IfNotPresent" or // "Never". Defaults to "IfNotPresent" if not set. // +kubebuilder:validation:Enum=Always;IfNotPresent;Never // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // imagePullSerial specifies if image pulling performed by kubeadm must be done serially or in parallel. // This option takes effect only on Kubernetes >=1.31.0. // Default: true (defaulted in kubeadm) // +optional ImagePullSerial *bool `json:"imagePullSerial,omitempty"` }
NodeRegistrationOptions holds fields that relate to registering a new control-plane or node to the cluster, either via "kubeadm init" or "kubeadm join". Note: The NodeRegistrationOptions struct has to be kept in sync with the structs in MarshalJSON. +kubebuilder:validation:MinProperties=1
func (*NodeRegistrationOptions) DeepCopy ¶
func (in *NodeRegistrationOptions) DeepCopy() *NodeRegistrationOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRegistrationOptions.
func (*NodeRegistrationOptions) DeepCopyInto ¶
func (in *NodeRegistrationOptions) DeepCopyInto(out *NodeRegistrationOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Partition ¶
type Partition struct { // device is the name of the device. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Device string `json:"device,omitempty"` // layout specifies the device layout. // If it is true, a single partition will be created for the entire device. // When layout is false, it means don't partition or ignore existing partitioning. // +required Layout *bool `json:"layout,omitempty"` // overwrite describes whether to skip checks and create the partition if a partition or filesystem is found on the device. // Use with caution. Default is 'false'. // +optional Overwrite *bool `json:"overwrite,omitempty"` // tableType specifies the tupe of partition table. The following are supported: // 'mbr': default and setups a MS-DOS partition table // 'gpt': setups a GPT partition table // +optional // +kubebuilder:validation:Enum=mbr;gpt TableType string `json:"tableType,omitempty"` }
Partition defines how to create and layout a partition.
func (*Partition) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Partition.
func (*Partition) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PasswdSource ¶
type PasswdSource struct { // secret represents a secret that should populate this password. // +required Secret SecretPasswdSource `json:"secret,omitempty,omitzero"` }
PasswdSource is a union of all possible external source types for passwd data. Only one field may be populated in any given instance. Developers adding new sources of data for target systems should add them here.
func (*PasswdSource) DeepCopy ¶
func (in *PasswdSource) DeepCopy() *PasswdSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswdSource.
func (*PasswdSource) DeepCopyInto ¶
func (in *PasswdSource) DeepCopyInto(out *PasswdSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PasswdSource) IsDefined ¶
func (r *PasswdSource) IsDefined() bool
IsDefined returns true if the PasswdSource is defined.
type Patches ¶
type Patches struct { // directory is a path to a directory that contains files named "target[suffix][+patchtype].extension". // For example, "kube-apiserver0+merge.yaml" or just "etcd.json". "target" can be one of // "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd". "patchtype" can be one // of "strategic" "merge" or "json" and they match the patch formats supported by kubectl. // The default "patchtype" is "strategic". "extension" must be either "json" or "yaml". // "suffix" is an optional string that can be used to determine which patches are applied // first alpha-numerically. // These files can be written into the target directory via KubeadmConfig.Files which // specifies additional files to be created on the machine, either with content inline or // by referencing a secret. // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 Directory string `json:"directory,omitempty"` }
Patches contains options related to applying patches to components deployed by kubeadm. +kubebuilder:validation:MinProperties=1
func (*Patches) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patches.
func (*Patches) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Scheduler ¶
type Scheduler struct { // extraArgs is a list of args to pass to the control plane component. // The arg name must match the command line flag name except without leading dash(es). // Extra arguments will override existing default arguments set by kubeadm. // +optional // +listType=map // +listMapKey=name // +listMapKey=value // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x.name == y.name))",message="extraArgs name must be unique" ExtraArgs []Arg `json:"extraArgs,omitempty"` // extraVolumes is an extra set of host volumes, mounted to the control plane component. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraVolumes []HostPathMount `json:"extraVolumes,omitempty"` // extraEnvs is an extra set of environment variables to pass to the control plane component. // Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. // This option takes effect only on Kubernetes >=1.31.0. // +optional // +listType=atomic // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=100 ExtraEnvs *[]EnvVar `json:"extraEnvs,omitempty"` }
Scheduler holds settings necessary for scheduler deployments in the cluster. +kubebuilder:validation:MinProperties=1
func (*Scheduler) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler.
func (*Scheduler) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretFileSource ¶
type SecretFileSource struct { // name of the secret in the KubeadmBootstrapConfig's namespace to use. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 Name string `json:"name,omitempty"` // key is the key in the secret's data map for this value. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Key string `json:"key,omitempty"` }
SecretFileSource adapts a Secret into a FileSource.
The contents of the target Secret's Data field will be presented as files using the keys in the Data field as the file names.
func (*SecretFileSource) DeepCopy ¶
func (in *SecretFileSource) DeepCopy() *SecretFileSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretFileSource.
func (*SecretFileSource) DeepCopyInto ¶
func (in *SecretFileSource) DeepCopyInto(out *SecretFileSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretPasswdSource ¶
type SecretPasswdSource struct { // name of the secret in the KubeadmBootstrapConfig's namespace to use. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 Name string `json:"name,omitempty"` // key is the key in the secret's data map for this value. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Key string `json:"key,omitempty"` }
SecretPasswdSource adapts a Secret into a PasswdSource.
The contents of the target Secret's Data field will be presented as passwd using the keys in the Data field as the file names.
func (*SecretPasswdSource) DeepCopy ¶
func (in *SecretPasswdSource) DeepCopy() *SecretPasswdSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretPasswdSource.
func (*SecretPasswdSource) DeepCopyInto ¶
func (in *SecretPasswdSource) DeepCopyInto(out *SecretPasswdSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Timeouts ¶
type Timeouts struct { // controlPlaneComponentHealthCheckSeconds is the amount of time to wait for a control plane // component, such as the API server, to be healthy during "kubeadm init" and "kubeadm join". // If not set, it defaults to 4m (240s). // +kubebuilder:validation:Minimum=0 // +optional ControlPlaneComponentHealthCheckSeconds *int32 `json:"controlPlaneComponentHealthCheckSeconds,omitempty"` // kubeletHealthCheckSeconds is the amount of time to wait for the kubelet to be healthy // during "kubeadm init" and "kubeadm join". // If not set, it defaults to 4m (240s). // +kubebuilder:validation:Minimum=0 // +optional KubeletHealthCheckSeconds *int32 `json:"kubeletHealthCheckSeconds,omitempty"` // kubernetesAPICallSeconds is the amount of time to wait for the kubeadm client to complete a request to // the API server. This applies to all types of methods (GET, POST, etc). // If not set, it defaults to 1m (60s). // +kubebuilder:validation:Minimum=0 // +optional KubernetesAPICallSeconds *int32 `json:"kubernetesAPICallSeconds,omitempty"` // etcdAPICallSeconds is the amount of time to wait for the kubeadm etcd client to complete a request to // the etcd cluster. // If not set, it defaults to 2m (120s). // +kubebuilder:validation:Minimum=0 // +optional EtcdAPICallSeconds *int32 `json:"etcdAPICallSeconds,omitempty"` // tlsBootstrapSeconds is the amount of time to wait for the kubelet to complete TLS bootstrap // for a joining node. // If not set, it defaults to 5m (300s). // +kubebuilder:validation:Minimum=0 // +optional TLSBootstrapSeconds *int32 `json:"tlsBootstrapSeconds,omitempty"` // discoverySeconds is the amount of time to wait for kubeadm to validate the API server identity // for a joining node. // If not set, it defaults to 5m (300s). // +kubebuilder:validation:Minimum=0 // +optional DiscoverySeconds *int32 `json:"discoverySeconds,omitempty"` }
Timeouts holds various timeouts that apply to kubeadm commands. +kubebuilder:validation:MinProperties=1
func (*Timeouts) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timeouts.
func (*Timeouts) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type User ¶
type User struct { // name specifies the user name // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Name string `json:"name,omitempty"` // gecos specifies the gecos to use for the user // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Gecos string `json:"gecos,omitempty"` // groups specifies the additional groups for the user // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Groups string `json:"groups,omitempty"` // homeDir specifies the home directory to use for the user // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 HomeDir string `json:"homeDir,omitempty"` // inactive specifies whether to mark the user as inactive // +optional Inactive *bool `json:"inactive,omitempty"` // shell specifies the user's shell // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Shell string `json:"shell,omitempty"` // passwd specifies a hashed password for the user // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Passwd string `json:"passwd,omitempty"` // passwdFrom is a referenced source of passwd to populate the passwd. // +optional PasswdFrom PasswdSource `json:"passwdFrom,omitempty,omitzero"` // primaryGroup specifies the primary group for the user // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 PrimaryGroup string `json:"primaryGroup,omitempty"` // lockPassword specifies if password login should be disabled // +optional LockPassword *bool `json:"lockPassword,omitempty"` // sudo specifies a sudo role for the user // +optional // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=256 Sudo string `json:"sudo,omitempty"` // sshAuthorizedKeys specifies a list of ssh authorized keys for the user // +optional // +listType=atomic // +kubebuilder:validation:MaxItems=100 // +kubebuilder:validation:items:MinLength=1 // +kubebuilder:validation:items:MaxLength=2048 SSHAuthorizedKeys []string `json:"sshAuthorizedKeys,omitempty"` }
User defines the input for a generated user in cloud-init.
func (*User) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User.
func (*User) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.