Development guide¶
Setting up¶
Install minikube and start a cluster with RBAC enabled:
minikube start --extra-config=apiserver.Authorization.Mode=RBAC
Work around kube-dns
and helm having problems when RBAC is enabled in minikube:
kubectl create clusterrolebinding cluster-admin:kube-system \
--clusterrole=cluster-admin \
--serviceaccount=kube-system:default
Fetch the docker configuration:
eval $(minikube docker-env)
Build images in minikube’s docker:
make BUILD_TAG=dev all
Or quicker (skips tests):
make BUILD_TAG=dev build docker_build
Install helm into the minikube cluster:
helm init
Install navigator using the helm chart:
helm install contrib/charts/navigator \
--set apiserver.image.pullPolicy=Never \
--set apiserver.image.tag=dev \
--set controller.image.pullPolicy=Never \
--set controller.image.tag=dev \
--name navigator --namespace navigator --wait
Now test navigator is deployed by creating a demo elasticsearch cluster. Edit
docs/quick-start/es-cluster-demo.yaml
to change the pilot image tag to dev
,
and set the pullPolicy
to Never
, then create the cluster:
kubectl create -f docs/quick-start/es-cluster-demo.yaml
Developing¶
Edit code, then build:
make BUILD_TAG=dev build docker_build
Or only for the component you’re interested in:
make BUILD_TAG=dev controller docker_build_controller
Kill the component you’re working on, for example the controller:
kubectl delete pods -n navigator -l app=navigator -l component=controller