123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525 |
- {{/* vim: set filetype=mustache: */}}
- {{/*
- Expand the name of the chart.
- */}}
- {{- define "jaeger.name" -}}
- {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{/*
- Create a default fully qualified app name.
- We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
- If release name contains chart name it will be used as a full name.
- */}}
- {{- define "jaeger.fullname" -}}
- {{- if .Values.fullnameOverride -}}
- {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
- {{- else -}}
- {{- $name := default .Chart.Name .Values.nameOverride -}}
- {{- if contains $name .Release.Name -}}
- {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
- {{- else -}}
- {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Create chart name and version as used by the chart label.
- */}}
- {{- define "jaeger.chart" -}}
- {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{/*
- Create image tag value which defaults to .Chart.AppVersion.
- */}}
- {{- define "jaeger.image.tag" -}}
- {{- .Values.tag | default .Chart.AppVersion }}
- {{- end -}}
- {{/*
- Common labels
- */}}
- {{- define "jaeger.labels" -}}
- helm.sh/chart: {{ include "jaeger.chart" . }}
- {{ include "jaeger.selectorLabels" . }}
- {{- if .Chart.AppVersion }}
- app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
- {{- end }}
- app.kubernetes.io/managed-by: {{ .Release.Service }}
- {{- end -}}
- {{/*
- Selector labels
- */}}
- {{- define "jaeger.selectorLabels" -}}
- app.kubernetes.io/name: {{ include "jaeger.name" . }}
- app.kubernetes.io/instance: {{ .Release.Name }}
- {{- end -}}
- {{/*
- Create the name of the cassandra schema service account to use
- */}}
- {{- define "jaeger.cassandraSchema.serviceAccountName" -}}
- {{- if .Values.schema.serviceAccount.create -}}
- {{ default (printf "%s-cassandra-schema" (include "jaeger.fullname" .)) .Values.schema.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.schema.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the spark service account to use
- */}}
- {{- define "jaeger.spark.serviceAccountName" -}}
- {{- if .Values.spark.serviceAccount.create -}}
- {{ default (printf "%s-spark" (include "jaeger.fullname" .)) .Values.spark.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.spark.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the esIndexCleaner service account to use
- */}}
- {{- define "jaeger.esIndexCleaner.serviceAccountName" -}}
- {{- if .Values.esIndexCleaner.serviceAccount.create -}}
- {{ default (printf "%s-es-index-cleaner" (include "jaeger.fullname" .)) .Values.esIndexCleaner.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.esIndexCleaner.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the esRollover service account to use
- */}}
- {{- define "jaeger.esRollover.serviceAccountName" -}}
- {{- if .Values.esRollover.serviceAccount.create -}}
- {{ default (printf "%s-es-rollover" (include "jaeger.fullname" .)) .Values.esRollover.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.esRollover.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the esLookback service account to use
- */}}
- {{- define "jaeger.esLookback.serviceAccountName" -}}
- {{- if .Values.esLookback.serviceAccount.create -}}
- {{ default (printf "%s-es-lookback" (include "jaeger.fullname" .)) .Values.esLookback.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.esLookback.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the hotrod service account to use
- */}}
- {{- define "jaeger.hotrod.serviceAccountName" -}}
- {{- if .Values.hotrod.serviceAccount.create -}}
- {{ default (printf "%s-hotrod" (include "jaeger.fullname" .)) .Values.hotrod.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.hotrod.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the query service account to use
- */}}
- {{- define "jaeger.query.serviceAccountName" -}}
- {{- if .Values.query.serviceAccount.create -}}
- {{ default (include "jaeger.query.name" .) .Values.query.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.query.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the agent service account to use
- */}}
- {{- define "jaeger.agent.serviceAccountName" -}}
- {{- if .Values.agent.serviceAccount.create -}}
- {{ default (include "jaeger.agent.name" .) .Values.agent.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.agent.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the name of the collector service account to use
- */}}
- {{- define "jaeger.collector.serviceAccountName" -}}
- {{- if .Values.collector.serviceAccount.create -}}
- {{ default (include "jaeger.collector.name" .) .Values.collector.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.collector.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create the collector ingress host
- */}}
- {{- define "jaeger.collector.ingressHost" -}}
- {{- if (kindIs "string" .) }}
- {{- . }}
- {{- else }}
- {{- .host }}
- {{- end }}
- {{- end -}}
- {{/*
- Create the collector ingress servicePort
- */}}
- {{- define "jaeger.collector.ingressServicePort" -}}
- {{- if (kindIs "string" .context) }}
- {{- .defaultServicePort }}
- {{- else }}
- {{- .context.servicePort }}
- {{- end }}
- {{- end -}}
- {{/*
- Create the name of the ingester service account to use
- */}}
- {{- define "jaeger.ingester.serviceAccountName" -}}
- {{- if .Values.ingester.serviceAccount.create -}}
- {{ default (include "jaeger.ingester.name" .) .Values.ingester.serviceAccount.name }}
- {{- else -}}
- {{ default "default" .Values.ingester.serviceAccount.name }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create a fully qualified query name.
- We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
- */}}
- {{- define "jaeger.query.name" -}}
- {{- $nameGlobalOverride := printf "%s-query" (include "jaeger.fullname" .) -}}
- {{- if .Values.query.fullnameOverride -}}
- {{- printf "%s" .Values.query.fullnameOverride | trunc 63 | trimSuffix "-" -}}
- {{- else -}}
- {{- printf "%s" $nameGlobalOverride | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Create a fully qualified agent name.
- We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
- */}}
- {{- define "jaeger.agent.name" -}}
- {{- $nameGlobalOverride := printf "%s-agent" (include "jaeger.fullname" .) -}}
- {{- if .Values.agent.fullnameOverride -}}
- {{- printf "%s" .Values.agent.fullnameOverride | trunc 63 | trimSuffix "-" -}}
- {{- else -}}
- {{- printf "%s" $nameGlobalOverride | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Create a fully qualified collector name.
- We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
- */}}
- {{- define "jaeger.collector.name" -}}
- {{- $nameGlobalOverride := printf "%s-collector" (include "jaeger.fullname" .) -}}
- {{- if .Values.collector.fullnameOverride -}}
- {{- printf "%s" .Values.collector.fullnameOverride | trunc 63 | trimSuffix "-" -}}
- {{- else -}}
- {{- printf "%s" $nameGlobalOverride | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Create a fully qualified ingester name.
- We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
- */}}
- {{- define "jaeger.ingester.name" -}}
- {{- $nameGlobalOverride := printf "%s-ingester" (include "jaeger.fullname" .) -}}
- {{- if .Values.ingester.fullnameOverride -}}
- {{- printf "%s" .Values.ingester.fullnameOverride | trunc 63 | trimSuffix "-" -}}
- {{- else -}}
- {{- printf "%s" $nameGlobalOverride | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{- end -}}
- {{- define "cassandra.host" -}}
- {{- if .Values.provisionDataStore.cassandra -}}
- {{- if .Values.storage.cassandra.nameOverride }}
- {{- printf "%s" .Values.storage.cassandra.nameOverride | trunc 63 | trimSuffix "-" }}
- {{- else }}
- {{- printf "%s-%s" .Release.Name "cassandra" | trunc 63 | trimSuffix "-" -}}
- {{- end -}}
- {{- else }}
- {{- .Values.storage.cassandra.host }}
- {{- end -}}
- {{- end -}}
- {{- define "cassandra.contact_points" -}}
- {{- $port := .Values.storage.cassandra.port | toString }}
- {{- if .Values.provisionDataStore.cassandra -}}
- {{- if .Values.storage.cassandra.nameOverride }}
- {{- $host := printf "%s" .Values.storage.cassandra.nameOverride | trunc 63 | trimSuffix "-" -}}
- {{- printf "%s:%s" $host $port }}
- {{- else }}
- {{- $host := printf "%s-%s" .Release.Name "cassandra" | trunc 63 | trimSuffix "-" -}}
- {{- printf "%s:%s" $host $port }}
- {{- end -}}
- {{- else }}
- {{- printf "%s:%s" .Values.storage.cassandra.host $port }}
- {{- end -}}
- {{- end -}}
- {{/*
- Create a default fully qualified app name.
- We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
- */}}
- {{- define "elasticsearch.client.url" -}}
- {{- $port := .Values.storage.elasticsearch.port | toString -}}
- {{- printf "%s://%s:%s" .Values.storage.elasticsearch.scheme .Values.storage.elasticsearch.host $port }}
- {{- end -}}
- {{- define "jaeger.hotrod.tracing.host" -}}
- {{- default (include "jaeger.agent.name" .) .Values.hotrod.tracing.host -}}
- {{- end -}}
- {{/*
- Configure list of IP CIDRs allowed access to load balancer (if supported)
- */}}
- {{- define "loadBalancerSourceRanges" -}}
- {{- if .service.loadBalancerSourceRanges }}
- loadBalancerSourceRanges:
- {{- range $cidr := .service.loadBalancerSourceRanges }}
- - {{ $cidr }}
- {{- end }}
- {{- end }}
- {{- end -}}
- {{- define "helm-toolkit.utils.joinListWithComma" -}}
- {{- $local := dict "first" true -}}
- {{- range $k, $v := . -}}{{- if not $local.first -}},{{- end -}}{{- $v -}}{{- $_ := set $local "first" false -}}{{- end -}}
- {{- end -}}
- {{/*
- Cassandra related environment variables
- */}}
- {{- define "cassandra.env" -}}
- - name: CASSANDRA_SERVERS
- value: {{ include "cassandra.host" . }}
- - name: CASSANDRA_PORT
- value: {{ .Values.storage.cassandra.port | quote }}
- {{ if .Values.storage.cassandra.tls.enabled }}
- - name: CASSANDRA_TLS_ENABLED
- value: "true"
- - name: CASSANDRA_TLS_SERVER_NAME
- valueFrom:
- secretKeyRef:
- name: {{ .Values.storage.cassandra.tls.secretName }}
- key: commonName
- - name: CASSANDRA_TLS_KEY
- value: "/cassandra-tls/client-key.pem"
- - name: CASSANDRA_TLS_CERT
- value: "/cassandra-tls/client-cert.pem"
- - name: CASSANDRA_TLS_CA
- value: "/cassandra-tls/ca-cert.pem"
- {{- end }}
- {{- if .Values.storage.cassandra.keyspace }}
- - name: CASSANDRA_KEYSPACE
- value: {{ .Values.storage.cassandra.keyspace }}
- {{- end }}
- - name: CASSANDRA_USERNAME
- value: {{ .Values.storage.cassandra.user }}
- - name: CASSANDRA_PASSWORD
- valueFrom:
- secretKeyRef:
- name: {{ if .Values.storage.cassandra.existingSecret }}{{ .Values.storage.cassandra.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-cassandra{{- end }}
- key: password
- {{- range $key, $value := .Values.storage.cassandra.env }}
- - name: {{ $key | quote }}
- value: {{ $value | quote }}
- {{ end -}}
- {{- if .Values.storage.cassandra.extraEnv }}
- {{ toYaml .Values.storage.cassandra.extraEnv }}
- {{- end }}
- {{- end -}}
- {{/*
- Elasticsearch related environment variables
- */}}
- {{- define "elasticsearch.env" -}}
- - name: ES_SERVER_URLS
- value: {{ include "elasticsearch.client.url" . }}
- {{- if not .Values.storage.elasticsearch.anonymous }}
- - name: ES_USERNAME
- value: {{ .Values.storage.elasticsearch.user }}
- {{- end }}
- {{- if .Values.storage.elasticsearch.usePassword }}
- - name: ES_PASSWORD
- valueFrom:
- secretKeyRef:
- name: {{ if .Values.storage.elasticsearch.existingSecret }}{{ .Values.storage.elasticsearch.existingSecret }}{{- else }}{{ include "jaeger.fullname" . }}-elasticsearch{{- end }}
- key: {{ default "password" .Values.storage.elasticsearch.existingSecretKey }}
- {{- end }}
- {{- if .Values.storage.elasticsearch.tls.enabled }}
- - name: ES_TLS_ENABLED
- value: "true"
- - name: ES_TLS_CA
- value: /es-tls/ca-cert.pem
- {{- end }}
- {{- if .Values.storage.elasticsearch.indexPrefix }}
- - name: ES_INDEX_PREFIX
- value: {{ .Values.storage.elasticsearch.indexPrefix }}
- {{- end }}
- {{- range $key, $value := .Values.storage.elasticsearch.env }}
- - name: {{ $key | quote }}
- value: {{ $value | quote }}
- {{ end -}}
- {{- if .Values.storage.elasticsearch.extraEnv }}
- {{ toYaml .Values.storage.elasticsearch.extraEnv }}
- {{- end }}
- {{- end -}}
- {{/*
- grpcPlugin related environment variables
- */}}
- {{- define "grpcPlugin.env" -}}
- {{- if .Values.storage.grpcPlugin.extraEnv }}
- {{- toYaml .Values.storage.grpcPlugin.extraEnv }}
- {{- end }}
- {{- end -}}
- {{/*
- Cassandra, Elasticsearch, or grpc-plugin related environment variables depending on which is used
- */}}
- {{- define "storage.env" -}}
- {{- if eq .Values.storage.type "cassandra" -}}
- {{ include "cassandra.env" . }}
- {{- else if eq .Values.storage.type "elasticsearch" -}}
- {{ include "elasticsearch.env" . }}
- {{- else if eq .Values.storage.type "grpc-plugin" -}}
- {{ include "grpcPlugin.env" . }}
- {{- end -}}
- {{- end -}}
- {{/*
- Cassandra related command line options
- */}}
- {{- define "cassandra.cmdArgs" -}}
- {{- range $key, $value := .Values.storage.cassandra.cmdlineParams -}}
- {{- if $value }}
- - --{{ $key }}={{ $value }}
- {{- else }}
- - --{{ $key }}
- {{- end -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Elasticsearch related command line options
- */}}
- {{- define "elasticsearch.cmdArgs" -}}
- {{- range $key, $value := .Values.storage.elasticsearch.cmdlineParams -}}
- {{- if $value }}
- - --{{ $key }}={{ $value }}
- {{- else }}
- - --{{ $key }}
- {{- end -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Cassandra or Elasticsearch related command line options depending on which is used
- */}}
- {{- define "storage.cmdArgs" -}}
- {{- if eq .Values.storage.type "cassandra" -}}
- {{- include "cassandra.cmdArgs" . -}}
- {{- else if eq .Values.storage.type "elasticsearch" -}}
- {{- include "elasticsearch.cmdArgs" . -}}
- {{- end -}}
- {{- end -}}
- {{/*
- Add extra argument to the command line options
- Usage:
- {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.collector.cmdlineParams ) | nindent 10 }}
- */}}
- {{- define "extra.cmdArgs" -}}
- {{- range $key, $value := .cmdlineParams -}}
- {{- if $value }}
- - --{{ $key }}={{ $value }}
- {{- else }}
- - --{{ $key }}
- {{- end }}
- {{- end -}}
- {{- end -}}
- {{/*
- Provides a basic ingress network policy
- */}}
- {{- define "jaeger.ingress.networkPolicy" -}}
- apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
- kind: NetworkPolicy
- metadata:
- name: {{ printf "%s-ingress" .Name }}
- namespace: {{ .Release.Namespace }}
- labels:
- app.kubernetes.io/component: {{ .Component }}
- {{- include "jaeger.labels" . | nindent 4 }}
- spec:
- podSelector:
- matchLabels:
- app.kubernetes.io/component: {{ .Component }}
- policyTypes:
- - Ingress
- ingress:
- {{- if or .ComponentValues.networkPolicy.ingressRules.namespaceSelector .ComponentValues.networkPolicy.ingressRules.podSelector }}
- - from:
- {{- if .ComponentValues.networkPolicy.ingressRules.namespaceSelector }}
- - namespaceSelector:
- matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.ingressRules.namespaceSelector "context" $) | nindent 10 }}
- {{- end }}
- {{- if .ComponentValues.networkPolicy.ingressRules.podSelector }}
- - podSelector:
- matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.ingressRules.podSelector "context" $) | nindent 10 }}
- {{- end }}
- {{- end }}
- {{- if .ComponentValues.networkPolicy.ingressRules.customRules }}
- {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.ingressRules.customRules "context" $) | nindent 2 }}
- {{- end }}
- {{- end -}}
- {{/*
- Provides a basic egress network policy
- */}}
- {{- define "jaeger.egress.networkPolicy" -}}
- apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
- kind: NetworkPolicy
- metadata:
- name: {{ printf "%s-egress" .Name }}
- namespace: {{ .Release.Namespace }}
- labels:
- app.kubernetes.io/component: {{ .Component }}
- {{- include "jaeger.labels" . | nindent 4 }}
- spec:
- podSelector:
- matchLabels:
- app.kubernetes.io/component: {{ .Component }}
- policyTypes:
- - Egress
- egress:
- {{- if or .ComponentValues.networkPolicy.egressRules.namespaceSelector .ComponentValues.networkPolicy.egressRules.podSelector }}
- - to:
- {{- if .ComponentValues.networkPolicy.egressRules.namespaceSelector }}
- - namespaceSelector:
- matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.egressRules.namespaceSelector "context" $) | nindent 10 }}
- {{- end }}
- {{- if .ComponentValues.networkPolicy.egressRules.podSelector }}
- - podSelector:
- matchLabels: {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.egressRules.podSelector "context" $) | nindent 10 }}
- {{- end }}
- {{- end }}
- {{- if .ComponentValues.networkPolicy.egressRules.customRules }}
- {{- include "common.tplvalues.render" (dict "value" .ComponentValues.networkPolicy.egressRules.customRules "context" $) | nindent 2 }}
- {{- end }}
- {{- end -}}
|