GitHub - werf/nelm: Nelm 是 Helm 3 的替代品。它是一个 Kubernetes 部署工具,用于管理 Helm Charts 并将其部署到 Kubernetes 中,并且也是 https://github.com/werf/we

Nelm:Helm 3 替代品

  • 主要特点:基于改进和部分重写的 Helm 3 代码库,具备类似terraform plan的能力、用 Server-Side Apply 替代 3-Way Merge、秘密管理、高级资源排序能力、改进的资源状态/错误跟踪、部署期间连续打印日志等事件及错误、修复 Helm 3 诸多 bug 等。

    • 高级资源排序:重写 Helm 的资源部署子系统,构建有向无环图实现先进资源排序,如werf.io/weightwerf.io/deploy-dependency-<id>等注解。
    • 3-Way Merge 被 Server-Side Apply 替代:解决 Helm 3-Way Merge 的问题,采用 Kubernetes 的 Server-Side Apply 进行资源更新。
    • 资源状态跟踪:从底层构建强大的资源跟踪系统,能可靠检测资源就绪等状态,自动跟踪部分依赖资源等。
    • 部署期间打印日志和事件:找到部署资源的 Pod 并定期打印容器日志,可通过注解配置。
    • 发布计划nelm release plan install能准确展示下一次发布在集群中的操作及资源版本差异。
    • 加密值和加密文件nelm chart secret命令管理加密值和文件,在模板中可使用。
  • 安装:遵循GitHub Releases上的说明。
  • 快速入门

    1. 创建新图表目录并进入。
    2. 创建Chart.yaml
    3. 生成Chart.lock
    4. 创建values.yaml
    5. 部署第一个版本,展示部署过程中的日志和资源状态等信息。
    6. 计划第二个版本的部署并更新资源。
  • CLI 概述:包含发布、图表、秘密、依赖、仓库及其他等各类命令,如release install等。
  • 与 Helm 的兼容性:基于 Helm 3 代码库,与 Helm Charts 和 Releases 向后兼容,CLI 布局等不同但支持大部分相同功能,未计划支持 Helm 插件。
  • 文档:特定功能在 Nelm 文档中描述,通用文档参考 Helm 文档和 werf 文档,包括加密值文件使用等。
  • 已知问题:不支持 Kubernetes 版本早于 v1.14,需启用ServerSideApply功能门(默认从 Kubernetes v1.16 开始启用)。
阅读 8
0 条评论