|
4 | 4 | Usage: |
5 | 5 | $0 [options] |
6 | 6 | 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 |
15 | 16 | " |
16 | 17 |
|
17 | 18 | if [[ $# -eq 0 ]] ; then |
|
42 | 43 | SAMPLE_APP=$(echo "${key#*=}") |
43 | 44 | shift |
44 | 45 | ;; |
| 46 | + -dash=*| --dashboard=*) |
| 47 | + DASHBOARD_NAME=$(echo "${key#*=}") |
| 48 | + shift |
| 49 | + ;; |
45 | 50 | -s=*| --storage=*) |
46 | 51 | STORAGE=$(echo "${key#*=}") |
47 | 52 | shift |
@@ -77,12 +82,27 @@ K8S_LOG_DIR="/var/log/kubernetes" |
77 | 82 | K8S_EVENTS_LOG_FILE="/var/log/kubernetes/k8s-events.log" |
78 | 83 | METRICS_SERVER_NAME="metrics-server" |
79 | 84 | CNI_PLUGIN_NAME="weave-net" |
80 | | -DASHBOARD_DEPLOYMENT_NAME="kubernetes-dashboard" |
81 | 85 | NGINX_DEPLOYMENT_NAME="nginx-ingress-controller" |
82 | 86 |
|
83 | 87 | DEFAULT_SAMPLE_APP="cc" |
84 | 88 | SAMPLE_APP=${SAMPLE_APP:-${DEFAULT_SAMPLE_APP}} |
85 | 89 |
|
| 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 |
86 | 106 |
|
87 | 107 | DEFAULT_MONITORING="false" |
88 | 108 | MONITORING=${MONITORING:-${DEFAULT_MONITORING}} |
@@ -184,24 +204,24 @@ checkMetricsServer() { |
184 | 204 |
|
185 | 205 | checkDashboard() { |
186 | 206 | 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) |
188 | 208 | if [ $? -ne 0 ]; then |
189 | 209 | printError "Deployment ${DASHBOARD_DEPLOYMENT_NAME} not found" |
190 | 210 | WITH_ERROR="true" |
191 | 211 | else |
192 | 212 | if [ -z "${readyReplicas}" ] || [ "${readyReplicas}" -lt 1 ]; then |
193 | 213 | 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}}') |
195 | 215 | if [ -z $KUBERNETES_DASHBOARD_POD ]; then |
196 | 216 | printError "Failed to find ${DASHBOARD_DEPLOYMENT_NAME} pod" |
197 | 217 | printError "Inspect K8s events in ${K8S_EVENTS_LOG_FILE} on a master node" |
198 | 218 | WITH_ERROR="true" |
199 | 219 | 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) |
201 | 221 | printError "Kubernetes Dashboard is not running. Current status is: ${DASHBOARD_POD_STATUS}" |
202 | 222 | printError "${DASHBOARD_DEPLOYMENT_NAME} pod logs are available in ${K8S_LOG_DIR}/kubernetes-dashboard.log" |
203 | 223 | 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 |
205 | 225 | WITH_ERROR="true" |
206 | 226 | fi |
207 | 227 | else |
|
0 commit comments