helm-secrets
⭐ 别忘了给这个仓库点星!⭐
关于
helm-secrets 是一个 Helm 插件,用于即时解密加密的 Helm 值文件。
- 使用 sops 加密值文件并将其存储在 git 中。
- 将你的秘密存储在云原生秘密管理器中,如 AWS SecretManager、Azure KeyVault 或 HashiCorp Vault,并将它们注入到值文件或模板中。
- 在你喜欢的部署工具或 GitOps 操作器(如 ArgoCD)中使用 helm-secret
谁在实际使用 helm-secrets?如果你在公司或组织中使用 helm-secrets,我们邀请你创建一个 PR 来将你的信息添加到这个文件中。
安装
更多信息请查看安装。
使用方法
完整文档请阅读 GitHub wiki。
通过协议处理器解密秘密
在特定的值文件上运行解密命令。 这种方法比下面的插件命令更受推荐。 这种模式在 ArgoCD 环境中使用。
helm upgrade name . -f secrets://secrets.yaml
更多信息请查看使用方法
通过插件命令解密秘密
包装整个 helm
命令。在多个值文件上运行较慢。
helm secrets upgrade name . -f secrets.yaml
在 helm 模板中评估秘密引用
需要 helm 3.9+ 和 vals 0.20+
helm-secrets 支持使用 --evaluate-templates
标志在 Helm 模板中评估 vals 表达式。
secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: secret
type: Opaque
stringData:
password: "ref+awsssm://foo/bar?mode=singleparam#/BAR"
运行
helm secrets --evaluate-templates upgrade name .
云支持
使用 AWS Secrets Manager 或 Azure KeyVault 安全地存储秘密,并在 values.yaml 中引用它们
helm secrets --backend vals template bitnami/mysql --name-template mysql \
--set auth.rootPassword=ref+awsssm://foo/bar?mode=singleparam#/BAR
更多信息请查看云集成。
ArgoCD 支持
关于如何在 ArgoCD 中运行 helm-secrets,请查看 ArgoCD 集成 获取更多信息。
示例
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: app
spec:
source:
helm:
valueFiles:
- secrets+gpg-import:///helm-secrets-private-keys/key.asc?secrets.yaml
- secrets+gpg-import-kubernetes://argocd/helm-secrets-private-keys#key.asc?secrets.yaml
- secrets://secrets.yaml
# 也支持 fileParameters (--set-file)
fileParameters:
- name: config
path: secrets://secrets.yaml
# 直接从云提供商引用值
- name: mysql.rootPassword
path: secrets+literal://ref+azurekeyvault://my-vault/secret-a
Terraform 支持
Terraform Helm 提供程序不支持下载器插件。
helm-secrets 可以与 Terraform 外部数据源提供程序一起使用。
示例
data "external" "helm-secrets" {
program = ["helm", "secrets", "decrypt", "--terraform", "../../examples/sops/secrets.yaml"]
}
resource "helm_release" "example" {
values = [
file("../../examples/sops/values.yaml"),
base64decode(data.external.helm-secrets.result.content_base64),
]
}
如何在 Terraform 中使用 helm-secrets 的示例可以在 examples/terraform 中找到。
秘密后端
helm-secrets 支持多个秘密后端。 目前支持 sops 和 vals。
查看秘密后端了解如何使用它们。
文档
可以在这里找到其他文档、资源和示例。
项目的组成部分
scripts/run.sh
- 插件安装后在helm secrets help
中可用的所有 helm-secrets 插件操作的主要 helm-secrets 插件代码scripts/backends
- 树内秘密后端的位置scripts/commands
- 这里定义了helm secrets
的子命令scripts/lib
-helm secrets
使用的通用函数scripts/wrapper
- Windows 系统的包装脚本tests
- 测试脚本,用于检查插件的所有部分是否正常工作。使用带有 PGP 密钥的测试资产进行真实数据的实际加密/解密测试。更多信息请查看tests/README.md
examples
- 一些示例 secrets.yaml
版权和许可
© 2020-2022 Jan-Otto Kröpke (jkroepke)
© 2017-2020 Zendesk
根据 Apache License, Version 2.0 许可