Documentation ¶
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type APIEndpoint
- type APIServer
- 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 ClusterStatusdeprecated
- type ContainerLinuxConfig
- type ControlPlaneComponent
- 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 ImageMeta
- 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() clusterv1.Conditions
- func (*KubeadmConfig) Hub()
- func (c *KubeadmConfig) SetConditions(conditions clusterv1.Conditions)
- type KubeadmConfigList
- type KubeadmConfigSpec
- type KubeadmConfigStatus
- type KubeadmConfigTemplate
- type KubeadmConfigTemplateList
- type KubeadmConfigTemplateResource
- type KubeadmConfigTemplateSpec
- type LocalEtcd
- type MountPoints
- type NTP
- type Networking
- type NodeRegistrationOptions
- type Partition
- type PasswdSource
- type Patches
- type SecretFileSource
- type SecretPasswdSource
- type User
Constants ¶
const ( // DataSecretAvailableCondition 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. DataSecretAvailableCondition clusterv1.ConditionType = "DataSecretAvailable" // WaitingForClusterInfrastructureReason (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. WaitingForClusterInfrastructureReason = "WaitingForClusterInfrastructure" // DataSecretGenerationFailedReason (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. DataSecretGenerationFailedReason = "DataSecretGenerationFailed" )
const ( // CertificatesAvailableCondition 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. CertificatesAvailableCondition clusterv1.ConditionType = "CertificatesAvailable" // CertificatesGenerationFailedReason (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. CertificatesGenerationFailedReason = "CertificatesGenerationFailed" // CertificatesCorruptedReason (Severity=Error) documents a KubeadmConfig controller detecting // an error while retrieving certificates for a joining node. CertificatesCorruptedReason = "CertificatesCorrupted" )
Variables ¶
var ( // SchemeBuilder initializes a scheme builder. SchemeBuilder runtime.SchemeBuilder // AddToScheme is a global function that registers this API group & version to a scheme AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{
Group: "bootstrap.cluster.x-k8s.io",
Version: "v1beta1",
}
SchemeGroupVersion is group version used to register these objects. Define your schema name and the version.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type APIEndpoint ¶
type APIEndpoint struct { // AdvertiseAddress sets the IP address for the API server to advertise. // +optional AdvertiseAddress string `json:"advertiseAddress,omitempty"` // BindPort sets the secure port for the API Server to bind to. // Defaults to 6443. // +optional BindPort int32 `json:"bindPort,omitempty"` }
APIEndpoint struct contains elements of API server instance deployed on a node.
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 { ControlPlaneComponent `json:",inline"` // CertSANs sets extra Subject Alternative Names for the API Server signing cert. // +optional CertSANs []string `json:"certSANs,omitempty"` // TimeoutForControlPlane controls the timeout that we use for API server to appear // +optional TimeoutForControlPlane *metav1.Duration `json:"timeoutForControlPlane,omitempty"` }
APIServer holds settings necessary for API server deployments in the cluster.
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 BootstrapToken ¶
type BootstrapToken struct { // Token is used for establishing bidirectional trust between nodes and control-planes. // Used for joining nodes in the cluster. Token *BootstrapTokenString `json:"token"` // Description sets a human-friendly message why this token exists and what it's used // for, so other administrators can know its purpose. // +optional Description string `json:"description,omitempty"` // TTL defines the time to live for this token. Defaults to 24h. // Expires and TTL are mutually exclusive. // +optional TTL *metav1.Duration `json:"ttl,omitempty"` // Expires specifies the timestamp when this token expires. Defaults to being set // dynamically at runtime based on the TTL. Expires and TTL are mutually exclusive. // +optional Expires *metav1.Time `json:"expires,omitempty"` // 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 Usages []string `json:"usages,omitempty"` // Groups specifies the extra groups that this token will authenticate as when/if // used for authentication // +optional 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. Token string `json:"token"` // APIServerEndpoint is an IP or domain name to the API server from which info will be fetched. // +optional 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 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.
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.
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
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 { metav1.TypeMeta `json:",inline"` // Etcd holds configuration for etcd. // NB: This value defaults to a Local (stacked) etcd // +optional Etcd Etcd `json:"etcd,omitempty"` // Networking holds configuration for the networking topology of the cluster. // NB: This value defaults to the Cluster object spec.clusterNetwork. // +optional Networking Networking `json:"networking,omitempty"` // KubernetesVersion is the target version of the control plane. // NB: This value defaults to the Machine object spec.version // +optional KubernetesVersion string `json:"kubernetesVersion,omitempty"` // 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 ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"` // APIServer contains extra settings for the API server control plane component // +optional APIServer APIServer `json:"apiServer,omitempty"` // ControllerManager contains extra settings for the controller manager control plane component // +optional ControllerManager ControlPlaneComponent `json:"controllerManager,omitempty"` // Scheduler contains extra settings for the scheduler control plane component // +optional Scheduler ControlPlaneComponent `json:"scheduler,omitempty"` // DNS defines the options for the DNS add-on installed in the cluster. // +optional DNS DNS `json:"dns,omitempty"` // CertificatesDir specifies where to store or look for all required certificates. // NB: if not provided, this will default to `/etc/kubernetes/pki` // +optional 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 ImageRepository string `json:"imageRepository,omitempty"` // FeatureGates enabled by the user. // +optional FeatureGates map[string]bool `json:"featureGates,omitempty"` // The cluster name // +optional ClusterName string `json:"clusterName,omitempty"` }
ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster.
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) DeepCopyObject ¶
func (in *ClusterConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterConfiguration) Hub ¶
func (*ClusterConfiguration) Hub()
type ClusterStatus
deprecated
type ClusterStatus struct { metav1.TypeMeta `json:",inline"` // APIEndpoints currently available in the cluster, one for each control plane/api server instance. // The key of the map is the IP of the host's default interface APIEndpoints map[string]APIEndpoint `json:"apiEndpoints"` }
ClusterStatus contains the cluster status. The ClusterStatus will be stored in the kubeadm-config ConfigMap in the cluster, and then updated by kubeadm when additional control plane instance joins or leaves the cluster.
Deprecated: ClusterStatus has been removed from kubeadm v1beta3 API; This type is preserved only to support conversion to older versions of the kubeadm API.
func (*ClusterStatus) DeepCopy ¶
func (in *ClusterStatus) DeepCopy() *ClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (*ClusterStatus) DeepCopyInto ¶
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterStatus) DeepCopyObject ¶
func (in *ClusterStatus) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterStatus) Hub ¶
func (*ClusterStatus) Hub()
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 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'.
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.
type ControlPlaneComponent ¶
type ControlPlaneComponent struct { // ExtraArgs is an extra set of flags to pass to the control plane component. // TODO: This is temporary and ideally we would like to switch all components to // use ComponentConfig + ConfigMaps. // +optional ExtraArgs map[string]string `json:"extraArgs,omitempty"` // ExtraVolumes is an extra set of host volumes, mounted to the control plane component. // +optional 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 ExtraEnvs []EnvVar `json:"extraEnvs,omitempty"` }
ControlPlaneComponent holds settings common to control plane component of the cluster.
func (*ControlPlaneComponent) DeepCopy ¶
func (in *ControlPlaneComponent) DeepCopy() *ControlPlaneComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneComponent.
func (*ControlPlaneComponent) DeepCopyInto ¶
func (in *ControlPlaneComponent) DeepCopyInto(out *ControlPlaneComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DNS ¶
type DNS struct { // ImageMeta allows to customize the image used for the DNS component ImageMeta `json:",inline"` }
DNS defines the DNS addon that should be used in the cluster.
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"` // 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"` // 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 TLSBootstrapToken string `json:"tlsBootstrapToken,omitempty"` // Timeout modifies the discovery timeout // +optional Timeout *metav1.Duration `json:"timeout,omitempty"` }
Discovery specifies the options for the kubelet to use during the TLS Bootstrap process.
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 Partitions []Partition `json:"partitions,omitempty"` // Filesystems specifies the list of file systems to setup. // +optional Filesystems []Filesystem `json:"filesystems,omitempty"` }
DiskSetup defines input for generated disk_setup and fs_setup in cloud-init.
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 ¶ added in v0.0.3
EnvVar represents an environment variable present in a Container.
func (*EnvVar) DeepCopy ¶ added in v0.0.3
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶ added in v0.0.3
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"` // External describes how to connect to an external etcd cluster // Local and External are mutually exclusive // +optional External *ExternalEtcd `json:"external,omitempty"` }
Etcd contains elements describing Etcd configuration.
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. Endpoints []string `json:"endpoints"` // CAFile is an SSL Certificate Authority file used to secure etcd communication. // Required if using a TLS connection. CAFile string `json:"caFile"` // CertFile is an SSL certification file used to secure etcd communication. // Required if using a TLS connection. CertFile string `json:"certFile"` // KeyFile is an SSL key file used to secure etcd communication. // Required if using a TLS connection. KeyFile string `json:"keyFile"` }
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.
type File ¶
type File struct { // Path specifies the full path on disk where to store the file. Path string `json:"path"` // Owner specifies the ownership of the file, e.g. "root:root". // +optional Owner string `json:"owner,omitempty"` // Permissions specifies the permissions to assign to the file, e.g. "0640". // +optional 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 Content string `json:"content,omitempty"` // ContentFrom is a referenced source of content to populate the file. // +optional ContentFrom *FileSource `json:"contentFrom,omitempty"` }
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 KubeConfigPath string `json:"kubeConfigPath"` // 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"` }
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.
type FileDiscoveryKubeConfig ¶ added in v0.0.3
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"` // User contains information that describes identity information. // This is used to tell the kubernetes cluster who you are. User KubeConfigUser `json:"user"` }
FileDiscoveryKubeConfig contains elements describing how to generate the kubeconfig for bootstrapping.
func (*FileDiscoveryKubeConfig) DeepCopy ¶ added in v0.0.3
func (in *FileDiscoveryKubeConfig) DeepCopy() *FileDiscoveryKubeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileDiscoveryKubeConfig.
func (*FileDiscoveryKubeConfig) DeepCopyInto ¶ added in v0.0.3
func (in *FileDiscoveryKubeConfig) DeepCopyInto(out *FileDiscoveryKubeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FileSource ¶
type FileSource struct { // Secret represents a secret that should populate this file. Secret SecretFileSource `json:"secret"` }
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.
type Filesystem ¶
type Filesystem struct { // Device specifies the device name Device string `json:"device"` // Filesystem specifies the file system type. Filesystem string `json:"filesystem"` // Label specifies the file system label to be used. If set to None, no label is used. Label string `json:"label"` // 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 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 ReplaceFS *string `json:"replaceFS,omitempty"` // ExtraOpts defined extra options to add to the command for creating the file system. // +optional 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. Name string `json:"name"` // HostPath is the path in the host that will be mounted inside // the pod. HostPath string `json:"hostPath"` // MountPath is the path inside the pod where hostPath will be mounted. MountPath string `json:"mountPath"` // 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"` }
IgnitionSpec contains Ignition specific configuration.
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.
type ImageMeta ¶
type ImageMeta struct { // ImageRepository sets the container registry to pull images from. // if not set, the ImageRepository defined in ClusterConfiguration will be used instead. // +optional 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 ImageTag string `json:"imageTag,omitempty"` }
ImageMeta allows to customize the image used for components that are not originated from the Kubernetes/Kubernetes release process.
func (*ImageMeta) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageMeta.
func (*ImageMeta) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InitConfiguration ¶
type InitConfiguration struct { metav1.TypeMeta `json:",inline"` // 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 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"` // 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"` // 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 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"` }
InitConfiguration contains a list of elements that is specific "kubeadm init"-only runtime information.
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) DeepCopyObject ¶
func (in *InitConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*InitConfiguration) Hub ¶
func (*InitConfiguration) Hub()
type JoinConfiguration ¶
type JoinConfiguration struct { metav1.TypeMeta `json:",inline"` // 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"` // CACertPath is the path to the SSL certificate authority used to // secure comunications between node and control-plane. // Defaults to "/etc/kubernetes/pki/ca.crt". // +optional // TODO: revisit when there is defaulting from k/k 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"` // 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 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"` }
JoinConfiguration contains elements describing a particular node.
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) DeepCopyObject ¶
func (in *JoinConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*JoinConfiguration) Hub ¶
func (*JoinConfiguration) Hub()
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"` }
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 ¶ added in v0.0.3
type KubeConfigAuthExec struct { // Command to execute. Command string `json:"command"` // Arguments to pass to the command when executing it. // +optional 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 Env []KubeConfigAuthExecEnv `json:"env,omitempty"` // 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 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 ¶ added in v0.0.3
func (in *KubeConfigAuthExec) DeepCopy() *KubeConfigAuthExec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigAuthExec.
func (*KubeConfigAuthExec) DeepCopyInto ¶ added in v0.0.3
func (in *KubeConfigAuthExec) DeepCopyInto(out *KubeConfigAuthExec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeConfigAuthExecEnv ¶ added in v0.0.3
KubeConfigAuthExecEnv is used for setting environment variables when executing an exec-based credential plugin.
func (*KubeConfigAuthExecEnv) DeepCopy ¶ added in v0.0.3
func (in *KubeConfigAuthExecEnv) DeepCopy() *KubeConfigAuthExecEnv
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigAuthExecEnv.
func (*KubeConfigAuthExecEnv) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
type KubeConfigAuthProvider struct { // Name is the name of the authentication plugin. Name string `json:"name"` // 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 ¶ added in v0.0.3
func (in *KubeConfigAuthProvider) DeepCopy() *KubeConfigAuthProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigAuthProvider.
func (*KubeConfigAuthProvider) DeepCopyInto ¶ added in v0.0.3
func (in *KubeConfigAuthProvider) DeepCopyInto(out *KubeConfigAuthProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeConfigCluster ¶ added in v0.0.3
type KubeConfigCluster struct { // Server is the address of the kubernetes cluster (https://hostname:port). // // Defaults to https:// + Cluster.Spec.ControlPlaneEndpoint. // // +optional 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 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 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 ProxyURL string `json:"proxyURL,omitempty"` }
KubeConfigCluster contains information about how to communicate with a kubernetes cluster.
Adapted from clientcmdv1.Cluster.
func (*KubeConfigCluster) DeepCopy ¶ added in v0.0.3
func (in *KubeConfigCluster) DeepCopy() *KubeConfigCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigCluster.
func (*KubeConfigCluster) DeepCopyInto ¶ added in v0.0.3
func (in *KubeConfigCluster) DeepCopyInto(out *KubeConfigCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeConfigUser ¶ added in v0.0.3
type KubeConfigUser struct { // AuthProvider specifies a custom authentication plugin for the kubernetes cluster. // +optional AuthProvider *KubeConfigAuthProvider `json:"authProvider,omitempty"` // Exec specifies a custom exec-based authentication plugin for the kubernetes cluster. // +optional Exec *KubeConfigAuthExec `json:"exec,omitempty"` }
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.
func (*KubeConfigUser) DeepCopy ¶ added in v0.0.3
func (in *KubeConfigUser) DeepCopy() *KubeConfigUser
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeConfigUser.
func (*KubeConfigUser) DeepCopyInto ¶ added in v0.0.3
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"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec KubeadmConfigSpec `json:"spec,omitempty"` Status KubeadmConfigStatus `json:"status,omitempty"` }
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() clusterv1.Conditions
GetConditions returns the set of conditions for this object.
func (*KubeadmConfig) Hub ¶
func (*KubeadmConfig) Hub()
func (*KubeadmConfig) SetConditions ¶
func (c *KubeadmConfig) SetConditions(conditions clusterv1.Conditions)
SetConditions sets the conditions on this object.
type KubeadmConfigList ¶
type KubeadmConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` 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.
func (*KubeadmConfigList) Hub ¶
func (*KubeadmConfigList) Hub()
type KubeadmConfigSpec ¶
type KubeadmConfigSpec struct { // ClusterConfiguration along with InitConfiguration are the configurations necessary for the init command // +optional ClusterConfiguration *ClusterConfiguration `json:"clusterConfiguration,omitempty"` // InitConfiguration along with ClusterConfiguration are the configurations necessary for the init command // +optional InitConfiguration *InitConfiguration `json:"initConfiguration,omitempty"` // JoinConfiguration is the kubeadm configuration for the join command // +optional JoinConfiguration *JoinConfiguration `json:"joinConfiguration,omitempty"` // Files specifies extra files to be passed to user_data upon creation. // +optional 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"` // Mounts specifies a list of mount points to be setup. // +optional Mounts []MountPoints `json:"mounts,omitempty"` // PreKubeadmCommands specifies extra commands to run before kubeadm runs // +optional PreKubeadmCommands []string `json:"preKubeadmCommands,omitempty"` // PostKubeadmCommands specifies extra commands to run after kubeadm runs // +optional PostKubeadmCommands []string `json:"postKubeadmCommands,omitempty"` // Users specifies extra users to add // +optional Users []User `json:"users,omitempty"` // NTP specifies NTP configuration // +optional NTP *NTP `json:"ntp,omitempty"` // Format specifies the output format of the bootstrap data // +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"` // UseExperimentalRetryJoin replaces a basic kubeadm command with a shell // script with retries for joins. // // This is meant to be an experimental temporary workaround on some environments // where joins fail due to timing (and other issues). The long term goal is to add retries to // kubeadm proper and use that functionality. // // This will add about 40KB to userdata // // For more information, refer to https://github.com/kubernetes-sigs/cluster-api/pull/2763#discussion_r397306055. // +optional // // Deprecated: This experimental fix is no longer needed and this field will be removed in a future release. // When removing also remove from staticcheck exclude-rules for SA1019 in golangci.yml UseExperimentalRetryJoin bool `json:"useExperimentalRetryJoin,omitempty"` // Ignition contains Ignition specific configuration. // +optional Ignition *IgnitionSpec `json:"ignition,omitempty"` }
KubeadmConfigSpec defines the desired state of KubeadmConfig. Either ClusterConfiguration and InitConfiguration should be defined or the JoinConfiguration should be defined.
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.
func (*KubeadmConfigSpec) Default ¶
func (c *KubeadmConfigSpec) Default()
Default defaults a KubeadmConfigSpec.
type KubeadmConfigStatus ¶
type KubeadmConfigStatus struct { // Ready indicates the BootstrapData field is ready to be consumed // +optional Ready bool `json:"ready"` // DataSecretName is the name of the secret that stores the bootstrap data script. // +optional DataSecretName *string `json:"dataSecretName,omitempty"` // FailureReason will be set on non-retryable errors // +optional FailureReason string `json:"failureReason,omitempty"` // FailureMessage will be set on non-retryable errors // +optional FailureMessage string `json:"failureMessage,omitempty"` // ObservedGeneration is the latest generation observed by the controller. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Conditions defines current service state of the KubeadmConfig. // +optional Conditions clusterv1.Conditions `json:"conditions,omitempty"` }
KubeadmConfigStatus defines the observed state of KubeadmConfig.
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"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec KubeadmConfigTemplateSpec `json:"spec,omitempty"` }
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"` metav1.ListMeta `json:"metadata,omitempty"` 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.
func (*KubeadmConfigTemplateList) Hub ¶
func (*KubeadmConfigTemplateList) Hub()
type KubeadmConfigTemplateResource ¶
type KubeadmConfigTemplateResource struct { // 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"` Spec KubeadmConfigSpec `json:"spec,omitempty"` }
KubeadmConfigTemplateResource defines the Template structure.
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 KubeadmConfigTemplateResource `json:"template"`
}
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 LocalEtcd ¶
type LocalEtcd struct { // ImageMeta allows to customize the container used for etcd ImageMeta `json:",inline"` // DataDir is the directory etcd will place its data. // Defaults to "/var/lib/etcd". // +optional DataDir string `json:"dataDir,omitempty"` // ExtraArgs are extra arguments provided to the etcd binary // when run inside a static pod. // +optional ExtraArgs map[string]string `json:"extraArgs,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 ExtraEnvs []EnvVar `json:"extraEnvs,omitempty"` // ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert. // +optional ServerCertSANs []string `json:"serverCertSANs,omitempty"` // PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert. // +optional PeerCertSANs []string `json:"peerCertSANs,omitempty"` }
LocalEtcd describes that kubeadm should run an etcd cluster locally.
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.
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 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.
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 Networking ¶
type Networking struct { // ServiceSubnet is the subnet used by k8s services. // Defaults to a comma-delimited string of the Cluster object's spec.clusterNetwork.pods.cidrBlocks, or // to "10.96.0.0/12" if that's unset. // +optional ServiceSubnet string `json:"serviceSubnet,omitempty"` // PodSubnet is the subnet used by pods. // If unset, the API server will not allocate CIDR ranges for every node. // Defaults to a comma-delimited string of the Cluster object's spec.clusterNetwork.services.cidrBlocks if that is set // +optional PodSubnet string `json:"podSubnet,omitempty"` // DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local". // +optional DNSDomain string `json:"dnsDomain,omitempty"` }
Networking contains elements describing cluster's networking configuration.
func (*Networking) DeepCopy ¶
func (in *Networking) DeepCopy() *Networking
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Networking.
func (*Networking) DeepCopyInto ¶
func (in *Networking) DeepCopyInto(out *Networking)
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 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 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 Taints []corev1.Taint `json:"taints,omitempty"` // KubeletExtraArgs passes through extra arguments to the kubelet. The arguments here are passed to the kubelet command line via the environment file // kubeadm writes at runtime for the kubelet to source. This overrides the generic base-level configuration in the kubelet-config-1.X ConfigMap // Flags have higher priority when parsing. These values are local and specific to the node kubeadm is executing on. // +optional KubeletExtraArgs map[string]string `json:"kubeletExtraArgs,omitempty"` // IgnorePreflightErrors provides a slice of pre-flight errors to be ignored when the current node is registered. // +optional 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". This can be used only // with Kubernetes version equal to 1.22 and later. // +kubebuilder:validation:Enum=Always;IfNotPresent;Never // +optional ImagePullPolicy string `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.
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.
func (*NodeRegistrationOptions) MarshalJSON ¶
func (n *NodeRegistrationOptions) MarshalJSON() ([]byte, error)
MarshalJSON marshals NodeRegistrationOptions in a way that an empty slice in Taints is preserved. Taints are then rendered as: * nil => omitted from the marshalled JSON * [] => rendered as empty array (`[]`) * [regular-array] => rendered as usual We have to do this as the regular Golang JSON marshalling would just omit the empty slice (xref: https://github.com/golang/go/issues/22480). Note: We can't re-use the original struct as that would lead to an infinite recursion. Note: The structs in this func have to be kept in sync with the NodeRegistrationOptions struct.
type Partition ¶
type Partition struct { // Device is the name of the device. Device string `json:"device"` // 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. Layout bool `json:"layout"` // 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 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. Secret SecretPasswdSource `json:"secret"` }
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.
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 Directory string `json:"directory,omitempty"` }
Patches contains options related to applying patches to components deployed by kubeadm.
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 SecretFileSource ¶
type SecretFileSource struct { // Name of the secret in the KubeadmBootstrapConfig's namespace to use. Name string `json:"name"` // Key is the key in the secret's data map for this value. Key string `json:"key"` }
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. Name string `json:"name"` // Key is the key in the secret's data map for this value. Key string `json:"key"` }
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 User ¶
type User struct { // Name specifies the user name Name string `json:"name"` // Gecos specifies the gecos to use for the user // +optional Gecos *string `json:"gecos,omitempty"` // Groups specifies the additional groups for the user // +optional Groups *string `json:"groups,omitempty"` // HomeDir specifies the home directory to use for the user // +optional 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 Shell *string `json:"shell,omitempty"` // Passwd specifies a hashed password for the user // +optional Passwd *string `json:"passwd,omitempty"` // PasswdFrom is a referenced source of passwd to populate the passwd. // +optional PasswdFrom *PasswdSource `json:"passwdFrom,omitempty"` // PrimaryGroup specifies the primary group for the user // +optional 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 Sudo *string `json:"sudo,omitempty"` // SSHAuthorizedKeys specifies a list of ssh authorized keys for the user // +optional 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.