added repo
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $name := include "vm.name" $ctx }}
|
||||
{{- $release := include "vm.release" $ctx }}
|
||||
{{- if .Values.route.enabled }}
|
||||
{{- if .Values.route.hostnames }}
|
||||
export APP_HOSTNAME={{ .Values.route.hostnames | first }}
|
||||
{{- else }}
|
||||
export APP_HOSTNAME=$(kubectl get --namespace {{(first .Values.route.parentRefs).namespace | default $ns }} gateway/{{ (first .Values.route.parentRefs).name }} -o jsonpath="{.spec.listeners[?(@.name=='{{ (first .Values.route.parentRefs).sectionName | default "http" }}')].hostname}")
|
||||
{{- end }}
|
||||
{{- if and .Values.route.rules (first .Values.route.rules).matches (first (first .Values.route.rules).matches).path.value }}
|
||||
echo "Visit http://$APP_HOSTNAME{{ (first (first .Values.route.rules).matches).path.value }} to use your application"
|
||||
|
||||
NOTE: Your HTTPRoute depends on the listener configuration of your gateway and your HTTPRoute rules.
|
||||
The rules can be set for path, method, header and query parameters.
|
||||
You can check the gateway configuration with 'kubectl get --namespace {{(first .Values.route.parentRefs).namespace | default $ns }} gateway/{{ (first .Values.route.parentRefs).name }} -o yaml'
|
||||
{{- end }}
|
||||
{{- else if .Values.ingress.enabled }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ $ns }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "vm.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ $ns }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch its status by running 'kubectl get --namespace {{ $ns }} svc -w {{ $fullname }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ $ns }} {{ $fullname }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ $ns }} -l "app.kubernetes.io/name={{ $name }},app.kubernetes.io/instance={{ $release }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
export CONTAINER_PORT=$(kubectl get pod --namespace {{ $ns }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl --namespace {{ $ns }} port-forward $POD_NAME 8080:$CONTAINER_PORT
|
||||
{{- end }}
|
||||
@@ -0,0 +1,123 @@
|
||||
{{- if eq .Values.mcp.mode "stdio" }}
|
||||
{{- fail "mcp.mode=stdio is not supported in Kubernetes deployments. Use 'sse' or 'http' instead." }}
|
||||
{{- end }}
|
||||
{{- $isCloud := gt (len .Values.vm.cloudAPIKey) 0 }}
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $sa := include "vm.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ $fullname }}
|
||||
namespace: {{ $ns }}
|
||||
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels: {{ include "vm.selectorLabels" $ctx | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "vm.labels" . | nindent 8 }}
|
||||
{{- with .Values.podLabels }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if (.Values.serviceAccount).create }}
|
||||
serviceAccountName: {{ tpl ((.Values.serviceAccount).name | default $sa) $ctx }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
|
||||
{{- end }}
|
||||
{{- with .Values.podSecurityContext }}
|
||||
securityContext: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
{{- with .Values.securityContext }}
|
||||
securityContext: {{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- $repo := .Values.image.repository }}
|
||||
{{- with .Values.image.registry }}
|
||||
{{- $repo = printf "%s/%s" . $repo }}
|
||||
{{- end }}
|
||||
image: "{{ $repo }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
- name: MCP_LISTEN_ADDR
|
||||
value: "0.0.0.0:{{ .Values.service.port }}"
|
||||
- name: MCP_SERVER_MODE
|
||||
value: "{{ .Values.mcp.mode }}"
|
||||
{{- if $isCloud }}
|
||||
- name: VMC_API_KEY
|
||||
value: "{{ .Values.vm.cloudAPIKey }}"
|
||||
{{- else }}
|
||||
- name: VM_INSTANCE_ENTRYPOINT
|
||||
value: "{{ required "either .Values.vm.cloudAPIKey or .Values.vm.entrypoint should be set" .Values.vm.entrypoint }}"
|
||||
- name: VM_INSTANCE_TYPE
|
||||
value: "{{ .Values.vm.type }}"
|
||||
{{- with .Values.vm.bearerToken }}
|
||||
- name: VM_INSTANCE_BEARER_TOKEN
|
||||
{{- if kindIs "map" . }}
|
||||
valueFrom: {{ toYaml . | nindent 16 }}
|
||||
{{- else }}
|
||||
value: "{{ . }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.vm.headers }}
|
||||
- name: VM_INSTANCE_HEADERS
|
||||
value: "{{ join "," . }}"
|
||||
{{- end }}
|
||||
{{- with .Values.mcp.passthroughHeaders }}
|
||||
- name: MCP_PASSTHROUGH_HEADERS
|
||||
value: "{{ join "," . }}"
|
||||
{{- end }}
|
||||
{{- with .Values.mcp.disable.resources }}
|
||||
- name: MCP_DISABLE_RESOURCES
|
||||
value: "{{ . }}"
|
||||
{{- end }}
|
||||
{{- with .Values.mcp.disable.tools }}
|
||||
- name: MCP_DISABLED_TOOLS
|
||||
value: "{{ join "," . }}"
|
||||
{{- end }}
|
||||
{{- with .Values.mcp.heartbeatInterval }}
|
||||
- name: MCP_HEARTBEAT_INTERVAL
|
||||
value: "{{ . }}"
|
||||
{{- end }}
|
||||
{{- with .Values.env }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ .Values.service.port }}
|
||||
protocol: TCP
|
||||
{{- with .Values.livenessProbe }}
|
||||
livenessProbe: {{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.readinessProbe }}
|
||||
readinessProbe: {{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.resources }}
|
||||
resources: {{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumeMounts }}
|
||||
volumeMounts: {{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumes }}
|
||||
volumes: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,23 @@
|
||||
{{- if .Values.externalSecrets -}}
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.plain.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: {{ $fullname }}-secret
|
||||
namespace: "{{ $ns }}"
|
||||
spec:
|
||||
refreshInterval: {{ .Values.externalSecrets.refreshInterval }}
|
||||
secretStoreRef:
|
||||
name: {{ .Values.externalSecrets.secretStoreRef.name }}
|
||||
kind: {{ .Values.externalSecrets.secretStoreRef.kind }}
|
||||
target:
|
||||
creationPolicy: Owner
|
||||
deletionPolicy: Retain
|
||||
name: {{ $fullname }}-secret
|
||||
dataFrom:
|
||||
- extract:
|
||||
conversionStrategy: Default
|
||||
key: {{ .Values.externalSecrets.dataFrom.secretKey }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,141 @@
|
||||
{{- if .Values.httpProxy.enabled -}}
|
||||
{{- if .Values.createContourGateway -}}
|
||||
{{- if or ( eq "contour-internal" .Values.ingress.ingressClassName ) ( eq "contour-external" .Values.ingress.ingressClassName ) ( eq "contour-internal-0" .Values.ingress.ingressClassName ) ( eq "contour-internal-1" .Values.ingress.ingressClassName ) ( eq "contour-external-0" .Values.ingress.ingressClassName ) ( eq "contour-external-1" .Values.ingress.ingressClassName ) }}
|
||||
{{- $ctx := dict "helm" . -}}
|
||||
{{- $fullname := include "vm.fullname" $ctx -}}
|
||||
{{- $servicePortNumber := .Values.ingress.servicePortNumber | default 8080 -}}
|
||||
{{- $namespace := .Release.Namespace -}}
|
||||
{{- $ingressClassName := .Values.ingress.ingressClassName -}}
|
||||
{{ $count := 0 | int }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
apiVersion: projectcontour.io/v1
|
||||
kind: HTTPProxy
|
||||
metadata:
|
||||
namespace: {{ $namespace }}
|
||||
name: {{ $fullname }}-{{ $count }}
|
||||
labels:
|
||||
{{- include "vm.labels" (dict "helm" $) | nindent 4 }}
|
||||
annotations:
|
||||
projectcontour.io/ingress.class: {{ $.Values.ingress.ingressClassName }}
|
||||
spec:
|
||||
ingressClassName: {{ $ingressClassName }}
|
||||
virtualhost:
|
||||
fqdn: "{{ .host }}"
|
||||
|
||||
{{- /* 1) Weighted paths render here as routes with services */}}
|
||||
routes:
|
||||
{{- range .paths }}
|
||||
{{- if hasKey . "backends" }}
|
||||
- conditions:
|
||||
{{- if or ( eq ( lower .pathType ) "prefix" ) ( eq ( lower .pathType ) "implementationspecific") }}
|
||||
- prefix: {{ .path }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "exact" ) }}
|
||||
- exact: {{ .path }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "regex" ) }}
|
||||
- regex: {{ .path }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "header" ) }}
|
||||
- header:
|
||||
name: {{ (split "___" .path)._0 }}
|
||||
{{ (split "___" .path)._1 }}: {{ (split "___" .path)._2 }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "prefixheader" ) }}
|
||||
- prefix: {{ (split "___" .path)._0 }}
|
||||
- header:
|
||||
name: {{ (split "___" .path)._1 }}
|
||||
{{ (split "___" .path)._2 }}: {{ (split "___" .path)._3 }}
|
||||
{{- end }}
|
||||
services:
|
||||
{{ range .backends }}
|
||||
{{- $svc := .service -}}
|
||||
{{- $hasSlash := contains "/" $svc -}}
|
||||
{{- $svcName := ternary (split "/" $svc)._1 $svc $hasSlash -}}
|
||||
{{- $targetNs := ternary .namespace (ternary (split "/" $svc)._0 $.Release.Namespace $hasSlash) (hasKey . "namespace") -}}
|
||||
{{- $useAlias := ne $targetNs $.Release.Namespace -}}
|
||||
{{- $aliasName := printf "%s-xns-%s" $svcName $targetNs | trunc 63 | trimSuffix "-" -}}
|
||||
- name: {{ ternary $aliasName $svcName $useAlias }}
|
||||
port: {{ $servicePortNumber }}
|
||||
{{- if .weight }}
|
||||
weight: {{ .weight }}
|
||||
{{- end }}
|
||||
{{- if $.Values.ingress.slowStart.enabled }}
|
||||
slowStartPolicy:
|
||||
window: {{ $.Values.ingress.slowStart.window }}
|
||||
aggression: {{ $.Values.ingress.slowStart.aggression | float64 | squote }}
|
||||
minWeightPercent: {{ $.Values.ingress.slowStart.minPercent }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* 2) Non-weighted paths keep using includes to your upstreams */}}
|
||||
includes:
|
||||
{{- range .paths }}
|
||||
{{- if not (hasKey . "backends") }}
|
||||
- conditions:
|
||||
{{- if or ( eq ( lower .pathType ) "prefix" ) ( eq ( lower .pathType ) "implementationspecific") }}
|
||||
- prefix: {{ .path }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "exact" ) }}
|
||||
- exact: {{ .path }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "regex" ) }}
|
||||
- regex: {{ .path }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "header" ) }}
|
||||
- header:
|
||||
name: {{ (split "___" .path)._0 }}
|
||||
{{ (split "___" .path)._1 }}: {{ (split "___" .path)._2 }}
|
||||
{{- end }}
|
||||
{{- if ( eq ( lower .pathType ) "prefixheader" ) }}
|
||||
- prefix: {{ (split "___" .path)._0 }}
|
||||
- header:
|
||||
name: {{ (split "___" .path)._1 }}
|
||||
{{ (split "___" .path)._2 }}: {{ (split "___" .path)._3 }}
|
||||
{{- end }}
|
||||
{{- if .targetService }}
|
||||
name: {{ .targetService | replace "/" "-" }}
|
||||
namespace: {{ (split "/" .targetService)._0 }}
|
||||
{{- else }}
|
||||
name: {{ $fullname }}
|
||||
namespace: {{ $namespace }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
{{ $count = add1 $count }}
|
||||
{{- /* Child HTTPProxy - routes with services */}}
|
||||
apiVersion: projectcontour.io/v1
|
||||
kind: HTTPProxy
|
||||
metadata:
|
||||
namespace: {{ $namespace }}
|
||||
name: {{ $fullname }}
|
||||
labels:
|
||||
{{- include "vm.labels" (dict "helm" $) | nindent 4 }}
|
||||
annotations:
|
||||
projectcontour.io/ingress.class: {{ $ingressClassName }}
|
||||
spec:
|
||||
ingressClassName: {{ $ingressClassName }}
|
||||
routes:
|
||||
- services:
|
||||
- name: {{ $fullname }}
|
||||
port: {{ $servicePortNumber }}
|
||||
{{- if $.Values.ingress.slowStart.enabled }}
|
||||
slowStartPolicy:
|
||||
window: {{ $.Values.ingress.slowStart.window }}
|
||||
aggression: {{ $.Values.ingress.slowStart.aggression | float64 | squote }}
|
||||
minWeightPercent: {{ $.Values.ingress.slowStart.minPercent }}
|
||||
{{- end }}
|
||||
{{- if $.Values.ingress.enableWebsocket }}
|
||||
enableWebsockets: true
|
||||
{{- end }}
|
||||
{{- if $.Values.contourResponseTimeout }}
|
||||
timeoutPolicy:
|
||||
response: {{ $.Values.contourResponseTimeout }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,44 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullname }}
|
||||
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations: {{ toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.ingress.className }}
|
||||
ingressClassName: {{ . }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ .path }}
|
||||
{{- with .pathType }}
|
||||
pathType: {{ . }}
|
||||
{{- end }}
|
||||
backend:
|
||||
service:
|
||||
name: {{ $fullname }}
|
||||
port:
|
||||
number: {{ $.Values.service.port }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,36 @@
|
||||
{{- if .Values.route.enabled -}}
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: {{ $fullname }}
|
||||
namespace: {{ $ns }}
|
||||
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
||||
{{- with .Values.route.annotations }}
|
||||
annotations: {{ toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
parentRefs:
|
||||
{{- with .Values.route.parentRefs }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.route.hostnames }}
|
||||
hostnames: {{ toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.route.rules }}
|
||||
- backendRefs:
|
||||
- name: {{ $fullname }}
|
||||
port: {{ $svcPort }}
|
||||
weight: 1
|
||||
{{- with .matches }}
|
||||
matches: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .filters }}
|
||||
filters: {{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,21 @@
|
||||
{{- if .Values.scrape.enabled }}
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
---
|
||||
apiVersion: operator.victoriametrics.com/v1beta1
|
||||
kind: VMServiceScrape
|
||||
metadata:
|
||||
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
||||
name: {{ $fullname }}
|
||||
namespace: {{ $ns }}
|
||||
spec:
|
||||
endpoints:
|
||||
- path: /metrics
|
||||
port: http
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ include "vm.release" $ctx }}
|
||||
selector:
|
||||
matchLabels: {{ include "vm.labels" $ctx | nindent 6 }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,17 @@
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ $fullname }}
|
||||
namespace: {{ $ns }}
|
||||
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector: {{ include "vm.selectorLabels" $ctx | nindent 4 }}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{- $ctx := dict "helm" . }}
|
||||
{{- $fullname := include "vm.fullname" $ctx }}
|
||||
{{- $ns := include "vm.namespace" $ctx }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ tpl ((.Values.serviceAccount).name | default $fullname) $ctx }}
|
||||
namespace: {{ $ns }}
|
||||
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user