@@ -56,34 +56,53 @@ patches:
56
56
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
57
57
sed -i "s,sandbox_image.*$,sandbox_image = \"$(kubeadm config images list | grep pause | sort -r | head -n1)\"," /etc/containerd/config.toml
58
58
systemctl restart containerd
59
- ping -c 3 -q {{ .controlPlaneEndpoint }} && echo OK || ip addr add {{ .controlPlaneEndpoint }} dev lo
59
+ if [ -f "/run/kubeadm/kubeadm.yaml" ]; then
60
+ ip addr add {{ .controlPlaneEndpoint }} dev lo
61
+ curl -o /run/metadata.json -fsSL https://metadata.platformequinix.com/metadata
62
+ for i in $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_ips[]'); do
63
+ ip route add $i via $(cat /run/metadata.json | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | .gateway')
64
+ done
65
+ KVVERSION="${KUBE_VIP_VERSION:=v0.5.0}"
66
+ ctr image pull ghcr.io/kube-vip/kube-vip:$${KVVERSION}
67
+ ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:$KVVERSION vip /kube-vip manifest pod \
68
+ --interface "lo" \
69
+ --vip "{{ .controlPlaneEndpoint }}" \
70
+ --controlplane \
71
+ --bgp \
72
+ --peerAS $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_as') \
73
+ --peerAddress $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_ips[0]') \
74
+ --localAS $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].customer_as') \
75
+ --bgpRouterID $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].customer_ip') > /etc/kubernetes/manifests/vip.yaml
76
+ rm /run/metadata.json
77
+ fi
60
78
postKubeadmCommands:
61
79
- |
62
80
curl -o /run/metadata.json -fsSL https://metadata.platformequinix.com/metadata
63
81
for i in $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_ips[]'); do
64
82
ip route add $i via $(cat /run/metadata.json | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | .gateway')
65
83
done
66
- KVVERSION="${KUBE_VIP_VERSION:=v0.5.0}"
67
- ctr image pull ghcr.io/kube-vip/kube-vip:$${KVVERSION}
68
- ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:$KVVERSION vip /kube-vip manifest pod \
69
- --interface "lo" \
70
- --vip "{{ .controlPlaneEndpoint }}" \
71
- --controlplane \
72
- --bgp \
73
- --peerAS $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_as') \
74
- --peerAddress $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_ips[0]') \
75
- --localAS $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].customer_as') \
76
- --bgpRouterID $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].customer_ip') > /etc/kubernetes/manifests/vip.yaml
77
- rm /run/metadata.json
78
- mkdir -p /root/.kube && cp -f /etc/kubernetes/admin.conf /root/.kube/config
79
- echo "source <(kubectl completion bash)" >> /root/.bashrc
80
- echo "alias k=kubectl" >> /root/.bashrc
81
- echo "complete -o default -F __start_kubectl k" >> /root/.bashrc
82
84
if [ -f "/run/kubeadm/kubeadm.yaml" ]; then
83
85
export CPEM_YAML=https://github.com/equinix/cloud-provider-equinix-metal/releases/download/${CPEM_VERSION:=v3.5.0}/deployment.yaml
84
86
export SECRET_DATA='cloud-sa.json=''{"apiKey": "{{ .apiKey }}","projectID": "${PROJECT_ID}", "loadbalancer": "kube-vip://", "facility": "${FACILITY}"}'''
85
87
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}")
86
88
kubectl apply -f $${CPEM_YAML} || (sleep 1 && kubectl apply -f $${CPEM_YAML}) || (sleep 1 && kubectl apply -f $${CPEM_YAML})
89
+ else
90
+ KVVERSION="${KUBE_VIP_VERSION:=v0.5.0}"
91
+ ctr image pull ghcr.io/kube-vip/kube-vip:$${KVVERSION}
92
+ ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:$KVVERSION vip /kube-vip manifest pod \
93
+ --interface "lo" \
94
+ --vip "{{ .controlPlaneEndpoint }}" \
95
+ --controlplane \
96
+ --bgp \
97
+ --peerAS $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_as') \
98
+ --peerAddress $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].peer_ips[0]') \
99
+ --localAS $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].customer_as') \
100
+ --bgpRouterID $(cat /run/metadata.json | jq -r '.bgp_neighbors[0].customer_ip') > /etc/kubernetes/manifests/vip.yaml
101
+ rm /run/metadata.json
102
+ mkdir -p /root/.kube && cp -f /etc/kubernetes/admin.conf /root/.kube/config
103
+ echo "source <(kubectl completion bash)" >> /root/.bashrc
104
+ echo "alias k=kubectl" >> /root/.bashrc
105
+ echo "complete -o default -F __start_kubectl k" >> /root/.bashrc
87
106
fi
88
107
- patch : |
89
108
kind: KubeadmConfigTemplate
0 commit comments