kubeone

package
v0.11.2 Latest Latest
Warning

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

Go to latest
Published: May 21, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package kubeone is the implementation of KubeOneCluster API

Index

Constants

View Source
const GroupName = "kubeone.io"

GroupName is the name of the group used by this API

Variables

View Source
var (
	// SchemeBuilder points to a list of functions added to Scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme applies all the stored functions to the Scheme
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}

SchemeGroupVersion is group version used to register API objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns GroupResource

Types

type APIEndpoint

type APIEndpoint struct {
	// Host is the hostname on which API is running
	Host string `json:"host"`

	// Port is the port used to reach to the API
	Port int `json:"port"`
}

APIEndpoint is the endpoint used to communicate with the Kubernetes API

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 Addons added in v0.11.0

type Addons struct {
	Enable bool `json:"enable"`
	// Path on the local file system to the directory with addons manifests.
	Path string `json:"path"`
}

Addons config

func (*Addons) DeepCopy added in v0.11.0

func (in *Addons) DeepCopy() *Addons

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Addons.

func (*Addons) DeepCopyInto added in v0.11.0

func (in *Addons) DeepCopyInto(out *Addons)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CNI added in v0.7.0

type CNI struct {
	// Provider choice
	Provider CNIProvider `json:"provider"`
	// Encrypted enables encryption for supported CNI plugins
	Encrypted bool `json:"encrypted"`
}

CNI config

func (*CNI) DeepCopy added in v0.7.0

func (in *CNI) DeepCopy() *CNI

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CNI.

func (*CNI) DeepCopyInto added in v0.7.0

func (in *CNI) DeepCopyInto(out *CNI)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CNIProvider added in v0.7.0

type CNIProvider string

CNIProvider type

const (
	// CNIProviderCanal is a Canal CNI plugin (Flannel + Calico).
	// Highlights:
	// * Support Network Policies
	// * Does not support traffic encryption
	// More info: https://docs.projectcalico.org/v3.7/getting-started/kubernetes/installation/flannel
	CNIProviderCanal CNIProvider = "canal"

	// CNIProviderWeaveNet is a WeaveNet CNI plugin.
	// Highlights:
	// * Support Network Policies
	// * Support optional traffic encryption
	// * In case when encryption is enabled, strong secret will be autogenerated
	// More info: https://www.weave.works/docs/net/latest/kubernetes/kube-addon/
	CNIProviderWeaveNet CNIProvider = "weave-net"
)

List of CNI Providers

type CloudProviderName

type CloudProviderName string

CloudProviderName represents the name of a provider

const (
	CloudProviderNameAWS          CloudProviderName = "aws"
	CloudProviderNameAzure        CloudProviderName = "azure"
	CloudProviderNameOpenStack    CloudProviderName = "openstack"
	CloudProviderNameHetzner      CloudProviderName = "hetzner"
	CloudProviderNameDigitalOcean CloudProviderName = "digitalocean"
	CloudProviderNamePacket       CloudProviderName = "packet"
	CloudProviderNameVSphere      CloudProviderName = "vsphere"
	CloudProviderNameGCE          CloudProviderName = "gce"
	CloudProviderNameNone         CloudProviderName = "none"
)

CloudProviderName values

type CloudProviderSpec

type CloudProviderSpec struct {
	Name        CloudProviderName `json:"name"`
	External    bool              `json:"external"`
	CloudConfig string            `json:"cloudConfig"`
}

CloudProviderSpec describes the cloud provider that is running the machines

func (CloudProviderSpec) CloudProviderInTree

func (p CloudProviderSpec) CloudProviderInTree() bool

CloudProviderInTree detects is there in-tree cloud provider implementation for specified provider. List of in-tree provider can be found here: https://github.com/kubernetes/kubernetes/tree/master/pkg/cloudprovider

func (*CloudProviderSpec) DeepCopy

func (in *CloudProviderSpec) DeepCopy() *CloudProviderSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderSpec.

func (*CloudProviderSpec) DeepCopyInto

func (in *CloudProviderSpec) DeepCopyInto(out *CloudProviderSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterNetworkConfig

type ClusterNetworkConfig struct {
	PodSubnet         string `json:"podSubnet"`
	ServiceSubnet     string `json:"serviceSubnet"`
	ServiceDomainName string `json:"serviceDomainName"`
	NodePortRange     string `json:"nodePortRange"`
	CNI               *CNI   `json:"cni,omitempty"`

	// +optional
	NetworkID string `json:"networkID,omitempty"`
}

ClusterNetworkConfig describes the cluster network

func (*ClusterNetworkConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkConfig.

func (*ClusterNetworkConfig) DeepCopyInto

func (in *ClusterNetworkConfig) DeepCopyInto(out *ClusterNetworkConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSConfig added in v0.9.0

type DNSConfig struct {
	Servers []string `json:"servers"`
}

DNSConfig contains a machine's DNS configuration

func (*DNSConfig) DeepCopy added in v0.9.0

func (in *DNSConfig) DeepCopy() *DNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSConfig.

func (*DNSConfig) DeepCopyInto added in v0.9.0

func (in *DNSConfig) DeepCopyInto(out *DNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DynamicAuditLog

type DynamicAuditLog struct {
	Enable bool `json:"enable"`
}

DynamicAuditLog feature flag

func (*DynamicAuditLog) DeepCopy

func (in *DynamicAuditLog) DeepCopy() *DynamicAuditLog

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DynamicAuditLog.

func (*DynamicAuditLog) DeepCopyInto

func (in *DynamicAuditLog) DeepCopyInto(out *DynamicAuditLog)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Features

type Features struct {
	PodSecurityPolicy *PodSecurityPolicy `json:"podSecurityPolicy"`
	StaticAuditLog    *StaticAuditLog    `json:"staticAuditLog"`
	DynamicAuditLog   *DynamicAuditLog   `json:"dynamicAuditLog"`
	MetricsServer     *MetricsServer     `json:"metricsServer"`
	OpenIDConnect     *OpenIDConnect     `json:"openidConnect"`
}

Features controls what features will be enabled on the cluster

func (*Features) DeepCopy

func (in *Features) DeepCopy() *Features

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Features.

func (*Features) DeepCopyInto

func (in *Features) DeepCopyInto(out *Features)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostConfig

type HostConfig struct {
	ID                int    `json:"-"`
	PublicAddress     string `json:"publicAddress"`
	PrivateAddress    string `json:"privateAddress"`
	SSHPort           int    `json:"sshPort"`
	SSHUsername       string `json:"sshUsername"`
	SSHPrivateKeyFile string `json:"sshPrivateKeyFile"`
	SSHAgentSocket    string `json:"sshAgentSocket"`
	Bastion           string `json:"bastion"`
	BastionPort       int    `json:"bastionPort"`
	BastionUser       string `json:"bastionUser"`
	Hostname          string `json:"hostname"`
	IsLeader          bool   `json:"isLeader"`

	// Information populated at the runtime
	OperatingSystem string `json:"-"`
}

HostConfig describes a single control plane node.

func (*HostConfig) DeepCopy

func (in *HostConfig) DeepCopy() *HostConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostConfig.

func (*HostConfig) DeepCopyInto

func (in *HostConfig) DeepCopyInto(out *HostConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostConfig) SetHostname

func (h *HostConfig) SetHostname(hostname string)

SetHostname sets the hostname for the given host

func (*HostConfig) SetLeader

func (h *HostConfig) SetLeader(leader bool)

SetLeader sets is the given host leader

func (*HostConfig) SetOperatingSystem

func (h *HostConfig) SetOperatingSystem(os string)

SetOperatingSystem sets the operating system for the given host

type KubeOneCluster

type KubeOneCluster struct {
	metav1.TypeMeta `json:",inline"`

	// Name is the name of the cluster
	Name string `json:"name"`
	// Hosts describes the control plane nodes and how to access them
	Hosts []HostConfig `json:"hosts,omitempty"`
	// APIEndpoint are pairs of address and port used to communicate with the Kubernetes API
	APIEndpoint APIEndpoint `json:"apiEndpoint,omitempty"`
	// CloudProvider configures the cloud provider specific features
	CloudProvider CloudProviderSpec `json:"cloudProvider,omitempty"`
	// Versions defines which Kubernetes version will be installed
	Versions VersionConfig `json:"versions,omitempty"`
	// ClusterNetwork configures the in-cluster networking
	ClusterNetwork ClusterNetworkConfig `json:"clusterNetwork,omitempty"`
	// Proxy configures proxy used while installing Kubernetes and by the Docker daemon
	Proxy ProxyConfig `json:"proxy,omitempty"`
	// Workers is used to create worker nodes using the Kubermatic machine-controller
	Workers []WorkerConfig `json:"workers,omitempty"`
	// MachineController configures the Kubermatic machine-controller component
	MachineController *MachineControllerConfig `json:"machineController,omitempty"`
	// Features enables and configures additional cluster features
	Features Features `json:"features,omitempty"`
	// Addons are used to deploy additional manifests
	Addons *Addons `json:"addons,omitempty"`
	// SystemPackages configure kubeone behaviour regarding OS packages
	SystemPackages *SystemPackages `json:"systemPackages,omitempty"`
	// Credentials used for machine-controller and external CCM
	Credentials map[string]string `json:"credentials,omitempty"`
}

KubeOneCluster is KubeOne Cluster API Schema

func (*KubeOneCluster) DeepCopy

func (in *KubeOneCluster) DeepCopy() *KubeOneCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeOneCluster.

func (*KubeOneCluster) DeepCopyInto

func (in *KubeOneCluster) DeepCopyInto(out *KubeOneCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubeOneCluster) DeepCopyObject

func (in *KubeOneCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (KubeOneCluster) Followers

func (c KubeOneCluster) Followers() []HostConfig

Followers returns all but the first configured host. Only call this after validating the cluster config to ensure hosts exist.

func (KubeOneCluster) Leader

func (c KubeOneCluster) Leader() (HostConfig, error)

Leader returns the first configured host. Only call this after validating the cluster config to ensure a leader exists.

func (KubeOneCluster) RandomHost added in v0.11.0

func (c KubeOneCluster) RandomHost() HostConfig

type MachineControllerConfig

type MachineControllerConfig struct {
	Deploy bool `json:"deploy"`
	// Provider is provider to be used for machine-controller
	// Defaults and must be same as chosen cloud provider, unless cloud provider is set to None
	Provider CloudProviderName `json:"provider"`
}

MachineControllerConfig configures kubermatic machine-controller deployment

func (*MachineControllerConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineControllerConfig.

func (*MachineControllerConfig) DeepCopyInto

func (in *MachineControllerConfig) DeepCopyInto(out *MachineControllerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsServer

type MetricsServer struct {
	Enable bool `json:"enable"`
}

MetricsServer feature flag

func (*MetricsServer) DeepCopy

func (in *MetricsServer) DeepCopy() *MetricsServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsServer.

func (*MetricsServer) DeepCopyInto

func (in *MetricsServer) DeepCopyInto(out *MetricsServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkConfig added in v0.9.0

type NetworkConfig struct {
	CIDR    string    `json:"cidr"`
	Gateway string    `json:"gateway"`
	DNS     DNSConfig `json:"dns"`
}

NetworkConfig contains a machine's static network configuration

func (*NetworkConfig) DeepCopy added in v0.9.0

func (in *NetworkConfig) DeepCopy() *NetworkConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkConfig.

func (*NetworkConfig) DeepCopyInto added in v0.9.0

func (in *NetworkConfig) DeepCopyInto(out *NetworkConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenIDConnect

type OpenIDConnect struct {
	Enable bool                `json:"enable"`
	Config OpenIDConnectConfig `json:"config"`
}

OpenIDConnect feature flag

func (*OpenIDConnect) DeepCopy

func (in *OpenIDConnect) DeepCopy() *OpenIDConnect

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDConnect.

func (*OpenIDConnect) DeepCopyInto

func (in *OpenIDConnect) DeepCopyInto(out *OpenIDConnect)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenIDConnectConfig

type OpenIDConnectConfig struct {
	IssuerURL      string `json:"issuerUrl"`
	ClientID       string `json:"clientId"`
	UsernameClaim  string `json:"usernameClaim"`
	UsernamePrefix string `json:"usernamePrefix"`
	GroupsClaim    string `json:"groupsClaim"`
	GroupsPrefix   string `json:"groupsPrefix"`
	RequiredClaim  string `json:"requiredClaim"`
	SigningAlgs    string `json:"signingAlgs"`
	CAFile         string `json:"caFile"`
}

OpenIDConnectConfig config

func (*OpenIDConnectConfig) DeepCopy

func (in *OpenIDConnectConfig) DeepCopy() *OpenIDConnectConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDConnectConfig.

func (*OpenIDConnectConfig) DeepCopyInto

func (in *OpenIDConnectConfig) DeepCopyInto(out *OpenIDConnectConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodSecurityPolicy

type PodSecurityPolicy struct {
	Enable bool `json:"enable"`
}

PodSecurityPolicy feature flag

func (*PodSecurityPolicy) DeepCopy

func (in *PodSecurityPolicy) DeepCopy() *PodSecurityPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicy.

func (*PodSecurityPolicy) DeepCopyInto

func (in *PodSecurityPolicy) DeepCopyInto(out *PodSecurityPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProviderSpec

type ProviderSpec struct {
	CloudProviderSpec   json.RawMessage   `json:"cloudProviderSpec"`
	Labels              map[string]string `json:"labels"`
	Taints              []corev1.Taint    `json:"taints,omitempty"`
	SSHPublicKeys       []string          `json:"sshPublicKeys"`
	OperatingSystem     string            `json:"operatingSystem"`
	OperatingSystemSpec json.RawMessage   `json:"operatingSystemSpec"`

	// +optional
	Network *NetworkConfig `json:"network,omitempty"`

	// +optional
	OverwriteCloudConfig *string `json:"overwriteCloudConfig,omitempty"`
}

ProviderSpec describes a worker node

func (*ProviderSpec) DeepCopy

func (in *ProviderSpec) DeepCopy() *ProviderSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpec.

func (*ProviderSpec) DeepCopyInto

func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProxyConfig

type ProxyConfig struct {
	HTTP    string `json:"http"`
	HTTPS   string `json:"https"`
	NoProxy string `json:"noProxy"`
}

ProxyConfig configures proxy for the Docker daemon and is used by KubeOne scripts

func (*ProxyConfig) DeepCopy

func (in *ProxyConfig) DeepCopy() *ProxyConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyConfig.

func (*ProxyConfig) DeepCopyInto

func (in *ProxyConfig) DeepCopyInto(out *ProxyConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StaticAuditLog added in v0.10.0

type StaticAuditLog struct {
	Enable bool                 `json:"enable"`
	Config StaticAuditLogConfig `json:"config"`
}

StaticAuditLog feature flag

func (*StaticAuditLog) DeepCopy added in v0.10.0

func (in *StaticAuditLog) DeepCopy() *StaticAuditLog

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticAuditLog.

func (*StaticAuditLog) DeepCopyInto added in v0.10.0

func (in *StaticAuditLog) DeepCopyInto(out *StaticAuditLog)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StaticAuditLogConfig added in v0.10.0

type StaticAuditLogConfig struct {
	// PolicyFilePath is a path on local file system to the audit policy manifest
	// which defines what events should be recorded and what data they should include.
	// PolicyFilePath is a required field.
	// More info: https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#audit-policy
	PolicyFilePath string `json:"policyFilePath"`
	// LogPath is path on control plane instances where audit log files are stored.
	// Default value is /var/log/kubernetes/audit.log
	LogPath string `json:"logPath"`
	// LogMaxAge is maximum number of days to retain old audit log files.
	// Default value is 30
	LogMaxAge int `json:"logMaxAge"`
	// LogMaxBackup is maximum number of audit log files to retain.
	// Default value is 3
	LogMaxBackup int `json:"logMaxBackup"`
	// LogMaxSize is maximum size in megabytes of audit log file before it gets rotated.
	// Default value is 100
	LogMaxSize int `json:"logMaxSize"`
}

StaticAuditLogConfig config

func (*StaticAuditLogConfig) DeepCopy added in v0.10.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticAuditLogConfig.

func (*StaticAuditLogConfig) DeepCopyInto added in v0.10.0

func (in *StaticAuditLogConfig) DeepCopyInto(out *StaticAuditLogConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SystemPackages added in v0.10.0

type SystemPackages struct {
	// ConfigureRepositories (true by default) is a flag to control automatic
	// configuration of kubeadm / docker repositories.
	ConfigureRepositories bool `json:"configureRepositories"`
}

SystemPackages controls configurations of APT/YUM

func (*SystemPackages) DeepCopy added in v0.10.0

func (in *SystemPackages) DeepCopy() *SystemPackages

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemPackages.

func (*SystemPackages) DeepCopyInto added in v0.10.0

func (in *SystemPackages) DeepCopyInto(out *SystemPackages)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VersionConfig

type VersionConfig struct {
	// TODO(xmudrii): switch to semver
	Kubernetes string `json:"kubernetes"`
}

VersionConfig describes the versions of components that are installed on the machines

func (*VersionConfig) DeepCopy

func (in *VersionConfig) DeepCopy() *VersionConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionConfig.

func (*VersionConfig) DeepCopyInto

func (in *VersionConfig) DeepCopyInto(out *VersionConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (VersionConfig) KubernetesCNIVersion

func (m VersionConfig) KubernetesCNIVersion() string

KubernetesCNIVersion returns kubernetes-cni package version

type WorkerConfig

type WorkerConfig struct {
	Name     string       `json:"name"`
	Replicas *int         `json:"replicas"`
	Config   ProviderSpec `json:"providerSpec"`
}

WorkerConfig describes a set of worker machines

func (*WorkerConfig) DeepCopy

func (in *WorkerConfig) DeepCopy() *WorkerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerConfig.

func (*WorkerConfig) DeepCopyInto

func (in *WorkerConfig) DeepCopyInto(out *WorkerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis
Package v1alpha1 defines the v1alpha1 version of KubeOneCluster API
Package v1alpha1 defines the v1alpha1 version of KubeOneCluster API

Jump to

Keyboard shortcuts

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