k8sapi

package
v2.16.3 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: AGPL-3.0 Imports: 28 Imported by: 0

Documentation

Overview

Package k8sapi is used to interact with the Kubernetes API to create or update required resources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	Initialize(kubeconfig []byte) error
	CreateConfigMap(ctx context.Context, configMap *corev1.ConfigMap) error
	AddNodeSelectorsToDeployment(ctx context.Context, selectors map[string]string, name string, namespace string) error
	ListAllNamespaces(ctx context.Context) (*corev1.NamespaceList, error)
	AnnotateNode(ctx context.Context, nodeName, annotationKey, annotationValue string) error
	EnforceCoreDNSSpread(ctx context.Context) error
	PatchFirstNodePodCIDR(ctx context.Context, firstNodePodCIDR string) error
}

Client provides the functions to talk to the k8s API.

type KubdeadmConfiguration added in v2.2.0

type KubdeadmConfiguration struct{}

KubdeadmConfiguration is used to generate kubeadm configurations.

func (*KubdeadmConfiguration) InitConfiguration added in v2.2.0

func (c *KubdeadmConfiguration) InitConfiguration(externalCloudProvider bool, clusterVersion string) KubeadmInitYAML

InitConfiguration returns a new init configuration.

func (*KubdeadmConfiguration) JoinConfiguration added in v2.2.0

func (c *KubdeadmConfiguration) JoinConfiguration(externalCloudProvider bool) KubeadmJoinYAML

JoinConfiguration returns a new kubeadm join configuration.

type KubeadmInitYAML

type KubeadmInitYAML struct {
	InitConfiguration    kubeadm.InitConfiguration
	ClusterConfiguration kubeadm.ClusterConfiguration
	KubeletConfiguration kubeletconf.KubeletConfiguration
}

KubeadmInitYAML holds configuration for kubeadm init workflow.

func (*KubeadmInitYAML) Marshal

func (k *KubeadmInitYAML) Marshal() ([]byte, error)

Marshal into a k8s resource YAML.

func (*KubeadmInitYAML) SetCertSANs

func (k *KubeadmInitYAML) SetCertSANs(certSANs []string)

SetCertSANs sets the SANs for the certificate.

func (*KubeadmInitYAML) SetClusterName added in v2.6.0

func (k *KubeadmInitYAML) SetClusterName(clusterName string)

SetClusterName sets the name of the Kubernetes cluster. This name is reflected in the kubeconfig file and in the name of the default admin user.

func (*KubeadmInitYAML) SetControlPlaneEndpoint

func (k *KubeadmInitYAML) SetControlPlaneEndpoint(controlPlaneEndpoint string)

SetControlPlaneEndpoint sets the control plane endpoint if controlPlaneEndpoint is not empty.

func (*KubeadmInitYAML) SetNodeIP

func (k *KubeadmInitYAML) SetNodeIP(nodeIP string)

SetNodeIP sets the node IP.

func (*KubeadmInitYAML) SetNodeName

func (k *KubeadmInitYAML) SetNodeName(nodeName string)

SetNodeName sets name of node.

func (*KubeadmInitYAML) SetProviderID

func (k *KubeadmInitYAML) SetProviderID(providerID string)

SetProviderID sets the provider ID.

func (*KubeadmInitYAML) SetServiceSubnet added in v2.14.0

func (k *KubeadmInitYAML) SetServiceSubnet(subnet string)

SetServiceSubnet sets the service subnet.

type KubeadmJoinYAML

type KubeadmJoinYAML struct {
	JoinConfiguration    kubeadm.JoinConfiguration
	KubeletConfiguration kubeletconf.KubeletConfiguration
}

KubeadmJoinYAML holds configuration for kubeadm join workflow.

func (*KubeadmJoinYAML) AppendDiscoveryTokenCaCertHash

func (k *KubeadmJoinYAML) AppendDiscoveryTokenCaCertHash(discoveryTokenCaCertHash string)

AppendDiscoveryTokenCaCertHash appends another trusted discovery token CA hash.

func (*KubeadmJoinYAML) Marshal

func (k *KubeadmJoinYAML) Marshal() ([]byte, error)

Marshal into a k8s resource YAML.

func (*KubeadmJoinYAML) SetAPIServerEndpoint

func (k *KubeadmJoinYAML) SetAPIServerEndpoint(apiServerEndpoint string)

SetAPIServerEndpoint sets the api server endpoint.

func (*KubeadmJoinYAML) SetControlPlane

func (k *KubeadmJoinYAML) SetControlPlane(advertiseAddress string)

SetControlPlane sets the control plane with the advertised address.

func (*KubeadmJoinYAML) SetNodeIP

func (k *KubeadmJoinYAML) SetNodeIP(nodeIP string)

SetNodeIP sets the node IP.

func (*KubeadmJoinYAML) SetNodeName

func (k *KubeadmJoinYAML) SetNodeName(nodeName string)

SetNodeName sets the node name.

func (*KubeadmJoinYAML) SetProviderID

func (k *KubeadmJoinYAML) SetProviderID(providerID string)

SetProviderID sets the provider ID.

func (*KubeadmJoinYAML) SetToken

func (k *KubeadmJoinYAML) SetToken(token string)

SetToken sets the boostrap token.

type KubernetesUtil

type KubernetesUtil struct {
	// contains filtered or unexported fields
}

KubernetesUtil provides low level management of the kubernetes cluster.

func NewKubernetesUtil

func NewKubernetesUtil() *KubernetesUtil

NewKubernetesUtil creates a new KubernetesUtil.

func (*KubernetesUtil) InitCluster

func (k *KubernetesUtil) InitCluster(
	ctx context.Context, initConfig []byte, nodeName, clusterName string, ips []net.IP, conformanceMode bool, log *slog.Logger,
) ([]byte, error)

InitCluster instruments kubeadm to initialize the K8s cluster. On success an admin kubeconfig file is returned.

func (*KubernetesUtil) InstallComponents

func (k *KubernetesUtil) InstallComponents(ctx context.Context, kubernetesComponents components.Components) error

InstallComponents installs the kubernetes components passed from the CLI.

func (*KubernetesUtil) JoinCluster

func (k *KubernetesUtil) JoinCluster(ctx context.Context, joinConfig []byte, log *slog.Logger) error

JoinCluster joins existing Kubernetes cluster using kubeadm join.

func (*KubernetesUtil) StartKubelet

func (k *KubernetesUtil) StartKubelet() error

StartKubelet enables and starts the kubelet systemd unit.

Directories

Path Synopsis
Package resources contains Kubernetes configs and policies for Constellation.
Package resources contains Kubernetes configs and policies for Constellation.

Jump to

Keyboard shortcuts

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