部署舵图时是否可以为服务添加标签?

is it possible to add lables for services when deploying helm charts?

我正在尝试在 bitnami helm chart 的帮助下部署 mysql 服务器。

该图表似乎创建了两个服务(mysql 和 mysql-headless),我想为 mysql-headless

添加一个唯一的标签

使用 kubectl 如下所示:

kubectl label service mysql-headless consul.hashicorp.com/service-ignore="true"

我曾尝试将 podLables 更改为 values.ymal,但没有成功。添加 commonLabels 确实有效,但随后它被添加到两个服务中。

values.yml

commonLabels: { "consul.hashicorp.com/service-ignore": "true" }

secondary:
  podAntiAffinityPreset: hard
  podLabels: { "consul.hashicorp.com/service-ignore": "true" }

是否可以通过编辑 helm chart 的值文件来实现此目的?

请注意,我正在使用 terraform 部署图表。

resource "helm_release" "mysql" {

  name          = "mysql"
  repository    = "https://charts.bitnami.com/bitnami"
  chart         = "mysql"
  version       = "9.1.2"
  values        = [file("${path.module}/helm/values.yml")]
  namespace     = var.namespace
  recreate_pods = true

}

如果您实际查看 Helm template for the headless service 它只有标准标签和 .Values.commonLabels

  labels: {{- include "common.labels.standard" . | nindent 4 }}
    app.kubernetes.io/component: primary
    {{- if .Values.commonLabels }}
    {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
    {{- end }}

因此,如果不修改图表或使用 post renderer,则无法为无头服务而非主要服务设置标签。