0

我是 helm 新手,喜欢 helm 为部署创建版本并将它们打包为 jfrog articatory 中的工件的想法,但我不清楚的一件事是创建它的容易性。

我对 kubernetes mainfest 很满意,并且创建它非常简单,您不必手工制作 yaml。

您可以简单地在空运行模式下运行 kubectl 命令并导出大部分 yaml 标签,如下所示:

kubectl run nginx --image=nginx --dry-run=client -o yaml > nginx-manifest.yaml

现在为了创建 helm,我需要运行helm create并键入 helm yaml 文件所需的所有值。

好奇 helm 是否具有 kubectl 提供的快捷方式来轻松创建图表,在生成图表时通过命令行键入所需的值?

还有一个迁移实用程序支持将部署清单转换为掌舵图吗?

4

1 回答 1

2

helm create做你正在寻找的东西。它创建一个包含所有基本内容的目录,因此您无需手动创建每个文件/目录。但是,它无法创建它不知道的图表的内容。

但是,幕后没有魔法,图表包含模板和值。模板与您使用的 YAML 文件相同,只是您可以用 Helm 使用的占位符替换您想要“动态”的任何内容。而已。

因此,换句话说,只需按原样继续导出(我强烈建议停止这样做并创建适合您需要的适当文件)并添加占位符 ( {{ .Values.foo }})

例如,这是我拥有的服务的模板:

apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.name | default .Chart.Name }}
spec:
  ports:
  - port: {{ .Values.port }}
    protocol: TCP
    targetPort: {{ .Values.port }}
  selector:
    app: {{ .Values.name | default .Chart.Name }}
于 2021-01-28T21:25:55.430 回答