magnum/magnum/drivers/k8s_coreos_v1/templates/fragments/enable-kube-dashboard.yaml

98 lines
3.1 KiB
YAML

#cloud-config
write_files:
- path: /etc/systemd/system/enable-kube-dashboard.service
owner: "root:root"
permissions: "0644"
content: |
[Unit]
Description=Configure Kubernetes Dashboard
[Service]
Type=oneshot
EnvironmentFile=/etc/sysconfig/heat-params
ExecStart=/etc/sysconfig/enable-kube-dashboard.sh
[Install]
WantedBy=multi-user.target
- path: /etc/sysconfig/enable-kube-dashboard.sh
owner: "root:root"
permissions: "0755"
content: |
#!/bin/sh
TEMPLATE=/etc/kubernetes/addons/kubedash-svc.yaml
mkdir -p $(dirname ${TEMPLATE})
cat > $TEMPLATE <<EOF
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
spec:
selector:
app: kubernetes-dashboard
ports:
- port: 80
targetPort: 9090
EOF
TEMPLATE=/etc/kubernetes/addons/kubedash-rc.yaml
mkdir -p $(dirname ${TEMPLATE})
cat > $TEMPLATE <<EOF
apiVersion: v1
kind: ReplicationController
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
spec:
replicas: 1
selector:
app: kubernetes-dashboard
template:
metadata:
labels:
app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
spec:
containers:
- name: kubernetes-dashboard
image: gcr.io/google_containers/kubernetes-dashboard-amd64:${KUBE_DASHBOARD_VERSION}
resources:
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
ports:
- containerPort: 9090
livenessProbe:
httpGet:
path: /
port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
EOF
echo "Waiting for Kubernetes API..."
until curl --silent "http://127.0.0.1:8080/version"
do
sleep 5
done
if [ "$(echo $KUBE_DASHBOARD_ENABLED | tr '[:upper:]' '[:lower:]')" == "true" ]; then
echo "Setup K8S Dasboard"
curl --silent -H "Content-Type: application/yaml" -XPOST -d"$(cat /etc/kubernetes/addons/kubedash-svc.yaml)" "http://127.0.0.1:8080/api/v1/namespaces/kube-system/services" > /dev/null
curl --silent -H "Content-Type: application/yaml" -XPOST -d"$(cat /etc/kubernetes/addons/kubedash-rc.yaml)" "http://127.0.0.1:8080/api/v1/namespaces/kube-system/replicationcontrollers" > /dev/null
fi