13
13
# See the License for the specific language governing permissions and
14
14
# limitations under the License.
15
15
16
- # This runs npm commands for dashboard in container.
17
- #
18
- # To run dashboard on container, simply run `run-npm-command.sh`.
19
- # To run npm command in container, set K8S_DASHBOARD_NPM_CMD variable
20
- # like "run check" or run like `run-npm-command.sh run check`.
16
+ # This prepares development environment for Kubernetes Dashboard in Docker.
17
+ # See `docs/developer/getting-started.md`.
21
18
22
19
CD=" $( pwd) "
23
20
DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd ) "
@@ -30,71 +27,62 @@ DOCKER_GID=$(getent group docker|cut -d ":" -f 3)
30
27
# kubeconfig for dashboard.
31
28
# This will be mounted and certain npm command can modify it,
32
29
# so this should not be set for original kubeconfig.
33
- if [[ -n " ${K8S_DASHBOARD_KUBECONFIG } " ]] ; then
30
+ if [[ -n " ${KD_DEV_KUBECONFIG } " ]] ; then
34
31
# Use your own kubernetes cluster.
35
32
K8S_OWN_CLUSTER=true
36
33
else
37
34
# Use the kind cluster that will be created later by the script.
38
35
# Set defult as kubeconfig made by `hack/scripts/start-cluster.sh`.
39
36
touch /tmp/kind.kubeconfig
40
- K8S_DASHBOARD_KUBECONFIG =/tmp/kind.kubeconfig
37
+ KD_DEV_KUBECONFIG =/tmp/kind.kubeconfig
41
38
fi
42
39
43
40
# Create docker network to work with kind cluster
44
- K8S_DASHBOARD_NETWORK =" kubernetes-dashboard"
45
- docker network create ${K8S_DASHBOARD_NETWORK } \
41
+ KD_DEV_NETWORK =" kubernetes-dashboard"
42
+ docker network create ${KD_DEV_NETWORK } \
46
43
-d=bridge \
47
44
-o com.docker.network.bridge.enable_ip_masquerade=true \
48
45
-o com.docker.network.driver.mtu=1500
49
46
50
47
# Bind addres for dashboard
51
- K8S_DASHBOARD_BIND_ADDRESS =${K8S_DASHBOARD_BIND_ADDRESS :- " 127.0.0.1" }
48
+ KD_DEV_BIND_ADDRESS =${KD_DEV_BIND_ADDRESS :- " 127.0.0.1" }
52
49
53
50
# Metrics Scraper sidecar host for dashboard
54
- K8S_DASHBOARD_SIDECAR_HOST=${K8S_DASHBOARD_SIDECAR_HOST:- " http://localhost:8000" }
55
-
56
- # Port for dashboard (frontend)
57
- K8S_DASHBOARD_PORT=${K8S_DASHBOARD_PORT:- " 8080" }
58
-
59
- # Debugging port for dashboard (backend)
60
- K8S_DASHBOARD_DEBUG_PORT=${K8S_DASHBOARD_DEBUG_PORT:- " 2345" }
51
+ KD_DEV_SIDECAR_HOST=${KD_DEV_SIDECAR_HOST:- " http://localhost:8000" }
61
52
62
53
# Build and run container for dashboard
63
- DASHBOARD_IMAGE_NAME =${K8S_DASHBOARD_CONTAINER_NAME :- " k8s-dashboard-dev-image" }
64
- K8S_DASHBOARD_SRC =${K8S_DASHBOARD_SRC :- " ${CD} " }
65
- K8S_DASHBOARD_CONTAINER_NAME =${K8S_DASHBOARD_CONTAINER_NAME :- " k8s-dashboard-dev" }
66
- K8S_DASHBOARD_SRC_ON_CONTAINER =/go/src/github.com/kubernetes/dashboard
54
+ KD_DEV_IMAGE_NAME =${KD_DEV_CONTAINER_NAME :- " k8s-dashboard-dev-image" }
55
+ KD_DEV_SRC =${KD_DEV_SRC :- " ${CD} " }
56
+ KD_DEV_CONTAINER_NAME =${KD_DEV_CONTAINER_NAME :- " k8s-dashboard-dev" }
57
+ KD_DEV_SRC_ON_CONTAINER =/go/src/github.com/kubernetes/dashboard
67
58
68
- echo " Remove existing container ${K8S_DASHBOARD_CONTAINER_NAME } "
69
- docker rm -f ${K8S_DASHBOARD_CONTAINER_NAME }
59
+ echo " Remove existing container ${KD_DEV_CONTAINER_NAME } "
60
+ docker rm -f ${KD_DEV_CONTAINER_NAME }
70
61
71
62
# Always test if the image is up-to-date. If nothing has changed since last build,
72
63
# it'll just use the already-built image
73
64
echo " Start building container image for development"
74
- docker build -t ${DASHBOARD_IMAGE_NAME } -f ${DIR} /Dockerfile ${DIR} /../../
65
+ docker build -t ${KD_DEV_IMAGE_NAME } -f ${DIR} /Dockerfile ${DIR} /../../
75
66
76
67
# Run dashboard container for development and expose necessary ports automatically.
77
68
echo " Run container for development"
78
69
docker run \
79
70
-it \
80
- --name=${K8S_DASHBOARD_CONTAINER_NAME } \
71
+ --name=${KD_DEV_CONTAINER_NAME } \
81
72
--cap-add=SYS_PTRACE \
82
- --network=${K8S_DASHBOARD_NETWORK } \
73
+ --network=${KD_DEV_NETWORK } \
83
74
-v /var/run/docker.sock:/var/run/docker.sock \
84
- -v ${K8S_DASHBOARD_SRC } :${K8S_DASHBOARD_SRC_ON_CONTAINER } \
85
- -v ${K8S_DASHBOARD_KUBECONFIG } :/home/user/.kube/config \
86
- -e K8S_DASHBOARD_CMD =" ${K8S_DASHBOARD_CMD } " \
75
+ -v ${KD_DEV_SRC } :${KD_DEV_SRC_ON_CONTAINER } \
76
+ -v ${KD_DEV_KUBECONFIG } :/home/user/.kube/config \
77
+ -e KD_DEV_CMD =" ${KD_DEV_CMD } " \
87
78
-e K8S_OWN_CLUSTER=${K8S_OWN_CLUSTER} \
88
- -e K8S_DASHBOARD_BIND_ADDRESS=${K8S_DASHBOARD_BIND_ADDRESS} \
89
- -e K8S_DASHBOARD_PORT=${K8S_DASHBOARD_PORT} \
90
- -e K8S_DASHBOARD_DEBUG=${K8S_DASHBOARD_DEBUG} \
91
- -e KUBECONFIG=${K8S_DASHBOARD_KUBECONFIG} \
92
- -e KIND_EXPERIMENTAL_DOCKER_NETWORK=${K8S_DASHBOARD_NETWORK} \
93
- -e SIDECAR_HOST=${K8S_DASHBOARD_SIDECAR_HOST} \
79
+ -e BIND_ADDRESS=${KD_DEV_BIND_ADDRESS} \
80
+ -e KUBECONFIG=${KD_DEV_KUBECONFIG} \
81
+ -e KIND_EXPERIMENTAL_DOCKER_NETWORK=${KD_DEV_NETWORK} \
82
+ -e SIDECAR_HOST=${KD_DEV_SIDECAR_HOST} \
94
83
-e LOCAL_UID=" ${LOCAL_UID} " \
95
84
-e LOCAL_GID=" ${LOCAL_GID} " \
96
85
-e DOCKER_GID=" ${DOCKER_GID} " \
97
- -p ${K8S_DASHBOARD_PORT} :${K8S_DASHBOARD_PORT} \
98
- -p ${K8S_DASHBOARD_DEBUG_PORT} :${K8S_DASHBOARD_DEBUG_PORT} \
86
+ -p 8080:8080 \
99
87
${DOCKER_RUN_OPTS} \
100
- ${DASHBOARD_IMAGE_NAME }
88
+ ${KD_DEV_IMAGE_NAME }
0 commit comments