Puppet Class: kubeinstall::install::calico

Defined in:
manifests/install/calico.pp

Summary

Install Project Calico CNI service

Overview

Install Project Calico CNI service

Examples:

include kubeinstall::install::calico

Parameters:

  • version (String) (defaults to: $kubeinstall::calico_cni_version)
  • node_name (Stdlib::Fqdn) (defaults to: $kubeinstall::node_name)
  • mtu (Optional[Integer]) (defaults to: $kubeinstall::calico_mtu)
  • calicoctl (Boolean) (defaults to: $kubeinstall::install_calicoctl)


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'manifests/install/calico.pp', line 7

class kubeinstall::install::calico (
  String  $version   = $kubeinstall::calico_cni_version,
  Stdlib::Fqdn
          $node_name = $kubeinstall::node_name,
  Optional[Integer]
          $mtu       = $kubeinstall::calico_mtu,
  Boolean $calicoctl = $kubeinstall::install_calicoctl,
){
  # https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises#install-calico-with-kubernetes-api-datastore-50-nodes-or-less
  # https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network
  exec { 'calico-install':
    command     => "kubectl apply -f https://docs.projectcalico.org/${version}/manifests/calico.yaml",
    path        => '/usr/bin:/bin:/usr/sbin:/sbin',
    environment => [
      'KUBECONFIG=/etc/kubernetes/admin.conf',
    ],
    onlyif      => "kubectl get nodes ${node_name}",
    unless      => 'kubectl -n kube-system get daemonset calico-node',
  }

  # MTU
  # https://docs.projectcalico.org/networking/mtu#determine-mtu-size
  if $mtu {
    class { 'kubeinstall::calico::veth_mtu':
      mtu     => $mtu,
      require => Exec['calico-install'],
    }
  }

  file { '/etc/calico':
    ensure => directory,
    mode   => '0700',
    owner  => 'root',
    group  => 'root',
  }

  if $calicoctl {
    include kubeinstall::calico::calicoctl
  }
}