External Secrets Operator 开发环境搭建与使用指南
External Secrets Operator 是一个 Kubernetes 控制器,用于将外部密钥管理系统(如 AWS Secrets Manager、HashiCorp Vault 等)中的密钥自动同步到 Kubernetes Secrets 中。本文将详细介绍如何搭建开发环境、构建测试以及本地运行 External Secrets Operator。## 开发环境准备### 基础...
External Secrets Operator 开发环境搭建与使用指南
前言
External Secrets Operator 是一个 Kubernetes 控制器,用于将外部密钥管理系统(如 AWS Secrets Manager、HashiCorp Vault 等)中的密钥自动同步到 Kubernetes Secrets 中。本文将详细介绍如何搭建开发环境、构建测试以及本地运行 External Secrets Operator。
开发环境准备
基础环境要求
- Go 开发环境:需要安装 Go 1.16 或更高版本
- Git:用于代码版本控制
- Make:项目使用 Makefile 作为构建系统
- Docker:用于构建容器镜像
获取源代码
git clone https://github.com/external-secrets/external-secrets.git
cd external-secrets
辅助工具安装
项目使用以下工具进行开发和测试:
- yq:YAML 处理工具,版本要求 4.2X.X 或更高
- helm-unittest:Helm 图表单元测试插件
安装 helm-unittest:
helm plugin install https://github.com/helm-unittest/helm-unittest
构建与测试
基本构建命令
项目使用 Makefile 作为构建系统,包含代码生成、测试和静态代码分析等功能。
构建操作符二进制文件和 Docker 镜像:
make build
make docker.build IMAGE_NAME=external-secrets IMAGE_TAG=latest
测试与代码检查
运行单元测试:
make test
代码静态分析:
make lint
或者使用 Docker 运行 lint:
docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.49.0 golangci-lint run
文档构建
构建项目文档:
make docs
使用 Tilt 进行开发
Tilt 是一个 Kubernetes 开发工具,可以实现代码热重载,非常适合开发 External Secrets Operator。
Tilt 使用步骤
- 下载并安装 Tilt
- 运行以下命令启动开发环境:
make tilt-up
这个命令会:
- 下载适合当前系统的 Tilt 二进制文件
- 生成当前变更的清单文件
- 启动 Tilt
在 Tilt UI 中,可以实时观察 Pod 启动状态和日志输出。
安装与运行
使用 Helm 安装
在生产环境或测试集群中安装 External Secrets Operator:
helm repo add external-secrets https://charts.external-secrets.io
helm repo update
helm install external-secrets external-secrets/external-secrets
本地开发运行
对于开发目的,可以在主机系统上直接运行控制器:
make crds.install
make run
卸载 CRDs:
make crds.uninstall
使用 KinD 进行集成测试
- 创建本地 Kubernetes 集群:
kind create cluster --name external-secrets
- 构建并加载 Docker 镜像:
export TAG=$(make docker.tag)
export IMAGE=$(make docker.imagename)
make docker.build
kind load docker-image $IMAGE:$TAG --name external-secrets
- 更新 Helm 图表并安装到 KinD 集群:
make helm.generate
helm upgrade --install external-secrets ./deploy/charts/external-secrets/ \
--set image.repository=$IMAGE --set image.tag=$TAG \
--set webhook.image.repository=$IMAGE --set webhook.image.tag=$TAG \
--set certController.image.repository=$IMAGE --set certController.image.tag=$TAG
文档开发
项目使用 mkdocs material 和 mike 生成文档。
本地预览文档
启动实时预览服务器:
make docs.serve
访问 http://localhost:8000 查看文档。
完整构建文档
make docs
构建后的文档位于 /site 目录下。
总结
本文详细介绍了 External Secrets Operator 的开发环境搭建、构建测试流程以及本地运行方法。通过使用 Tilt 和 KinD 等工具,开发者可以高效地进行本地开发和集成测试。文档系统支持实时预览,方便开发者编写和维护项目文档。
更多推荐

所有评论(0)