• 开发问题
    • 如何注入特定的环境配置
    • 如何管理每个环境中的 Secret ?
    • 参照

    开发问题

    有关如何使用 Kubernetes, Helm 和 Jenkins X 构建云原生应用

    如何注入特定的环境配置

    Jenkins X 中的每个环境都在 git 存储库中定义; 我们使用 GitOps 来管理每个环境中的所有更改,例如:

    • 添加/删除应用
    • 更改应用程序的版本(更新或回滚)
    • 使用环境特定值配置任何应用程序前两个项在您环境的 git 存储库的 env/requirements.yaml 文件中定义。 后者在 env/values.yaml 文件中定义。

    Helm charts 使用 values.yaml文件,以便您可以覆盖 charts 中的任何配置以修改设置,例如任何资源或资源配置上的标签或注释(例如 replicaCount )或将环境变量等内容传递给 Deployment

    所以,如果你想改变 staging 环境中应用 fooreplicaCount ,那么通过 jx get env 查找 staging 环境的 git 存储库,找到 git URL 。

    导航到 env/values.yaml 文件并添加/编辑一些 YAML ,如下所示:

    1. foo:
    2. replicaCount: 5

    将该更改作为 Pull Request 提交,以便它可以通过 CI 测试并且进行任何同行评审/批准; 然后当它合并到它的 master 分支它将修改 foo 应用程序的 replicaCount(假设在 env/requirements.yaml 文件中有一个名为 foo 的 chart )

    如果需要,可以使用 vanilla helm 来执行注入当前命名空间之类的操作。

    要查看如何使用 values.yaml 文件注入 chart 的更复杂示例,请参阅我们如何使用这些文件配置 Jenkins X 本身

    如何管理每个环境中的 Secret ?

    我们自己使用封闭 Secrets 来管理我们所有 CI/CD 的 Jenkins X 安装 - 所以 Secret 被加密并检出到每个环境的 git 仓库。 我们使用 helm-secrets 插件来执行此操作。

    虽然更好的方法是使用我们正在调研的 Vault Operator - 它可以通过 Vault 获取和填充密码(并回收它们等)。

    参照

    • 技术性问题
    • 常见问题解答
    • 常见问题解答
    • 安装问题