如何将 helm 图表作为依赖项添加到我的图表中,但为它们提供自定义 values.yml?
How to add helm charts as dependencies to my chart, but provide them with custom values.yml?
我目前正在为我的全栈应用程序创建一个 helm chart,我想为它安装一个 nats helm chart 作为依赖项。我知道我可以将它添加为 Charts.yml 文件中的依赖项,但是如何为 nats 图表提供 Values.yml 以覆盖默认的 nats 图表值?我想要的是,当我为我的应用程序安装 helm 时,它还会安装 nats 依赖项,但使用自定义 values.yml.
chart.yml依赖部分
dependencies:
- name: nats
repository: "https://nats-io.github.io/k8s/helm/charts"
version: "0.11.0"
那我运行helm dependency upgrade
。这会在我的子图表下创建一个 .tgz,如下所示
我想覆盖 nats 图表中存在的默认值 values.yml。我尝试将以下内容添加到父级 values.yml 但它不起作用(取自 https://docs.nats.io/running-a-nats-service/introduction/running/nats-kubernetes/helm-charts#clustering)
nats:
cluster:
enabled: true
replicas: 5
tls:
secret:
name: nats-server-tls
ca: "ca.crt"
cert: "tls.crt"
key: "tls.key"
我需要解压图表才能使用吗?
这记录在 Helm website
覆盖父图表中的值
所以在您的顶级图表 values.yaml
中,使用这样的结构:
mysubchart: # this is dependent sub-chart
subchart-value-key: .... # this is key in subchart's values.yaml
更新
你的情况
nats:
cluster:
enabled: true
replicas: 5
如果我这样做 helm template .
,渲染的 statefullset 似乎正确地反映了值:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: RELEASE-NAME-nats
namespace: "default"
labels:
helm.sh/chart: nats-0.11.0
app.kubernetes.io/name: nats
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/version: "2.6.5"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: nats
app.kubernetes.io/instance: RELEASE-NAME
replicas: 5 # This value has been taken from values.yaml
那么到底是什么不起作用?
我目前正在为我的全栈应用程序创建一个 helm chart,我想为它安装一个 nats helm chart 作为依赖项。我知道我可以将它添加为 Charts.yml 文件中的依赖项,但是如何为 nats 图表提供 Values.yml 以覆盖默认的 nats 图表值?我想要的是,当我为我的应用程序安装 helm 时,它还会安装 nats 依赖项,但使用自定义 values.yml.
chart.yml依赖部分
dependencies:
- name: nats
repository: "https://nats-io.github.io/k8s/helm/charts"
version: "0.11.0"
那我运行helm dependency upgrade
。这会在我的子图表下创建一个 .tgz,如下所示
我想覆盖 nats 图表中存在的默认值 values.yml。我尝试将以下内容添加到父级 values.yml 但它不起作用(取自 https://docs.nats.io/running-a-nats-service/introduction/running/nats-kubernetes/helm-charts#clustering)
nats:
cluster:
enabled: true
replicas: 5
tls:
secret:
name: nats-server-tls
ca: "ca.crt"
cert: "tls.crt"
key: "tls.key"
我需要解压图表才能使用吗?
这记录在 Helm website
覆盖父图表中的值
所以在您的顶级图表 values.yaml
中,使用这样的结构:
mysubchart: # this is dependent sub-chart
subchart-value-key: .... # this is key in subchart's values.yaml
更新
你的情况
nats:
cluster:
enabled: true
replicas: 5
如果我这样做 helm template .
,渲染的 statefullset 似乎正确地反映了值:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: RELEASE-NAME-nats
namespace: "default"
labels:
helm.sh/chart: nats-0.11.0
app.kubernetes.io/name: nats
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/version: "2.6.5"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: nats
app.kubernetes.io/instance: RELEASE-NAME
replicas: 5 # This value has been taken from values.yaml
那么到底是什么不起作用?