kube-ui [2] is deprecated and not actively maintained since long time. Instead kubernetes dashboard [1] has lot of features and is actively managed. With this patch kube-ui is removed and kubernetes dashboard is added and enabled in k8s cluster by default. The kubernetes dashboard is enabled by default. To disable it, set the label 'kube_dashboard_enabled' to False Reference: [1] https://github.com/kubernetes/dashboard [2] https://github.com/kubernetes/kube-ui Change-Id: I8864c097a3da6a602e0f25d3ff8ade788aa134a9 Implements: blueprint add-kube-dashboardchanges/46/441046/12
parent
a3817530b6
commit
44d102a65e
@ -0,0 +1,149 @@
|
||||
#!/bin/sh
|
||||
|
||||
# this service is required because docker will start only after cloud init was finished
|
||||
# due to the service dependencies in Fedora Atomic (docker <- docker-storage-setup <- cloud-final)
|
||||
|
||||
|
||||
. /etc/sysconfig/heat-params
|
||||
|
||||
if [ "$(echo $KUBE_DASHBOARD_ENABLED | tr '[:upper:]' '[:lower:]')" == "false" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -n "${INSECURE_REGISTRY_URL}" ]; then
|
||||
KUBE_DASH_IMAGE="${INSECURE_REGISTRY_URL}/google_containers/kubernetes-dashboard-amd64:${KUBE_DASHBOARD_VERSION}"
|
||||
else
|
||||
KUBE_DASH_IMAGE="gcr.io/google_containers/kubernetes-dashboard-amd64:${KUBE_DASHBOARD_VERSION}"
|
||||
fi
|
||||
|
||||
KUBE_DASH_DEPLOY=/srv/kubernetes/manifests/kube-dash-deploy.yaml
|
||||
|
||||
[ -f ${KUBE_DASH_DEPLOY} ] || {
|
||||
echo "Writing File: $KUBE_DASH_DEPLOY"
|
||||
mkdir -p $(dirname ${KUBE_DASH_DEPLOY})
|
||||
cat << EOF > ${KUBE_DASH_DEPLOY}
|
||||
kind: Deployment
|
||||
apiVersion: extensions/v1beta1
|
||||
metadata:
|
||||
labels:
|
||||
app: kubernetes-dashboard
|
||||
name: kubernetes-dashboard
|
||||
namespace: kube-system
|
||||
spec:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: kubernetes-dashboard
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kubernetes-dashboard
|
||||
# Comment the following annotation if Dashboard must not be deployed on master
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/tolerations: |
|
||||
[
|
||||
{
|
||||
"key": "dedicated",
|
||||
"operator": "Equal",
|
||||
"value": "master",
|
||||
"effect": "NoSchedule"
|
||||
}
|
||||
]
|
||||
spec:
|
||||
containers:
|
||||
- name: kubernetes-dashboard
|
||||
image: ${KUBE_DASH_IMAGE}
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- containerPort: 9090
|
||||
protocol: TCP
|
||||
args:
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 9090
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 30
|
||||
EOF
|
||||
}
|
||||
|
||||
KUBE_DASH_SVC=/srv/kubernetes/manifests/kube-dash-svc.yaml
|
||||
[ -f ${KUBE_DASH_SVC} ] || {
|
||||
echo "Writing File: $KUBE_DASH_SVC"
|
||||
mkdir -p $(dirname ${KUBE_DASH_SVC})
|
||||
cat << EOF > ${KUBE_DASH_SVC}
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
labels:
|
||||
app: kubernetes-dashboard
|
||||
name: kubernetes-dashboard
|
||||
namespace: kube-system
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 9090
|
||||
selector:
|
||||
app: kubernetes-dashboard
|
||||
EOF
|
||||
}
|
||||
|
||||
KUBE_DASH_BIN=/usr/local/bin/kube-dash
|
||||
[ -f ${KUBE_DASH_BIN} ] || {
|
||||
echo "Writing File: $KUBE_DASH_BIN"
|
||||
mkdir -p $(dirname ${KUBE_DASH_BIN})
|
||||
cat << EOF > ${KUBE_DASH_BIN}
|
||||
#!/bin/sh
|
||||
until curl -sf "http://127.0.0.1:8080/healthz"
|
||||
do
|
||||
echo "Waiting for Kubernetes API..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
#echo check for existence of kubernetes-dashboard deployment
|
||||
/usr/bin/kubectl get deployment kube-dashboard --namespace=kube-system
|
||||
|
||||
if [ "\$?" != "0" ]; then
|
||||
/usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-dash-deploy.yaml --namespace=kube-system
|
||||
fi
|
||||
|
||||
#echo check for existence of kubernetes-dashboard service
|
||||
/usr/bin/kubectl get service kubernetes-dashboard --namespace=kube-system
|
||||
|
||||
if [ "\$?" != "0" ]; then
|
||||
/usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-dash-svc.yaml --namespace=kube-system
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
|
||||
KUBE_DASH_SERVICE=/etc/systemd/system/kube-dash.service
|
||||
[ -f ${KUBE_DASH_SERVICE} ] || {
|
||||
echo "Writing File: $KUBE_DASH_SERVICE"
|
||||
mkdir -p $(dirname ${KUBE_DASH_SERVICE})
|
||||
cat << EOF > ${KUBE_DASH_SERVICE}
|
||||
[Unit]
|
||||
After=kube-system-namespace.service
|
||||
Requires=kubelet.service
|
||||
Wants=kube-system-namespace.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
Environment=HOME=/root
|
||||
EnvironmentFile=-/etc/kubernetes/config
|
||||
ExecStart=${KUBE_DASH_BIN}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
}
|
||||
|
||||
chown root:root ${KUBE_DASH_BIN}
|
||||
chmod 0755 ${KUBE_DASH_BIN}
|
||||
|
||||
chown root:root ${KUBE_DASH_SERVICE}
|
||||
chmod 0644 ${KUBE_DASH_SERVICE}
|
||||
|
||||
systemctl enable kube-dash
|
||||
systemctl start --no-block kube-dash
|
@ -1,133 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# this service is required because docker will start only after cloud init was finished
|
||||
# due to the service dependencies in Fedora Atomic (docker <- docker-storage-setup <- cloud-final)
|
||||
|
||||
|
||||
. /etc/sysconfig/heat-params
|
||||
|
||||
if [ -n "${INSECURE_REGISTRY_URL}" ]; then
|
||||
KUBEUI_IMAGE="${INSECURE_REGISTRY_URL}/google_containers/kube-ui:v4"
|
||||
else
|
||||
KUBEUI_IMAGE="gcr.io/google_containers/kube-ui:v4"
|
||||
fi
|
||||
|
||||
KUBE_UI_RC=/srv/kubernetes/manifests/kube-ui-rc.yaml
|
||||
|
||||
[ -f ${KUBE_UI_RC} ] || {
|
||||
echo "Writing File: $KUBE_UI_RC"
|
||||
mkdir -p $(dirname ${KUBE_UI_RC})
|
||||
cat << EOF > ${KUBE_UI_RC}
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: kube-ui-v4
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: kube-ui
|
||||
version: v4
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
k8s-app: kube-ui
|
||||
version: v4
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: kube-ui
|
||||
version: v4
|
||||
kubernetes.io/cluster-service: "true"
|
||||
spec:
|
||||
containers:
|
||||
- name: kube-ui
|
||||
image: ${KUBEUI_IMAGE}
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 50Mi
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
EOF
|
||||
}
|
||||
|
||||
KUBE_UI_SVC=/srv/kubernetes/manifests/kube-ui-svc.yaml
|
||||
[ -f ${KUBE_UI_SVC} ] || {
|
||||
echo "Writing File: $KUBE_UI_SVC"
|
||||
mkdir -p $(dirname ${KUBE_UI_SVC})
|
||||
cat << EOF > ${KUBE_UI_SVC}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: kube-ui
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: kube-ui
|
||||
kubernetes.io/cluster-service: "true"
|
||||
kubernetes.io/name: "KubeUI"
|
||||
spec:
|
||||
selector:
|
||||
k8s-app: kube-ui
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8080
|
||||
EOF
|
||||
}
|
||||
|
||||
KUBE_UI_BIN=/usr/local/bin/kube-ui
|
||||
[ -f ${KUBE_UI_BIN} ] || {
|
||||
echo "Writing File: $KUBE_UI_BIN"
|
||||
mkdir -p $(dirname ${KUBE_UI_BIN})
|
||||
cat << EOF > ${KUBE_UI_BIN}
|
||||
#!/bin/sh
|
||||
until curl -sf "http://127.0.0.1:8080/healthz"
|
||||
do
|
||||
echo "Waiting for Kubernetes API..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
#echo check for existence of kube-ui-v4 replication controller
|
||||
/usr/bin/kubectl get rc kube-ui-v4 --namespace=kube-system
|
||||
|
||||
if [ "\$?" != "0" ]; then
|
||||
/usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-ui-rc.yaml --namespace=kube-system
|
||||
fi
|
||||
|
||||
#echo check for existence of kube-ui service
|
||||
/usr/bin/kubectl get service kube-ui --namespace=kube-system
|
||||
|
||||
if [ "\$?" != "0" ]; then
|
||||
/usr/bin/kubectl create -f /srv/kubernetes/manifests/kube-ui-svc.yaml --namespace=kube-system
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
|
||||
KUBE_UI_SERVICE=/etc/systemd/system/kube-ui.service
|
||||
[ -f ${KUBE_UI_SERVICE} ] || {
|
||||
echo "Writing File: $KUBE_UI_SERVICE"
|
||||
mkdir -p $(dirname ${KUBE_UI_SERVICE})
|
||||
cat << EOF > ${KUBE_UI_SERVICE}
|
||||
[Unit]
|
||||
After=kube-system-namespace.service
|
||||
Requires=kubelet.service
|
||||
Wants=kube-system-namespace.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
Environment=HOME=/root
|
||||
EnvironmentFile=-/etc/kubernetes/config
|
||||
ExecStart=${KUBE_UI_BIN}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
}
|
||||
|
||||
chown root:root ${KUBE_UI_BIN}
|
||||
chmod 0755 ${KUBE_UI_BIN}
|
||||
|
||||
chown root:root ${KUBE_UI_SERVICE}
|
||||
chmod 0644 ${KUBE_UI_SERVICE}
|
||||
|
||||
systemctl enable kube-ui
|
||||
systemctl start --no-block kube-ui
|
Loading…
Reference in new issue