提交 1fd48683 编写于 作者: S Shu Muto 提交者: Kubernetes Prow Robot

Support dashboard-metrics-scraper on development container (#4046)

Deploy `dashboard-metrics-scraper` on `kind` cluster.
Then pass `--sidecar-host` to dashboard via `npm` or `gulp`.
Also, cleanup handlings of `kubeconfig` for `kind`.
上级 7c5c5edd
......@@ -27,5 +27,3 @@ coverage/
# npm debug log:
npm-debug.log
# kubeconfig for cluster made by kind:
kind.kubeconfig*
......@@ -9,3 +9,4 @@ kubernetes-dashboard:frontend_build_dir = dist/frontend/en
kubernetes-dashboard:dashboard_binary_path = dist/amd64/dashboard
kubernetes-dashboard:dashboard_locale_config = dist/amd64/locale_conf.json
kubernetes-dashboard:bind_address = 127.0.0.1
kubernetes-dashboard:sidecar_host = http://localhost:8000
......@@ -66,6 +66,11 @@ RUN curl -sSL https://download.docker.com/linux/static/stable/x86_64/docker-18.0
rm -rf /tmp/docker/ && \
chmod +x /usr/bin/docker
# Install kubectl
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
RUN chmod +x ./kubectl
RUN mv ./kubectl /usr/local/bin/kubectl
# Install golangci for ckecking or fixing go format.
# `npm ci` installs golangci, but this installation is needed
# for running `npm run check` singlely, like
......
......@@ -19,7 +19,9 @@
if [[ -n "${K8S_DASHBOARD_NPM_CMD}" ]] ; then
# Run npm command
echo "Run npm '${K8S_DASHBOARD_NPM_CMD}'"
npm ${K8S_DASHBOARD_NPM_CMD} --kubernetes-dashboard:bind_address=${K8S_DASHBOARD_BIND_ADDRESS}
npm ${K8S_DASHBOARD_NPM_CMD} \
--kubernetes-dashboard:bind_address=${K8S_DASHBOARD_BIND_ADDRESS} \
--kubernetes-dashboard:sidecar_host=${K8S_DASHBOARD_SIDECAR_HOST}
else
# Install dashboard.
echo "Install dashboard"
......@@ -32,16 +34,25 @@ else
echo "Start cluster"
sudo npm run cluster:start
# Copy kubeconfig from /root/.kube/config
sudo cat /root/.kube/config > kind.kubeconfig
sudo chown ${LOCAL_UID}:${LOCAL_GID} kind.kubeconfig
sudo cat /root/.kube/config > /tmp/kind.kubeconfig
sudo chown ${LOCAL_UID}:${LOCAL_GID} /tmp/kind.kubeconfig
# Edit kubeconfig for kind
KIND_CONTAINER_NAME="k8s-cluster-ci-control-plane"
KIND_ADDR=$(sudo docker inspect -f='{{.NetworkSettings.IPAddress}}' ${KIND_CONTAINER_NAME})
sed -e "s/localhost:[0-9]\+/${KIND_ADDR}:6443/g" kind.kubeconfig > kind.kubeconfig.new
cat kind.kubeconfig.new > kind.kubeconfig
rm -f kind.kubeconfig.new
sed -e "s/localhost:[0-9]\+/${KIND_ADDR}:6443/g" /tmp/kind.kubeconfig > ~/.kube/config
# Deploy recommended.yaml to deploy dashboard-metrics-scraper sidecar
echo "Deploy dashboard-metrics-scraper into kind cluster"
kubectl apply -f aio/deploy/recommended.yaml
# Kill and run `kubectl proxy`
KUBECTL_PID=$(ps -A|grep 'kubectl'|tr -s ' '|cut -d ' ' -f 2)
echo "Kill kubectl ${KUBECTL_PID}"
kill ${KUBECTL_PID}
nohup kubectl proxy --address 127.0.0.1 --port 8000 >/tmp/kubeproxy.log 2>&1 &
export K8S_DASHBOARD_SIDECAR_HOST="http://localhost:8000/api/v1/namespaces/kubernetes-dashboard/services/dashboard-metrics-scraper:/proxy/"
fi
# Start dashboard.
echo "Start dashboard"
npm start --kubernetes-dashboard:bind_address=${K8S_DASHBOARD_BIND_ADDRESS}
npm start \
--kubernetes-dashboard:bind_address=${K8S_DASHBOARD_BIND_ADDRESS} \
--kubernetes-dashboard:sidecar_host=${K8S_DASHBOARD_SIDECAR_HOST}
fi
......@@ -48,6 +48,9 @@ fi
# Bind addres for dashboard
K8S_DASHBOARD_BIND_ADDRESS=${K8S_DASHBOARD_BIND_ADDRESS:-"127.0.0.1"}
# Metrics Scraper sidecar host for dashboard
K8S_DASHBOARD_SIDECAR_HOST=${K8S_DASHBOARD_SIDECAR_HOST:-"http://localhost:8000"}
# Build and run container for dashboard
DASHBOARD_IMAGE_NAME=${K8S_DASHBOARD_CONTAINER_NAME:-"k8s-dashboard-dev-image"}
K8S_DASHBOARD_SRC=${K8S_DASHBOARD_SRC:-"${CD}"}
......@@ -75,6 +78,7 @@ docker run \
-e K8S_DASHBOARD_CMD="${K8S_DASHBOARD_CMD}" \
-e K8S_OWN_CLUSTER=${K8S_OWN_CLUSTER} \
-e K8S_DASHBOARD_BIND_ADDRESS=${K8S_DASHBOARD_BIND_ADDRESS} \
-e K8S_DASHBOARD_SIDECAR_HOST=${K8S_DASHBOARD_SIDECAR_HOST} \
-e K8S_DASHBOARD_DEBUG=${K8S_DASHBOARD_DEBUG} \
-e LOCAL_UID="${LOCAL_UID}" \
-e LOCAL_GID="${LOCAL_GID}" \
......
......@@ -7,13 +7,13 @@
},
"license": "Apache-2.0",
"scripts": {
"start": "concurrently \"npm run start:backend\" \"npm run start:frontend --kubernetes-dashboard:bind_address=$npm_package_config_bind_address\"",
"start": "concurrently \"npm run start:backend --kubernetes-dashboard:sidecar_host=$npm_package_config_sidecar_host\" \"npm run start:frontend --kubernetes-dashboard:bind_address=$npm_package_config_bind_address\"",
"start:https": "concurrently \"npm run start:backend:https\" \"npm run start:frontend:https\"",
"start:frontend": "npm run postversion && ng serve --aot --progress=false --proxy-config aio/proxy.conf.json --host=$npm_package_config_bind_address",
"start:frontend:https": "node aio/scripts/version.js && ng serve --progress=false --aot --proxy-config aio/https-proxy.conf.json --ssl --host=$npm_package_config_bind_address",
"start:backend": "gulp serve --kubeconfig $npm_package_config_kubeconfig",
"start:backend:https": "gulp serve --kubeconfig $npm_package_config_kubeconfig --autoGenerateCerts true",
"start:prod": "npm run build && ./$npm_package_config_dashboard_binary_path --kubeconfig $npm_package_config_kubeconfig --locale-config $npm_package_config_dashboard_locale_config --auto-generate-certificates --bind-address $npm_package_config_bind_address",
"start:backend": "gulp serve --kubeconfig $npm_package_config_kubeconfig --sidecarServerHost $npm_package_config_sidecar_host",
"start:backend:https": "gulp serve --kubeconfig $npm_package_config_kubeconfig --autoGenerateCerts true --sidecarServerHost $npm_package_config_sidecar_host",
"start:prod": "npm run build && ./$npm_package_config_dashboard_binary_path --kubeconfig $npm_package_config_kubeconfig --locale-config $npm_package_config_dashboard_locale_config --auto-generate-certificates --bind-address $npm_package_config_bind_address --sidecar-host $npm_package_config_sidecar_host",
"build": "./aio/scripts/build.sh",
"build:cross": "./aio/scripts/build.sh -c",
"build:frontend": "npm run clean && ng build --aot --prod --outputPath=$npm_package_config_frontend_build_dir",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册