我知道这可能是一个奇怪的问题,但我想问是否可以在没有单独图表的情况下管理单个资源(例如配置映射/秘密)?
F.e.我尝试安装 nginx-ingress,并想另外应用一个包含 http-basic-authentication 数据的秘密映射。
我可以直接在我的 helmfile 中引用 nginx-ingress-repo,但是我真的需要创建一个单独的 helm 图表来应用 http-basic-secret 吗?
我有许多版本需要单个附加资源(例如 json 配置映射、单个秘密),并且每个版本始终需要单独的图表文件会很麻烦吗?
谢谢!
抱歉,Helmfile 仅管理整个 Helm 版本。
您可以使用几个逃生舱口。 Helmfile hooks 可以在主机上运行任意 shell 命令(与通常在集群中运行作业的 Helm hook 不同),因此原则上您可以
kubectl apply
挂钩中的文件。 Helmfile 还与 Kustomize 进行了一些集成,并且可以通过这种方式添加资源。 正如您所注意到的,您还可以编写本地图表并将您需要的任何 YAML 放入其中。
偶尔的图表支持包含任意额外资源或特定配置内容; Bitnami MariaDB 图表,选择一个,支持将您想要的任何内容放在 extraDeploy
值下。 您可以将其与 Helmfile
values:
结合使用来注入更多资源
releases:
- name: mariadb
chart: bitnami/mariadb
values:
- extraDeploy:
- |-
apiVersion: v1
kind: ConfigMap
...
extraObjects
的图表部署额外的对象,您还可以部署类似
sysbee/kubedeploy
图表的内容。举个例子
helmfile.yaml
releases:
- name: extra
namespace: extra-namespace
chart: "sysbee/kubedeploy"
version: ^1.2.1
values:
- extra.yaml
以及 extra.yaml
值文件
deploymentMode: None
serviceAccount:
create: false
service:
enabled: false
extraObjects:
- apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: ip-pool
namespace: extra-namespace
spec:
addresses:
- 10.1.0.0/16
autoAssign: true
avoidBuggyIPs: false
确保包含 deploymentMode: None
,并禁用服务帐户和服务。然后图表将除了您的
extraObjects
之外绝对不会部署任何其他内容。