[我使用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 -}}
您继续使用在helpers.tpl
中创建的资源,并使用Deployment / service /任何资源,或者使用您在开始时发布的资源。
只是您helpers.tpl
中的评论在define "road-dashboard.labels"
中缺少app.kubernetes.io/name
和app.kubernetes.io/instance
时,您也应该在其中添加,否则选择器将不起作用
您也可以查看此文档以获取准则:https://github.com/helm/charts/blob/master/REVIEW_GUIDELINES.md#names-and-labels