如何确保子图表在实际资源之前安装

问题描述 投票:0回答:1

我正在尝试创建一个基于 helm 的操作符,并且在大多数情况下,我已经让它工作了。但是,我需要确保在操作员尝试从这些子图创建资源之前安装子图。例如,我有 mongodb 社区操作员舵图作为子图。但是,当我部署操作员时,我收到以下错误

安装版本失败:无法从版本清单中构建 kubernetes 对象:找不到名称的资源映射:“test-mongodb”命名空间:“”中的“默认”:版本“mongodbcommunity.mongodb”中的类型“MongoDBCommunity”不匹配。 com/v1" 确保首先安装 CRD。

看起来它试图在实际安装操作符和 crds 之前创建 mongodb 实例。我如何强制它首先安装子图,然后尝试创建 mongodb 实例。

kubernetes operators kubernetes-helm kubernetes-operator
1个回答
0
投票

chart.yaml 中,您可以使用 conditiontag

dependencies:
- name: subchart
  version: 0.0.1
  repository: https://chart.github.io/helm-charts
  condition: subchart.enabled

因此,如果图表名称为 subchart 尚未安装在集群中,则会抛出错误。

官方文档:https://helm.sh/docs/chart_best_practices/dependency/

如果您有多个子图表作为依赖项,您也可以使用 tags

© www.soinside.com 2019 - 2024. All rights reserved.