- Allows kube-apiserver to start without setting the --etcd-cafile, --etcd-certfile, and --etcd-keyfile flags.
They are optional and default to
undef
(this default is different from the original module!). - Allows enabling the v2 etcd API by setting
k8s::server::etcd::setup::enable_v2_api
totrue
.
This module installs, configures, and manages a Kubernetes cluster built from loose components.
The main focus is towards the current stable versions of K8s (1.18.x+), but it should be able to handle both older and newer versions without issues.
Set k8s::server::etcd_servers to a list of servers or k8s::puppetdb_discovery to true
.
Setting up a server node (apiserver, controller-manager, scheduler):
class { 'k8s':
role => 'server',
control_plane_url => 'https://kubernetes.example.com:6443',
# generate_ca => true, # Only set true temporarily to avoid overwriting the old secrets
# puppetdb_discovery => true, # Will use PuppetDB PQL queries to manage etcd and nodes
}
Setting up a client node (kubelet, kube-proxy):
class { 'k8s':
role => 'node',
control_plane_url => 'https://kubernetes.example.com:6443',
}
For more in-detail examples see the examples.
All parameters are documented within the classes. Markdown documentation is available in the REFERENCE.md file, it also contains examples.