kubernetes 我如何重新命名一个 Helm 图表一旦创建?

cld4siwp  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(3)|浏览(202)

我已经用helm create abc命令创建了一个名为“abc”的Helm图表,现在当我安装这个图表时,所有创建的kuberenets资源都将有一个包含“abc”的名称。
现在我必须将图表“abc”重命名为“xyz”。如果我使用helm install --name xyz ./abc,则只将图表名称更改为xyz。它里面的资源仍然是“abc”。
我需要重命名整个图表(及其资源)。我还有别的选择吗?

gg0vcinb

gg0vcinb1#

这个问题我遇到过很多次,我找到了最简单的解决办法。只需两步:
1.查找并替换图表文件中的名称。
1.重命名图表目录名
如果您的图表名称非常独特,则非常简单。
默认情况下,文件中使用图表名称:Chart.yaml,templates_helpers.tpl

laawzig2

laawzig22#

这里提到的方法似乎更好:https://engineering.salesforce.com/how-to-rename-a-helm-release-6fdcd7526ac7/
总而言之,您最终会孤立这些资源,然后在IIUC中重新采用它们。请注意,降价有点不合理,有趣的是,这篇文章实际上提到了这个问题。
如果Helm的人在这里发布了一个最佳实践,那就太好了:https://helm.sh/docs/howto/charts_tips_and_tricks/

p5fdfcr1

p5fdfcr13#

您可以使用{{ .Release.Name }}访问xyz,并且需要使用{{ .Release.Name }}更新资源名称,以便每次都动态地获取名称:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}
  labels:
    app.kubernetes.io/name: {{ .Values.app.dbName }}
    app.kubernetes.io/instance: {{ .Release.Name }}
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: {{ .Values.app.dbName }}
      app.kubernetes.io/instance: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app.kubernetes.io/name: {{ .Values.app.dbName }}
        app.kubernetes.io/instance: {{ .Release.Name }}
    spec:
      containers:
        - image: mysql:5.6
          name: "{{ .Release.Name }}-mysql" // or just {{ .Release.Name }}

相关问题