“chartsvc” 组件是一个微服务, 它创建一个 API 端点来访问在 MongoDB 服务器中的 Helm 图表存储库中图表的元数据。 其源代码保存在 Monocular项目存储库中。
- Git
- Make
- Go programming language
- Docker CE
- Kubernetes cluster (v1.8+). Minikube is recommended.
- kubectl
- Telepresence
export GOPATH=~/gopath
export PATH=$GOPATH/bin:$PATH
export MONOCULAR_DIR=$GOPATH
git clone https://github.com/helm/monocular $MONOCULAR_DIR
“chartsvc” 源位于 “cmd/chartsvc/” 目录下。
KubeApps Plus 是 Kubernetes 本地应用程序。 要开发和测试 KubeApps Plus 组件, 我们需要一个已安装 KubeApps Plus 的 Kubernetes 集群。 遵循KubeApps Plus安装指南 在您的群集中安装 KubeApps Plus。
cd $MONOCULAR_DIR
dep ensure
make -C cmd/chartsvc docker-build
这将构建 chartsvc
Docker 镜像。
telepresence --swap-deployment kubeapps-internal-chartsvc --namespace kubeapps-plus --expose 8080:8080 --docker-run --rm -ti quay.io/helmpack/chartsvc/chartsvc --mongo-user=root --mongo-url=kubeapps-mongodb
请注意, 应重新构建Chartsvc, 以使新更改生效。
注意: 默认情况下, KubeApps Plus 会尝试获取图像的最新版本, 因此为了使此工作流在 Minikube 中正常工作, 您需要首先更新 imagePullPolicy:
kubectl patch deployment kubeapps-internal-chartsvc -n kubeapps-plus --type=json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/imagePullPolicy", "value": "IfNotPresent"}]'
kubectl set image -n kubeapps-plus deployment kubeapps-internal-chartsvc chartsvc=quay.io/helmpack/chartsvc:latest
为了进一步重新部署, 您可以更改版本以部署不同的标记或重建相同的映像并重新启动Pod执行:
kubectl delete pod -n kubeapps-plus -l app=kubeapps-internal-chartsvc
注意: 如果您使用云提供商来开发服务, 则需要重新标记映像并将其推送到公共注册表。
您可以将Chartsvc测试与Monocular项目的测试一起运行:
go test -v ./...