30
30
cloud-provider : external
31
31
provider-id : equinixmetal://{{ `{{ v1.instance_id }}` }}
32
32
preKubeadmCommands :
33
- - |
33
+ - |-
34
34
sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
35
35
swapoff -a
36
36
mount -a
@@ -46,14 +46,27 @@ spec:
46
46
net.bridge.bridge-nf-call-ip6tables = 1
47
47
EOF
48
48
sysctl --system
49
- apt-get -y update
50
- DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release linux-generic jq
51
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
52
- echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
49
+ export DEBIAN_FRONTEND=noninteractive
50
+ apt-get update -y
51
+ apt-get remove -y docker docker-engine docker.io containerd runc
52
+ apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release linux-generic jq
53
+ mkdir -p /etc/apt/keyrings
54
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
55
+ curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
56
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
57
+ echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
53
58
apt-get update -y
54
59
TRIMMED_KUBERNETES_VERSION=$(echo {{ .kubernetesVersion }} | sed 's/\./\\\\./g' | sed 's/^v//')
55
- RESOLVED_KUBERNETES_VERSION=$(apt-cache policy kubelet | awk -v VERSION=$${TRIMMED_KUBERNETES_VERSION} '$1~ VERSION { print $1 }' | head -n1)
56
- DEBIAN_FRONTEND=noninteractive apt-get install -y containerd kubelet=$${RESOLVED_KUBERNETES_VERSION} kubeadm=$${RESOLVED_KUBERNETES_VERSION} kubectl=$${RESOLVED_KUBERNETES_VERSION}
60
+ RESOLVED_KUBERNETES_VERSION=$(apt-cache madison kubelet | awk -v VERSION=$${TRIMMED_KUBERNETES_VERSION} '$3~ VERSION { print $3 }' | head -n1)
61
+ apt-get install -y containerd kubelet=$${RESOLVED_KUBERNETES_VERSION} kubeadm=$${RESOLVED_KUBERNETES_VERSION} kubectl=$${RESOLVED_KUBERNETES_VERSION}
62
+ cat <<EOF > /etc/crictl.yaml
63
+ runtime-endpoint: unix:///run/containerd/containerd.sock
64
+ image-endpoint: unix:///run/containerd/containerd.sock
65
+ EOF
66
+ containerd config default > /etc/containerd/config.toml
67
+ sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
68
+ sed -i "s,sandbox_image.*$,sandbox_image = $(kubeadm config images list | grep pause | sort -r | head -n1)," /etc/containerd/config.toml
69
+ systemctl restart containerd
57
70
---
58
71
apiVersion : cluster.x-k8s.io/v1beta1
59
72
kind : Cluster
@@ -146,6 +159,10 @@ spec:
146
159
systemctl restart networking
147
160
if [ -f "/run/kubeadm/kubeadm.yaml" ]; then
148
161
export KUBECONFIG=/etc/kubernetes/admin.conf
162
+ mkdir -p /root/.kube && cp -f $${KUBECONFIG} /root/.kube/config
163
+ echo "source <(kubectl completion bash)" >> /root/.bashrc
164
+ echo "alias k=kubectl" >> /root/.bashrc
165
+ echo "complete -o default -F __start_kubectl k" >> /root/.bashrc
149
166
export CPEM_YAML=https://github.com/equinix/cloud-provider-equinix-metal/releases/download/v3.5.0/deployment.yaml
150
167
export SECRET_DATA='cloud-sa.json=''{"apiKey": "{{ .apiKey }}","projectID": "${PROJECT_ID}", "eipTag": "cluster-api-provider-packet:cluster-id:${CLUSTER_NAME}", "eipHealthCheckUseHostIP": true}'''
151
168
kubectl create secret generic -n kube-system metal-cloud-config --from-literal="$${SECRET_DATA}" || (sleep 1 && kubectl create secret generic -n kube-system metal-cloud-config --from-literal="$${SECRET_DATA}") || (sleep 1 && kubectl create secret generic -n kube-system metal-cloud-config --from-literal="$${SECRET_DATA}")
@@ -168,14 +185,31 @@ spec:
168
185
net.bridge.bridge-nf-call-ip6tables = 1
169
186
EOF
170
187
sysctl --system
171
- apt-get -y update
172
- DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release linux-generic jq
173
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
174
- echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
188
+ export DEBIAN_FRONTEND=noninteractive
189
+ apt-get update -y
190
+ apt-get remove -y docker docker-engine docker.io containerd runc
191
+ apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release linux-generic jq
192
+ major_vers=$(lsb_release -r | awk '{ print $2 }' | cut -d. -f1)
193
+ if [[ "$major_vers" -ge 20 ]]; then
194
+ apt-get install -y kubetail
195
+ fi
196
+ mkdir -p /etc/apt/keyrings
197
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
198
+ curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
199
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
200
+ echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
175
201
apt-get update -y
176
202
TRIMMED_KUBERNETES_VERSION=$(echo {{ .kubernetesVersion }} | sed 's/\./\\\\./g' | sed 's/^v//')
177
203
RESOLVED_KUBERNETES_VERSION=$(apt-cache madison kubelet | awk -v VERSION=$${TRIMMED_KUBERNETES_VERSION} '$3~ VERSION { print $3 }' | head -n1)
178
- DEBIAN_FRONTEND=noninteractive apt-get install -y containerd kubelet=$${RESOLVED_KUBERNETES_VERSION} kubeadm=$${RESOLVED_KUBERNETES_VERSION} kubectl=$${RESOLVED_KUBERNETES_VERSION}
204
+ apt-get install -y containerd kubelet=$${RESOLVED_KUBERNETES_VERSION} kubeadm=$${RESOLVED_KUBERNETES_VERSION} kubectl=$${RESOLVED_KUBERNETES_VERSION}
205
+ containerd config default > /etc/containerd/config.toml
206
+ cat <<EOF > /etc/crictl.yaml
207
+ runtime-endpoint: unix:///run/containerd/containerd.sock
208
+ image-endpoint: unix:///run/containerd/containerd.sock
209
+ EOF
210
+ sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
211
+ sed -i "s,sandbox_image.*$,sandbox_image = $(kubeadm config images list | grep pause | sort -r | head -n1)," /etc/containerd/config.toml
212
+ systemctl restart containerd
179
213
ping -c 3 -q {{ .controlPlaneEndpoint }} && echo OK || ip addr add {{ .controlPlaneEndpoint }} dev lo
180
214
machineTemplate :
181
215
infrastructureRef :
0 commit comments