Puppet Class: profile::toolforge::k8s::control

Defined in:
modules/profile/manifests/toolforge/k8s/control.pp

Overview

Note: To bootstrap a new cluster $kubernetes_version must match the version of packages in the $component repo

Parameters:

  • etcd_hosts (Array[Stdlib::Fqdn]) (defaults to: lookup('profile::toolforge::k8s::etcd_nodes', {default_value => ['localhost']}))
  • apiserver (Stdlib::Fqdn) (defaults to: lookup('profile::toolforge::k8s::apiserver_fqdn', {default_value => 'k8s.example.com'}))
  • node_token (String) (defaults to: lookup('profile::toolforge::k8s::node_token', {default_value => 'example.token'}))
  • encryption_key (Optional[String]) (defaults to: lookup('profile::toolforge::k8s::encryption_key', {default_value => undef}))
  • kubernetes_version (String) (defaults to: lookup('profile::toolforge::k8s::kubernetes_version', {default_value => '1.15.5'}))
  • toolforge_secrets (Hash[String[1], String[1]]) (defaults to: lookup('profile::toolforge::k8s::secrets', {default_value => {}}))


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'modules/profile/manifests/toolforge/k8s/control.pp', line 3

class profile::toolforge::k8s::control (
    Array[Stdlib::Fqdn]        $etcd_hosts = lookup('profile::toolforge::k8s::etcd_nodes',     {default_value => ['localhost']}),
    Stdlib::Fqdn               $apiserver  = lookup('profile::toolforge::k8s::apiserver_fqdn', {default_value => 'k8s.example.com'}),
    String                     $node_token = lookup('profile::toolforge::k8s::node_token',     {default_value => 'example.token'}),
    Optional[String]           $encryption_key = lookup('profile::toolforge::k8s::encryption_key', {default_value => undef}),
    String                     $kubernetes_version = lookup('profile::toolforge::k8s::kubernetes_version', {default_value => '1.15.5'}),
    # Set these in the puppet secret repo for each deployment
    Hash[String[1], String[1]] $toolforge_secrets = lookup('profile::toolforge::k8s::secrets', {default_value => {}}),
) {
    class { '::profile::wmcs::kubeadm::control':
        etcd_hosts         => $etcd_hosts,
        apiserver          => $apiserver,
        node_token         => $node_token,
        encryption_key     => $encryption_key,
        kubernetes_version => $kubernetes_version,
    }
    contain '::profile::wmcs::kubeadm::control'

    class { '::toolforge::k8s::config': }
    class { '::toolforge::k8s::nginx_ingress_yaml': }
    class { '::toolforge::k8s::deployer':
        toolforge_secrets => $toolforge_secrets,
    }

    apt::package_from_component { 'thirdparty-k9s':
        component => 'thirdparty/k9s',
        packages  => ['k9s']
    }
}