Puppet Class: kubeinstall

Inherits:
kubeinstall::params
Defined in:
manifests/init.pp

Summary

A short summary of the purpose of this class

Overview

A description of what this class does

Examples:

include kubeinstall

Parameters:

  • web_ui_dashboard (Boolean)

    Whether to install Web UI on controller node or not

  • manifests_directory (Stdlib::Unixpath) (defaults to: $kubeinstall::params::manifests_directory)

    Directory where to store static manifests

  • cri_selinux (Optional[Boolean])

    Whether to use SELinux in K8S container runtime

  • kubernetes_version (Kubeinstall::Version)
  • container_runtime (Kubeinstall::Runtime)
  • dockerd_version (String)
  • containerd_version (String)
  • crio_version (String)
  • crio_config_template (String)
  • crio_config_path (Stdlib::Unixpath)
  • manage_kernel_modules (Boolean)
  • manage_sysctl_settings (Boolean)
  • disable_swap (Boolean)
  • disable_firewall (Boolean)
  • disable_selinux (Boolean)
  • disable_ipv6 (Boolean)
  • calico_cni_version (String)
  • join_control_plane (Boolean)
  • join_token (Optional[Kubeinstall::Token])
  • join_ca_cert_hash (Optional[Kubeinstall::CACertHash])
  • join_apiserver_address (Optional[Kubeinstall::Address])
  • cgroup_driver (Kubeinstall::CgroupDriver)
  • join_apiserver_port (Integer)
  • control_plane_endpoint (Optional[Kubeinstall::Address])
  • docker_mtu (Optional[Integer])
  • network_bridge_ip (Optional[String])
  • calico_mtu (Optional[Integer])
  • cluster_name (String)
  • install_calicoctl (Boolean)
  • calicoctl_version (String)
  • helm_version (String)
  • krew_version (String)
  • argocd_version (String)
  • node_name (Stdlib::Fqdn) (defaults to: $facts['networking']['fqdn'])
  • apiserver_advertise_address (String) (defaults to: $facts['networking']['ip'])
  • apiserver_bind_port (Integer) (defaults to: $kubeinstall::params::apiserver_bind_port)
  • cri_socket (Stdlib::Unixpath) (defaults to: $container_runtime ? { 'docker' => $kubeinstall::params::docker_socket, default => $kubeinstall::params::crio_socket)
  • service_dns_domain (Stdlib::Fqdn) (defaults to: $kubeinstall::params::service_dns_domain)
  • service_cidr (Stdlib::IP::Address) (defaults to: $kubeinstall::params::service_cidr)
  • service_node_port_range (String) (defaults to: $kubeinstall::params::service_node_port_range)
  • dashboard_configuration (Variant[ Stdlib::HTTPUrl, Stdlib::Unixpath ]) (defaults to: $kubeinstall::params::dashboard_configuration)
  • kubeadm_version (Kubeinstall::Version) (defaults to: $kubernetes_version)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'manifests/init.pp', line 16

class kubeinstall (
  Kubeinstall::Version
          $kubernetes_version,
  Kubeinstall::Runtime
          $container_runtime,
  String  $dockerd_version,
  String  $containerd_version,
  String  $crio_version,
  String  $crio_config_template,
  Stdlib::Unixpath
          $crio_config_path,
  Boolean $manage_kernel_modules,
  Boolean $manage_sysctl_settings,
  Boolean $disable_swap,
  Boolean $disable_firewall,
  Boolean $disable_selinux,
  Boolean $disable_ipv6,
  String  $calico_cni_version,
  Boolean $join_control_plane,
  Optional[Kubeinstall::Token]
          $join_token,
  Optional[Kubeinstall::CACertHash]
          $join_ca_cert_hash,
  Optional[Kubeinstall::Address]
          $join_apiserver_address,
  Kubeinstall::CgroupDriver
          $cgroup_driver,
  Integer $join_apiserver_port,
  Boolean $web_ui_dashboard,
  Optional[Kubeinstall::Address]
          $control_plane_endpoint,
  Optional[Integer]
          $docker_mtu,
  Optional[String]
          $network_bridge_ip,
  Optional[Integer]
          $calico_mtu,
  Optional[Boolean]
          $cri_selinux,
  String  $cluster_name,
  Boolean $install_calicoctl,
  String  $calicoctl_version,
  String  $helm_version,
  String  $krew_version,
  String  $argocd_version,
  Stdlib::Fqdn
          $node_name                   = $facts['networking']['fqdn'],
  String  $apiserver_advertise_address = $facts['networking']['ip'],
  Integer $apiserver_bind_port         = $kubeinstall::params::apiserver_bind_port,
  Stdlib::Unixpath
          $cri_socket                  = $container_runtime ? {
                                            'docker' => $kubeinstall::params::docker_socket,
                                            default => $kubeinstall::params::crio_socket,
                                          },
  Stdlib::Fqdn
          $service_dns_domain          = $kubeinstall::params::service_dns_domain,
  Stdlib::IP::Address
          $service_cidr                = $kubeinstall::params::service_cidr,
  String  $service_node_port_range     = $kubeinstall::params::service_node_port_range,
  Variant[
    Stdlib::HTTPUrl,
    Stdlib::Unixpath
  ]       $dashboard_configuration     = $kubeinstall::params::dashboard_configuration,
  Stdlib::Unixpath
          $manifests_directory         = $kubeinstall::params::manifests_directory,
  Kubeinstall::Version
          $kubeadm_version             = $kubernetes_version,
) inherits kubeinstall::params
{
  # https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/using-octavia-ingress-controller.md
  # https://kubernetes.io/docs/concepts/storage/storage-classes/#openstack-cinder

  $version_data  = split($kubernetes_version, '[.]')
  $major_version = $version_data[0]
  $minor_version = $version_data[1]

  # kubernetes_release is Kubernetes version for minor release (Kube X.Y)
  $kubernetes_release = "${major_version}.${minor_version}"
}