Helm图表标签和选择器

问题描述 投票:0回答:1

[我使用Helm v3的helm create命令创建了一个Helm图表,并且为我创建了标准模板。由于我不熟悉Helm,所以在使用选择器和标签时有些困惑。

那么,应该如何在Deployment.yaml和services.yaml之间使用标签?

使用include-road-dashboard.labels命令已经执行了与下面相同的操作,或者我需要像下面的命令一样指定标签。对于{{ include "road-dashboard.selectorLabels" . }}命令,我的问题也相同。

更新的模板

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "road-dashboard.fullname" . }}
  labels:
    app.kubernetes.io/name: {{ include "road-dashboard.name" . }}
    helm.sh/chart: {{ include "road-dashboard.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}

头盔标准模板

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "road-dashboard.fullname" . }}
  labels:
    {{- include "road-dashboard.labels" . | nindent 4 }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      {{- include "road-dashboard.selectorLabels" . | nindent 6 }}
  template:
    metadata:
      labels:
        {{- include "road-dashboard.selectorLabels" . | nindent 8 }}
    spec:

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: {{ include "road-dashboard.fullname" . }}
  labels:
    {{- include "road-dashboard.labels" . | nindent 4 }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: http
      protocol: TCP
      name: http
  selector:
    {{- include "road-dashboard.selectorLabels" . | nindent 4 }}

-helpers.tpl

  {{/*
Common labels
*/}}
{{- define "road-dashboard.labels" -}}
helm.sh/chart: {{ include "road-dashboard.chart" . }}
{{ include "road-dashboard.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}

{{/*
Selector labels
*/}}
{{- define "road-dashboard.selectorLabels" -}}
app.kubernetes.io/name: {{ include "road-dashboard.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
kubernetes-helm
1个回答
0
投票

您继续使用在helpers.tpl中创建的资源,并使用Deployment / service /任何资源,或者使用您在开始时发布的资源。

只是您helpers.tpl中的评论在define "road-dashboard.labels"中缺少app.kubernetes.io/nameapp.kubernetes.io/instance时,您也应该在其中添加,否则选择器将不起作用

您也可以查看此文档以获取准则:https://github.com/helm/charts/blob/master/REVIEW_GUIDELINES.md#names-and-labels

© www.soinside.com 2019 - 2024. All rights reserved.