controllers

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2023 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ClusterFinalizer allows ClusterController to clean up associated resources before removing it from apiserver.
	ClusterFinalizer = "cluster.cluster.kurator.dev"
	KindCluster      = "Cluster"
)
View Source
const (
	ClusterHostsName  = "cluster-hosts"
	ClusterConfigName = "cluster-config"
	SecreteName       = "cluster-secret"

	ClusterKind       = "Cluster"
	CustomClusterKind = "CustomCluster"

	KubesprayCMDPrefix                                     = "ansible-playbook -i inventory/" + ClusterHostsName + " --private-key /root/.ssh/ssh-privatekey "
	CustomClusterInitAction      customClusterManageAction = "init"
	KubesprayInitCMD             customClusterManageCMD    = KubesprayCMDPrefix + "cluster.yml -vvv "
	CustomClusterTerminateAction customClusterManageAction = "terminate"
	KubesprayTerminateCMD        customClusterManageCMD    = KubesprayCMDPrefix + "reset.yml -vvv -e reset_confirmation=yes"

	CustomClusterScaleUpAction customClusterManageAction = "scale-up"
	KubesprayScaleUpCMD        customClusterManageCMD    = KubesprayCMDPrefix + "scale.yml -vvv "

	CustomClusterScaleDownAction customClusterManageAction = "scale-down"
	KubesprayScaleDownCMDPrefix  customClusterManageCMD    = KubesprayCMDPrefix + "remove-node.yml -vvv -e skip_confirmation=yes"

	CustomClusterUpgradeAction customClusterManageAction = "upgrade"
	KubesprayUpgradeCMDPrefix  customClusterManageCMD    = KubesprayCMDPrefix + "upgrade-cluster.yml -vvv "

	// CustomClusterFinalizer is the finalizer applied to crd.
	CustomClusterFinalizer = "customcluster.cluster.kurator.dev"
	// custom configmap finalizer requires at least one slash.
	CustomClusterConfigMapFinalizer = CustomClusterFinalizer + "/configmap"

	// KubeVersionPrefix is the prefix string of version of kubernetes
	KubeVersionPrefix = "kube_version: "
	// DefaultKubesprayVersion is the version of Kubespray used by the customCluster manager worker pod.
	DefaultKubesprayVersion = "v2.20.0"
	// DefaultMaxVersion is the max version of Kubernetes that is supported by DefaultKubesprayVersion.
	DefaultMaxVersion = "v1.24.6"
	// DefaultMinVersion is the min version of Kubernetes that is supported by DefaultKubesprayVersion.
	DefaultMinVersion = "v1.22.0"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ClusterController added in v0.3.0

type ClusterController struct {
	client.Client
	Scheme       *runtime.Scheme
	RequeueAfter time.Duration
}

ClusterController reconciles a Cluster object

func (*ClusterController) Reconcile added in v0.3.0

func (r *ClusterController) Reconcile(ctx context.Context, req ctrl.Request) (_ ctrl.Result, reterr error)

func (*ClusterController) SecretToClusterFunc added in v0.3.0

func (r *ClusterController) SecretToClusterFunc(o client.Object) []ctrl.Request

func (*ClusterController) SetupWithManager added in v0.3.0

func (r *ClusterController) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

type ClusterInfo added in v0.3.0

type ClusterInfo struct {
	WorkerNodes []NodeInfo
	KubeVersion string
}

ClusterInfo represents the information of the cluster on VMs.

type ConfigTemplateContent

type ConfigTemplateContent struct {
	KubeVersion string
	PodCIDR     string
	// CNIType is the CNI plugin of the cluster on VMs. The default plugin is calico and can be ["calico", "cilium", "canal", "flannel"]
	CNIType string
	// ControlPlaneConfigAddress same as `ControlPlaneEndpoint`.
	ControlPlaneAddress string
	// ControlPlaneConfigCertSANs sets extra Subject Alternative Names for the API Server signing cert.
	ControlPlaneCertSANs string
}

type CustomClusterController

type CustomClusterController struct {
	client.Client
	APIReader client.Reader
	Scheme    *runtime.Scheme
}

CustomClusterController reconciles a CustomCluster object.

func (*CustomClusterController) ClusterToCustomClusterMapFunc

func (r *CustomClusterController) ClusterToCustomClusterMapFunc(o client.Object) []ctrl.Request

func (*CustomClusterController) CreateClusterConfig

func (*CustomClusterController) CreateClusterHosts

func (r *CustomClusterController) CreateClusterHosts(ctx context.Context, customMachine *v1alpha1.CustomMachine, customCluster *v1alpha1.CustomCluster) (*corev1.ConfigMap, error)

func (*CustomClusterController) CreateConfigMapWithTemplate

func (r *CustomClusterController) CreateConfigMapWithTemplate(ctx context.Context, name, namespace, fileName, configMapData string) (*corev1.ConfigMap, error)

func (*CustomClusterController) CustomMachineToCustomClusterMapFunc

func (r *CustomClusterController) CustomMachineToCustomClusterMapFunc(o client.Object) []ctrl.Request

func (*CustomClusterController) KcpToCustomClusterMapFunc

func (r *CustomClusterController) KcpToCustomClusterMapFunc(o client.Object) []ctrl.Request

func (*CustomClusterController) Reconcile

func (r *CustomClusterController) Reconcile(ctx context.Context, req ctrl.Request) (_ ctrl.Result, reterr error)

Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.

func (*CustomClusterController) SetupWithManager

func (r *CustomClusterController) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error

SetupWithManager sets up the controller with the Manager.

func (*CustomClusterController) WorkerToCustomClusterMapFunc

func (r *CustomClusterController) WorkerToCustomClusterMapFunc(o client.Object) []ctrl.Request

type CustomMachineController

type CustomMachineController struct {
	client.Client
	APIReader client.Reader
	Scheme    *runtime.Scheme
	// contains filtered or unexported fields
}

CustomMachineController reconciles a CustomMachine object

func (*CustomMachineController) Reconcile

func (r *CustomMachineController) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

func (*CustomMachineController) SetupWithManager

func (r *CustomMachineController) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error

SetupWithManager sets up the controller with the Manager.

type HostTemplateContent

type HostTemplateContent struct {
	NodeAndIP    []string
	MasterName   []string
	NodeName     []string
	EtcdNodeName []string // default: NodeName + MasterName
}

func GetHostsContent

func GetHostsContent(customMachine *v1alpha1.CustomMachine) *HostTemplateContent

type NodeInfo added in v0.3.0

type NodeInfo struct {
	// NodeName, also called as HostName, is the unique identifier that distinguishes it from other nodes under the same cluster. kubespray uses the Hostname as the parameter to delete the node.
	NodeName  string
	PublicIP  string
	PrivateIP string
}

NodeInfo represents the information of the node on VMs.

Jump to

Keyboard shortcuts

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