platform

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2021 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// NetworkMTU is the default host network MTU.
	NetworkMTU = 1500

	// ConntrackMaxPerCore is the default conntrack table size per core inherited from upstream kube-proxy.
	ConntrackMaxPerCore = 32768

	// KubernetesChartName is the expected name for the Kubernetes Helm chart.
	KubernetesChartName = "kubernetes"

	// KubeletChartName is the expected name for the Kubelet Helm chart.
	KubeletChartName = "kubelet"

	// NodeLocalDNSChartName is the expected name for the Node Local DNS Helm chart.
	NodeLocalDNSChartName = "node-local-dns"

	// NodeLocalDNSIP is the default node-local-dns's link local IP on the host.
	NodeLocalDNSIP = "169.254.1.1"
)

Variables

This section is empty.

Functions

func AppendVersionTag added in v0.2.0

func AppendVersionTag(tags *map[string]string)

AppendVersionTag appends the lokoctl-version tag to a given tags map.

func CheckCPUManagerPolicy added in v0.9.0

func CheckCPUManagerPolicy(wpCPUMgrVals map[string]string) hcl.Diagnostics

CheckCPUManagerPolicy takes a map with key as worker pool name and value as the CPU Manager Policy value. This function checks if the values are valid for Kubernetes.

func CommonControlPlaneCharts added in v0.4.0

func CommonControlPlaneCharts(c ControlPlanCharts) []helm.LokomotiveChart

CommonControlPlaneCharts returns a list of control plane Helm charts to be deployed for all platforms.

func ControlPlaneChart added in v0.4.0

func ControlPlaneChart(name string) (*chart.Chart, error)

ControlPlaneChart is a convenience function which returns a pointer to a chart.Chart representing the control plane element named name.

func WorkerPoolNamesUnique added in v0.6.0

func WorkerPoolNamesUnique(pools []WorkerPool) hcl.Diagnostics

WorkerPoolNamesUnique takes a slice of worker pools and checks if they all have unique names. If not, error diagnostic is returned.

Types

type ControlPlanCharts added in v0.9.0

type ControlPlanCharts struct {
	Kubelet      bool
	NodeLocalDNS bool
}

ControlPlanCharts struct allows the client to enable/disable specific control plane components based on the user input.

type Meta added in v0.2.0

type Meta struct {
	AssetDir             string
	ExpectedNodes        int
	Managed              bool
	ControlplaneCharts   []helm.LokomotiveChart
	ControllerModuleName string
	DaemonSets           []Workload
	Deployments          []Workload
}

Meta is a generic information format about the platform.

type Platform

type Platform interface {
	LoadConfig(*hcl.Body, *hcl.EvalContext) hcl.Diagnostics
	Apply(*terraform.Executor) error
	ApplyWithoutParallel(*terraform.Executor) error
	Destroy(*terraform.Executor) error
	Initialize(*terraform.Executor) error
	Meta() Meta
}

Platform describes single environment, where cluster can be installed

type PlatformWithPostApplyHook added in v0.4.0

type PlatformWithPostApplyHook interface {
	PostApplyHook(kubeconfig []byte) error
}

PlatformWithPostApplyHook runs code after Terraform finishes applying. This allows running sanity checks on the newly created cluster. Implementing this interface is optional for platforms.

type WorkerPool added in v0.6.0

type WorkerPool interface {
	Name() string
}

WorkerPool describes common functionality between worker pools implementations.

type Workload added in v0.8.0

type Workload struct {
	Name      string
	Namespace string
}

Workload is a generic struct which can be used to construct a reference to Deployment, DaemonSet, StatefulSet etc. objects.

func CommonDaemonSets added in v0.8.0

func CommonDaemonSets(controllersCount int, selfHostedKubeletDisabled bool) []Workload

CommonDaemonSets returns common DaemonSets for all Lokomotive platforms.

Number of DaemonSets depends on number of controller nodes in the cluster and if self-hosted kubelet is enabled.

func CommonDeployments added in v0.8.0

func CommonDeployments(controllersCount int) []Workload

CommonDeployments returns common Deployments for all self-hosted Lokomotive platforms.

Number of Deployments depends on number of controller nodes in the cluster.

Directories

Path Synopsis
Package aks is a Platform implementation for creating a Kubernetes cluster using Azure AKS.
Package aks is a Platform implementation for creating a Kubernetes cluster using Azure AKS.
Package equinixmetal provides the implenentation of the Platform interface for Equinix Metal cloud provider.
Package equinixmetal provides the implenentation of the Platform interface for Equinix Metal cloud provider.
Package tinkerbell provides Platform implementation using Tinkerbell provisioning system.
Package tinkerbell provides Platform implementation using Tinkerbell provisioning system.

Jump to

Keyboard shortcuts

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