Add docker registry mirror support
[icn.git] / deploy / cluster / templates / _containerruntime.yaml
1 {{- define "cluster.containerRuntime" -}}
2 {{- if eq .containerRuntime "containerd" -}}
3 - path: /usr/local/bin/install-container-runtime.sh
4   permissions: '0777'
5   content: |
6     #!/usr/bin/env bash
7     set -eux -o pipefail
8     cat <<EOF | tee /etc/modules-load.d/containerd.conf
9     overlay
10     br_netfilter
11     EOF
12     modprobe overlay
13     modprobe br_netfilter
14     cat <<EOF | tee /etc/sysctl.d/99-kubernetes-cri.conf
15     net.bridge.bridge-nf-call-iptables  = 1
16     net.ipv4.ip_forward                 = 1
17     net.bridge.bridge-nf-call-ip6tables = 1
18     EOF
19     sysctl --system
20     apt-get install -y containerd.io={{ .containerdVersion }}
21     mkdir -p /etc/containerd
22     containerd config default | tee /etc/containerd/config.toml
23     sed -i 's/\(.*\)\[plugins\."io\.containerd\.grpc\.v1\.cri"\.containerd\.runtimes\.runc\.options\]/&\n\1  SystemdCgroup = true/' /etc/containerd/config.toml
24 {{- if .dockerRegistryMirrors }}
25     sed -i 's/endpoint = \["https:\/\/registry-1\.docker\.io"\]/endpoint = {{ append .dockerRegistryMirrors "https://registry-1.docker.io" | toJson | replace "/" "\\/" | replace "[" "\\[" | replace "]" "\\]" }}/' /etc/containerd/config.toml
26 {{- end }}
27     systemctl restart containerd
28 {{- else if eq .containerRuntime "docker" -}}
29 - path: /usr/local/bin/install-container-runtime.sh
30   permissions: '0777'
31   content: |
32     #!/usr/bin/env bash
33     set -eux -o pipefail
34     apt-get install -y docker-ce={{ .dockerVersion }} docker-ce-cli={{ .dockerVersion }} containerd.io={{ .containerdVersion }}
35     systemctl enable --now docker
36     usermod -aG docker ubuntu
37 - path: /etc/docker/daemon.json
38   content: |
39     {
40       "exec-opts": ["native.cgroupdriver=systemd"],
41       "log-driver": "json-file",
42       "log-opts": {
43         "max-size": "100m"
44       },
45 {{- if .dockerRegistryMirrors }}
46       "registry-mirrors": {{ .dockerRegistryMirrors | toJson }}
47 {{- end }}
48       "storage-driver": "overlay2"
49     }
50 {{- end }}
51 {{- end }}