Puppet Class: kubeinstall::calico::calicoctl

Defined in:
manifests/calico/calicoctl.pp

Summary

Installing calicoctl as a binary on a single host

Overview

Examples:

include kubeinstall::calico::calicoctl

Parameters:

  • version (String) (defaults to: $kubeinstall::calicoctl_version)


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
# File 'manifests/calico/calicoctl.pp', line 8

class kubeinstall::calico::calicoctl (
  String $version = $kubeinstall::calicoctl_version,
)
{
  $download_url = "https://github.com/projectcalico/calicoctl/releases/download/${version}/calicoctl-linux-amd64"

  exec { 'install-calicoctl':
    command => "curl -L ${download_url} -o calicoctl",
    creates => '/usr/local/bin/calicoctl',
    path    => '/bin:/usr/bin',
    cwd     => '/usr/local/bin',
  }

  file { '/usr/local/bin/calicoctl':
    ensure  => file,
    mode    => '0755',
    owner   => 'root',
    group   => 'root',
    require => Exec['install-calicoctl'],
  }

  # https://godoc.org/github.com/projectcalico/libcalico-go/lib/apiconfig#CalicoAPIConfig
  $calicoctl_config = {
    'apiVersion' => 'projectcalico.org/v3',
    'kind'       => 'CalicoAPIConfig',
    'metadata' => {},
    'spec' => {
      'datastoreType' => 'kubernetes',
      'kubeconfig'    => '/etc/kubernetes/admin.conf',
    }
  }

  file { '/etc/calico/calicoctl.cfg':
    ensure  => file,
    content => to_yaml($calicoctl_config),
    mode    => '0600',
  }
}