diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..082b1943 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "makefile.configureOnOpen": false +} \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 668d9f69..82b31f8c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,23 +3,28 @@ Follow these steps whenever you modify the charts. Keep answers concise and actionable. ## Always do + - Use supported, security-patched chart versions. Verify availability with `helm search repo --versions` before pinning. +- All commits must be signed off (DCO). Use `git commit -s`. - Update dependencies in `charts/jaeger/Chart.yaml`, then run `helm dependency update charts/jaeger` to vendor them. - Bump `version` in `charts/jaeger/Chart.yaml` for any functional change (deps, templates, values, docs that affect behavior). Only change `appVersion` when updating the Jaeger image. - Keep Bitnami `common` unless you also replace all `common.*` helpers in templates. - Run `helm lint charts/jaeger` after changes; add `helm template ...` if you touched templates or defaults. ## Dependency specifics + - Elasticsearch: use `elastic/elasticsearch`; pin the latest safe patch; confirm with search before setting the version. - Kafka: use `strimzi/strimzi-kafka-operator`; remember this installs the operator only—Kafka clusters require separate CRs. - Avoid archived repos; replace incubator deps when possible. ## Docs and values + - Update `charts/jaeger/values.yaml` comments/examples to match new defaults or dependencies. - Update `charts/jaeger/README.md` for any repo/command changes and note required manual steps (e.g., Strimzi Kafka CRs). - Keep example hosts consistent with rendered service names (use `fullnameOverride` if you change them). ## Before you finish + - Dependencies vendored under `charts/jaeger/charts/*` are current. - Chart version bumped appropriately. - Lint passes; templates render for provisioned modes you changed. diff --git a/Makefile b/Makefile index 5b07ff47..b81c46d1 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ test-es: --set elasticsearch.data.replicaCount=0 \ --set elasticsearch.coordinating.replicaCount=0 \ --set elasticsearch.ingest.replicaCount=0 \ - --set elasticsearch.clusterHealthCheckParams=wait_for_status=yellow&timeout=1s \ + --set elasticsearch.clusterHealthCheckParams=wait_for_status=yellow&timeout=10s \ + --set elasticsearch.readinessProbe.initialDelaySeconds=60 \ + --set elasticsearch.readinessProbe.failureThreshold=10 \ --set storage.elasticsearch.scheme=https \ --set storage.elasticsearch.tls.insecure=true" diff --git a/charts/jaeger/Chart.yaml b/charts/jaeger/Chart.yaml index c23b033d..85361bc3 100644 --- a/charts/jaeger/Chart.yaml +++ b/charts/jaeger/Chart.yaml @@ -3,7 +3,7 @@ appVersion: 2.13.0 description: A Jaeger Helm chart for Kubernetes name: jaeger type: application -version: 4.1.5 +version: 4.2.0 # CronJobs require v1.21 kubeVersion: ">= 1.21-0" keywords: diff --git a/charts/jaeger/README.md b/charts/jaeger/README.md index a8951371..89ad7fc0 100644 --- a/charts/jaeger/README.md +++ b/charts/jaeger/README.md @@ -1,440 +1,130 @@ -# Jaeger +# Jaeger Helm Chart -[Jaeger](https://www.jaegertracing.io/) is a distributed tracing system. +> ⚠️ **Experimental**: This chart is under active development with no stability guarantees. Breaking changes may occur in minor versions. -## Introduction +[Jaeger](https://www.jaegertracing.io/) is a distributed tracing system. This chart deploys Jaeger v2 using a unified "All-In-One" architecture built on the OpenTelemetry Collector framework. -This chart deploys Jaeger v2, which uses a unified binary built on the OpenTelemetry Collector framework. The chart supports multiple deployment modes and storage backends including in-memory, Elasticsearch, and Cassandra. +## Changes in v4.2.0 -By default, the chart deploys Jaeger in **all-in-one mode** with **in-memory storage**, which is suitable for testing and development. For production deployments, it is recommended to use Elasticsearch as the storage backend. +This release is a refactor designed to simplify operation and configuration. -## Deployment Architecture +- **Unified Architecture**: All functionality (Collector, Query, Ingester) is now provided by a single "All-in-One" deployment. +- **Configuration**: Storage is configured via the `config.extensions.jaeger_storage` section using native Jaeger/OTEL config syntax. +- **Cassandra Schema**: Jaeger v2 handles schema creation internally. The legacy schema job has been removed. +- **Service Consolidation**: A single Service now exposes all ports (agent, collector, query). -### All-In-One (Supported) -This chart currently uses the **All-In-One** deployment architecture. -* **Single Deployable:** All Jaeger components (Collector, Query, Ingester) run within a single application (the compiled Jaeger v2 binary). -* **Scalability:** You can scale this Deployment to multiple replicas for high availability, but each replica performs all roles. -* **Storage:** While "All-In-One" implies simplicity, **it DOES support persistent storage** (Elasticsearch, Opensearch, Cassandra). You can use this mode for production if your load allows for a unified deployment shape. +## Architecture -### Distributed / Microservices (Not Yet Supported) -* **Separate Collectors/Query:** Splitting the stack into separate microservices (e.g., a Deployment for Collectors and a separate Deployment for Query services) is **not currently supported** by this chart configuration. - -If you require a fully distributed architecture, you would need to manually create separate values files or fork this chart to create distinct Deployments for each role, utilizing the same Jaeger v2 binary but with different configurations (pipelines). +This chart uses the **All-In-One** deployment model. +- **Single Binary**: Runs as a `Deployment` scalable to multiple replicas. +- **Stateless**: Can connect to external persistent storage (Elasticsearch, Cassandra) for production use. +- **Default**: Memory storage (ephemeral), suitable for testing. ## Installing the Chart Add the Jaeger Tracing Helm repository: - ```bash helm repo add jaegertracing https://jaegertracing.github.io/helm-charts ``` To install a release named `jaeger`: - ```bash helm install jaeger jaegertracing/jaeger ``` -By default, the chart deploys: - -- Jaeger All-in-One Deployment (combines collector, query, and internal components) -- In-memory storage (non-persistent) - -### Overriding the Jaeger Version - -The chart version maps to a specific Jaeger version (appVersion). You can override this to use a different Jaeger image version without upgrading the chart: - -```bash -helm install jaeger jaegertracing/jaeger \ - --set allInOne.image.tag=2.13.0 -``` - -Or via a values file: - -```yaml -allInOne: - image: - tag: "2.13.0" -``` - ## Configuration -Jaeger v2 uses a YAML-based configuration format built on the OpenTelemetry Collector framework. The configuration is defined in the `config` section of the values file. - -See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](https://github.com/jaegertracing/helm-charts/blob/main/charts/jaeger/values.yaml), or run these configuration commands: - -```console -$ helm show values jaegertracing/jaeger -``` - -You may also `helm show values` on this chart's [dependencies](#dependencies) for additional options. - -### User Configuration - -You can provide custom configuration by creating a YAML config file and passing it via the `userconfig` parameter: - +### 1. In-Memory (Default) +Ideal for testing. No persistence. ```bash -helm install jaeger jaegertracing/jaeger \ - --set-file userconfig=path/to/configfile.yaml +helm install jaeger jaegertracing/jaeger ``` -### Default Configuration Structure - -The default configuration uses the OpenTelemetry Collector format with Jaeger-specific extensions: +### 2. Elasticsearch (Production Recommended) +Configure Jaeger to connect to Elasticsearch using the native config syntax. +**values.yaml Example:** ```yaml -config: - service: - extensions: [jaeger_storage, jaeger_query, healthcheckv2] - pipelines: - traces: - receivers: [otlp, jaeger, zipkin] - processors: [batch] - exporters: [jaeger_storage_exporter] +# Use the provisioned Elasticsearch subchart +provisionDataStore: + elasticsearch: true +# Or connect to an external Elasticsearch cluster by customizing the config: +config: extensions: - jaeger_query: - storage: - traces: primary_store - traces_archive: archive_store - jaeger_storage: backends: primary_store: - memory: - max_traces: 100000 - archive_store: - memory: - max_traces: 100000 - - receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - jaeger: - protocols: - grpc: - zipkin: - - processors: - batch: - - exporters: - jaeger_storage_exporter: - trace_storage: primary_store -``` - -See more configuration examples in https://github.com/jaegertracing/jaeger/tree/main/cmd/jaeger -### Dependencies - -If installing with a dependency such as Elasticsearch, their values can be shown by running: - -```console -helm repo add elastic https://helm.elastic.co -helm show values elastic/elasticsearch -``` - -Please note, any dependency values must be nested within the key named after the chart (e.g., `elasticsearch`, `cassandra`). - -## Storage - -Jaeger v2 supports multiple storage backends. For production deployments, the Jaeger team [recommends Elasticsearch backend over Cassandra](https://www.jaegertracing.io/docs/latest/faq/#what-is-the-recommended-storage-backend). - -The storage backend is configured via the `jaeger_storage` extension in the `config` section. - -### Quick Start: Storage Configuration - -Here is how to configure the chart for the most common storage scenarios. - -#### 1. Provisioned Mode (Easiest) -*Best for testing/development. The chart creates the database for you.* - -**Elasticsearch**: -```bash -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.elasticsearch=true \ - --set storage.type=elasticsearch -``` - -**Cassandra**: -```bash -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.cassandra=true \ - --set storage.type=cassandra + elasticsearch: + server_urls: ["http://elasticsearch:9200"] + username: elastic + password: changeme ``` -#### 2. External Mode (Production) -*Connect to an existing database running outside this chart.* - -**External Elasticsearch**: -```bash -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.elasticsearch=false \ - --set storage.type=elasticsearch \ - --set storage.elasticsearch.host= \ - --set storage.elasticsearch.port=9200 \ - --set storage.elasticsearch.user= \ - --set storage.elasticsearch.password= -``` -*Note: The chart automatically generates the required configuration file for you.* - -**External Cassandra**: -```bash -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.cassandra=false \ - --set storage.type=cassandra \ - --set storage.cassandra.host= \ - --set storage.cassandra.port=9042 \ - --set storage.cassandra.user= \ - --set storage.cassandra.password= -``` -*Note: No config file needed. The chart uses environment variables automatically.* - - -### Storage Configuration Options - -#### Primary Storage Settings - -Configure primary storage via `.Values.config.extensions.jaeger_storage.backends.primary_store`: - -- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.index_prefix`: Set the prefix for Elasticsearch indices -- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.server_urls`: Elasticsearch server URLs -- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.username`: Username for Elasticsearch authentication -- `.Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.password`: Password for Elasticsearch authentication - -#### Archive Storage Settings - -Configure archive storage via `.Values.config.extensions.jaeger_storage.backends.archive_store`: - -- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.index_prefix` -- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.server_urls` -- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.username` -- `.Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.password` - -### All-in-One Mode (Default) - -The default deployment uses all-in-one mode with in-memory storage. This is suitable for testing and development: - -```bash -helm install jaeger jaegertracing/jaeger -``` - -To customize resources and environment variables: - +**Running Maintenance Jobs:** +To run Index Cleaner or Rollover jobs, enable them. They auto-configure when `provisionDataStore.elasticsearch` is enabled: ```yaml -allInOne: +esIndexCleaner: enabled: true - extraEnv: - - name: QUERY_BASE_PATH - value: /jaeger - resources: - limits: - cpu: 500m - memory: 512Mi - requests: - cpu: 256m - memory: 128Mi -``` - -### Elasticsearch Configuration - -#### Installing the Chart with Elasticsearch (Provisioned) - -To deploy Jaeger with a provisioned Elasticsearch cluster: - -**Single Master Node Configuration** (for basic setups): - -```bash -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.elasticsearch=true \ - --set storage.type=elasticsearch \ - --set elasticsearch.master.masterOnly=false \ - --set elasticsearch.master.replicaCount=1 \ - --set elasticsearch.data.replicaCount=0 \ - --set elasticsearch.coordinating.replicaCount=0 \ - --set elasticsearch.ingest.replicaCount=0 ``` -**Default Configuration** (with default Elasticsearch settings): - -```bash -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.elasticsearch=true \ - --set storage.type=elasticsearch -``` - -The provisioned Elasticsearch dependency is configured without xpack security or TLS so Jaeger can connect over HTTP out of the box. If you want to enable HTTPS, set `storage.elasticsearch.scheme=https`, turn on `storage.elasticsearch.tls.enabled`, and provide a CA (or `storage.elasticsearch.tls.insecure=true` for testing). You can also re-enable xpack security via `elasticsearch.esConfig`. - -#### Elasticsearch Rollover +### 3. Cassandra +Cassandra support in Jaeger v2 is limited. To use Cassandra storage, configure via the native config syntax: -If using the [Elasticsearch -Rollover](https://www.jaegertracing.io/docs/latest/deployment/#elasticsearch-rollover) -feature, elasticsearch must already be present and so must be deployed -separately from this chart, if not the rollover init hook won't be able to -complete successfully. - -#### Installing the Chart using an Existing Elasticsearch Cluster - -A release can be configured as follows to use an existing ElasticSearch cluster as the storage backend: - -```console -helm install jaeger jaegertracing/jaeger \ - --set storage.type=elasticsearch \ - --set storage.elasticsearch.host= \ - --set storage.elasticsearch.port= \ - --set storage.elasticsearch.user= \ - --set storage.elasticsearch.password= -``` - -#### Installing the Chart using an Existing ElasticSearch Cluster with TLS - -If you already have an existing running ElasticSearch cluster with TLS, you can configure the chart as follows to use it as your backing store: - -Content of the `jaeger-values.yaml` file: - -```YAML -storage: - type: elasticsearch - elasticsearch: - host: - port: - scheme: https - user: - password: - tls: - enabled: true - secretName: es-tls-secret - -```console -helm install jaeger jaegertracing/jaeger --values jaeger-values.yaml -``` - -### Cassandra Configuration - -> **Note:** Cassandra support is available for backward compatibility. For new deployments, Elasticsearch is recommended. - -#### Installing the Chart using an Existing Cassandra Cluster - -If you already have an existing running Cassandra cluster, you can configure the chart as follows to use it as your backing store (make sure you replace ``, ``, etc with your values): - -```console -helm install jaeger jaegertracing/jaeger \ - --set provisionDataStore.cassandra=false \ - --set storage.cassandra.host= \ - --set storage.cassandra.port= \ - --set storage.cassandra.user= \ - --set storage.cassandra.password= -``` - -#### Installing the Chart using an Existing Cassandra Cluster with TLS - -If you already have an existing running Cassandra cluster with TLS, you can configure the chart as follows to use it as your backing store: - -Content of the `values.yaml` file: - -```YAML +**values.yaml Example:** +```yaml storage: type: cassandra - cassandra: - host: - port: - user: - password: - tls: - enabled: true - secretName: cassandra-tls-secret - -provisionDataStore: - cassandra: false +config: + extensions: + jaeger_storage: + backends: + primary_store: + cassandra: + connection: + servers: + - cassandra-host + port: 9042 + schema: + keyspace: jaeger_v1_test ``` -Content of the `jaeger-tls-cassandra-secret.yaml` file: +> **Note**: The legacy Cassandra schema job has been removed. Jaeger v2 handles schema creation internally. -```YAML -apiVersion: v1 -kind: Secret -metadata: - name: cassandra-tls-secret -data: - commonName: - ca-cert.pem: | - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - client-cert.pem: | - -----BEGIN CERTIFICATE----- - - -----END CERTIFICATE----- - client-key.pem: | - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - cqlshrc: | - [ssl] - certfile = ~/.cassandra/ca-cert.pem - userkey = ~/.cassandra/client-key.pem - usercert = ~/.cassandra/client-cert.pem +### 4. Spark Dependencies -``` +To run the Spark dependencies job (for dependency links graph): -```console -kubectl apply -f jaeger-tls-cassandra-secret.yaml -helm install jaeger jaegertracing/jaeger --values values.yaml +```yaml +spark: + enabled: true + extraEnv: + - name: ES_NODES + value: http://elasticsearch:9200 + - name: ES_NODES_WAN_ONLY + value: "true" ``` +## Configuring the Collector +The Jaeger v2 configuration is defined in `config` using OpenTelemetry Collector syntax. You can override pipelines, receivers, and processors there. - -## Installing extra kubernetes objects - -If additional kubernetes objects need to be installed alongside this chart, set the `extraObjects` array to contain -the yaml describing these objects. The values in the array are treated as a template to allow the use of variable -substitution and function calls as in the example below. - -Content of the `jaeger-values.yaml` file: - -```YAML -extraObjects: - - apiVersion: rbac.authorization.k8s.io/v1 - kind: RoleBinding - metadata: - name: "{{ .Release.Name }}-someRoleBinding" - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: someRole - subjects: - - kind: ServiceAccount - name: "{{ include \"jaeger.esLookback.serviceAccountName\" . }}" +```yaml +config: + service: + pipelines: + traces: + receivers: [otlp, jaeger, zipkin] + processors: [batch] + exporters: [jaeger_storage_exporter] ``` -## Configuring the hotrod example application to send traces to the OpenTelemetry collector - -If the `hotrod` example application is enabled it will export traces to Jaeger -via the Jaeger exporter. To switch this to another collector and/or protocol, -such as an OpenTelemetry OTLP Collector, see the example below. - -The primary use case of sending the traces to the collector instead of directly -to Jaeger is to verify traces can get back to Jaeger or another distributed -tracing store and verify that pipeline with the pre-instrumented hotrod -application. +## Ports -**NOTE: This will not install or setup the OpenTelemetry collector. To setup an example OpenTelemetry Collector, see the [OpenTelemetry helm -charts](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector).** +The unified Service exposes the following ports: -Content of the `jaeger-values.yaml` file: - -```YAML -hotrod: - enabled: true - # Switch from the jaeger protocol to OTLP - extraArgs: - - --otel-exporter=otlp - # Set the address of the OpenTelemetry collector endpoint - extraEnv: - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://my-otel-collector-opentelemetry-collector:4318 -``` +- **Query UI**: 16686, 16685 (gRPC) +- **OTLP**: 4317 (gRPC), 4318 (HTTP) +- **Jaeger**: 14250 (gRPC), 14268 (HTTP), 6831/6832 (UDP) +- **Zipkin**: 9411 diff --git a/charts/jaeger/templates/NOTES.txt b/charts/jaeger/templates/NOTES.txt index a76721f8..e069b724 100644 --- a/charts/jaeger/templates/NOTES.txt +++ b/charts/jaeger/templates/NOTES.txt @@ -1,12 +1,15 @@ - ################################################################### -### IMPORTANT: Ensure that storage is explicitly configured ### -### Default storage options are subject to change. ### +### ⚠️ EXPERIMENTAL - NO STABILITY GUARANTEES ### +### ### +### This chart is under active development. ### +### Breaking changes may occur in minor versions. ### +### ### +### See README.md for configuration details. ### ################################################################### -🚀 Congratulations on successfully installing / upgrading Jaeger v{{ .Chart.AppVersion }}! +🚀 Congratulations on successfully installing Jaeger v{{ .Chart.AppVersion }} (Chart v{{ .Chart.Version }})! -📊 You can log into the Jaeger Query UI here: +To access the query UI: {{- if .Values.allInOne.ingress.enabled }} {{- range .Values.allInOne.ingress.hosts }} @@ -14,6 +17,6 @@ {{- end }} {{- else }} export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/instance={{ .Release.Name }},app.kubernetes.io/component=all-in-one" -o jsonpath="{.items[0].metadata.name}") - echo http://127.0.0.1:16686/ + echo "Visit http://127.0.0.1:16686/" kubectl port-forward --namespace {{ .Release.Namespace }} $POD_NAME 16686:16686 {{- end }} diff --git a/charts/jaeger/templates/_helpers.tpl b/charts/jaeger/templates/_helpers.tpl index 3ba1e8c3..b3ce7f69 100644 --- a/charts/jaeger/templates/_helpers.tpl +++ b/charts/jaeger/templates/_helpers.tpl @@ -51,17 +51,6 @@ 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 */}} @@ -106,16 +95,6 @@ Create the name of the esLookback service account to use {{- 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 -}} @@ -148,32 +127,6 @@ Create the name of the hotrod service account to use {{- 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 -}} -{{- $host := .Values.storage.elasticsearch.host }} -{{- if .Values.provisionDataStore.elasticsearch }} -{{- $es := .Values.elasticsearch }} -{{- if $es.masterService }} -{{- $host = $es.masterService }} -{{- else if $es.fullnameOverride }} -{{- $host = $es.fullnameOverride }} -{{- else if $es.nameOverride }} -{{- $host = printf "%s-master" $es.nameOverride }} -{{- else -}} -{{- $clusterName := default "elasticsearch" $es.clusterName }} -{{- $host = printf "%s-master" $clusterName }} -{{- end }} -{{- end }} -{{- printf "%s://%s:%s" .Values.storage.elasticsearch.scheme $host $port }} -{{- end -}} - -{{- define "jaeger.hotrod.tracing.host" -}} -{{- default (include "jaeger.agent.name" .) .Values.hotrod.tracing.host -}} -{{- end -}} {{/* @@ -228,7 +181,7 @@ Cassandra related environment variables 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 }} +{{ range $key, $value := .Values.storage.cassandra.env }} - name: {{ $key | quote }} value: {{ $value | quote }} {{ end -}} @@ -237,41 +190,6 @@ Cassandra related environment variables {{- 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: {{ .Values.storage.elasticsearch.tls.ca }} -{{- 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 @@ -309,13 +227,41 @@ memory related environment variables {{- end -}} +{{/* +Elasticsearch related environment variables +*/}} +{{- define "elasticsearch.env" -}} +{{- if .Values.provisionDataStore.elasticsearch }} +{{- $es := .Values.storage.elasticsearch | default dict -}} +{{- $scheme := $es.scheme | default "http" -}} +{{- $port := $es.port | default 9200 -}} +{{- $user := $es.user | default "elastic" -}} +{{- $password := .Values.elasticsearch.secret.password | default "changeme" -}} +- name: ES_SERVER_URLS + value: "{{ $scheme }}://elasticsearch-master:{{ $port }}" +- name: ES_USERNAME + value: {{ $user | quote }} +- name: ES_PASSWORD + value: {{ $password | quote }} +{{- /* Handle TLS insecurity */ -}} +{{- if or ( and $es.tls ( $es.tls.insecure ) ) ( eq $scheme "https" ) }} + {{- if $es.tls }} + {{- if $es.tls.insecure }} +- name: ES_TLS_SKIP_HOST_VERIFY + value: "true" + {{- end }} + {{- end }} +{{- end }} +{{- end }} +{{- end -}} + {{/* Cassandra, Elasticsearch, or grpc-plugin, badger, memory 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" -}} +{{- else if or (eq .Values.storage.type "elasticsearch") .Values.provisionDataStore.elasticsearch -}} {{ include "elasticsearch.env" . }} {{- else if or (eq .Values.storage.type "grpc-plugin") (eq .Values.storage.type "grpc") -}} {{ include "grpcPlugin.env" . }} @@ -339,18 +285,6 @@ Cassandra related command line options {{- 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 @@ -359,7 +293,7 @@ Cassandra or Elasticsearch related command line options depending on which is us {{- if eq .Values.storage.type "cassandra" -}} {{- include "cassandra.cmdArgs" . -}} {{- else if eq .Values.storage.type "elasticsearch" -}} -{{- include "elasticsearch.cmdArgs" . -}} +# No specific helper, usage depends on args {{- end -}} {{- end -}} @@ -458,21 +392,6 @@ Create pull secrets for all-in-one image {{- include "common.images.renderPullSecrets" (dict "images" (list .Values.allInOne.image) "context" $) -}} {{- end }} -{{/* -Create image name for schema image -*/}} -{{- define "schema.image" -}} -{{- include "renderImage" ( dict "imageRoot" .Values.schema.image "context" $ ) -}} -{{- end -}} - -{{/* -Create pull secrets for schema image -*/}} -{{- define "schema.imagePullSecrets" -}} -{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.schema.image) "context" $) -}} -{{- end }} - - {{/* Create image name for spark image */}} @@ -529,12 +448,6 @@ Create pull secrets for esLookback image {{- include "common.images.renderPullSecrets" (dict "images" (list .Values.esLookback.image) "context" $) -}} {{- end }} -{{/* -Create image name for hotrod image -*/}} -{{- define "hotrod.image" -}} -{{- include "renderImage" ( dict "imageRoot" .Values.hotrod.image "context" $ ) -}} -{{- end -}} {{/* Define curl image declaration @@ -548,12 +461,6 @@ Define curl image declaration {{- end -}} {{- end -}} -{{/* -Create pull secrets for hotrod image -*/}} -{{- define "hotrod.imagePullSecrets" -}} -{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.hotrod.image) "context" $) -}} -{{- end }} {{- define "jaeger.extensionsConfig" -}} @@ -629,3 +536,16 @@ Create pull secrets for hotrod image {{- .Release.Namespace -}} {{- end -}} {{- end -}} + +{{/* +Generate command line arguments from a dictionary +*/}} +{{- define "extra.cmdArgs" -}} +{{- range $key, $value := .cmdlineParams -}} +{{- if $value }} +- --{{ $key }}={{ $value }} +{{- else }} +- --{{ $key }} +{{- end -}} +{{- end -}} +{{- end -}} diff --git a/charts/jaeger/templates/allinone-agent-svc.yaml b/charts/jaeger/templates/allinone-agent-svc.yaml deleted file mode 100644 index 2bb421a7..00000000 --- a/charts/jaeger/templates/allinone-agent-svc.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# This service provides backward compatibility for clients expecting -# the legacy Jaeger Agent UDP endpoints (5775, 6831, 6832). -# It routes traffic to the All-in-One pod. -{{ if .Values.allInOne.enabled -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "jaeger.fullname" . }}-agent - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: service-agent -spec: - clusterIP: None - ports: - - name: zk-compact-trft - port: 5775 - protocol: UDP - targetPort: 0 - - name: config-rest - port: 5778 - targetPort: 0 - - name: jg-compact-trft - port: 6831 - protocol: UDP - targetPort: 0 - - name: jg-binary-trft - port: 6832 - protocol: UDP - targetPort: 0 - selector: - {{- include "jaeger.selectorLabels" . | nindent 4 }} - app.kubernetes.io/component: all-in-one -{{- end -}} diff --git a/charts/jaeger/templates/allinone-collector-svc.yaml b/charts/jaeger/templates/allinone-collector-svc.yaml deleted file mode 100644 index 59a1192a..00000000 --- a/charts/jaeger/templates/allinone-collector-svc.yaml +++ /dev/null @@ -1,48 +0,0 @@ -{{- if .Values.allInOne.enabled -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "jaeger.fullname" . }}-collector - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: service-collector -spec: - clusterIP: {{ .Values.allInOne.service.headless | ternary "None" "null" }} - ports: - - name: http-zipkin - port: 9411 - targetPort: 0 - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} - appProtocol: http - {{- end }} - - name: grpc-http - port: 14250 - targetPort: 0 - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} - appProtocol: grpc - {{- end }} - - name: c-tchan-trft - port: 14267 - targetPort: 0 - - name: http-c-binary-trft - port: 14268 - targetPort: 0 - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} - appProtocol: http - {{- end }} - - name: {{ .Values.allInOne.service.collector.otlp.grpc.name }} - port: 4317 - targetPort: 0 - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} - appProtocol: grpc - {{- end }} - - name: {{ .Values.allInOne.service.collector.otlp.http.name }} - port: 4318 - targetPort: 0 - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} - appProtocol: http - {{- end }} - selector: - {{- include "jaeger.selectorLabels" . | nindent 4 }} - app.kubernetes.io/component: all-in-one -{{- end -}} diff --git a/charts/jaeger/templates/allinone-query-svc.yaml b/charts/jaeger/templates/allinone-query-svc.yaml deleted file mode 100644 index 8efd3572..00000000 --- a/charts/jaeger/templates/allinone-query-svc.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if .Values.allInOne.enabled -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "jaeger.fullname" . }}-query - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: service-query -spec: - clusterIP: None - ports: - - name: http-query - port: 16686 - targetPort: 16686 - - name: grpc-query - port: 16685 - targetPort: 16685 - selector: - {{- include "jaeger.selectorLabels" . | nindent 4 }} - app.kubernetes.io/component: all-in-one -{{- end -}} diff --git a/charts/jaeger/templates/cassandra-schema-job.yaml b/charts/jaeger/templates/cassandra-schema-job.yaml deleted file mode 100644 index f0e110ca..00000000 --- a/charts/jaeger/templates/cassandra-schema-job.yaml +++ /dev/null @@ -1,107 +0,0 @@ -{{- if eq .Values.storage.type "cassandra" -}} -{{- if .Values.storage.cassandra.schemaJobEnabled -}} -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "jaeger.fullname" . }}-cassandra-schema - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: cassandra-schema -{{- if .Values.schema.annotations }} - annotations: - {{- toYaml .Values.schema.annotations | nindent 4 }} -{{- end }} -spec: - activeDeadlineSeconds: {{ .Values.schema.activeDeadlineSeconds }} - template: - metadata: - name: {{ include "jaeger.fullname" . }}-cassandra-schema -{{- if .Values.schema.podAnnotations }} - annotations: - {{- toYaml .Values.schema.podAnnotations | nindent 8 }} -{{- end }} -{{- if .Values.schema.podLabels }} - labels: - {{- toYaml .Values.schema.podLabels | nindent 8 }} -{{- end }} - spec: - securityContext: - {{- toYaml .Values.schema.podSecurityContext | nindent 8 }} - serviceAccountName: {{ template "jaeger.cassandraSchema.serviceAccountName" . }} - {{- include "schema.imagePullSecrets" . | nindent 6 }} - containers: - - name: {{ include "jaeger.fullname" . }}-cassandra-schema - image: {{ include "schema.image" . }} - imagePullPolicy: {{ .Values.schema.image.pullPolicy }} - securityContext: - {{- toYaml .Values.schema.securityContext | nindent 10 }} - env: - {{- if .Values.schema.extraEnv }} - {{- toYaml .Values.schema.extraEnv | nindent 10 }} - {{- end }} - {{ range $key, $value := .Values.schema.env }} - - name: {{ $key | quote }} - value: {{ $value | quote }} - {{ end }} - {{- include "cassandra.env" . | nindent 10 }} - - name: CQLSH_HOST - value: {{ template "cassandra.host" . }} - {{ if .Values.storage.cassandra.tls.enabled }} - - name: CQLSH_SSL - value: "--ssl" - {{- end }} - - name: DATACENTER - value: {{ .Values.cassandra.config.dc_name | quote }} - {{- if .Values.storage.cassandra.keyspace }} - - name: KEYSPACE - value: {{ .Values.storage.cassandra.keyspace }} - {{- end }} - resources: - {{- toYaml .Values.schema.resources | nindent 10 }} - volumeMounts: - {{- range .Values.schema.extraConfigmapMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- if .Values.storage.cassandra.tls.enabled }} - - name: {{ .Values.storage.cassandra.tls.secretName }} - mountPath: "/root/.cassandra/ca-cert.pem" - subPath: "ca-cert.pem" - readOnly: true - - name: {{ .Values.storage.cassandra.tls.secretName }} - mountPath: "/root/.cassandra/client-cert.pem" - subPath: "client-cert.pem" - readOnly: true - - name: {{ .Values.storage.cassandra.tls.secretName }} - mountPath: "/root/.cassandra/client-key.pem" - subPath: "client-key.pem" - readOnly: true - - name: {{ .Values.storage.cassandra.tls.secretName }} - mountPath: "/root/.cassandra/cqlshrc" - subPath: "cqlshrc" - readOnly: true - {{- end }} - restartPolicy: OnFailure - volumes: - {{- range .Values.schema.extraConfigmapMounts }} - - name: {{ .name }} - configMap: - name: {{ .configMap }} - {{- end }} - {{- if .Values.storage.cassandra.tls.enabled }} - - name: {{ .Values.storage.cassandra.tls.secretName }} - secret: - secretName: {{ .Values.storage.cassandra.tls.secretName }} - {{- end }} - {{- with .Values.schema.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.schema.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} -{{- end -}} -{{- end -}} diff --git a/charts/jaeger/templates/cassandra-schema-sa.yaml b/charts/jaeger/templates/cassandra-schema-sa.yaml deleted file mode 100644 index 51063213..00000000 --- a/charts/jaeger/templates/cassandra-schema-sa.yaml +++ /dev/null @@ -1,10 +0,0 @@ -{{- if and (eq .Values.storage.type "cassandra") .Values.schema.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "jaeger.cassandraSchema.serviceAccountName" . }} - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: cassandra-schema -automountServiceAccountToken: {{ .Values.schema.serviceAccount.automountServiceAccountToken }} -{{- end -}} diff --git a/charts/jaeger/templates/elasticsearch-secret.yaml b/charts/jaeger/templates/elasticsearch-secret.yaml deleted file mode 100644 index 7b5b25cd..00000000 --- a/charts/jaeger/templates/elasticsearch-secret.yaml +++ /dev/null @@ -1,16 +0,0 @@ -{{ if and (eq .Values.storage.type "elasticsearch") .Values.storage.elasticsearch.usePassword (not .Values.storage.elasticsearch.existingSecret) -}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ include "jaeger.fullname" . }}-elasticsearch - labels: - {{- include "jaeger.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-weight": "-1" - "helm.sh/hook-delete-policy": before-hook-creation - "helm.sh/resource-policy": keep -type: Opaque -data: - password: {{ .Values.storage.elasticsearch.password | b64enc | quote }} -{{- end }} diff --git a/charts/jaeger/templates/es-index-cleaner-cronjob.yaml b/charts/jaeger/templates/es-index-cleaner-cronjob.yaml deleted file mode 100644 index e7155aca..00000000 --- a/charts/jaeger/templates/es-index-cleaner-cronjob.yaml +++ /dev/null @@ -1,109 +0,0 @@ -{{- if .Values.esIndexCleaner.enabled -}} -apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }} -kind: CronJob -metadata: - name: {{ include "jaeger.fullname" . }}-es-index-cleaner - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: es-index-cleaner -{{- if .Values.esIndexCleaner.annotations }} - annotations: - {{- toYaml .Values.esIndexCleaner.annotations | nindent 4 }} -{{- end }} -spec: - concurrencyPolicy: {{ .Values.esIndexCleaner.concurrencyPolicy }} - schedule: {{ .Values.esIndexCleaner.schedule | quote }} - successfulJobsHistoryLimit: {{ .Values.esIndexCleaner.successfulJobsHistoryLimit }} - failedJobsHistoryLimit: {{ .Values.esIndexCleaner.failedJobsHistoryLimit }} - suspend: false - jobTemplate: - spec: - {{- if .Values.esIndexCleaner.activeDeadlineSeconds }} - activeDeadlineSeconds: {{ .Values.esIndexCleaner.activeDeadlineSeconds }} - {{- end }} - {{- if .Values.esIndexCleaner.ttlSecondsAfterFinished }} - ttlSecondsAfterFinished: {{ .Values.esIndexCleaner.ttlSecondsAfterFinished }} - {{- end }} - template: - metadata: - {{- if .Values.esIndexCleaner.podAnnotations }} - annotations: - {{- toYaml .Values.esIndexCleaner.podAnnotations | nindent 12 }} - {{- end }} - labels: - {{- include "jaeger.selectorLabels" . | nindent 12 }} - app.kubernetes.io/component: es-index-cleaner - {{- if .Values.esIndexCleaner.podLabels }} - {{- toYaml .Values.esIndexCleaner.podLabels | nindent 12 }} - {{- end }} - spec: - serviceAccountName: {{ template "jaeger.esIndexCleaner.serviceAccountName" . }} - {{- include "esIndexCleaner.imagePullSecrets" . | nindent 10 }} - securityContext: - {{- toYaml .Values.esIndexCleaner.podSecurityContext | nindent 12 }} - containers: - - name: {{ include "jaeger.fullname" . }}-es-index-cleaner - securityContext: - {{- toYaml .Values.esIndexCleaner.securityContext | nindent 14 }} - image: {{ include "esIndexCleaner.image" . }} - imagePullPolicy: {{ .Values.esIndexCleaner.image.pullPolicy }} - args: - - {{ .Values.esIndexCleaner.numberOfDays | quote }} - - {{ include "elasticsearch.client.url" . }} - {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esIndexCleaner.cmdlineParams ) | nindent 14 }} - env: - {{- if .Values.esIndexCleaner.extraEnv }} - {{- toYaml .Values.esIndexCleaner.extraEnv | nindent 14 }} - {{- end }} - {{ include "elasticsearch.env" . | nindent 14 }} - resources: - {{- toYaml .Values.esIndexCleaner.resources | nindent 14 }} - volumeMounts: - {{- range .Values.esIndexCleaner.extraConfigmapMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.esIndexCleaner.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- if .Values.storage.elasticsearch.tls.enabled }} - - name: {{ .Values.storage.elasticsearch.tls.secretName }} - mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }} - subPath: {{ .Values.storage.elasticsearch.tls.subPath }} - readOnly: true - {{- end }} - restartPolicy: OnFailure - {{- with .Values.esIndexCleaner.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.esIndexCleaner.affinity }} - affinity: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.esIndexCleaner.tolerations }} - tolerations: - {{- toYaml . | nindent 12 }} - {{- end }} - volumes: - {{- range .Values.esIndexCleaner.extraConfigmapMounts }} - - name: {{ .name }} - configMap: - name: {{ .configMap }} - {{- end }} - {{- range .Values.esIndexCleaner.extraSecretMounts }} - - name: {{ .name }} - secret: - secretName: {{ .secretName }} - {{- end }} - {{- if .Values.storage.elasticsearch.tls.enabled }} - - name: {{ .Values.storage.elasticsearch.tls.secretName }} - secret: - secretName: {{ .Values.storage.elasticsearch.tls.secretName }} - {{- end }} -{{- end -}} diff --git a/charts/jaeger/templates/es-index-cleaner-sa.yaml b/charts/jaeger/templates/es-index-cleaner-sa.yaml deleted file mode 100644 index 68b918f3..00000000 --- a/charts/jaeger/templates/es-index-cleaner-sa.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if and .Values.esIndexCleaner.enabled .Values.esIndexCleaner.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "jaeger.esIndexCleaner.serviceAccountName" . }} - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: es-index-cleaner - {{- with .Values.esIndexCleaner.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -automountServiceAccountToken: {{ .Values.esIndexCleaner.serviceAccount.automountServiceAccountToken }} -{{- end -}} diff --git a/charts/jaeger/templates/es-lookback-cronjob.yaml b/charts/jaeger/templates/es-lookback-cronjob.yaml deleted file mode 100644 index d5e4716c..00000000 --- a/charts/jaeger/templates/es-lookback-cronjob.yaml +++ /dev/null @@ -1,110 +0,0 @@ -{{- if .Values.esLookback.enabled -}} -apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }} -kind: CronJob -metadata: - name: {{ include "jaeger.fullname" . }}-es-lookback - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: es-lookback -{{- if .Values.esLookback.annotations }} - annotations: - {{- toYaml .Values.esLookback.annotations | nindent 4 }} -{{- end }} -spec: - concurrencyPolicy: {{ .Values.esLookback.concurrencyPolicy }} - schedule: {{ .Values.esLookback.schedule | quote }} - successfulJobsHistoryLimit: {{ .Values.esLookback.successfulJobsHistoryLimit }} - failedJobsHistoryLimit: {{ .Values.esLookback.failedJobsHistoryLimit }} - suspend: false - jobTemplate: - spec: - {{- if .Values.esLookback.activeDeadlineSeconds }} - activeDeadlineSeconds: {{ .Values.esLookback.activeDeadlineSeconds }} - {{- end }} - {{- if .Values.esLookback.ttlSecondsAfterFinished }} - ttlSecondsAfterFinished: {{ .Values.esLookback.ttlSecondsAfterFinished }} - {{- end }} - template: - metadata: - {{- if .Values.esLookback.podAnnotations }} - annotations: - {{- toYaml .Values.esLookback.podAnnotations | nindent 12 }} - {{- end }} - labels: - {{- include "jaeger.selectorLabels" . | nindent 12 }} - app.kubernetes.io/component: es-lookback - {{- if .Values.esLookback.podLabels }} - {{- toYaml .Values.esLookback.podLabels | nindent 12 }} - {{- end }} - spec: - serviceAccountName: {{ template "jaeger.esLookback.serviceAccountName" . }} - {{- include "esLookback.imagePullSecrets" . | nindent 10 }} - securityContext: - {{- toYaml .Values.esLookback.podSecurityContext | nindent 12 }} - restartPolicy: OnFailure - {{- with .Values.esLookback.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.esLookback.affinity }} - affinity: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.esLookback.tolerations }} - tolerations: - {{- toYaml . | nindent 12 }} - {{- end }} - - containers: - - name: {{ include "jaeger.fullname" . }}-es-lookback - securityContext: - {{- toYaml .Values.esLookback.securityContext | nindent 14 }} - image: {{ include "esLookback.image" . }} - imagePullPolicy: {{ .Values.esLookback.image.pullPolicy }} - args: - - lookback - - {{ include "elasticsearch.client.url" . }} - {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esLookback.cmdlineParams ) | nindent 14 }} - env: - {{ include "elasticsearch.env" . | nindent 14 }} - {{- if .Values.esLookback.extraEnv }} - {{- toYaml .Values.esLookback.extraEnv | nindent 14 }} - {{- end }} - resources: - {{- toYaml .Values.esLookback.resources | nindent 14 }} - volumeMounts: - {{- range .Values.esLookback.extraConfigmapMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.esLookback.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- if .Values.storage.elasticsearch.tls.enabled }} - - name: {{ .Values.storage.elasticsearch.tls.secretName }} - mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }} - subPath: {{ .Values.storage.elasticsearch.tls.subPath }} - readOnly: true - {{- end }} - volumes: - {{- range .Values.esLookback.extraConfigmapMounts }} - - name: {{ .name }} - configMap: - name: {{ .configMap }} - {{- end }} - {{- range .Values.esLookback.extraSecretMounts }} - - name: {{ .name }} - secret: - secretName: {{ .secretName }} - {{- end }} - {{- if .Values.storage.elasticsearch.tls.enabled }} - - name: {{ .Values.storage.elasticsearch.tls.secretName }} - secret: - secretName: {{ .Values.storage.elasticsearch.tls.secretName }} - {{- end }} -{{- end -}} diff --git a/charts/jaeger/templates/es-lookback-sa.yaml b/charts/jaeger/templates/es-lookback-sa.yaml deleted file mode 100644 index 89c4b745..00000000 --- a/charts/jaeger/templates/es-lookback-sa.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if and .Values.esLookback.enabled .Values.esLookback.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "jaeger.esLookback.serviceAccountName" . }} - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: es-lookback - {{- with .Values.esLookback.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -automountServiceAccountToken: {{ .Values.esLookback.serviceAccount.automountServiceAccountToken }} -{{- end -}} diff --git a/charts/jaeger/templates/es-maintenance.yaml b/charts/jaeger/templates/es-maintenance.yaml new file mode 100644 index 00000000..89bd841e --- /dev/null +++ b/charts/jaeger/templates/es-maintenance.yaml @@ -0,0 +1,354 @@ +{{- if .Values.esIndexCleaner.enabled -}} +apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }} +kind: CronJob +metadata: + name: {{ include "jaeger.fullname" . }}-es-index-cleaner + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: es-index-cleaner +{{- if .Values.esIndexCleaner.annotations }} + annotations: + {{- toYaml .Values.esIndexCleaner.annotations | nindent 4 }} +{{- end }} +spec: + concurrencyPolicy: {{ .Values.esIndexCleaner.concurrencyPolicy }} + schedule: {{ .Values.esIndexCleaner.schedule | quote }} + successfulJobsHistoryLimit: {{ .Values.esIndexCleaner.successfulJobsHistoryLimit }} + failedJobsHistoryLimit: {{ .Values.esIndexCleaner.failedJobsHistoryLimit }} + suspend: false + jobTemplate: + spec: + {{- if .Values.esIndexCleaner.activeDeadlineSeconds }} + activeDeadlineSeconds: {{ .Values.esIndexCleaner.activeDeadlineSeconds }} + {{- end }} + {{- if .Values.esIndexCleaner.ttlSecondsAfterFinished }} + ttlSecondsAfterFinished: {{ .Values.esIndexCleaner.ttlSecondsAfterFinished }} + {{- end }} + template: + metadata: + {{- if .Values.esIndexCleaner.podAnnotations }} + annotations: + {{- toYaml .Values.esIndexCleaner.podAnnotations | nindent 12 }} + {{- end }} + labels: + {{- include "jaeger.selectorLabels" . | nindent 12 }} + app.kubernetes.io/component: es-index-cleaner + {{- if .Values.esIndexCleaner.podLabels }} + {{- toYaml .Values.esIndexCleaner.podLabels | nindent 12 }} + {{- end }} + spec: + serviceAccountName: {{ template "jaeger.esIndexCleaner.serviceAccountName" . }} + {{- include "esIndexCleaner.imagePullSecrets" . | nindent 10 }} + securityContext: + {{- toYaml .Values.esIndexCleaner.podSecurityContext | nindent 12 }} + containers: + - name: {{ include "jaeger.fullname" . }}-es-index-cleaner + securityContext: + {{- toYaml .Values.esIndexCleaner.securityContext | nindent 14 }} + image: {{ include "esIndexCleaner.image" . }} + imagePullPolicy: {{ .Values.esIndexCleaner.image.pullPolicy }} + args: + - {{ .Values.esIndexCleaner.numberOfDays | quote }} + - {{ .Values.esIndexCleaner.numberOfDays | quote }} + # URL is now expected to be passed via args or env if needed, or configured in external scripts + # {{ include "elasticsearch.client.url" . }} + {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esIndexCleaner.cmdlineParams ) | nindent 14 }} + env: + {{- include "elasticsearch.env" . | nindent 14 }} + {{- if .Values.esIndexCleaner.extraEnv }} + {{- toYaml .Values.esIndexCleaner.extraEnv | nindent 14 }} + {{- end }} + resources: + {{- toYaml .Values.esIndexCleaner.resources | nindent 14 }} + volumeMounts: + {{- range .Values.esIndexCleaner.extraConfigmapMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath }} + readOnly: {{ .readOnly }} + {{- end }} + {{- range .Values.esIndexCleaner.extraSecretMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath }} + readOnly: {{ .readOnly }} + {{- end }} + restartPolicy: OnFailure + {{- with .Values.esIndexCleaner.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.esIndexCleaner.affinity }} + affinity: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.esIndexCleaner.tolerations }} + tolerations: + {{- toYaml . | nindent 12 }} + {{- end }} + volumes: + {{- range .Values.esIndexCleaner.extraConfigmapMounts }} + - name: {{ .name }} + configMap: + name: {{ .configMap }} + {{- end }} + {{- range .Values.esIndexCleaner.extraSecretMounts }} + - name: {{ .name }} + secret: + secretName: {{ .secretName }} + {{- end }} +{{- end -}} + +{{- if and .Values.esIndexCleaner.enabled .Values.esIndexCleaner.serviceAccount.create -}} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "jaeger.esIndexCleaner.serviceAccountName" . }} + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: es-index-cleaner + {{- with .Values.esIndexCleaner.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.esIndexCleaner.serviceAccount.automountServiceAccountToken }} +{{- end -}} + +{{- if .Values.esRollover.enabled -}} +--- +apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }} +kind: CronJob +metadata: + name: {{ include "jaeger.fullname" . }}-es-rollover + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: es-rollover +{{- if .Values.esRollover.annotations }} + annotations: + {{- toYaml .Values.esRollover.annotations | nindent 4 }} +{{- end }} +spec: + concurrencyPolicy: {{ .Values.esRollover.concurrencyPolicy }} + schedule: {{ .Values.esRollover.schedule | quote }} + successfulJobsHistoryLimit: {{ .Values.esRollover.successfulJobsHistoryLimit }} + failedJobsHistoryLimit: {{ .Values.esRollover.failedJobsHistoryLimit }} + suspend: false + jobTemplate: + spec: + {{- if .Values.esRollover.activeDeadlineSeconds }} + activeDeadlineSeconds: {{ .Values.esRollover.activeDeadlineSeconds }} + {{- end }} + {{- if .Values.esRollover.ttlSecondsAfterFinished }} + ttlSecondsAfterFinished: {{ .Values.esRollover.ttlSecondsAfterFinished }} + {{- end }} + template: + metadata: + {{- if .Values.esRollover.podAnnotations }} + annotations: + {{- toYaml .Values.esRollover.podAnnotations | nindent 12 }} + {{- end }} + labels: + {{- include "jaeger.selectorLabels" . | nindent 12 }} + app.kubernetes.io/component: es-rollover + {{- if .Values.esRollover.podLabels }} + {{- toYaml .Values.esRollover.podLabels | nindent 12 }} + {{- end }} + spec: + serviceAccountName: {{ template "jaeger.esRollover.serviceAccountName" . }} + {{- include "esRollover.imagePullSecrets" . | nindent 10 }} + securityContext: + {{- toYaml .Values.esRollover.podSecurityContext | nindent 12 }} + restartPolicy: OnFailure + {{- with .Values.esRollover.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.esRollover.affinity }} + affinity: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.esRollover.tolerations }} + tolerations: + {{- toYaml . | nindent 12 }} + {{- end }} + containers: + - name: {{ include "jaeger.fullname" . }}-es-rollover + securityContext: + {{- toYaml .Values.esRollover.securityContext | nindent 14 }} + image: {{ include "esRollover.image" . }} + imagePullPolicy: {{ .Values.esRollover.image.pullPolicy }} + args: + - rollover + - rollover + # URL must be passed via extraArgs or env + # {{ include "elasticsearch.client.url" . }} + {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esRollover.cmdlineParams ) | nindent 14 }} + env: + {{- include "elasticsearch.env" . | nindent 14 }} + {{- if .Values.esRollover.extraEnv }} + {{- toYaml .Values.esRollover.extraEnv | nindent 14 }} + {{- end }} + resources: + {{- toYaml .Values.esRollover.resources | nindent 14 }} + volumeMounts: + {{- range .Values.esRollover.extraConfigmapMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath }} + readOnly: {{ .readOnly }} + {{- end }} + {{- range .Values.esRollover.extraSecretMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath }} + readOnly: {{ .readOnly }} + {{- end }} + volumes: + {{- range .Values.esRollover.extraConfigmapMounts }} + - name: {{ .name }} + configMap: + name: {{ .configMap }} + {{- end }} + {{- range .Values.esRollover.extraSecretMounts }} + - name: {{ .name }} + secret: + secretName: {{ .secretName }} + {{- end }} +{{- end -}} + +{{- if and .Values.esRollover.enabled .Values.esRollover.serviceAccount.create -}} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "jaeger.esRollover.serviceAccountName" . }} + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: es-index-rollover + annotations: + "helm.sh/hook": pre-install,pre-upgrade + # Must be created before the rollover init hook + "helm.sh/hook-weight": "-10" + "helm.sh/hook-delete-policy": before-hook-creation +automountServiceAccountToken: {{ .Values.esRollover.serviceAccount.automountServiceAccountToken }} +{{- end -}} + +{{- if .Values.esLookback.enabled -}} +--- +apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }} +kind: CronJob +metadata: + name: {{ include "jaeger.fullname" . }}-es-lookback + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: es-lookback +{{- if .Values.esLookback.annotations }} + annotations: + {{- toYaml .Values.esLookback.annotations | nindent 4 }} +{{- end }} +spec: + concurrencyPolicy: {{ .Values.esLookback.concurrencyPolicy }} + schedule: {{ .Values.esLookback.schedule | quote }} + successfulJobsHistoryLimit: {{ .Values.esLookback.successfulJobsHistoryLimit }} + failedJobsHistoryLimit: {{ .Values.esLookback.failedJobsHistoryLimit }} + suspend: false + jobTemplate: + spec: + {{- if .Values.esLookback.activeDeadlineSeconds }} + activeDeadlineSeconds: {{ .Values.esLookback.activeDeadlineSeconds }} + {{- end }} + {{- if .Values.esLookback.ttlSecondsAfterFinished }} + ttlSecondsAfterFinished: {{ .Values.esLookback.ttlSecondsAfterFinished }} + {{- end }} + template: + metadata: + {{- if .Values.esLookback.podAnnotations }} + annotations: + {{- toYaml .Values.esLookback.podAnnotations | nindent 12 }} + {{- end }} + labels: + {{- include "jaeger.selectorLabels" . | nindent 12 }} + app.kubernetes.io/component: es-lookback + {{- if .Values.esLookback.podLabels }} + {{- toYaml .Values.esLookback.podLabels | nindent 12 }} + {{- end }} + spec: + serviceAccountName: {{ template "jaeger.esLookback.serviceAccountName" . }} + {{- include "esLookback.imagePullSecrets" . | nindent 10 }} + securityContext: + {{- toYaml .Values.esLookback.podSecurityContext | nindent 12 }} + restartPolicy: OnFailure + {{- with .Values.esLookback.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.esLookback.affinity }} + affinity: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.esLookback.tolerations }} + tolerations: + {{- toYaml . | nindent 12 }} + {{- end }} + + containers: + - name: {{ include "jaeger.fullname" . }}-es-lookback + securityContext: + {{- toYaml .Values.esLookback.securityContext | nindent 14 }} + image: {{ include "esLookback.image" . }} + imagePullPolicy: {{ .Values.esLookback.image.pullPolicy }} + args: + - lookback + - lookback + # URL must be passed via extraArgs or env + # {{ include "elasticsearch.client.url" . }} + {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esLookback.cmdlineParams ) | nindent 14 }} + env: + {{- include "elasticsearch.env" . | nindent 14 }} + {{- if .Values.esLookback.extraEnv }} + {{- toYaml .Values.esLookback.extraEnv | nindent 14 }} + {{- end }} + resources: + {{- toYaml .Values.esLookback.resources | nindent 14 }} + volumeMounts: + {{- range .Values.esLookback.extraConfigmapMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath }} + readOnly: {{ .readOnly }} + {{- end }} + {{- range .Values.esLookback.extraSecretMounts }} + - name: {{ .name }} + mountPath: {{ .mountPath }} + subPath: {{ .subPath }} + readOnly: {{ .readOnly }} + {{- end }} + volumes: + {{- range .Values.esLookback.extraConfigmapMounts }} + - name: {{ .name }} + configMap: + name: {{ .configMap }} + {{- end }} + {{- range .Values.esLookback.extraSecretMounts }} + - name: {{ .name }} + secret: + secretName: {{ .secretName }} + {{- end }} +{{- end -}} + +{{- if and .Values.esLookback.enabled .Values.esLookback.serviceAccount.create -}} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "jaeger.esLookback.serviceAccountName" . }} + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: es-lookback + {{- with .Values.esLookback.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.esLookback.serviceAccount.automountServiceAccountToken }} +{{- end -}} diff --git a/charts/jaeger/templates/es-rollover-cronjob.yaml b/charts/jaeger/templates/es-rollover-cronjob.yaml deleted file mode 100644 index 35f9e5bc..00000000 --- a/charts/jaeger/templates/es-rollover-cronjob.yaml +++ /dev/null @@ -1,110 +0,0 @@ -{{- if .Values.esRollover.enabled -}} -apiVersion: {{ include "common.capabilities.cronjob.apiVersion" $ }} -kind: CronJob -metadata: - name: {{ include "jaeger.fullname" . }}-es-rollover - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: es-rollover -{{- if .Values.esRollover.annotations }} - annotations: - {{- toYaml .Values.esRollover.annotations | nindent 4 }} -{{- end }} -spec: - concurrencyPolicy: {{ .Values.esRollover.concurrencyPolicy }} - schedule: {{ .Values.esRollover.schedule | quote }} - successfulJobsHistoryLimit: {{ .Values.esRollover.successfulJobsHistoryLimit }} - failedJobsHistoryLimit: {{ .Values.esRollover.failedJobsHistoryLimit }} - suspend: false - jobTemplate: - spec: - {{- if .Values.esRollover.activeDeadlineSeconds }} - activeDeadlineSeconds: {{ .Values.esRollover.activeDeadlineSeconds }} - {{- end }} - {{- if .Values.esRollover.ttlSecondsAfterFinished }} - ttlSecondsAfterFinished: {{ .Values.esRollover.ttlSecondsAfterFinished }} - {{- end }} - template: - metadata: - {{- if .Values.esRollover.podAnnotations }} - annotations: - {{- toYaml .Values.esRollover.podAnnotations | nindent 12 }} - {{- end }} - labels: - {{- include "jaeger.selectorLabels" . | nindent 12 }} - app.kubernetes.io/component: es-rollover - {{- if .Values.esRollover.podLabels }} - {{- toYaml .Values.esRollover.podLabels | nindent 12 }} - {{- end }} - spec: - serviceAccountName: {{ template "jaeger.esRollover.serviceAccountName" . }} - {{- include "esRollover.imagePullSecrets" . | nindent 10 }} - securityContext: - {{- toYaml .Values.esRollover.podSecurityContext | nindent 12 }} - restartPolicy: OnFailure - {{- with .Values.esRollover.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.esRollover.affinity }} - affinity: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.esRollover.tolerations }} - tolerations: - {{- toYaml . | nindent 12 }} - {{- end }} - - containers: - - name: {{ include "jaeger.fullname" . }}-es-rollover - securityContext: - {{- toYaml .Values.esRollover.securityContext | nindent 14 }} - image: {{ include "esRollover.image" . }} - imagePullPolicy: {{ .Values.esRollover.image.pullPolicy }} - args: - - rollover - - {{ include "elasticsearch.client.url" . }} - {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.esRollover.cmdlineParams ) | nindent 14 }} - env: - {{ include "elasticsearch.env" . | nindent 14 }} - {{- if .Values.esRollover.extraEnv }} - {{- toYaml .Values.esRollover.extraEnv | nindent 14 }} - {{- end }} - resources: - {{- toYaml .Values.esRollover.resources | nindent 14 }} - volumeMounts: - {{- range .Values.esRollover.extraConfigmapMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- range .Values.esRollover.extraSecretMounts }} - - name: {{ .name }} - mountPath: {{ .mountPath }} - subPath: {{ .subPath }} - readOnly: {{ .readOnly }} - {{- end }} - {{- if .Values.storage.elasticsearch.tls.enabled }} - - name: {{ .Values.storage.elasticsearch.tls.secretName }} - mountPath: {{ .Values.storage.elasticsearch.tls.mountPath }} - subPath: {{ .Values.storage.elasticsearch.tls.subPath }} - readOnly: true - {{- end }} - volumes: - {{- range .Values.esRollover.extraConfigmapMounts }} - - name: {{ .name }} - configMap: - name: {{ .configMap }} - {{- end }} - {{- range .Values.esRollover.extraSecretMounts }} - - name: {{ .name }} - secret: - secretName: {{ .secretName }} - {{- end }} - {{- if .Values.storage.elasticsearch.tls.enabled }} - - name: {{ .Values.storage.elasticsearch.tls.secretName }} - secret: - secretName: {{ .Values.storage.elasticsearch.tls.secretName }} - {{- end }} -{{- end -}} diff --git a/charts/jaeger/templates/es-rollover-sa.yaml b/charts/jaeger/templates/es-rollover-sa.yaml deleted file mode 100644 index 351906c5..00000000 --- a/charts/jaeger/templates/es-rollover-sa.yaml +++ /dev/null @@ -1,15 +0,0 @@ -{{- if and .Values.esRollover.enabled .Values.esRollover.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "jaeger.esRollover.serviceAccountName" . }} - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: es-index-rollover - annotations: - "helm.sh/hook": pre-install,pre-upgrade - # Must be created before the rollover init hook - "helm.sh/hook-weight": "-10" - "helm.sh/hook-delete-policy": before-hook-creation -automountServiceAccountToken: {{ .Values.esRollover.serviceAccount.automountServiceAccountToken }} -{{- end -}} diff --git a/charts/jaeger/templates/hotrod-deploy.yaml b/charts/jaeger/templates/hotrod-deploy.yaml deleted file mode 100644 index 0325d8a2..00000000 --- a/charts/jaeger/templates/hotrod-deploy.yaml +++ /dev/null @@ -1,70 +0,0 @@ -{{- if .Values.hotrod.enabled -}} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "jaeger.fullname" . }}-hotrod - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: hotrod -spec: - replicas: {{ .Values.hotrod.replicaCount }} - selector: - matchLabels: - {{- include "jaeger.selectorLabels" . | nindent 6 }} - app.kubernetes.io/component: hotrod - template: - metadata: - labels: - {{- include "jaeger.selectorLabels" . | nindent 8 }} - app.kubernetes.io/component: hotrod - spec: - securityContext: - {{- toYaml .Values.hotrod.podSecurityContext | nindent 8 }} - serviceAccountName: {{ template "jaeger.hotrod.serviceAccountName" . }} - {{- include "hotrod.imagePullSecrets" . | nindent 6 }} - containers: - - name: {{ include "jaeger.fullname" . }}-hotrod - securityContext: - {{- toYaml .Values.hotrod.securityContext | nindent 12 }} - image: {{ include "hotrod.image" . }} - imagePullPolicy: {{ .Values.hotrod.image.pullPolicy }} - args: - {{- toYaml .Values.hotrod.args | nindent 12 }} - {{- with .Values.hotrod.extraArgs }} - {{- toYaml . | nindent 12 }} - {{- end }} - env: - - name: JAEGER_AGENT_HOST - value: {{ template "jaeger.hotrod.tracing.host" . }} - - name: JAEGER_AGENT_PORT - value: {{ .Values.hotrod.tracing.port | quote }} - {{- if .Values.hotrod.extraEnv }} - {{- toYaml .Values.hotrod.extraEnv | nindent 12 }} - {{- end }} - ports: - - name: http - containerPort: 8080 - protocol: TCP - livenessProbe: - httpGet: - path: {{ .Values.hotrod.livenessProbe.path | default "/" | quote }} - port: http - readinessProbe: - httpGet: - path: {{ .Values.hotrod.readinessProbe.path | default "/" | quote }} - port: http - resources: - {{- toYaml .Values.hotrod.resources | nindent 12 }} - {{- with .Values.hotrod.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.hotrod.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.hotrod.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} -{{- end }} diff --git a/charts/jaeger/templates/hotrod-ing.yaml b/charts/jaeger/templates/hotrod-ing.yaml deleted file mode 100644 index abfaffbe..00000000 --- a/charts/jaeger/templates/hotrod-ing.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- if .Values.hotrod.enabled -}} - {{- if .Values.hotrod.ingress.enabled -}} - {{- $ingressSupportsIngressClassName := eq (include "common.ingress.supportsIngressClassname" .) "true" }} - {{- $serviceName := include "jaeger.fullname" . -}} - {{- $servicePort := .Values.hotrod.service.port -}} -apiVersion: {{ include "common.capabilities.ingress.apiVersion" $ }} -kind: Ingress -metadata: - name: {{ include "jaeger.fullname" . }}-hotrod - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: hotrod - {{- if .Values.hotrod.ingress.annotations }} - annotations: - {{- toYaml .Values.hotrod.ingress.annotations | nindent 4 }} - {{- end }} -spec: - {{- if and $ingressSupportsIngressClassName .Values.hotrod.ingress.ingressClassName }} - ingressClassName: {{ .Values.hotrod.ingress.ingressClassName }} - {{- end }} - rules: - {{- range $host := .Values.hotrod.ingress.hosts }} - - host: {{ $host | quote}} - http: - paths: - - path: / - pathType: {{ default "ImplementationSpecific" $.Values.hotrod.ingress.pathType }} - backend: {{- include "common.ingress.backend" (dict "serviceName" (printf "%s-hotrod" $serviceName) "servicePort" $servicePort "context" $) | nindent 14 }} - {{- end -}} - {{- if .Values.hotrod.ingress.tls }} - tls: - {{- toYaml .Values.hotrod.ingress.tls | nindent 4 }} - {{- end -}} - {{- end -}} - {{- end -}} diff --git a/charts/jaeger/templates/hotrod-sa.yaml b/charts/jaeger/templates/hotrod-sa.yaml deleted file mode 100644 index 6026edbe..00000000 --- a/charts/jaeger/templates/hotrod-sa.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if and .Values.hotrod.enabled .Values.hotrod.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "jaeger.hotrod.serviceAccountName" . }} - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: hotrod - {{- with .Values.hotrod.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -automountServiceAccountToken: {{ .Values.hotrod.serviceAccount.automountServiceAccountToken }} -{{- end -}} diff --git a/charts/jaeger/templates/hotrod-svc.yaml b/charts/jaeger/templates/hotrod-svc.yaml deleted file mode 100644 index 01771a58..00000000 --- a/charts/jaeger/templates/hotrod-svc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if .Values.hotrod.enabled -}} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "jaeger.fullname" . }}-hotrod - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: hotrod -{{- if .Values.hotrod.service.annotations }} - annotations: - {{- toYaml .Values.hotrod.service.annotations | nindent 4 }} -{{- end }} -spec: - type: {{ .Values.hotrod.service.type }} - ports: - - name: http - port: {{ .Values.hotrod.service.port }} - protocol: TCP - targetPort: http - selector: - {{- include "jaeger.selectorLabels" . | nindent 4 }} - app.kubernetes.io/component: hotrod -{{- template "loadBalancerSourceRanges" .Values.hotrod }} -{{- end -}} diff --git a/charts/jaeger/templates/service.yaml b/charts/jaeger/templates/service.yaml new file mode 100644 index 00000000..53ac392f --- /dev/null +++ b/charts/jaeger/templates/service.yaml @@ -0,0 +1,71 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "jaeger.fullname" . }} + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: all-in-one + {{- if .Values.allInOne.service.annotations }} + {{- toYaml .Values.allInOne.service.annotations | nindent 4 }} + {{- end }} + annotations: + {{- if .Values.allInOne.service.annotations }} + {{- toYaml .Values.allInOne.service.annotations | nindent 4 }} + {{- end }} +spec: + type: {{ .Values.allInOne.service.type | default "ClusterIP" }} + {{- if .Values.allInOne.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{ toYaml .Values.allInOne.service.loadBalancerSourceRanges | nindent 4 }} + {{- end }} + ports: + # Agent Ports + - name: zk-compact-trft + port: 5775 + protocol: UDP + targetPort: 5775 + - name: config-rest + port: 5778 + targetPort: 5778 + - name: jg-compact-trft + port: 6831 + protocol: UDP + targetPort: 6831 + - name: jg-binary-trft + port: 6832 + protocol: UDP + targetPort: 6832 + # Collector Ports + - name: http-zipkin + port: 9411 + targetPort: 9411 + appProtocol: http + - name: grpc-http + port: 14250 + targetPort: 14250 + appProtocol: grpc + - name: c-tchan-trft + port: 14267 + targetPort: 14267 + - name: http-c-binary-trft + port: 14268 + targetPort: 14268 + appProtocol: http + - name: otlp-grpc + port: 4317 + targetPort: 4317 + appProtocol: grpc + - name: otlp-http + port: 4318 + targetPort: 4318 + appProtocol: http + # Query Ports + - name: http-query + port: 16686 + targetPort: 16686 + - name: grpc-query + port: 16685 + targetPort: 16685 + selector: + {{- include "jaeger.selectorLabels" . | nindent 4 }} + app.kubernetes.io/component: all-in-one diff --git a/charts/jaeger/templates/spark-cronjob.yaml b/charts/jaeger/templates/spark-dependencies.yaml similarity index 81% rename from charts/jaeger/templates/spark-cronjob.yaml rename to charts/jaeger/templates/spark-dependencies.yaml index f58efa8f..23be80ff 100644 --- a/charts/jaeger/templates/spark-cronjob.yaml +++ b/charts/jaeger/templates/spark-dependencies.yaml @@ -44,8 +44,10 @@ spec: - name: {{ include "jaeger.fullname" . }}-spark image: {{ include "spark.image" . }} imagePullPolicy: {{ .Values.spark.image.pullPolicy }} + {{- if .Values.spark.cmdlineParams }} args: {{ include "extra.cmdArgs" ( dict "cmdlineParams" .Values.spark.cmdlineParams ) | nindent 14 }} + {{- end }} env: - name: STORAGE value: {{ .Values.storage.type }} @@ -57,14 +59,10 @@ spec: - name: CASSANDRA_CONTACT_POINTS value: {{ include "cassandra.contact_points" . }} {{- end }} - {{- if eq .Values.storage.type "elasticsearch" }} - - name: ES_NODES - value: {{ include "elasticsearch.client.url" . }} - - name: ES_NODES_WAN_ONLY - value: {{ .Values.storage.elasticsearch.nodesWanOnly | quote }} - {{- end }} + # Elasticsearch configuration (ES_NODES, ES_NODES_WAN_ONLY) must be provided via extraEnv resources: {{- toYaml .Values.spark.resources | nindent 14 }} + {{- if or .Values.spark.extraConfigmapMounts .Values.spark.extraSecretMounts }} volumeMounts: {{- range .Values.spark.extraConfigmapMounts }} - name: {{ .name }} @@ -78,9 +76,11 @@ spec: subPath: {{ .subPath }} readOnly: {{ .readOnly }} {{- end }} + {{- end }} securityContext: {{- toYaml .Values.spark.securityContext | nindent 14 }} restartPolicy: OnFailure + {{- if or .Values.spark.extraConfigmapMounts .Values.spark.extraSecretMounts }} volumes: {{- range .Values.spark.extraConfigmapMounts }} - name: {{ .name }} @@ -92,6 +92,7 @@ spec: secret: secretName: {{ .secretName }} {{- end }} + {{- end }} {{- with .Values.spark.nodeSelector }} nodeSelector: {{- toYaml . | nindent 12 }} @@ -105,3 +106,19 @@ spec: {{- toYaml . | nindent 12 }} {{- end }} {{- end -}} + +{{- if and .Values.spark.enabled .Values.spark.serviceAccount.create -}} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "jaeger.spark.serviceAccountName" . }} + labels: + {{- include "jaeger.labels" . | nindent 4 }} + app.kubernetes.io/component: spark + {{- with .Values.spark.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.spark.serviceAccount.automountServiceAccountToken }} +{{- end -}} diff --git a/charts/jaeger/templates/spark-sa.yaml b/charts/jaeger/templates/spark-sa.yaml deleted file mode 100644 index d35eaebc..00000000 --- a/charts/jaeger/templates/spark-sa.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if and .Values.spark.enabled .Values.spark.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ template "jaeger.spark.serviceAccountName" . }} - labels: - {{- include "jaeger.labels" . | nindent 4 }} - app.kubernetes.io/component: spark - {{- with .Values.spark.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -automountServiceAccountToken: {{ .Values.spark.serviceAccount.automountServiceAccountToken }} -{{- end -}} diff --git a/charts/jaeger/templates/storage-configmap.yaml b/charts/jaeger/templates/storage-configmap.yaml index a1acc3ca..64cf7168 100644 --- a/charts/jaeger/templates/storage-configmap.yaml +++ b/charts/jaeger/templates/storage-configmap.yaml @@ -1,4 +1,4 @@ -{{- if (and (not .Values.userconfig) (or .Values.provisionDataStore.elasticsearch .Values.provisionDataStore.cassandra (eq .Values.storage.type "elasticsearch"))) }} +{{- if (and (not .Values.userconfig) (or .Values.provisionDataStore.elasticsearch .Values.provisionDataStore.cassandra (eq .Values.storage.type "elasticsearch") (eq .Values.storage.type "cassandra"))) }} apiVersion: v1 kind: ConfigMap metadata: @@ -9,111 +9,22 @@ metadata: data: user-config.yaml: | service: - extensions: [jaeger_storage, jaeger_query, healthcheckv2] + extensions: {{ include "jaeger.serviceExtensions" . }} pipelines: traces: - receivers: [otlp, jaeger, zipkin] - processors: [batch] - exporters: [jaeger_storage_exporter] + receivers: {{ include "jaeger.serviceReceivers" . }} + processors: {{ include "jaeger.serviceProcessors" . }} + exporters: {{ include "jaeger.serviceExporters" . }} extensions: - healthcheckv2: - use_v2: true - http: - endpoint: 0.0.0.0:13133 - - jaeger_query: - storage: - traces: primary_store - traces_archive: archive_store - - jaeger_storage: - backends: - primary_store: - {{- if or .Values.provisionDataStore.elasticsearch (eq .Values.storage.type "elasticsearch") }} - elasticsearch: - server_urls: ["{{ include "elasticsearch.client.url" . }}"] - indices: - index_prefix: {{ .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.index_prefix | quote }} - {{- if .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.username }} - auth: - basic: - username: {{ .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.username | quote }} - {{- if .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.password }} - password: {{ .Values.config.extensions.jaeger_storage.backends.primary_store.elasticsearch.password | quote }} - {{- end }} - {{- end }} - tls: - insecure: {{ .Values.storage.elasticsearch.tls.insecure | default false }} - {{- if and .Values.storage.elasticsearch.tls.enabled .Values.storage.elasticsearch.tls.ca }} - ca_file: {{ .Values.storage.elasticsearch.tls.ca }} - {{- end }} - {{- else if or .Values.provisionDataStore.cassandra (eq .Values.storage.type "cassandra") }} - cassandra: - connection: - servers: - - jaeger-cassandra-0.jaeger-cassandra.{{ include "jaeger.namespace" . }}.svc.cluster.local - port: {{ .Values.storage.cassandra.port }} - {{- if .Values.storage.cassandra.username }} - auth: - basic: - username: {{ .Values.storage.cassandra.username }} - password: {{ .Values.storage.cassandra.password }} - {{- end }} - tls: - insecure: true - schema: - keyspace: {{ .Values.storage.cassandra.keyspace }} - replication_factor: 1 - {{- end }} - archive_store: - {{- if or .Values.provisionDataStore.elasticsearch (eq .Values.storage.type "elasticsearch") }} - elasticsearch: - server_urls: ["{{ include "elasticsearch.client.url" . }}"] - indices: - index_prefix: {{ .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.index_prefix | quote }} - {{- if .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.username }} - auth: - basic: - username: {{ .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.username | quote }} - {{- if .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.password }} - password: {{ .Values.config.extensions.jaeger_storage.backends.archive_store.elasticsearch.password | quote }} - {{- end }} - {{- end }} - tls: - insecure: {{ .Values.storage.elasticsearch.tls.insecure | default false }} - {{- if and .Values.storage.elasticsearch.tls.enabled .Values.storage.elasticsearch.tls.ca }} - ca_file: {{ .Values.storage.elasticsearch.tls.ca }} - {{- end }} - {{- else }} - memory: - max_traces: 100000 - {{- end }} +{{ include "jaeger.extensionsConfig" . }} receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - jaeger: - protocols: - grpc: - endpoint: 0.0.0.0:14250 - thrift_http: - endpoint: 0.0.0.0:14268 - thrift_compact: - endpoint: 0.0.0.0:6831 - thrift_binary: - endpoint: 0.0.0.0:6832 - zipkin: - endpoint: 0.0.0.0:9411 +{{ include "jaeger.receiversConfig" . }} processors: - batch: +{{ include "jaeger.processorsConfig" . }} exporters: - jaeger_storage_exporter: - trace_storage: primary_store +{{ include "jaeger.exportersConfig" . }} {{- end }} diff --git a/charts/jaeger/values.yaml b/charts/jaeger/values.yaml index 6dad99f6..0dad4c7c 100644 --- a/charts/jaeger/values.yaml +++ b/charts/jaeger/values.yaml @@ -34,18 +34,18 @@ config: backends: primary_store: elasticsearch: - index_prefix: jaeger + # index_prefix: jaeger server_urls: ["http://elasticsearch-master:9200"] - username: elastic - password: changeme + # username: elastic + # password: changeme memory: max_traces: 100000 archive_store: elasticsearch: - index_prefix: jaeger-archive + # index_prefix: jaeger-archive server_urls: ["http://elasticsearch-master:9200"] - username: elastic - password: changeme + # username: elastic + # password: changeme memory: max_traces: 100000 @@ -96,8 +96,7 @@ allInOne: pullPolicy: IfNotPresent pullSecrets: [] extraEnv: [] - extraSecretMounts: - [] + extraSecretMounts: [] # - name: jaeger-tls # mountPath: /tls # subPath: "" @@ -168,9 +167,6 @@ storage: cassandra: host: cassandra port: 9042 - # Change this value to false if you want to avoid starting the - # -cassandra-schema Job - schemaJobEnabled: true tls: enabled: false secretName: cassandra-tls-secret @@ -181,8 +177,7 @@ storage: ## Use existing secret (ignores previous password) # existingSecret: ## Cassandra related env vars to be configured on the concerned components - extraEnv: - [] + extraEnv: [] # - name: CASSANDRA_SERVERS # value: cassandra # - name: CASSANDRA_PORT @@ -192,47 +187,15 @@ storage: # - name: CASSANDRA_TLS_ENABLED # value: "false" ## Cassandra related cmd line opts to be configured on the concerned components - cmdlineParams: - {} + cmdlineParams: {} # cassandra.servers: cassandra # cassandra.port: 9042 # cassandra.keyspace: jaeger_v1_test # cassandra.tls.enabled: "false" elasticsearch: - scheme: http - host: elasticsearch-master - port: 9200 - anonymous: false - user: elastic - usePassword: true - password: changeme - # indexPrefix: test - ## Use existing secret (ignores previous password) - # existingSecret: - # existingSecretKey: - nodesWanOnly: false - extraEnv: [] - ## ES related env vars to be configured on the concerned components - # - name: ES_SERVER_URLS - # value: http://elasticsearch-master:9200 - # - name: ES_USERNAME - # value: elastic - # - name: ES_INDEX_PREFIX - # value: test - ## ES related cmd line opts to be configured on the concerned components - cmdlineParams: - {} - # es.server-urls: http://elasticsearch-master:9200 - # es.username: elastic - # es.index-prefix: test - tls: - enabled: false - secretName: es-tls-secret - # The mount properties of the secret - mountPath: /es-tls/ca-cert.pem - subPath: ca-cert.pem - # How ES_TLS_CA variable will be set in the various components - ca: /es-tls/ca-cert.pem + # Deprecated: use extraEnv + # indexPrefix: jaeger + # serverUrls: http://elasticsearch:9200 badger: ephemeral: true @@ -259,47 +222,6 @@ cassandra: # Begin: Default values for the various components of Jaeger # This chart has been based on the Kubernetes integration found in the following repo: # https://github.com/jaegertracing/jaeger-kubernetes/blob/main/production/jaeger-production-template.yml -# -# This is the jaeger-cassandra-schema Job which sets up the Cassandra schema for -# use by Jaeger -schema: - annotations: {} - tolerations: [] - image: - registry: "" - repository: jaegertracing/jaeger-cassandra-schema - tag: "1.76.0" - digest: "" - pullPolicy: IfNotPresent - pullSecrets: [] - resources: - {} - # limits: - # cpu: 500m - # memory: 512Mi - # requests: - # cpu: 256m - # memory: 128Mi - serviceAccount: - create: true - # Explicitly mounts the API credentials for the Service Account - automountServiceAccountToken: true - name: - podAnnotations: {} - podLabels: {} - securityContext: {} - podSecurityContext: {} - nodeSelector: {} - ## Deadline for cassandra schema creation job - activeDeadlineSeconds: 300 - extraEnv: - [] - # - name: MODE - # value: prod - # - name: TRACE_TTL - # value: "172800" - # - name: DEPENDENCIES_TTL - # value: "0" # For configurable values of Elasticsearch when provisioned, see: # https://github.com/elastic/helm-charts/tree/main/elasticsearch @@ -314,7 +236,10 @@ elasticsearch: - transform - remote_cluster_client volumeClaimTemplate: - enabled: false + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 30Gi secret: password: changeme esConfig: @@ -340,8 +265,7 @@ spark: successfulJobsHistoryLimit: 5 failedJobsHistoryLimit: 5 concurrencyPolicy: Forbid - resources: - {} + resources: {} # limits: # cpu: 500m # memory: 512Mi @@ -380,16 +304,14 @@ esIndexCleaner: pullPolicy: IfNotPresent pullSecrets: [] cmdlineParams: {} - extraEnv: - [] + extraEnv: [] # - name: ROLLOVER # value: 'true' schedule: "55 23 * * *" successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 concurrencyPolicy: Forbid - resources: - {} + resources: {} # limits: # cpu: 500m # memory: 512Mi @@ -435,8 +357,7 @@ esRollover: successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 concurrencyPolicy: Forbid - resources: - {} + resources: {} # limits: # cpu: 500m # memory: 512Mi @@ -459,8 +380,7 @@ esRollover: podLabels: {} # ttlSecondsAfterFinished: 120 initHook: - extraEnv: - [] + extraEnv: [] # - name: SHARDS # value: "3" annotations: {} @@ -491,8 +411,7 @@ esLookback: successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 concurrencyPolicy: Forbid - resources: - {} + resources: {} # limits: # cpu: 500m # memory: 512Mi @@ -517,81 +436,5 @@ esLookback: # ttlSecondsAfterFinished: 120 # End: Default values for the various components of Jaeger -hotrod: - enabled: false - podSecurityContext: {} - securityContext: {} - replicaCount: 1 - # set the primary command(s) for the hotrod application - args: - - all - # add extra arguments to the hotrod application to customize tracing - extraArgs: [] - # - --otel-exporter=otlp - # - --jaeger-ui=http://jaeger.chart.local - # add extra environment variables to the hotrod application - extraEnv: [] - # - name: OTEL_EXPORTER_OTLP_ENDPOINT - # value: http://my-otel-collector.chart.local:4318 - image: - registry: "" - repository: jaegertracing/example-hotrod - tag: "" - digest: "" - pullPolicy: IfNotPresent - pullSecrets: [] - service: - annotations: {} - name: hotrod - type: ClusterIP - # List of IP ranges that are allowed to access the load balancer (if supported) - loadBalancerSourceRanges: [] - port: 80 - ingress: - enabled: false - # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName - # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress - # ingressClassName: nginx - # Used to create Ingress record (should be used with service.type: ClusterIP). - hosts: - - chart-example.local - annotations: - {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - tls: - # Secrets must be manually created in the namespace. - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - pathType: - resources: - {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - serviceAccount: - create: true - # Explicitly mounts the API credentials for the Service Account - automountServiceAccountToken: false - annotations: {} - name: - nodeSelector: {} - tolerations: [] - affinity: {} - tracing: - host: null - port: 6831 - livenessProbe: - path: / - readinessProbe: - path: / # Array with extra yaml objects to install alongside the chart. Values are evaluated as a template. extraObjects: []