kubeone

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2021 License: Apache-2.0 Imports: 9 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 or IP on which API is running.
	Host string `json:"host"`
	// Port is the port used to reach to the API.
	// Default value is 6443.
	Port int `json:"port,omitempty"`
}

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 AWSSpec added in v1.0.0

type AWSSpec struct{}

AWSSpec defines the AWS cloud provider

func (*AWSSpec) DeepCopy added in v1.0.0

func (in *AWSSpec) DeepCopy() *AWSSpec

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

func (*AWSSpec) DeepCopyInto added in v1.0.0

func (in *AWSSpec) DeepCopyInto(out *AWSSpec)

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

type Addons added in v1.0.0

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

Addons config

func (*Addons) DeepCopy added in v1.0.0

func (in *Addons) DeepCopy() *Addons

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

func (*Addons) DeepCopyInto added in v1.0.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 AssetConfiguration added in v1.2.0

type AssetConfiguration struct {
	// Kubernetes configures the image registry and repository for the core Kubernetes
	// images (kube-apiserver, kube-controller-manager, kube-scheduler, and kube-proxy).
	// Kubernetes respects only ImageRepository (ImageTag is ignored).
	// Default image repository and tag: defaulted dynamically by Kubeadm.
	// Defaults to RegistryConfiguration.OverwriteRegistry if left empty
	// and RegistryConfiguration.OverwriteRegistry is specified.
	Kubernetes ImageAsset `json:"kubernetes,omitempty"`
	// Pause configures the sandbox (pause) image to be used by Kubelet.
	// Default image repository and tag: defaulted dynamically by Kubeadm.
	// Defaults to RegistryConfiguration.OverwriteRegistry if left empty
	// and RegistryConfiguration.OverwriteRegistry is specified.
	Pause ImageAsset `json:"pause,omitempty"`
	// CoreDNS configures the image registry and tag to be used for deploying
	// the CoreDNS component.
	// Default image repository and tag: defaulted dynamically by Kubeadm.
	// Defaults to RegistryConfiguration.OverwriteRegistry if left empty
	// and RegistryConfiguration.OverwriteRegistry is specified.
	CoreDNS ImageAsset `json:"coreDNS,omitempty"`
	// Etcd configures the image registry and tag to be used for deploying
	// the Etcd component.
	// Default image repository and tag: defaulted dynamically by Kubeadm.
	// Defaults to RegistryConfiguration.OverwriteRegistry if left empty
	// and RegistryConfiguration.OverwriteRegistry is specified.
	Etcd ImageAsset `json:"etcd,omitempty"`
	// MetricsServer configures the image registry and tag to be used for deploying
	// the metrics-server component.
	// Default image repository and tag: defaulted dynamically by KubeOne.
	// Defaults to RegistryConfiguration.OverwriteRegistry if left empty
	// and RegistryConfiguration.OverwriteRegistry is specified.
	MetricsServer ImageAsset `json:"metricsServer,omitempty"`
	// CNI configures the source for downloading the CNI binaries.
	// If not specified, kubernetes-cni package will be installed.
	// Default: none
	CNI BinaryAsset `json:"cni,omitempty"`
	// NodeBinaries configures the source for downloading the
	// Kubernetes Node Binaries tarball (e.g. kubernetes-node-linux-amd64.tar.gz).
	// The tarball must have .tar.gz as the extension and must contain the
	// following files:
	// - kubernetes/node/bin/kubelet
	// - kubernetes/node/bin/kubeadm
	// If not specified, kubelet and kubeadm packages will be installed.
	// Default: none
	NodeBinaries BinaryAsset `json:"nodeBinaries,omitempty"`
	// Kubectl configures the source for downloading the Kubectl binary.
	// If not specified, kubelet package will be installed.
	// Default: none
	Kubectl BinaryAsset `json:"kubectl,omitempty"`
}

AssetConfiguration controls how assets (e.g. CNI, Kubelet, kube-apiserver, and more) are pulled. The AssetConfiguration API is an alpha API currently working only on Amazon Linux 2.

func (*AssetConfiguration) DeepCopy added in v1.2.0

func (in *AssetConfiguration) DeepCopy() *AssetConfiguration

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

func (*AssetConfiguration) DeepCopyInto added in v1.2.0

func (in *AssetConfiguration) DeepCopyInto(out *AssetConfiguration)

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

type AzureSpec added in v1.0.0

type AzureSpec struct{}

AzureSpec defines the Azure cloud provider

func (*AzureSpec) DeepCopy added in v1.0.0

func (in *AzureSpec) DeepCopy() *AzureSpec

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

func (*AzureSpec) DeepCopyInto added in v1.0.0

func (in *AzureSpec) DeepCopyInto(out *AzureSpec)

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

type BinaryAsset added in v1.2.0

type BinaryAsset struct {
	// URL from where to download the binary
	URL string `json:"url,omitempty"`
}

BinaryAsset is used to customize the URL of the binary asset

func (*BinaryAsset) DeepCopy added in v1.2.0

func (in *BinaryAsset) DeepCopy() *BinaryAsset

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

func (*BinaryAsset) DeepCopyInto added in v1.2.0

func (in *BinaryAsset) DeepCopyInto(out *BinaryAsset)

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 {
	// Canal
	Canal *CanalSpec `json:"canal,omitempty"`
	// WeaveNet
	WeaveNet *WeaveNetSpec `json:"weaveNet,omitempty"`
	// External
	External *ExternalCNISpec `json:"external,omitempty"`
}

CNI config. Only one CNI provider must be used at the single time.

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 CanalSpec added in v1.0.0

type CanalSpec struct {
	// MTU automatically detected based on the cloudProvider
	// default value is 1450
	MTU int `json:"mtu,omitempty"`
}

CanalSpec defines the Canal CNI plugin

func (*CanalSpec) DeepCopy added in v1.0.0

func (in *CanalSpec) DeepCopy() *CanalSpec

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

func (*CanalSpec) DeepCopyInto added in v1.0.0

func (in *CanalSpec) DeepCopyInto(out *CanalSpec)

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

type CloudProviderSpec

type CloudProviderSpec struct {
	// External
	External bool `json:"external,omitempty"`
	// CSIMigration enables the CSIMigration and CSIMigration{Provider} feature gates
	// for providers that support the CSI migration.
	// The CSI migration stability depends on the provider.
	// More details about stability can be found in the Feature Gates document:
	// https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/
	//
	// Note: Azure has two type of CSI drivers (AzureFile and AzureDisk) and two different
	// feature gates (CSIMigrationAzureDisk and CSIMigrationAzureFile). Enabling CSI migration
	// enables both feature gates. If one CSI driver is not deployed, the volume operations
	// for volumes with missing CSI driver will fallback to the in-tree volume plugin.
	CSIMigration bool `json:"csiMigration,omitempty"`
	// CSIMigrationComplete enables the CSIMigration{Provider}Complete feature gate
	// for providers that support the CSI migration.
	// This feature gate disables fallback to the in-tree volume plugins, therefore,
	// it should be enabled only if the CSI driver is deploy on all nodes, and after
	// ensuring that the CSI driver works properly.
	//
	// Note: If you're running on Azure, make sure that you have both AzureFile
	// and AzureDisk CSI drivers deployed, as enabling this feature disables the fallback
	// to the in-tree volume plugins. See description for the CSIMigration field for
	// more details.
	CSIMigrationComplete bool `json:"csiMigrationComplete,omitempty"`
	// CloudConfig
	CloudConfig string `json:"cloudConfig,omitempty"`
	// AWS
	AWS *AWSSpec `json:"aws,omitempty"`
	// Azure
	Azure *AzureSpec `json:"azure,omitempty"`
	// DigitalOcean
	DigitalOcean *DigitalOceanSpec `json:"digitalocean,omitempty"`
	// GCE
	GCE *GCESpec `json:"gce,omitempty"`
	// Hetzner
	Hetzner *HetznerSpec `json:"hetzner,omitempty"`
	// Openstack
	Openstack *OpenstackSpec `json:"openstack,omitempty"`
	// Packet
	Packet *PacketSpec `json:"packet,omitempty"`
	// Vsphere
	Vsphere *VsphereSpec `json:"vsphere,omitempty"`
	// None
	None *NoneSpec `json:"none,omitempty"`
}

CloudProviderSpec describes the cloud provider that is running the machines. Only one cloud provider must be defined at the single time.

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) CloudProviderName added in v1.1.0

func (p CloudProviderSpec) CloudProviderName() string

CloudProviderName returns name of the cloud provider

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
	// default value is "10.244.0.0/16"
	PodSubnet string `json:"podSubnet,omitempty"`
	// ServiceSubnet
	// default value is "10.96.0.0/12"
	ServiceSubnet string `json:"serviceSubnet,omitempty"`
	// ServiceDomainName
	// default value is "cluster.local"
	ServiceDomainName string `json:"serviceDomainName,omitempty"`
	// NodePortRange
	// default value is "30000-32767"
	NodePortRange string `json:"nodePortRange,omitempty"`
	// CNI
	// default value is {canal: {mtu: 1450}}
	CNI *CNI `json:"cni,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 ContainerRuntimeConfig added in v1.1.0

type ContainerRuntimeConfig struct {
	Docker     *ContainerRuntimeDocker     `json:"docker,omitempty"`
	Containerd *ContainerRuntimeContainerd `json:"containerd,omitempty"`
}

ContainerRuntimeConfig

func (ContainerRuntimeConfig) CRISocket added in v1.2.0

func (crc ContainerRuntimeConfig) CRISocket() string

func (*ContainerRuntimeConfig) DeepCopy added in v1.1.0

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

func (*ContainerRuntimeConfig) DeepCopyInto added in v1.1.0

func (in *ContainerRuntimeConfig) DeepCopyInto(out *ContainerRuntimeConfig)

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

func (ContainerRuntimeConfig) String added in v1.2.0

func (crc ContainerRuntimeConfig) String() string

func (*ContainerRuntimeConfig) UnmarshalText added in v1.2.0

func (crc *ContainerRuntimeConfig) UnmarshalText(text []byte) error

type ContainerRuntimeContainerd added in v1.1.0

type ContainerRuntimeContainerd struct{}

ContainerRuntimeContainerd defines docker container runtime

func (*ContainerRuntimeContainerd) DeepCopy added in v1.1.0

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

func (*ContainerRuntimeContainerd) DeepCopyInto added in v1.1.0

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

type ContainerRuntimeDocker added in v1.1.0

type ContainerRuntimeDocker struct{}

ContainerRuntimeDocker defines docker container runtime

func (*ContainerRuntimeDocker) DeepCopy added in v1.1.0

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

func (*ContainerRuntimeDocker) DeepCopyInto added in v1.1.0

func (in *ContainerRuntimeDocker) DeepCopyInto(out *ContainerRuntimeDocker)

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

type ControlPlaneConfig added in v1.0.0

type ControlPlaneConfig struct {
	// Hosts array of all control plane hosts.
	Hosts []HostConfig `json:"hosts"`
}

ControlPlaneConfig defines control plane nodes

func (*ControlPlaneConfig) DeepCopy added in v1.0.0

func (in *ControlPlaneConfig) DeepCopy() *ControlPlaneConfig

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

func (*ControlPlaneConfig) DeepCopyInto added in v1.0.0

func (in *ControlPlaneConfig) DeepCopyInto(out *ControlPlaneConfig)

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
	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 DigitalOceanSpec added in v1.0.0

type DigitalOceanSpec struct{}

DigitalOceanSpec defines the DigitalOcean cloud provider

func (*DigitalOceanSpec) DeepCopy added in v1.0.0

func (in *DigitalOceanSpec) DeepCopy() *DigitalOceanSpec

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

func (*DigitalOceanSpec) DeepCopyInto added in v1.0.0

func (in *DigitalOceanSpec) DeepCopyInto(out *DigitalOceanSpec)

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

type DynamicAuditLog

type DynamicAuditLog struct {
	// Enable
	// Default value is false.
	Enable bool `json:"enable,omitempty"`
}

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 DynamicWorkerConfig added in v1.0.0

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

DynamicWorkerConfig describes a set of worker machines

func (*DynamicWorkerConfig) DeepCopy added in v1.0.0

func (in *DynamicWorkerConfig) DeepCopy() *DynamicWorkerConfig

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

func (*DynamicWorkerConfig) DeepCopyInto added in v1.0.0

func (in *DynamicWorkerConfig) DeepCopyInto(out *DynamicWorkerConfig)

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

type ExternalCNISpec added in v1.0.0

type ExternalCNISpec struct{}

ExternalCNISpec defines the external CNI plugin. It's up to the user's responsibility to deploy the external CNI plugin manually or as an addon

func (*ExternalCNISpec) DeepCopy added in v1.0.0

func (in *ExternalCNISpec) DeepCopy() *ExternalCNISpec

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

func (*ExternalCNISpec) DeepCopyInto added in v1.0.0

func (in *ExternalCNISpec) DeepCopyInto(out *ExternalCNISpec)

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

type Features

type Features struct {
	// PodNodeSelector
	PodNodeSelector *PodNodeSelector `json:"podNodeSelector,omitempty"`
	// PodPresets
	// Deprecated: will be removed once Kubernetes 1.19 reaches EOL
	PodPresets *PodPresets `json:"podPresets,omitempty"`
	// PodSecurityPolicy
	PodSecurityPolicy *PodSecurityPolicy `json:"podSecurityPolicy,omitempty"`
	// StaticAuditLog
	StaticAuditLog *StaticAuditLog `json:"staticAuditLog,omitempty"`
	// DynamicAuditLog
	DynamicAuditLog *DynamicAuditLog `json:"dynamicAuditLog,omitempty"`
	// MetricsServer
	MetricsServer *MetricsServer `json:"metricsServer,omitempty"`
	// OpenIDConnect
	OpenIDConnect *OpenIDConnect `json:"openidConnect,omitempty"`
}

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 GCESpec added in v1.0.0

type GCESpec struct{}

GCESpec defines the GCE cloud provider

func (*GCESpec) DeepCopy added in v1.0.0

func (in *GCESpec) DeepCopy() *GCESpec

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

func (*GCESpec) DeepCopyInto added in v1.0.0

func (in *GCESpec) DeepCopyInto(out *GCESpec)

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

type HetznerSpec added in v1.0.0

type HetznerSpec struct {
	// NetworkID
	NetworkID string `json:"networkID,omitempty"`
}

HetznerSpec defines the Hetzner cloud provider

func (*HetznerSpec) DeepCopy added in v1.0.0

func (in *HetznerSpec) DeepCopy() *HetznerSpec

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

func (*HetznerSpec) DeepCopyInto added in v1.0.0

func (in *HetznerSpec) DeepCopyInto(out *HetznerSpec)

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

type HostConfig

type HostConfig struct {
	// ID automatically assigned at runtime.
	ID int `json:"-"`
	// PublicAddress is externally accessible IP address from public internet.
	PublicAddress string `json:"publicAddress"`
	// PrivateAddress is internal RFC-1918 IP address.
	PrivateAddress string `json:"privateAddress"`
	// SSHPort is port to connect ssh to.
	// Default value is 22.
	SSHPort int `json:"sshPort,omitempty"`
	// SSHUsername is system login name.
	// Default value is "root".
	SSHUsername string `json:"sshUsername,omitempty"`
	// SSHPrivateKeyFile is path to the file with PRIVATE AND CLEANTEXT ssh key.
	// Default value is "".
	SSHPrivateKeyFile string `json:"sshPrivateKeyFile,omitempty"`
	// SSHAgentSocket path (or reference to the environment) to the SSH agent unix domain socket.
	// Default vaulue is "env:SSH_AUTH_SOCK".
	SSHAgentSocket string `json:"sshAgentSocket,omitempty"`
	// Bastion is an IP or hostname of the bastion (or jump) host to connect to.
	// Default value is "".
	Bastion string `json:"bastion,omitempty"`
	// BastionPort is SSH port to use when connecting to the bastion if it's configured in .Bastion.
	// Default value is 22.
	BastionPort int `json:"bastionPort,omitempty"`
	// BastionUser is system login name to use when connecting to bastion host.
	// Default value is "root".
	BastionUser string `json:"bastionUser,omitempty"`
	// Hostname is the hostname(1) of the host.
	// Default value is populated at the runtime via running `hostname -f` command over ssh.
	Hostname string `json:"hostname,omitempty"`
	// IsLeader indicates this host as a session leader.
	// Default value is populated at the runtime.
	IsLeader bool `json:"isLeader,omitempty"`
	// Taints if not provided (i.e. nil) defaults to TaintEffectNoSchedule, with key node-role.kubernetes.io/master for
	// control plane nodes.
	// Explicitly empty (i.e. []corev1.Taint{}) means no taints will be applied (this is default for worker nodes).
	Taints []corev1.Taint `json:"taints,omitempty"`
	// OperatingSystem information populated at the runtime.
	OperatingSystem OperatingSystemName `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 OperatingSystemName)

SetOperatingSystem sets the operating system for the given host

type ImageAsset added in v1.2.0

type ImageAsset struct {
	// ImageRepository customizes the registry/repository
	ImageRepository string `json:"imageRepository,omitempty"`
	// ImageTag customizes the image tag
	ImageTag string `json:"imageTag,omitempty"`
}

ImageAsset is used to customize the image repository and the image tag

func (*ImageAsset) DeepCopy added in v1.2.0

func (in *ImageAsset) DeepCopy() *ImageAsset

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

func (*ImageAsset) DeepCopyInto added in v1.2.0

func (in *ImageAsset) DeepCopyInto(out *ImageAsset)

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

type KubeOneCluster

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

	// Name is the name of the cluster.
	Name string `json:"name"`
	// ControlPlane describes the control plane nodes and how to access them.
	ControlPlane ControlPlaneConfig `json:"controlPlane"`
	// APIEndpoint are pairs of address and port used to communicate with the Kubernetes API.
	APIEndpoint APIEndpoint `json:"apiEndpoint"`
	// CloudProvider configures the cloud provider specific features.
	CloudProvider CloudProviderSpec `json:"cloudProvider"`
	// Versions defines which Kubernetes version will be installed.
	Versions VersionConfig `json:"versions"`
	// ContainerRuntime defines which container runtime will be installed
	ContainerRuntime ContainerRuntimeConfig `json:"containerRuntime,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"`
	// StaticWorkers describes the worker nodes that are managed by KubeOne/kubeadm.
	StaticWorkers StaticWorkersConfig `json:"staticWorkers,omitempty"`
	// DynamicWorkers describes the worker nodes that are managed by Kubermatic machine-controller/Cluster-API.
	DynamicWorkers []DynamicWorkerConfig `json:"dynamicWorkers,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"`
	// AssetConfiguration configures how are binaries and container images downloaded
	AssetConfiguration AssetConfiguration `json:"assetConfiguration,omitempty"`
	// RegistryConfiguration configures how Docker images are pulled from an image registry
	RegistryConfiguration *RegistryConfiguration `json:"registryConfiguration,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) IsManagedNode added in v1.2.0

func (c *KubeOneCluster) IsManagedNode(nodename string) bool

IsManagedNode reports whether given node name is known to the KubeOne configuration

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 v1.0.0

func (c KubeOneCluster) RandomHost() HostConfig

type MachineControllerConfig

type MachineControllerConfig struct {
	// Deploy
	Deploy bool `json:"deploy,omitempty"`
}

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 deployment of metrics-server.
	// Default value is true.
	Enable bool `json:"enable,omitempty"`
}

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 NoneSpec added in v1.0.0

type NoneSpec struct{}

NoneSpec defines a none provider

func (*NoneSpec) DeepCopy added in v1.0.0

func (in *NoneSpec) DeepCopy() *NoneSpec

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

func (*NoneSpec) DeepCopyInto added in v1.0.0

func (in *NoneSpec) DeepCopyInto(out *NoneSpec)

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

type OpenIDConnect

type OpenIDConnect struct {
	// Enable
	Enable bool `json:"enable,omitempty"`
	// Config
	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
	IssuerURL string `json:"issuerUrl"`
	// ClientID
	ClientID string `json:"clientId"`
	// UsernameClaim
	UsernameClaim string `json:"usernameClaim"`
	// UsernamePrefix
	UsernamePrefix string `json:"usernamePrefix"`
	// GroupsClaim
	GroupsClaim string `json:"groupsClaim"`
	// GroupsPrefix
	GroupsPrefix string `json:"groupsPrefix"`
	// RequiredClaim
	RequiredClaim string `json:"requiredClaim"`
	// SigningAlgs
	SigningAlgs string `json:"signingAlgs"`
	// CAFile
	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 OpenstackSpec added in v1.0.0

type OpenstackSpec struct{}

OpenstackSpec defines the Openstack provider

func (*OpenstackSpec) DeepCopy added in v1.0.0

func (in *OpenstackSpec) DeepCopy() *OpenstackSpec

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

func (*OpenstackSpec) DeepCopyInto added in v1.0.0

func (in *OpenstackSpec) DeepCopyInto(out *OpenstackSpec)

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

type OperatingSystemName added in v1.0.0

type OperatingSystemName string

OperatingSystemName defines the operating system used on instances

const (
	OperatingSystemNameUbuntu  OperatingSystemName = "ubuntu"
	OperatingSystemNameDebian  OperatingSystemName = "debian"
	OperatingSystemNameCentOS  OperatingSystemName = "centos"
	OperatingSystemNameRHEL    OperatingSystemName = "rhel"
	OperatingSystemNameAmazon  OperatingSystemName = "amzn"
	OperatingSystemNameFlatcar OperatingSystemName = "flatcar"
	OperatingSystemNameUnknown OperatingSystemName = ""
)

type PacketSpec added in v1.0.0

type PacketSpec struct{}

PacketSpec defines the Packet cloud provider

func (*PacketSpec) DeepCopy added in v1.0.0

func (in *PacketSpec) DeepCopy() *PacketSpec

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

func (*PacketSpec) DeepCopyInto added in v1.0.0

func (in *PacketSpec) DeepCopyInto(out *PacketSpec)

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

type PodNodeSelector added in v1.0.0

type PodNodeSelector struct {
	// Enable
	Enable bool `json:"enable,omitempty"`
	// Config
	Config PodNodeSelectorConfig `json:"config"`
}

PodNodeSelector feature flag

func (*PodNodeSelector) DeepCopy added in v1.0.0

func (in *PodNodeSelector) DeepCopy() *PodNodeSelector

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

func (*PodNodeSelector) DeepCopyInto added in v1.0.0

func (in *PodNodeSelector) DeepCopyInto(out *PodNodeSelector)

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

type PodNodeSelectorConfig added in v1.0.0

type PodNodeSelectorConfig struct {
	// ConfigFilePath is a path on the local file system to the PodNodeSelector
	// configuration file.
	// ConfigFilePath is a required field.
	// More info: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#podnodeselector
	ConfigFilePath string `json:"configFilePath"`
}

PodNodeSelectorConfig config

func (*PodNodeSelectorConfig) DeepCopy added in v1.0.0

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

func (*PodNodeSelectorConfig) DeepCopyInto added in v1.0.0

func (in *PodNodeSelectorConfig) DeepCopyInto(out *PodNodeSelectorConfig)

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

type PodPresets added in v1.0.0

type PodPresets struct {
	// Enable
	Enable bool `json:"enable,omitempty"`
}

PodPresets feature flag The PodPresets feature has been removed in Kubernetes 1.20. This feature is deprecated and will be removed from the API once Kubernetes 1.19 reaches EOL.

func (*PodPresets) DeepCopy added in v1.0.0

func (in *PodPresets) DeepCopy() *PodPresets

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

func (*PodPresets) DeepCopyInto added in v1.0.0

func (in *PodPresets) DeepCopyInto(out *PodPresets)

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

type PodSecurityPolicy

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

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
	CloudProviderSpec json.RawMessage `json:"cloudProviderSpec"`
	// Annotations
	Annotations map[string]string `json:"annotations,omitempty"`
	// Labels
	Labels map[string]string `json:"labels,omitempty"`
	// Taints
	Taints []corev1.Taint `json:"taints,omitempty"`
	// SSHPublicKeys
	SSHPublicKeys []string `json:"sshPublicKeys,omitempty"`
	// OperatingSystem
	OperatingSystem string `json:"operatingSystem"`
	// OperatingSystemSpec
	OperatingSystemSpec json.RawMessage `json:"operatingSystemSpec,omitempty"`
	// Network
	Network *ProviderStaticNetworkConfig `json:"network,omitempty"`
	// OverwriteCloudConfig
	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 ProviderStaticNetworkConfig added in v1.0.0

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

ProviderStaticNetworkConfig contains a machine's static network configuration

func (*ProviderStaticNetworkConfig) DeepCopy added in v1.0.0

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

func (*ProviderStaticNetworkConfig) DeepCopyInto added in v1.0.0

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

type ProxyConfig

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

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 RegistryConfiguration added in v1.1.0

type RegistryConfiguration struct {
	// OverwriteRegistry specifies a custom Docker registry which will be used
	// for all images required for KubeOne and kubeadm. This also applies to
	// addons deployed by KubeOne.
	// This field doesn't modify the user/organization part of the image. For example,
	// if OverwriteRegistry is set to 127.0.0.1:5000/example, image called
	// calico/cni would translate to 127.0.0.1:5000/example/calico/cni.
	// Default: ""
	OverwriteRegistry string `json:"overwriteRegistry,omitempty"`
	// InsecureRegistry configures Docker to threat the registry specified
	// in OverwriteRegistry as an insecure registry. This is also propagated
	// to the worker nodes managed by machine-controller and/or KubeOne.
	InsecureRegistry bool `json:"insecureRegistry,omitempty"`
}

RegistryConfiguration controls how images used for components deployed by KubeOne and kubeadm are pulled from an image registry

func (*RegistryConfiguration) DeepCopy added in v1.1.0

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

func (*RegistryConfiguration) DeepCopyInto added in v1.1.0

func (in *RegistryConfiguration) DeepCopyInto(out *RegistryConfiguration)

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

func (*RegistryConfiguration) ImageRegistry added in v1.1.0

func (r *RegistryConfiguration) ImageRegistry(defaultRegistry string) string

ImageRegistry returns the image registry to use or the passed in default if no override is specified

func (*RegistryConfiguration) InsecureRegistryAddress added in v1.1.0

func (r *RegistryConfiguration) InsecureRegistryAddress() string

InsecureRegistryAddress returns the registry that should be configured as insecure if InsecureRegistry is enabled

type StaticAuditLog added in v1.0.0

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

StaticAuditLog feature flag

func (*StaticAuditLog) DeepCopy added in v1.0.0

func (in *StaticAuditLog) DeepCopy() *StaticAuditLog

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

func (*StaticAuditLog) DeepCopyInto added in v1.0.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 v1.0.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,omitempty"`
	// LogMaxAge is maximum number of days to retain old audit log files.
	// Default value is 30
	LogMaxAge int `json:"logMaxAge,omitempty"`
	// LogMaxBackup is maximum number of audit log files to retain.
	// Default value is 3.
	LogMaxBackup int `json:"logMaxBackup,omitempty"`
	// LogMaxSize is maximum size in megabytes of audit log file before it gets rotated.
	// Default value is 100.
	LogMaxSize int `json:"logMaxSize,omitempty"`
}

StaticAuditLogConfig config

func (*StaticAuditLogConfig) DeepCopy added in v1.0.0

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

func (*StaticAuditLogConfig) DeepCopyInto added in v1.0.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 StaticWorkersConfig added in v1.0.0

type StaticWorkersConfig struct {
	// Hosts
	Hosts []HostConfig `json:"hosts,omitempty"`
}

StaticWorkersConfig defines static worker nodes provisioned by KubeOne and kubeadm

func (*StaticWorkersConfig) DeepCopy added in v1.0.0

func (in *StaticWorkersConfig) DeepCopy() *StaticWorkersConfig

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

func (*StaticWorkersConfig) DeepCopyInto added in v1.0.0

func (in *StaticWorkersConfig) DeepCopyInto(out *StaticWorkersConfig)

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

type SystemPackages added in v1.0.0

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

SystemPackages controls configurations of APT/YUM

func (*SystemPackages) DeepCopy added in v1.0.0

func (in *SystemPackages) DeepCopy() *SystemPackages

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

func (*SystemPackages) DeepCopyInto added in v1.0.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 {
	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.

type VsphereSpec added in v1.0.0

type VsphereSpec struct{}

VsphereSpec defines the vSphere provider

func (*VsphereSpec) DeepCopy added in v1.0.0

func (in *VsphereSpec) DeepCopy() *VsphereSpec

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

func (*VsphereSpec) DeepCopyInto added in v1.0.0

func (in *VsphereSpec) DeepCopyInto(out *VsphereSpec)

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

type WeaveNetSpec added in v1.0.0

type WeaveNetSpec struct {
	// Encrypted
	Encrypted bool `json:"encrypted,omitempty"`
}

WeaveNetSpec defines the WeaveNet CNI plugin

func (*WeaveNetSpec) DeepCopy added in v1.0.0

func (in *WeaveNetSpec) DeepCopy() *WeaveNetSpec

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

func (*WeaveNetSpec) DeepCopyInto added in v1.0.0

func (in *WeaveNetSpec) DeepCopyInto(out *WeaveNetSpec)

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
Package v1beta1 defines the v1beta1 version of KubeOneCluster API
Package v1beta1 defines the v1beta1 version of KubeOneCluster API

Jump to

Keyboard shortcuts

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