magnum/magnum/templates/heat-kubernetes/fragments/kube-register.yaml

60 lines
1.5 KiB
YAML

#cloud-config
merge_how: dict(recurse_array)+list(append)
write_files:
- path: /usr/local/bin/kube-register
permissions: "0755"
owner: root
content: |
#!/bin/sh
. /etc/sysconfig/heat-params
master_url=http://${KUBE_MASTER_IP}:8080
myip=$(ip addr show eth0 |
awk '$1 == "inet" {print $2}' | cut -f1 -d/)
# wait for master api
until curl -o /dev/null -sf "${master_url}/healthz"; do
echo "waiting for kubernetes master"
sleep 1
done
if [ "$1" = "-u" ]; then
echo "unregistering minion $myip"
kubectl -s ${master_url} delete node/$myip
else
echo "registering minion $myip"
cpu=$(($(nproc) * 1000))
memory=$(awk '/MemTotal: /{print $2 * 1024}' /proc/meminfo)
cat <<EOF | kubectl create -s ${master_url} -f-
apiVersion: v1
id: $myip
kind: Node
resources:
capacity:
cpu: $cpu
memory: $memory
metadata:
name: $myip
spec:
externalID: $myip
EOF
fi
- path: /etc/systemd/system/kube-register.service
permissions: "0644"
owner: root
content: |
[Unit]
Description=Register/unregister this node with the Kubernetes master
Requires=kubelet.service
After=kubelet.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/kube-register
ExecStop=/usr/local/bin/kube-register -u
[Install]
WantedBy=kubelet.service