本地开发

本章提供有关 Helm 图表本地开发以及如何对其进行更改的说明。

模板扩展

helm template --name tester --set acceptLicenseAgreement=yes --set neo4jPassword=mySecretPassword . > expanded.yaml

全循环测试

以下迷你脚本将预配测试集群,监视其部署,对其进行测试,报告结果,并拆卸/销毁 PVC。

预配 K8S 集群

请使用 tools/test/provision-k8s.sh 并根据您的 Google Cloud 项目 ID 进行自定义

独立

独立形式更快,因此我们可以手动降低 liveness/readiness 超时。

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

因果集群

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

内部工具

此仓库包含用于备份、恢复和测试 Helm 图表的内部工具容器,位于 tools 目录下。

构建容器

如果您想推送自己的 Docker 容器,请确保 Makefile 中的注册表设置为您有权限的某个地方。

cd tools
make docker_build
make docker_push