Skip to content

Commit b994855

Browse files
committed
K8S-403 fix dashboard healthcheck
1 parent 5df5077 commit b994855

File tree

2 files changed

+34
-14
lines changed

2 files changed

+34
-14
lines changed

manifest.jps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ actions:
416416
message: ${globals.jaeger_success}
417417

418418
check-health:
419-
cmd[${nodes.k8sm.master.id}]: /usr/local/sbin/check-install.sh -i=${settings.ingress-controller} -app=${settings.deploy} -m=${settings.monitoring:false} -r=${settings.api} -s=${settings.storage} -j=${settings.jaeger:false} -d=${env.domain} &> /var/log/kubernetes/k8s-health-check.log ||
419+
cmd[${nodes.k8sm.master.id}]: /usr/local/sbin/check-install.sh -i=${settings.ingress-controller} -app=${settings.deploy} -dash=${settings.dashboard:none} -m=${settings.monitoring:false} -r=${settings.api} -s=${settings.storage} -j=${settings.jaeger:false} -d=${env.domain} &> /var/log/kubernetes/k8s-health-check.log ||
420420
echo "> **Note:** Some cluster components have not yet been initialized, and it may take some time for pods to start. If you encounter problems with your cluster, please check K8s logs in /var/log/kubernetes on master node and contact support."
421421
setGlobals:
422422
check_message: ${response.out}

scripts/check-install.sh

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ HELP="
44
Usage:
55
$0 [options]
66
Options:
7-
-d=, --domain= environment domain without protocol (e.g. mykube.jelastic.com), mandatory, no defaults
8-
-i=, --ingress= ingress controller name, possible values: Nginx, HAProxy, Traefik
9-
-m=, --monitoring= check monitoring tools, defaults to false
10-
-r=, --remote-api= check remote api availability, defaults to false
11-
-s=, --storage= check NFS storage, defaults to false
12-
-j=, --jaeger= check Jaeger installation
13-
-app=, --sample-app check either default Hello World app (cc) or a custom syntax [cmd], defaults to cc
14-
-h, --help show this help
7+
-d=, --domain= environment domain without protocol (e.g. mykube.jelastic.com), mandatory, no defaults
8+
-i=, --ingress= ingress controller name, possible values: Nginx, HAProxy, Traefik
9+
-m=, --monitoring= check monitoring tools, defaults to false
10+
-r=, --remote-api= check remote api availability, defaults to false
11+
-s=, --storage= check NFS storage, defaults to false
12+
-j=, --jaeger= check Jaeger installation
13+
-app=, --sample-app check either default Hello World app (cc) or a custom syntax [cmd], defaults to cc
14+
-dash=, --dashboard check Dashboard type installed, defaults to general
15+
-h, --help show this help
1516
"
1617

1718
if [[ $# -eq 0 ]] ; then
@@ -42,6 +43,10 @@ do
4243
SAMPLE_APP=$(echo "${key#*=}")
4344
shift
4445
;;
46+
-dash=*| --dashboard=*)
47+
DASHBOARD_NAME=$(echo "${key#*=}")
48+
shift
49+
;;
4550
-s=*| --storage=*)
4651
STORAGE=$(echo "${key#*=}")
4752
shift
@@ -77,12 +82,27 @@ K8S_LOG_DIR="/var/log/kubernetes"
7782
K8S_EVENTS_LOG_FILE="/var/log/kubernetes/k8s-events.log"
7883
METRICS_SERVER_NAME="metrics-server"
7984
CNI_PLUGIN_NAME="weave-net"
80-
DASHBOARD_DEPLOYMENT_NAME="kubernetes-dashboard"
8185
NGINX_DEPLOYMENT_NAME="nginx-ingress-controller"
8286

8387
DEFAULT_SAMPLE_APP="cc"
8488
SAMPLE_APP=${SAMPLE_APP:-${DEFAULT_SAMPLE_APP}}
8589

90+
DEFAULT_DASHBOARD_NAME="general"
91+
DASHBOARD_NAME=${DASHBOARD_NAME:-${DEFAULT_DASHBOARD_NAME}}
92+
93+
case "${DASHBOARD_NAME}" in
94+
general)
95+
DASHBOARD_DEPLOYMENT_NAME="kubernetes-dashboard"
96+
DASHBOARD_NAMESPACE="kubernetes-dashboard"
97+
;;
98+
k8dash)
99+
DASHBOARD_DEPLOYMENT_NAME="kubernetes-k8dash"
100+
DASHBOARD_NAMESPACE="kube-system"
101+
;;
102+
*)
103+
echo "Invalid dashboard name ${DASHBOARD_NAME} specified!"
104+
exit 1
105+
esac
86106

87107
DEFAULT_MONITORING="false"
88108
MONITORING=${MONITORING:-${DEFAULT_MONITORING}}
@@ -184,24 +204,24 @@ checkMetricsServer() {
184204

185205
checkDashboard() {
186206
printInfo "Checking Kubernetes Dashboard deployment"
187-
readyReplicas=$(kubectl get deployment/"${DASHBOARD_DEPLOYMENT_NAME}" -o=jsonpath='{.status.readyReplicas}' -n ${DASHBOARD_DEPLOYMENT_NAME} 2> /dev/null)
207+
readyReplicas=$(kubectl get deployment/"${DASHBOARD_DEPLOYMENT_NAME}" -o=jsonpath='{.status.readyReplicas}' -n ${DASHBOARD_NAMESPACE} 2> /dev/null)
188208
if [ $? -ne 0 ]; then
189209
printError "Deployment ${DASHBOARD_DEPLOYMENT_NAME} not found"
190210
WITH_ERROR="true"
191211
else
192212
if [ -z "${readyReplicas}" ] || [ "${readyReplicas}" -lt 1 ]; then
193213
printInfo "${DASHBOARD_DEPLOYMENT_NAME} deployment isn't scaled to 1. Checking pods logs..."
194-
KUBERNETES_DASHBOARD_POD=$(kubectl get pods -l=k8s-app="${DASHBOARD_DEPLOYMENT_NAME}" -n kubernetes-dashboard --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
214+
KUBERNETES_DASHBOARD_POD=$(kubectl get pods -l=k8s-app="${DASHBOARD_DEPLOYMENT_NAME}" -n ${DASHBOARD_NAMESPACE} --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
195215
if [ -z $KUBERNETES_DASHBOARD_POD ]; then
196216
printError "Failed to find ${DASHBOARD_DEPLOYMENT_NAME} pod"
197217
printError "Inspect K8s events in ${K8S_EVENTS_LOG_FILE} on a master node"
198218
WITH_ERROR="true"
199219
else
200-
DASHBOARD_POD_STATUS=$(kubectl get pods/$KUBERNETES_DASHBOARD_POD -n kubernetes-dashboard -o jsonpath="{.status.phase}" 2> /dev/null)
220+
DASHBOARD_POD_STATUS=$(kubectl get pods/$KUBERNETES_DASHBOARD_POD -n ${DASHBOARD_NAMESPACE} -o jsonpath="{.status.phase}" 2> /dev/null)
201221
printError "Kubernetes Dashboard is not running. Current status is: ${DASHBOARD_POD_STATUS}"
202222
printError "${DASHBOARD_DEPLOYMENT_NAME} pod logs are available in ${K8S_LOG_DIR}/kubernetes-dashboard.log"
203223
printError "Inspect K8s events in ${K8S_EVENTS_LOG_FILE} on a master node"
204-
kubectl logs ${KUBERNETES_DASHBOARD_POD} -n ${DASHBOARD_DEPLOYMENT_NAME} > ${K8S_LOG_DIR}/kubernetes-dashboard.log
224+
kubectl logs ${KUBERNETES_DASHBOARD_POD} -n ${DASHBOARD_NAMESPACE} > ${K8S_LOG_DIR}/kubernetes-dashboard.log
205225
WITH_ERROR="true"
206226
fi
207227
else

0 commit comments

Comments
 (0)