= Local Development [abstract] This chapter provides instructions for local development of the helm chart and how to make changes to it. == Template Expansion ```shell helm template --name tester --set acceptLicenseAgreement=yes --set neo4jPassword=mySecretPassword . > expanded.yaml ``` == Full-Cycle Test The following mini-script will provision a test cluster, monitor it for rollout, test it, report results, and teardown/destroy PVCs. === Provision K8S Cluster Please use `tools/test/provision-k8s.sh` and customize to your Google Cloud project ID === Standalone Standalone forms faster so we can manually lower the liveness/readiness timeouts. ```shell export NAME=a export NAMESPACE=default helm install $NAME . --set acceptLicenseAgreement=yes --set neo4jPassword=mySecretPassword --set core.standalone=true --set readinessProbe.initialDelaySeconds=20 --set livenessProbe.initialDelaySeconds=20 && \ kubectl rollout status --namespace $NAMESPACE StatefulSet/$NAME-neo4j-core --watch && \ helm test $NAME --logs | tee testlog.txt helm uninstall $NAME sleep 20 for idx in 0 1 2 ; do kubectl delete pvc datadir-$NAME-neo4j-core-$idx ; done ``` === Causal Cluster ```shell export NAME=a export NAMESPACE=default helm install $NAME . --set acceptLicenseAgreement=yes --set neo4jPassword=mySecretPassword --set readReplica.numberOfServers=1 && \ kubectl rollout status --namespace $NAMESPACE StatefulSet/$NAME-neo4j-core --watch && \ helm test $NAME --logs | tee testlog.txt helm uninstall $NAME sleep 20 for idx in 0 1 2 ; do kubectl delete pvc datadir-$NAME-neo4j-core-$idx ; done ``` == Internal Tooling This repo contains internal tooling containers for backup, restore, and test of the helm chart, found under the `tools` directory. == Building the Containers If you want to push your own docker containers, make sure the registry in the Makefile is set to some where you have permissions on. ```shell cd tools make docker_build make docker_push ```