Documentation ¶
Overview ¶
Package kubeone is the implementation of KubeOneCluster API
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type APIEndpoint
- type Addons
- type CNI
- type CNIProvider
- type CloudProviderName
- type CloudProviderSpec
- type ClusterNetworkConfig
- type DNSConfig
- type DynamicAuditLog
- type Features
- type HostConfig
- type KubeOneCluster
- func (in *KubeOneCluster) DeepCopy() *KubeOneCluster
- func (in *KubeOneCluster) DeepCopyInto(out *KubeOneCluster)
- func (in *KubeOneCluster) DeepCopyObject() runtime.Object
- func (c KubeOneCluster) Followers() []HostConfig
- func (c KubeOneCluster) Leader() (HostConfig, error)
- func (c KubeOneCluster) RandomHost() HostConfig
- type MachineControllerConfig
- type MetricsServer
- type NetworkConfig
- type OpenIDConnect
- type OpenIDConnectConfig
- type PodSecurityPolicy
- type ProviderSpec
- type ProxyConfig
- type StaticAuditLog
- type StaticAuditLogConfig
- type SystemPackages
- type VersionConfig
- type WorkerConfig
Constants ¶
const GroupName = "kubeone.io"
GroupName is the name of the group used by this API
Variables ¶
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 )
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
SchemeGroupVersion is group version used to register API objects
Functions ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Addons.
func (*Addons) DeepCopyInto ¶ added in v0.11.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CNI.
func (*CNI) DeepCopyInto ¶ added in v0.7.0
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 ¶
func (in *ClusterNetworkConfig) DeepCopy() *ClusterNetworkConfig
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSConfig.
func (*DNSConfig) DeepCopyInto ¶ added in v0.9.0
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Features.
func (*Features) DeepCopyInto ¶
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 ¶
func (in *MachineControllerConfig) DeepCopy() *MachineControllerConfig
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
func (in *StaticAuditLogConfig) DeepCopy() *StaticAuditLogConfig
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.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package v1alpha1 defines the v1alpha1 version of KubeOneCluster API
|
Package v1alpha1 defines the v1alpha1 version of KubeOneCluster API |