Documentation ¶
Index ¶
- Constants
- func CleanCNI(metadata *component.ExtraMetadata, c *v1.CNI, networking *v1.Networking, ...) ([]v1.Step, error)
- func Clear(c *v1.Cluster, metadata *component.ExtraMetadata) ([]v1.Step, error)
- func EnvSetupSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func GetKubeConfig(ctx context.Context, name string, node component.Node, externalAddress string, ...) (string, error)
- func KubeadmReset(nodes []v1.StepNode) ([]v1.Step, error)
- func PatchTaintAndLabelStep(master, workers v1.WorkerNodeList, metadata *component.ExtraMetadata) ([]v1.Step, error)
- func RemoveHostname(c *v1.Cluster, nodes []v1.StepNode) ([]v1.Step, error)
- type APIEndpoint
- type APIServer
- type ActBackup
- func (stepper *ActBackup) BackupStoreCreate() (bs.BackupStore, error)
- func (stepper *ActBackup) GetInstallSteps() []v1.Step
- func (stepper *ActBackup) GetStep(action v1.StepAction) []v1.Step
- func (stepper *ActBackup) GetUninstallSteps() []v1.Step
- func (stepper *ActBackup) InitSteps(ctx context.Context) error
- func (stepper *ActBackup) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *ActBackup) NewInstance() component.ObjectMeta
- func (stepper *ActBackup) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- type AfterRecovery
- type BootstrapTokenDiscovery
- type Certification
- func (stepper *Certification) InitStepper() *Certification
- func (stepper *Certification) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Certification) InstallSteps(clu *v1.Cluster, nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Certification) NewInstance() component.ObjectMeta
- func (stepper *Certification) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- type CheckFile
- type ClusterConfiguration
- type ClusterNode
- func (stepper *ClusterNode) InitStepper(c *v1.Cluster, metadata *component.ExtraMetadata) *ClusterNode
- func (stepper *ClusterNode) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *ClusterNode) InstallSteps(role string, nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *ClusterNode) NewInstance() component.ObjectMeta
- func (stepper *ClusterNode) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *ClusterNode) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type Container
- func (stepper *Container) InitStepper(criType string) *Container
- func (stepper *Container) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Container) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Container) NewInstance() component.ObjectMeta
- func (stepper *Container) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Container) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type ControlPlane
- func (stepper *ControlPlane) InitStepper(c *v1.Cluster) *ControlPlane
- func (stepper *ControlPlane) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *ControlPlane) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *ControlPlane) NewInstance() component.ObjectMeta
- func (stepper *ControlPlane) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *ControlPlane) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type ControlPlaneComponent
- type DNS
- type DNSAddOnType
- type Discovery
- type Drain
- func (stepper *Drain) InitStepper(hostname string, extraArgs []string) *Drain
- func (stepper *Drain) Install(ctx context.Context, opts component.Options) (bytes []byte, err error)
- func (stepper *Drain) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Drain) NewInstance() component.ObjectMeta
- func (stepper *Drain) Uninstall(ctx context.Context, opts component.Options) (bytes []byte, err error)
- func (stepper *Drain) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type Etcd
- type Extension
- func (stepper *Extension) InitStepper(c *v1.Cluster) *Extension
- func (stepper *Extension) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Extension) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Extension) NewInstance() component.ObjectMeta
- func (stepper *Extension) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Extension) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type ExternalEtcd
- type FileDir
- type FileDiscovery
- type GenNode
- func (stepper *GenNode) GetSteps(action v1.StepAction) []v1.Step
- func (stepper *GenNode) InitStepper(metadata *component.ExtraMetadata, cluster *v1.Cluster, role string) *GenNode
- func (stepper *GenNode) MakeInstallSteps(metadata *component.ExtraMetadata, patchNodes []v1.StepNode, role string) error
- func (stepper *GenNode) MakeUninstallSteps(metadata *component.ExtraMetadata, patchNodes []v1.StepNode) error
- func (stepper *GenNode) Validate() error
- type Health
- func (stepper *Health) InitStepper(version string) *Health
- func (stepper *Health) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Health) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Health) NewInstance() component.ObjectMeta
- func (stepper *Health) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Health) UninstallSteps(network *v1.Networking, nodes ...v1.StepNode) ([]v1.Step, error)
- type HostPathMount
- type ImageMeta
- type InitConfiguration
- type JoinCmd
- func (stepper *JoinCmd) InitStepper(criType string) *JoinCmd
- func (stepper JoinCmd) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *JoinCmd) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper JoinCmd) NewInstance() component.ObjectMeta
- func (stepper JoinCmd) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *JoinCmd) UninstallSteps() ([]v1.Step, error)
- type JoinConfiguration
- type JoinControlPlane
- type KubeadmConfig
- func (stepper *KubeadmConfig) InitStepper(c *v1.Cluster, metadata *component.ExtraMetadata) *KubeadmConfig
- func (stepper KubeadmConfig) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *KubeadmConfig) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *KubeadmConfig) JoinSteps(isControlPlane bool, nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper KubeadmConfig) NewInstance() component.ObjectMeta
- func (stepper KubeadmConfig) Render(ctx context.Context, opts component.Options) error
- func (stepper KubeadmConfig) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *KubeadmConfig) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type KubeadmConfigUpdater
- type KubeadmJoinUtil
- type Kubectl
- func (stepper *Kubectl) InitStepper() *Kubectl
- func (stepper *Kubectl) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Kubectl) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Kubectl) NewInstance() component.ObjectMeta
- func (stepper *Kubectl) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Kubectl) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type KubectlTerminal
- func (stepper *KubectlTerminal) InitStepper(c *v1.Cluster) *KubectlTerminal
- func (stepper *KubectlTerminal) InstallSteps(stepMaster0 []v1.StepNode) ([]v1.Step, error)
- func (stepper *KubectlTerminal) NewInstance() component.ObjectMeta
- func (stepper *KubectlTerminal) Render(ctx context.Context, opts component.Options) error
- func (stepper *KubectlTerminal) UninstallSteps() ([]v1.Step, error)
- type LocalEtcd
- type Networking
- type NodeRegistrationOptions
- type Package
- func (stepper *Package) InitStepper(c *v1.Cluster) *Package
- func (stepper *Package) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Package) InstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- func (stepper *Package) NewInstance() component.ObjectMeta
- func (stepper *Package) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Package) UninstallSteps(nodes []v1.StepNode) ([]v1.Step, error)
- type Patches
- type Recovery
- func (stepper *Recovery) BackupStoreCreate() (bs.BackupStore, error)
- func (stepper *Recovery) BeforeRecovery(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Recovery) Download(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Recovery) GetInstallSteps() []v1.Step
- func (stepper *Recovery) InitSteps(ctx context.Context) error
- func (stepper *Recovery) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Recovery) MakeInstallSteps(ctx context.Context, metadata *component.ExtraMetadata) error
- func (stepper *Recovery) NewInstance() component.ObjectMeta
- func (stepper *Recovery) Recovering(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Recovery) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *Recovery) Validate() error
- type Runnable
- func (runnable *Runnable) GetInstallSteps(ctx context.Context) ([]v1.Step, error)
- func (runnable *Runnable) GetStep(ctx context.Context, action v1.StepAction) ([]v1.Step, error)
- func (runnable *Runnable) GetUninstallSteps(ctx context.Context) ([]v1.Step, error)
- func (runnable *Runnable) GetUpgradeSteps(ctx context.Context) ([]v1.Step, error)
- func (runnable *Runnable) Validate() error
- type SAN
- func (stepper *SAN) InitStepper() *SAN
- func (stepper *SAN) Install(ctx context.Context, opts component.Options) ([]byte, error)
- func (stepper *SAN) InstallSteps(nodes []v1.StepNode, sans []string) ([]v1.Step, error)
- func (stepper *SAN) NewInstance() component.ObjectMeta
- func (stepper *SAN) Uninstall(ctx context.Context, opts component.Options) ([]byte, error)
- type Upgrade
- type UpgradePackage
Constants ¶
const ( K8s = "k8s" CniCalico = "calico" NodeRoleMaster = "master" NodeRoleWorker = "worker" APIServerDomainPrefix = "apiserver." KubeConfigDir = ".kube" CniDefaultConfigDir = "/etc/cni" K8SDefaultConfigDir = "/etc/kubernetes" ManifestDir = "/tmp/.k8s" DockershimDefaultDataDir = "/var/lib/dockershim" EtcdDefaultDataDir = "/var/lib/etcd" KubeletDefaultDataDir = "/var/lib/kubelet" KubeletSystemdDir = "/etc/systemd/system" Kubelet10KubeadmDir = "/etc/systemd/system/kubelet.service.d" KubeBinaryDir = "/usr/bin" KubeManifestsDir = "/etc/kubernetes/manifests" // KubeletSystemdResolverConfig specifies the default resolver config when systemd service is active KubeletSystemdResolverConfig = "/run/systemd/resolve/resolv.conf" KubeletDefaultResolvConf = "/etc/resolv.conf" )
const (
//KubeCertsCluVersion the version that kubeadm certs command appears
KubeCertsCluVersion = "1.20"
)
const KubeadmJoinTemplate = `` /* 729-byte string literal not displayed */
const KubectlPodTemplate = `` /* 1837-byte string literal not displayed */
KubectlPodTemplate kubectl terminal service yaml template
Variables ¶
This section is empty.
Functions ¶
func CleanCNI ¶
func CleanCNI(metadata *component.ExtraMetadata, c *v1.CNI, networking *v1.Networking, nodes []v1.StepNode) ([]v1.Step, error)
CleanCNI clean cni image and cni network veth
func GetKubeConfig ¶
func PatchTaintAndLabelStep ¶
func PatchTaintAndLabelStep(master, workers v1.WorkerNodeList, metadata *component.ExtraMetadata) ([]v1.Step, error)
Types ¶
type APIEndpoint ¶ added in v1.3.3
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.
type APIServer ¶ added in v1.3.3
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
type ActBackup ¶
type ActBackup struct { BackupFileName string BackupPointRootDir string StoreType string Bucket string Endpoint string AccessKeyID string AccessKeySecret string Region string SSL bool // contains filtered or unexported fields }
func (*ActBackup) BackupStoreCreate ¶
func (stepper *ActBackup) BackupStoreCreate() (bs.BackupStore, error)
func (*ActBackup) GetInstallSteps ¶
func (*ActBackup) GetUninstallSteps ¶
func (*ActBackup) NewInstance ¶
func (stepper *ActBackup) NewInstance() component.ObjectMeta
type AfterRecovery ¶
type AfterRecovery struct{}
type BootstrapTokenDiscovery ¶ added in v1.3.3
type BootstrapTokenDiscovery struct { // Token is a token used to validate cluster information // fetched from the control-plane. Token string `json:"token" datapolicy:"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. // +optional CACertHashes []string `json:"caCertHashes,omitempty" datapolicy:"security-key"` // 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
type Certification ¶
type Certification struct{}
func (*Certification) InitStepper ¶
func (stepper *Certification) InitStepper() *Certification
func (*Certification) InstallSteps ¶
func (*Certification) NewInstance ¶
func (stepper *Certification) NewInstance() component.ObjectMeta
type ClusterConfiguration ¶ added in v1.3.3
type ClusterConfiguration struct { metav1.TypeMeta `json:",inline"` // Etcd holds configuration for etcd. // +optional Etcd Etcd `json:"etcd,omitempty"` // Networking holds configuration for the networking topology of the cluster. // +optional Networking Networking `json:"networking,omitempty"` // KubernetesVersion is the target version of the control plane. // +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. // +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. // +optional CertificatesDir string `json:"certificatesDir,omitempty"` // ImageRepository sets the container registry to pull images from. // If empty, `k8s.gcr.io` will be used by default; in case of kubernetes version is a CI build (kubernetes version starts with `ci/`) // `gcr.io/k8s-staging-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.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
type ClusterNode ¶
type ClusterNode struct { // use type enum instead NodeRole string WorkerNodeVIP string // master ip Masters map[string]string // for IPVS rules LocalRegistry string APIServerDomainName string JoinMasterIP string EtcdDataPath string }
func (*ClusterNode) InitStepper ¶
func (stepper *ClusterNode) InitStepper(c *v1.Cluster, metadata *component.ExtraMetadata) *ClusterNode
func (*ClusterNode) InstallSteps ¶
func (*ClusterNode) NewInstance ¶
func (stepper *ClusterNode) NewInstance() component.ObjectMeta
func (*ClusterNode) UninstallSteps ¶
type Container ¶
type Container struct {
CriType string
}
func (*Container) InitStepper ¶
func (*Container) InstallSteps ¶
func (*Container) NewInstance ¶
func (stepper *Container) NewInstance() component.ObjectMeta
type ControlPlane ¶
type ControlPlane struct { // KubeConfig file APIServerDomainName string EtcdDataPath string ContainerRuntime string ExternalCaCert string ExternalCaKey string }
func (*ControlPlane) InitStepper ¶
func (stepper *ControlPlane) InitStepper(c *v1.Cluster) *ControlPlane
func (*ControlPlane) InstallSteps ¶
func (*ControlPlane) NewInstance ¶
func (stepper *ControlPlane) NewInstance() component.ObjectMeta
func (*ControlPlane) UninstallSteps ¶
type ControlPlaneComponent ¶ added in v1.3.3
type ControlPlaneComponent struct { // ExtraArgs is an extra set of flags to pass to the control plane component. // A key in this map is the flag name as it appears on the // command line except without leading dash(es). // 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"` }
ControlPlaneComponent holds settings common to control plane component of the cluster
type DNS ¶ added in v1.3.3
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
type DNSAddOnType ¶ added in v1.3.3
type DNSAddOnType string
DNSAddOnType defines string identifying DNS add-on types
type Discovery ¶ added in v1.3.3
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" datapolicy:"token"` // 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
type Drain ¶
func (*Drain) InitStepper ¶
func (*Drain) InstallSteps ¶
func (*Drain) NewInstance ¶
func (stepper *Drain) NewInstance() component.ObjectMeta
type Etcd ¶ added in v1.3.3
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.
type Extension ¶ added in v1.4.0
type Extension struct { Offline bool `json:"offline"` Version string `json:"version"` CriType string `json:"criType"` LocalRegistry string `json:"localRegistry"` }
Extension is a step to install k8s extension,which include some useful tools
func (*Extension) InitStepper ¶ added in v1.4.0
func (*Extension) InstallSteps ¶ added in v1.4.0
func (*Extension) NewInstance ¶ added in v1.4.0
func (stepper *Extension) NewInstance() component.ObjectMeta
type ExternalEtcd ¶ added in v1.3.3
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.
type FileDiscovery ¶ added in v1.3.3
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"` }
FileDiscovery is used to specify a file or URL to a kubeconfig file from which to load cluster information
type GenNode ¶
type GenNode struct { Nodes component.NodeList `json:"nodes"` Cluster *v1.Cluster // contains filtered or unexported fields }
func (*GenNode) InitStepper ¶
func (*GenNode) MakeInstallSteps ¶ added in v1.3.1
func (*GenNode) MakeUninstallSteps ¶ added in v1.3.1
func (stepper *GenNode) MakeUninstallSteps(metadata *component.ExtraMetadata, patchNodes []v1.StepNode) error
MakeUninstallSteps make uninstall-steps
type Health ¶
type Health struct {
KubernetesVersion string
}
func (*Health) InitStepper ¶
func (*Health) InstallSteps ¶
func (*Health) NewInstance ¶
func (stepper *Health) NewInstance() component.ObjectMeta
func (*Health) UninstallSteps ¶
type HostPathMount ¶ added in v1.3.3
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.
type ImageMeta ¶ added in v1.3.3
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
type InitConfiguration ¶ added in v1.3.3
type InitConfiguration struct { metav1.TypeMeta `json:",inline"` // NodeRegistration holds fields that relate to registering the new control-plane node to the cluster // +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"` // CertificateKey sets the key with which certificates and keys are encrypted prior to being uploaded in // a secret in the cluster during the uploadcerts init phase. // +optional CertificateKey string `json:"certificateKey,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. // The flag "--skip-phases" takes precedence over this field. // +optional SkipPhases []string `json:"skipPhases,omitempty"` // Patches contains options related to applying patches to components deployed by kubeadm during // "kubeadm init". // +optional Patches *Patches `json:"patches,omitempty"` }
InitConfiguration contains a list of elements that is specific "kubeadm init"-only runtime information.
type JoinCmd ¶
type JoinCmd struct {
ContainerRuntime string `json:"containerRuntime"`
}
func (*JoinCmd) InitStepper ¶
func (*JoinCmd) InstallSteps ¶
func (JoinCmd) NewInstance ¶
func (stepper JoinCmd) NewInstance() component.ObjectMeta
type JoinConfiguration ¶ added in v1.3.3
type JoinConfiguration struct { metav1.TypeMeta `json:",inline"` // NodeRegistration holds fields that relate to registering the new control-plane node to the cluster // +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 CACertPath string `json:"caCertPath,omitempty"` // Discovery specifies the options for the kubelet to use during the TLS Bootstrap process Discovery Discovery `json:"discovery"` // 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 join --help" command. // The flag "--skip-phases" takes precedence over this field. // +optional SkipPhases []string `json:"skipPhases,omitempty"` // Patches contains options related to applying patches to components deployed by kubeadm during // "kubeadm join". // +optional Patches *Patches `json:"patches,omitempty"` }
JoinConfiguration contains elements describing a particular node.
type JoinControlPlane ¶ added in v1.3.3
type JoinControlPlane struct { // LocalAPIEndpoint represents the endpoint of the API server instance to be deployed on this node. // +optional LocalAPIEndpoint APIEndpoint `json:"localAPIEndpoint,omitempty"` // CertificateKey is the key that is used for decryption of certificates after they are downloaded from the secret // upon joining a new control plane node. The corresponding encryption key is in the InitConfiguration. // +optional CertificateKey string `json:"certificateKey,omitempty"` }
JoinControlPlane contains elements describing an additional control plane instance to be deployed on the joining node.
type KubeadmConfig ¶
type KubeadmConfig struct { ClusterConfigAPIVersion string `json:"clusterConfigAPIVersion"` // If both Docker and containerd are detected, Docker takes precedence,so we must specify cri. // https://v1-20.docs.kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-runtime ContainerRuntime string `json:"containerRuntime"` Etcd v1.Etcd `json:"etcd"` Networking v1.Networking `json:"networking"` KubeProxy v1.KubeProxy `json:"kubeProxy"` Kubelet v1.Kubelet `json:"kubelet"` ClusterName string `json:"clusterName"` KubernetesVersion string `json:"kubernetesVersion"` ControlPlaneEndpoint string `json:"controlPlaneEndpoint"` CertSANs []string `json:"certSANs"` LocalRegistry string `json:"localRegistry"` Offline bool `json:"offline"` IsControlPlane bool `json:"isControlPlane,omitempty"` CACertHashes string `json:"caCertHashes,omitempty"` BootstrapToken string `json:"bootstrapToken,omitempty"` CertificateKey string `json:"certificateKey,omitempty"` AdvertiseAddress string `json:"advertiseAddress,omitempty"` FeatureGates map[string]bool `json:"featureGates,omitempty"` }
func (*KubeadmConfig) InitStepper ¶
func (stepper *KubeadmConfig) InitStepper(c *v1.Cluster, metadata *component.ExtraMetadata) *KubeadmConfig
func (*KubeadmConfig) InstallSteps ¶
func (KubeadmConfig) NewInstance ¶
func (stepper KubeadmConfig) NewInstance() component.ObjectMeta
func (*KubeadmConfig) UninstallSteps ¶
type KubeadmConfigUpdater ¶ added in v1.3.3
func (*KubeadmConfigUpdater) NewInstance ¶ added in v1.3.3
func (d *KubeadmConfigUpdater) NewInstance() component.ObjectMeta
type KubeadmJoinUtil ¶
type KubeadmJoinUtil struct { ControlPlaneEndpoint string `json:"controlPlaneEndpoint"` Token string `json:"token"` DiscoveryHash string `json:"discoveryHash"` ContainerRuntime string `json:"containerRuntime"` }
func (*KubeadmJoinUtil) GetCmd ¶
func (stepper *KubeadmJoinUtil) GetCmd() []string
func (*KubeadmJoinUtil) InitStepper ¶
func (stepper *KubeadmJoinUtil) InitStepper(line, cri string) *KubeadmJoinUtil
type Kubectl ¶
type Kubectl struct{}
func (*Kubectl) InitStepper ¶
func (*Kubectl) InstallSteps ¶
func (*Kubectl) NewInstance ¶
func (stepper *Kubectl) NewInstance() component.ObjectMeta
type KubectlTerminal ¶
type KubectlTerminal struct {
ImageRegistryAddr string
}
func (*KubectlTerminal) InitStepper ¶
func (stepper *KubectlTerminal) InitStepper(c *v1.Cluster) *KubectlTerminal
func (*KubectlTerminal) InstallSteps ¶
func (*KubectlTerminal) NewInstance ¶
func (stepper *KubectlTerminal) NewInstance() component.ObjectMeta
func (*KubectlTerminal) UninstallSteps ¶
func (stepper *KubectlTerminal) UninstallSteps() ([]v1.Step, error)
type LocalEtcd ¶ added in v1.3.3
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". DataDir string `json:"dataDir"` // ExtraArgs are extra arguments provided to the etcd binary // when run inside a static pod. // A key in this map is the flag name as it appears on the // command line except without leading dash(es). // +optional ExtraArgs map[string]string `json:"extraArgs,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
type Networking ¶ added in v1.3.3
type Networking struct { // ServiceSubnet is the subnet used by k8s services. Defaults to "10.96.0.0/12". // +optional ServiceSubnet string `json:"serviceSubnet,omitempty"` // PodSubnet is the subnet used by pods. // +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
type NodeRegistrationOptions ¶ added in v1.3.3
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, // it will be defaulted with a control-plane taint for control-plane nodes. 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. Taints []corev1.Taint `json:"taints"` // 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 ConfigMap // Flags have higher priority when parsing. These values are local and specific to the node kubeadm is executing on. // A key in this map is the flag name as it appears on the // command line except without leading dash(es). // +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". // If this field is unset kubeadm will default it to "IfNotPresent", or pull the required images if not present on the host. // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` }
NodeRegistrationOptions holds fields that relate to registering a new control-plane or node to the cluster, either via "kubeadm init" or "kubeadm join"
type Package ¶
type Package struct { Offline bool `json:"offline"` Version string `json:"version"` CriType string `json:"criType"` LocalRegistry string `json:"localRegistry"` KubeletDir string `json:"kubeletDir"` }
func (*Package) InstallSteps ¶
func (*Package) NewInstance ¶
func (stepper *Package) NewInstance() component.ObjectMeta
type Patches ¶ added in v1.3.3
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. // +optional Directory string `json:"directory,omitempty"` }
Patches contains options related to applying patches to components deployed by kubeadm.
type Recovery ¶
type Recovery struct { NodeNameList []string NodeIPList []string RestoreDir string BackupFileName string BackupPointRootDir string StoreType string Bucket string Endpoint string AccessKeyID string AccessKeySecret string Region string SSL bool BackupFileSize int64 BackupFileMD5 string FileDir // contains filtered or unexported fields }
func (*Recovery) BackupStoreCreate ¶
func (stepper *Recovery) BackupStoreCreate() (bs.BackupStore, error)
func (*Recovery) BeforeRecovery ¶
func (*Recovery) GetInstallSteps ¶
func (*Recovery) MakeInstallSteps ¶
func (*Recovery) NewInstance ¶
func (stepper *Recovery) NewInstance() component.ObjectMeta
func (*Recovery) Recovering ¶
type Runnable ¶
func (*Runnable) GetInstallSteps ¶
func (*Runnable) GetUninstallSteps ¶
func (*Runnable) GetUpgradeSteps ¶
type SAN ¶ added in v1.3.3
type SAN struct{}
func (*SAN) InitStepper ¶ added in v1.3.3
func (*SAN) InstallSteps ¶ added in v1.3.3
func (*SAN) NewInstance ¶ added in v1.3.3
func (stepper *SAN) NewInstance() component.ObjectMeta
type Upgrade ¶
type Upgrade struct { Kubeadm *KubeadmConfig `json:"kubeadm"` Offline bool `json:"offline"` Version string `json:"version"` LocalRegistry string `json:"localRegistry"` // contains filtered or unexported fields }
func (*Upgrade) GetInstallSteps ¶
func (*Upgrade) InitStepper ¶
func (stepper *Upgrade) InitStepper(metadata *component.ExtraMetadata, c *v1.Cluster)
type UpgradePackage ¶
func (*UpgradePackage) NewInstance ¶
func (stepper *UpgradePackage) NewInstance() component.ObjectMeta