在 Helm Chart 之间共享依赖项

在 Helm Chart 之间共享依赖项

我正在尝试启动共享一个共同依赖关系(在本例中为 MySQL 数据库)的不同 Helm 图表。

让我们考虑两个不同的 Helm Chart,其设置如下Chart.yaml

服务A

dependencies:
  - name: mysql
    version: ^8.0.20
    repository: https://charts.bitnami.com/bitnami

服务 B

dependencies:
  - name: mysql
    version: ^8.0.20
    repository: https://charts.bitnami.com/bitnami

虽然两个服务是独立的,但它们共享同一个数据库。然而,当部署启动时,问题就出现了,因为这也会触发两个独立的数据库。

作为替代方案,我也尝试过采用上述的总体方法这里,通过定义所有事物在同一个父掌舵图使用与以下类似的设置:

家长掌舵图

dependencies:
  - name: service_a
    version: 0.1.0
    repository: repo_for_service_a
  - name: service_b
    version: 0.1.0
    repository: repo_for_service_b

问题是,即使再次将同一个数据库作为依赖项共享,在尝试部署时也会为数据库创建重复的代码,从而导致部署状态失败。为了解决这个问题,我利用了 Helm--post-renderer标志,通过已删除。尽管这种方法有效,但我仍在寻找更可行的解决方案。

相关内容