Kaynağa Gözat

[bitnami/jaeger] Major release: Jaeger v2 (#35352)

* [bitnami/jaeger] Release 5.1.25 updating components versions

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* [bitnami/jaeger] Major release: Jaeger v2

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Fix Markdown lint

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Fix values metadata

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Update CHANGELOG.md

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* Fix cypress endpoint port

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Apply suggestions

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Update CHANGELOG.md

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>

* Add configmap checksum annotation

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Add note on external cassandra keyspace

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Fix helper descriptions and empty lines

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Move helpers to the configmap templates

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Remove 'command' default

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Update helpers.tpl

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

* Add checksum annotation conditional

Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>

---------

Signed-off-by: Bitnami Bot <bitnami.bot@broadcom.com>
Signed-off-by: Miguel Ruiz <miguel.ruiz@broadcom.com>
Co-authored-by: Bitnami Bot <bitnami.bot@broadcom.com>
Miguel Ruiz 1 ay önce
ebeveyn
işleme
60e46acccc

+ 9 - 7
.vib/jaeger/goss/goss.yaml

@@ -2,16 +2,18 @@
 # SPDX-License-Identifier: APACHE-2.0
 
 http:
-  http://jaeger-collector:{{ .Vars.collector.service.ports.admin }}/:
-    status: 200
+  http://jaeger-collector:{{ .Vars.collector.service.ports.otlp.http }}/v1/traces:
+    status: 405
     body:
-      - Server available
-  http://jaeger-query:{{ .Vars.query.service.ports.admin }}/:
+      - method not allowed
+  http://jaeger-query:{{ .Vars.query.service.ports.http }}/:
     status: 200
     body:
-      - Server available
-  http://localhost:{{ .Vars.collector.containerPorts.admin }}/:
-    status: 200
+      - Jaeger UI
+  http://localhost:{{ .Vars.collector.containerPorts.otlp.http }}/v1/traces:
+    status: 405
+    body:
+      - method not allowed
 command:
   check-cassandra-auth:
     exec: \[ $CASSANDRA_USERNAME = {{ .Vars.cassandra.dbUser.user }} ] && [ $CASSANDRA_PASSWORD = {{ .Vars.cassandra.dbUser.password }} ] && [ $CASSANDRA_KEYSPACE = {{ .Vars.cassandra.keyspace }} ];

+ 7 - 5
.vib/jaeger/runtime-parameters.yaml

@@ -5,7 +5,7 @@ query:
       args: ['all']
       env:
         - name: OTEL_EXPORTER_OTLP_ENDPOINT
-          value: http://jaeger-collector:4318
+          value: http://jaeger-collector:14318
       securityContext:
         runAsNonRoot: true
         privileged: false
@@ -40,14 +40,16 @@ query:
   service:
     type: LoadBalancer
     ports:
-      admin: 16688
-      api: 80
+      grpc: 16688
+      http: 80
 collector:
   service:
     ports:
-      admin: 14270
+      otlp:
+        http: 14318
   containerPorts:
-    admin: 14771
+    otlp:
+      http: 14318
   podSecurityContext:
     enabled: true
     fsGroup: 1002

+ 1 - 1
.vib/jaeger/vib-verify.json

@@ -61,7 +61,7 @@
             "resources": {
               "path": "/.vib/jaeger/cypress"
             },
-            "endpoint": "lb-jaeger-query-api",
+            "endpoint": "lb-jaeger-query-http",
             "app_protocol": "HTTP"
           }
         },

+ 6 - 2
bitnami/jaeger/CHANGELOG.md

@@ -1,8 +1,12 @@
 # Changelog
 
-## 5.1.24 (2025-07-09)
+## 6.0.0 (2025-08-01)
 
-* [bitnami/jaeger] :zap: :arrow_up: Update dependency references ([#34908](https://github.com/bitnami/charts/pull/34908))
+* [bitnami/jaeger] Major release: Jaeger v2  ([#35352](https://github.com/bitnami/charts/pull/35352))
+
+## <small>5.1.24 (2025-07-09)</small>
+
+* [bitnami/jaeger] :zap: :arrow_up: Update dependency references (#34908) ([d016eb3](https://github.com/bitnami/charts/commit/d016eb3d2d5f905a778ed57e4557569abc649e2f)), closes [#34908](https://github.com/bitnami/charts/issues/34908)
 
 ## <small>5.1.23 (2025-07-05)</small>
 

+ 3 - 3
bitnami/jaeger/Chart.yaml

@@ -5,9 +5,9 @@ annotations:
   category: Infrastructure
   images: |
     - name: cassandra
-      image: docker.io/bitnami/cassandra:5.0.4-debian-12-r6
+      image: docker.io/bitnami/cassandra:5.0.4-debian-12-r7
     - name: jaeger
-      image: docker.io/bitnami/jaeger:2.8.0-debian-12-r2
+      image: docker.io/bitnami/jaeger:2.8.0-debian-12-r4
   licenses: Apache-2.0
   tanzuCategory: clusterUtility
 apiVersion: v2
@@ -36,4 +36,4 @@ maintainers:
 name: jaeger
 sources:
 - https://github.com/bitnami/charts/tree/main/bitnami/jaeger
-version: 5.1.24
+version: 6.0.0

+ 179 - 152
bitnami/jaeger/README.md

@@ -86,6 +86,8 @@ externalDatabase.host=myexternalhost
 externalDatabase.port=9042
 ```
 
+The Jaeger keyspace needs to be created in the external Cassandra database prior to the deployment, otherwise Jaeger won't be able to initialise.
+
 ### Additional environment variables
 
 In case you want to add extra environment variables (useful for advanced operations like custom init scripts), you can use the `extraEnvVars` property inside each of the subsections: `collector`, `query`.
@@ -231,14 +233,20 @@ The [Bitnami jaeger](https://github.com/bitnami/containers/tree/main/bitnami/jae
 | `query.resourcesPreset`                                   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if query.resources is set (query.resources is recommended for production). | `small`          |
 | `query.resources`                                         | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                             | `{}`             |
 | `query.extraVolumeMounts`                                 | Optionally specify extra list of additional volumeMounts for jaeger container                                                                                                                                                 | `[]`             |
-| `query.containerPorts.grpc`                               | Port for GRPC                                                                                                                                                                                                                 | `16685`          |
-| `query.containerPorts.api`                                | Port for API                                                                                                                                                                                                                  | `16686`          |
-| `query.containerPorts.admin`                              | Port for admin                                                                                                                                                                                                                | `16687`          |
+| `query.configuration`                                     | Specify content for Jaeger collector configuration (auto-generated based on other values otherwise)                                                                                                                           | `{}`             |
+| `query.overrideConfiguration`                             | Jaeger query common configuration override. Values defined here takes precedence over the ones defined at `query.configuration`                                                                                               | `{}`             |
+| `query.existingConfigmap`                                 | The name of an existing ConfigMap with your custom configuration for Jaeger collector                                                                                                                                         | `""`             |
+| `query.containerPorts.grpc`                               | Port for GRPC API                                                                                                                                                                                                             | `16685`          |
+| `query.containerPorts.http`                               | Port for HTTP API                                                                                                                                                                                                             | `16686`          |
+| `query.containerPorts.metrics`                            | Jaeger query prometheus metrics port                                                                                                                                                                                          | `8888`           |
+| `query.containerPorts.healthcheck`                        | Jaeger query healthcheck port                                                                                                                                                                                                 | `13133`          |
 | `query.service.type`                                      | Jaeger service type                                                                                                                                                                                                           | `ClusterIP`      |
-| `query.service.ports.api`                                 | Port for API                                                                                                                                                                                                                  | `16686`          |
-| `query.service.ports.admin`                               | Port for admin                                                                                                                                                                                                                | `16687`          |
-| `query.service.nodePorts.api`                             | Node port for API                                                                                                                                                                                                             | `""`             |
-| `query.service.nodePorts.admin`                           | Node port for admin                                                                                                                                                                                                           | `""`             |
+| `query.service.ports.grpc`                                | Port for gRPC API                                                                                                                                                                                                             | `16685`          |
+| `query.service.ports.http`                                | Port for API                                                                                                                                                                                                                  | `16686`          |
+| `query.service.ports.metrics`                             | Jaeger query prometheus metrics port                                                                                                                                                                                          | `8888`           |
+| `query.service.nodePorts.grpc`                            | Port for gRPC API                                                                                                                                                                                                             | `""`             |
+| `query.service.nodePorts.http`                            | Node port for API                                                                                                                                                                                                             | `""`             |
+| `query.service.nodePorts.metrics`                         | Jaeger query prometheus metrics port                                                                                                                                                                                          | `""`             |
 | `query.service.extraPorts`                                | Extra ports to expose in the service (normally used with the `sidecar` value)                                                                                                                                                 | `[]`             |
 | `query.service.loadBalancerIP`                            | LoadBalancerIP if service type is `LoadBalancer`                                                                                                                                                                              | `""`             |
 | `query.service.loadBalancerSourceRanges`                  | Service Load Balancer sources                                                                                                                                                                                                 | `[]`             |
@@ -298,150 +306,155 @@ The [Bitnami jaeger](https://github.com/bitnami/containers/tree/main/bitnami/jae
 
 ### Collector deployment parameters
 
-| Name                                                          | Description                                                                                                                                                                                                                           | Value            |
-| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
-| `collector.command`                                           | Command for running the container (set to default if not set). Use array form                                                                                                                                                         | `[]`             |
-| `collector.args`                                              | Args for running the container (set to default if not set). Use array form                                                                                                                                                            | `[]`             |
-| `collector.automountServiceAccountToken`                      | Mount Service Account token in pod                                                                                                                                                                                                    | `false`          |
-| `collector.hostAliases`                                       | Set pod host aliases                                                                                                                                                                                                                  | `[]`             |
-| `collector.lifecycleHooks`                                    | Override default etcd container hooks                                                                                                                                                                                                 | `{}`             |
-| `collector.extraEnvVars`                                      | Extra environment variables to be set on jaeger container                                                                                                                                                                             | `[]`             |
-| `collector.extraEnvVarsCM`                                    | Name of existing ConfigMap containing extra env vars                                                                                                                                                                                  | `""`             |
-| `collector.extraEnvVarsSecret`                                | Name of existing Secret containing extra env vars                                                                                                                                                                                     | `""`             |
-| `collector.replicaCount`                                      | Number of Jaeger replicas                                                                                                                                                                                                             | `1`              |
-| `collector.livenessProbe.enabled`                             | Enable livenessProbe on collector nodes                                                                                                                                                                                               | `true`           |
-| `collector.livenessProbe.initialDelaySeconds`                 | Initial delay seconds for livenessProbe                                                                                                                                                                                               | `10`             |
-| `collector.livenessProbe.periodSeconds`                       | Period seconds for livenessProbe                                                                                                                                                                                                      | `10`             |
-| `collector.livenessProbe.timeoutSeconds`                      | Timeout seconds for livenessProbe                                                                                                                                                                                                     | `1`              |
-| `collector.livenessProbe.failureThreshold`                    | Failure threshold for livenessProbe                                                                                                                                                                                                   | `3`              |
-| `collector.livenessProbe.successThreshold`                    | Success threshold for livenessProbe                                                                                                                                                                                                   | `1`              |
-| `collector.startupProbe.enabled`                              | Enable startupProbe on collector containers                                                                                                                                                                                           | `false`          |
-| `collector.startupProbe.initialDelaySeconds`                  | Initial delay seconds for startupProbe                                                                                                                                                                                                | `10`             |
-| `collector.startupProbe.periodSeconds`                        | Period seconds for startupProbe                                                                                                                                                                                                       | `10`             |
-| `collector.startupProbe.timeoutSeconds`                       | Timeout seconds for startupProbe                                                                                                                                                                                                      | `1`              |
-| `collector.startupProbe.failureThreshold`                     | Failure threshold for startupProbe                                                                                                                                                                                                    | `15`             |
-| `collector.startupProbe.successThreshold`                     | Success threshold for startupProbe                                                                                                                                                                                                    | `1`              |
-| `collector.readinessProbe.enabled`                            | Enable readinessProbe                                                                                                                                                                                                                 | `true`           |
-| `collector.readinessProbe.initialDelaySeconds`                | Initial delay seconds for readinessProbe                                                                                                                                                                                              | `10`             |
-| `collector.readinessProbe.periodSeconds`                      | Period seconds for readinessProbe                                                                                                                                                                                                     | `10`             |
-| `collector.readinessProbe.timeoutSeconds`                     | Timeout seconds for readinessProbe                                                                                                                                                                                                    | `1`              |
-| `collector.readinessProbe.failureThreshold`                   | Failure threshold for readinessProbe                                                                                                                                                                                                  | `15`             |
-| `collector.readinessProbe.successThreshold`                   | Success threshold for readinessProbe                                                                                                                                                                                                  | `1`              |
-| `collector.customLivenessProbe`                               | Custom livenessProbe that overrides the default one                                                                                                                                                                                   | `{}`             |
-| `collector.customStartupProbe`                                | Override default startup probe                                                                                                                                                                                                        | `{}`             |
-| `collector.customReadinessProbe`                              | Override default readiness probe                                                                                                                                                                                                      | `{}`             |
-| `collector.resourcesPreset`                                   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if collector.resources is set (collector.resources is recommended for production). | `small`          |
-| `collector.resources`                                         | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                                     | `{}`             |
-| `collector.extraVolumeMounts`                                 | Optionally specify extra list of additional volumeMounts for jaeger container                                                                                                                                                         | `[]`             |
-| `collector.containerPorts.zipkin`                             | can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)                                                                                                                                                               | `9411`           |
-| `collector.containerPorts.grpc`                               | used by jaeger-collector to send spans in model.proto format                                                                                                                                                                          | `14250`          |
-| `collector.containerPorts.binary`                             | can accept spans directly from clients in jaeger.thrift format over binary thrift protocol                                                                                                                                            | `14268`          |
-| `collector.containerPorts.admin`                              | Admin port: health check at / and metrics at /metrics                                                                                                                                                                                 | `14269`          |
-| `collector.containerPorts.otlp.grpc`                          | Accepts traces in OpenTelemetry OTLP format over gRPC                                                                                                                                                                                 | `4317`           |
-| `collector.containerPorts.otlp.http`                          | Accepts traces in OpenTelemetry OTLP format over HTTP                                                                                                                                                                                 | `4318`           |
-| `collector.service.type`                                      | Jaeger service type                                                                                                                                                                                                                   | `ClusterIP`      |
-| `collector.service.ports.zipkin`                              | can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)                                                                                                                                                               | `9411`           |
-| `collector.service.ports.grpc`                                | used by jaeger-collector to send spans in model.proto format                                                                                                                                                                          | `14250`          |
-| `collector.service.ports.binary`                              | can accept spans directly from clients in jaeger.thrift format over binary thrift protocol                                                                                                                                            | `14268`          |
-| `collector.service.ports.admin`                               | Admin port: health check at / and metrics at /metrics                                                                                                                                                                                 | `14269`          |
-| `collector.service.ports.otlp.grpc`                           | Accepts traces in OpenTelemetry OTLP format over gRPC                                                                                                                                                                                 | `4317`           |
-| `collector.service.ports.otlp.http`                           | Accepts traces in OpenTelemetry OTLP format over HTTP                                                                                                                                                                                 | `4318`           |
-| `collector.service.nodePorts.zipkin`                          | can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)                                                                                                                                                               | `""`             |
-| `collector.service.nodePorts.grpc`                            | used by jaeger-collector to send spans in model.proto format                                                                                                                                                                          | `""`             |
-| `collector.service.nodePorts.binary`                          | can accept spans directly from clients in jaeger.thrift format over binary thrift protocol                                                                                                                                            | `""`             |
-| `collector.service.nodePorts.admin`                           | Admin port: health check at / and metrics at /metrics                                                                                                                                                                                 | `""`             |
-| `collector.service.nodePorts.otlp.grpc`                       | Accepts traces in OpenTelemetry OTLP format over gRPC                                                                                                                                                                                 | `""`             |
-| `collector.service.nodePorts.otlp.http`                       | Accepts traces in OpenTelemetry OTLP format over HTTP                                                                                                                                                                                 | `""`             |
-| `collector.service.extraPorts`                                | Extra ports to expose in the service (normally used with the `sidecar` value)                                                                                                                                                         | `[]`             |
-| `collector.service.loadBalancerIP`                            | LoadBalancerIP if service type is `LoadBalancer`                                                                                                                                                                                      | `""`             |
-| `collector.service.loadBalancerSourceRanges`                  | Service Load Balancer sources                                                                                                                                                                                                         | `[]`             |
-| `collector.service.clusterIP`                                 | Service Cluster IP                                                                                                                                                                                                                    | `""`             |
-| `collector.service.externalTrafficPolicy`                     | Service external traffic policy                                                                                                                                                                                                       | `Cluster`        |
-| `collector.service.annotations`                               | Provide any additional annotations which may be required.                                                                                                                                                                             | `{}`             |
-| `collector.service.sessionAffinity`                           | Session Affinity for Kubernetes service, can be "None" or "ClientIP"                                                                                                                                                                  | `None`           |
-| `collector.service.sessionAffinityConfig`                     | Additional settings for the sessionAffinity                                                                                                                                                                                           | `{}`             |
-| `collector.service.metrics.annotations`                       | Annotations for Prometheus metrics                                                                                                                                                                                                    | `{}`             |
-| `collector.networkPolicy.enabled`                             | Specifies whether a NetworkPolicy should be created                                                                                                                                                                                   | `true`           |
-| `collector.networkPolicy.allowExternal`                       | Don't require server label for connections                                                                                                                                                                                            | `true`           |
-| `collector.networkPolicy.allowExternalEgress`                 | Allow the pod to access any range of port and all destinations.                                                                                                                                                                       | `true`           |
-| `collector.networkPolicy.extraIngress`                        | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`             |
-| `collector.networkPolicy.extraEgress`                         | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`             |
-| `collector.networkPolicy.ingressNSMatchLabels`                | Labels to match to allow traffic from other namespaces                                                                                                                                                                                | `{}`             |
-| `collector.networkPolicy.ingressNSPodMatchLabels`             | Pod labels to match to allow traffic from other namespaces                                                                                                                                                                            | `{}`             |
-| `collector.serviceAccount.create`                             | Enables ServiceAccount                                                                                                                                                                                                                | `true`           |
-| `collector.serviceAccount.name`                               | ServiceAccount name                                                                                                                                                                                                                   | `""`             |
-| `collector.serviceAccount.annotations`                        | Annotations to add to all deployed objects                                                                                                                                                                                            | `{}`             |
-| `collector.serviceAccount.automountServiceAccountToken`       | Automount API credentials for a service account.                                                                                                                                                                                      | `false`          |
-| `collector.podSecurityContext.enabled`                        | Enabled Jaeger pods' Security Context                                                                                                                                                                                                 | `true`           |
-| `collector.podSecurityContext.fsGroupChangePolicy`            | Set filesystem group change policy                                                                                                                                                                                                    | `Always`         |
-| `collector.podSecurityContext.sysctls`                        | Set kernel settings using the sysctl interface                                                                                                                                                                                        | `[]`             |
-| `collector.podSecurityContext.supplementalGroups`             | Set filesystem extra groups                                                                                                                                                                                                           | `[]`             |
-| `collector.podSecurityContext.fsGroup`                        | Set Jaeger pod's Security Context fsGroup                                                                                                                                                                                             | `1001`           |
-| `collector.containerSecurityContext.enabled`                  | Enabled containers' Security Context                                                                                                                                                                                                  | `true`           |
-| `collector.containerSecurityContext.seLinuxOptions`           | Set SELinux options in container                                                                                                                                                                                                      | `{}`             |
-| `collector.containerSecurityContext.runAsUser`                | Set containers' Security Context runAsUser                                                                                                                                                                                            | `1001`           |
-| `collector.containerSecurityContext.runAsGroup`               | Set containers' Security Context runAsGroup                                                                                                                                                                                           | `1001`           |
-| `collector.containerSecurityContext.runAsNonRoot`             | Set container's Security Context runAsNonRoot                                                                                                                                                                                         | `true`           |
-| `collector.containerSecurityContext.privileged`               | Set container's Security Context privileged                                                                                                                                                                                           | `false`          |
-| `collector.containerSecurityContext.readOnlyRootFilesystem`   | Set container's Security Context readOnlyRootFilesystem                                                                                                                                                                               | `true`           |
-| `collector.containerSecurityContext.allowPrivilegeEscalation` | Set container's Security Context allowPrivilegeEscalation                                                                                                                                                                             | `false`          |
-| `collector.containerSecurityContext.capabilities.drop`        | List of capabilities to be dropped                                                                                                                                                                                                    | `["ALL"]`        |
-| `collector.containerSecurityContext.seccompProfile.type`      | Set container's Security Context seccomp profile                                                                                                                                                                                      | `RuntimeDefault` |
-| `collector.podAnnotations`                                    | Additional pod annotations                                                                                                                                                                                                            | `{}`             |
-| `collector.podLabels`                                         | Additional pod labels                                                                                                                                                                                                                 | `{}`             |
-| `collector.podAffinityPreset`                                 | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`                                                                                                                                                   | `""`             |
-| `collector.podAntiAffinityPreset`                             | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`                                                                                                                                              | `soft`           |
-| `collector.nodeAffinityPreset.type`                           | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`                                                                                                                                             | `""`             |
-| `collector.nodeAffinityPreset.key`                            | Node label key to match. Ignored if `affinity` is set                                                                                                                                                                                 | `""`             |
-| `collector.nodeAffinityPreset.values`                         | Node label values to match. Ignored if `affinity` is set                                                                                                                                                                              | `[]`             |
-| `collector.priorityClassName`                                 | Server priorityClassName                                                                                                                                                                                                              | `""`             |
-| `collector.affinity`                                          | Affinity for pod assignment                                                                                                                                                                                                           | `{}`             |
-| `collector.nodeSelector`                                      | Node labels for pod assignment                                                                                                                                                                                                        | `{}`             |
-| `collector.tolerations`                                       | Tolerations for pod assignment                                                                                                                                                                                                        | `[]`             |
-| `collector.topologySpreadConstraints`                         | Topology Spread Constraints for pod assignment                                                                                                                                                                                        | `[]`             |
-| `collector.schedulerName`                                     | Alternative scheduler                                                                                                                                                                                                                 | `""`             |
-| `collector.updateStrategy.type`                               | Jaeger collector deployment strategy type                                                                                                                                                                                             | `RollingUpdate`  |
-| `collector.updateStrategy.rollingUpdate`                      | Jaeger collector deployment rolling update configuration parameters                                                                                                                                                                   | `{}`             |
-| `collector.extraVolumes`                                      | Optionally specify extra list of additional volumes for jaeger container                                                                                                                                                              | `[]`             |
-| `collector.initContainers`                                    | Add additional init containers to the jaeger pods                                                                                                                                                                                     | `[]`             |
-| `collector.pdb.create`                                        | Enable/disable a Pod Disruption Budget creation                                                                                                                                                                                       | `true`           |
-| `collector.pdb.minAvailable`                                  | Minimum number/percentage of pods that should remain scheduled                                                                                                                                                                        | `""`             |
-| `collector.pdb.maxUnavailable`                                | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `collector.pdb.minAvailable` and `collector.pdb.maxUnavailable` are empty.                                                                    | `""`             |
-| `collector.sidecars`                                          | Add additional sidecar containers to the jaeger pods                                                                                                                                                                                  | `[]`             |
-| `migration.podLabels`                                         | Additional pod labels                                                                                                                                                                                                                 | `{}`             |
-| `migration.podAnnotations`                                    | Additional pod annotations                                                                                                                                                                                                            | `{}`             |
-| `migration.annotations`                                       | Provide any additional annotations which may be required.                                                                                                                                                                             | `{}`             |
-| `migration.podSecurityContext.enabled`                        | Enabled Jaeger pods' Security Context                                                                                                                                                                                                 | `true`           |
-| `migration.podSecurityContext.fsGroupChangePolicy`            | Set filesystem group change policy                                                                                                                                                                                                    | `Always`         |
-| `migration.podSecurityContext.sysctls`                        | Set kernel settings using the sysctl interface                                                                                                                                                                                        | `[]`             |
-| `migration.podSecurityContext.supplementalGroups`             | Set filesystem extra groups                                                                                                                                                                                                           | `[]`             |
-| `migration.podSecurityContext.fsGroup`                        | Set Jaeger pod's Security Context fsGroup                                                                                                                                                                                             | `1001`           |
-| `migration.containerSecurityContext.enabled`                  | Enabled containers' Security Context                                                                                                                                                                                                  | `true`           |
-| `migration.containerSecurityContext.seLinuxOptions`           | Set SELinux options in container                                                                                                                                                                                                      | `{}`             |
-| `migration.containerSecurityContext.runAsUser`                | Set containers' Security Context runAsUser                                                                                                                                                                                            | `1001`           |
-| `migration.containerSecurityContext.runAsGroup`               | Set containers' Security Context runAsGroup                                                                                                                                                                                           | `1001`           |
-| `migration.containerSecurityContext.runAsNonRoot`             | Set container's Security Context runAsNonRoot                                                                                                                                                                                         | `true`           |
-| `migration.containerSecurityContext.privileged`               | Set container's Security Context privileged                                                                                                                                                                                           | `false`          |
-| `migration.containerSecurityContext.readOnlyRootFilesystem`   | Set container's Security Context readOnlyRootFilesystem                                                                                                                                                                               | `true`           |
-| `migration.containerSecurityContext.allowPrivilegeEscalation` | Set container's Security Context allowPrivilegeEscalation                                                                                                                                                                             | `false`          |
-| `migration.containerSecurityContext.capabilities.drop`        | List of capabilities to be dropped                                                                                                                                                                                                    | `["ALL"]`        |
-| `migration.containerSecurityContext.seccompProfile.type`      | Set container's Security Context seccomp profile                                                                                                                                                                                      | `RuntimeDefault` |
-| `migration.extraEnvVars`                                      | Extra environment variables to be set on jaeger migration container                                                                                                                                                                   | `[]`             |
-| `migration.extraEnvVarsCM`                                    | Name of existing ConfigMap containing extra env vars                                                                                                                                                                                  | `""`             |
-| `migration.extraEnvVarsSecret`                                | Name of existing Secret containing extra env vars                                                                                                                                                                                     | `""`             |
-| `migration.extraVolumeMounts`                                 | Optionally specify extra list of additional volumeMounts for jaeger container                                                                                                                                                         | `[]`             |
-| `migration.resourcesPreset`                                   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if migration.resources is set (migration.resources is recommended for production). | `small`          |
-| `migration.resources`                                         | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                                     | `{}`             |
-| `migration.initContainer.resourcesPreset`                     | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if migration.resources is set (migration.resources is recommended for production). | `nano`           |
-| `migration.initContainer.resources`                           | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                                     | `{}`             |
-| `migration.networkPolicy.enabled`                             | Specifies whether a NetworkPolicy should be created                                                                                                                                                                                   | `true`           |
-| `migration.networkPolicy.allowExternal`                       | Don't require server label for connections                                                                                                                                                                                            | `true`           |
-| `migration.networkPolicy.allowExternalEgress`                 | Allow the pod to access any range of port and all destinations.                                                                                                                                                                       | `true`           |
-| `migration.networkPolicy.extraIngress`                        | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`             |
-| `migration.networkPolicy.extraEgress`                         | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`             |
-| `migration.networkPolicy.ingressNSMatchLabels`                | Labels to match to allow traffic from other namespaces                                                                                                                                                                                | `{}`             |
-| `migration.networkPolicy.ingressNSPodMatchLabels`             | Pod labels to match to allow traffic from other namespaces                                                                                                                                                                            | `{}`             |
-| `migration.extraVolumes`                                      | Optionally specify extra list of additional volumes for jaeger container                                                                                                                                                              | `[]`             |
+| Name                                                          | Description                                                                                                                                                                                                                           | Value                        |
+| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
+| `collector.command`                                           | Command for running the container (set to default if not set). Use array form                                                                                                                                                         | `[]`                         |
+| `collector.args`                                              | Args for running the container (set to default if not set). Use array form                                                                                                                                                            | `[]`                         |
+| `collector.automountServiceAccountToken`                      | Mount Service Account token in pod                                                                                                                                                                                                    | `false`                      |
+| `collector.hostAliases`                                       | Set pod host aliases                                                                                                                                                                                                                  | `[]`                         |
+| `collector.lifecycleHooks`                                    | Override default etcd container hooks                                                                                                                                                                                                 | `{}`                         |
+| `collector.extraEnvVars`                                      | Extra environment variables to be set on jaeger container                                                                                                                                                                             | `[]`                         |
+| `collector.extraEnvVarsCM`                                    | Name of existing ConfigMap containing extra env vars                                                                                                                                                                                  | `""`                         |
+| `collector.extraEnvVarsSecret`                                | Name of existing Secret containing extra env vars                                                                                                                                                                                     | `""`                         |
+| `collector.replicaCount`                                      | Number of Jaeger replicas                                                                                                                                                                                                             | `1`                          |
+| `collector.livenessProbe.enabled`                             | Enable livenessProbe on collector nodes                                                                                                                                                                                               | `true`                       |
+| `collector.livenessProbe.initialDelaySeconds`                 | Initial delay seconds for livenessProbe                                                                                                                                                                                               | `10`                         |
+| `collector.livenessProbe.periodSeconds`                       | Period seconds for livenessProbe                                                                                                                                                                                                      | `10`                         |
+| `collector.livenessProbe.timeoutSeconds`                      | Timeout seconds for livenessProbe                                                                                                                                                                                                     | `1`                          |
+| `collector.livenessProbe.failureThreshold`                    | Failure threshold for livenessProbe                                                                                                                                                                                                   | `3`                          |
+| `collector.livenessProbe.successThreshold`                    | Success threshold for livenessProbe                                                                                                                                                                                                   | `1`                          |
+| `collector.startupProbe.enabled`                              | Enable startupProbe on collector containers                                                                                                                                                                                           | `false`                      |
+| `collector.startupProbe.initialDelaySeconds`                  | Initial delay seconds for startupProbe                                                                                                                                                                                                | `10`                         |
+| `collector.startupProbe.periodSeconds`                        | Period seconds for startupProbe                                                                                                                                                                                                       | `10`                         |
+| `collector.startupProbe.timeoutSeconds`                       | Timeout seconds for startupProbe                                                                                                                                                                                                      | `1`                          |
+| `collector.startupProbe.failureThreshold`                     | Failure threshold for startupProbe                                                                                                                                                                                                    | `15`                         |
+| `collector.startupProbe.successThreshold`                     | Success threshold for startupProbe                                                                                                                                                                                                    | `1`                          |
+| `collector.readinessProbe.enabled`                            | Enable readinessProbe                                                                                                                                                                                                                 | `true`                       |
+| `collector.readinessProbe.initialDelaySeconds`                | Initial delay seconds for readinessProbe                                                                                                                                                                                              | `10`                         |
+| `collector.readinessProbe.periodSeconds`                      | Period seconds for readinessProbe                                                                                                                                                                                                     | `10`                         |
+| `collector.readinessProbe.timeoutSeconds`                     | Timeout seconds for readinessProbe                                                                                                                                                                                                    | `1`                          |
+| `collector.readinessProbe.failureThreshold`                   | Failure threshold for readinessProbe                                                                                                                                                                                                  | `15`                         |
+| `collector.readinessProbe.successThreshold`                   | Success threshold for readinessProbe                                                                                                                                                                                                  | `1`                          |
+| `collector.customLivenessProbe`                               | Custom livenessProbe that overrides the default one                                                                                                                                                                                   | `{}`                         |
+| `collector.customStartupProbe`                                | Override default startup probe                                                                                                                                                                                                        | `{}`                         |
+| `collector.customReadinessProbe`                              | Override default readiness probe                                                                                                                                                                                                      | `{}`                         |
+| `collector.resourcesPreset`                                   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if collector.resources is set (collector.resources is recommended for production). | `small`                      |
+| `collector.resources`                                         | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                                     | `{}`                         |
+| `collector.extraVolumeMounts`                                 | Optionally specify extra list of additional volumeMounts for jaeger container                                                                                                                                                         | `[]`                         |
+| `collector.configuration`                                     | Specify content for Jaeger collector configuration (auto-generated based on other values otherwise)                                                                                                                                   | `{}`                         |
+| `collector.overrideConfiguration`                             | Jaeger collector common configuration override. Values defined here takes precedence over the ones defined at `query.configuration`                                                                                                   | `{}`                         |
+| `collector.existingConfigmap`                                 | The name of an existing ConfigMap with your custom configuration for Jaeger collector                                                                                                                                                 | `""`                         |
+| `collector.receivers`                                         | Sets the jaeger collector receivers that will be enabled                                                                                                                                                                              | `["otlp","jaeger","zipkin"]` |
+| `collector.containerPorts.otlp.grpc`                          | Accepts traces in OpenTelemetry OTLP format over gRPC                                                                                                                                                                                 | `4317`                       |
+| `collector.containerPorts.otlp.http`                          | Accepts traces in OpenTelemetry OTLP format over HTTP                                                                                                                                                                                 | `4318`                       |
+| `collector.containerPorts.jaeger.grpc`                        | Legacy Jaeger protobuf via gRPC API port                                                                                                                                                                                              | `14250`                      |
+| `collector.containerPorts.jaeger.thrift_http`                 | Legacy Jaeger Thrift over HTTP API port                                                                                                                                                                                               | `14268`                      |
+| `collector.containerPorts.zipkin`                             | can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)                                                                                                                                                               | `9411`                       |
+| `collector.containerPorts.metrics`                            | Jaeger collector prometheus metrics port                                                                                                                                                                                              | `8888`                       |
+| `collector.containerPorts.healthcheck`                        | Jaeger collector healthcheck port                                                                                                                                                                                                     | `13133`                      |
+| `collector.service.type`                                      | Jaeger service type                                                                                                                                                                                                                   | `ClusterIP`                  |
+| `collector.service.ports.otlp.grpc`                           | Accepts traces in OpenTelemetry OTLP format over gRPC                                                                                                                                                                                 | `4317`                       |
+| `collector.service.ports.otlp.http`                           | Accepts traces in OpenTelemetry OTLP format over HTTP                                                                                                                                                                                 | `4318`                       |
+| `collector.service.ports.jaeger.grpc`                         | Legacy Jaeger protobuf via gRPC API port                                                                                                                                                                                              | `14250`                      |
+| `collector.service.ports.jaeger.thrift_http`                  | Legacy Jaeger Thrift over HTTP API port                                                                                                                                                                                               | `14268`                      |
+| `collector.service.ports.zipkin`                              | can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)                                                                                                                                                               | `9411`                       |
+| `collector.service.ports.metrics`                             | Jaeger collector prometheus metrics port                                                                                                                                                                                              | `8888`                       |
+| `collector.service.nodePorts.otlp.grpc`                       | Accepts traces in OpenTelemetry OTLP format over gRPC                                                                                                                                                                                 | `""`                         |
+| `collector.service.nodePorts.otlp.http`                       | Accepts traces in OpenTelemetry OTLP format over HTTP                                                                                                                                                                                 | `""`                         |
+| `collector.service.nodePorts.jaeger.grpc`                     | Legacy Jaeger protobuf via gRPC API port                                                                                                                                                                                              | `""`                         |
+| `collector.service.nodePorts.jaeger.thrift_http`              | Legacy Jaeger Thrift over HTTP API port                                                                                                                                                                                               | `""`                         |
+| `collector.service.nodePorts.zipkin`                          | can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)                                                                                                                                                               | `""`                         |
+| `collector.service.nodePorts.metrics`                         | Jaeger collector prometheus metrics port                                                                                                                                                                                              | `""`                         |
+| `collector.service.extraPorts`                                | Extra ports to expose in the service (normally used with the `sidecar` value)                                                                                                                                                         | `[]`                         |
+| `collector.service.loadBalancerIP`                            | LoadBalancerIP if service type is `LoadBalancer`                                                                                                                                                                                      | `""`                         |
+| `collector.service.loadBalancerSourceRanges`                  | Service Load Balancer sources                                                                                                                                                                                                         | `[]`                         |
+| `collector.service.clusterIP`                                 | Service Cluster IP                                                                                                                                                                                                                    | `""`                         |
+| `collector.service.externalTrafficPolicy`                     | Service external traffic policy                                                                                                                                                                                                       | `Cluster`                    |
+| `collector.service.annotations`                               | Provide any additional annotations which may be required.                                                                                                                                                                             | `{}`                         |
+| `collector.service.sessionAffinity`                           | Session Affinity for Kubernetes service, can be "None" or "ClientIP"                                                                                                                                                                  | `None`                       |
+| `collector.service.sessionAffinityConfig`                     | Additional settings for the sessionAffinity                                                                                                                                                                                           | `{}`                         |
+| `collector.service.metrics.annotations`                       | Annotations for Prometheus metrics                                                                                                                                                                                                    | `{}`                         |
+| `collector.networkPolicy.enabled`                             | Specifies whether a NetworkPolicy should be created                                                                                                                                                                                   | `true`                       |
+| `collector.networkPolicy.allowExternal`                       | Don't require server label for connections                                                                                                                                                                                            | `true`                       |
+| `collector.networkPolicy.allowExternalEgress`                 | Allow the pod to access any range of port and all destinations.                                                                                                                                                                       | `true`                       |
+| `collector.networkPolicy.extraIngress`                        | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`                         |
+| `collector.networkPolicy.extraEgress`                         | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`                         |
+| `collector.networkPolicy.ingressNSMatchLabels`                | Labels to match to allow traffic from other namespaces                                                                                                                                                                                | `{}`                         |
+| `collector.networkPolicy.ingressNSPodMatchLabels`             | Pod labels to match to allow traffic from other namespaces                                                                                                                                                                            | `{}`                         |
+| `collector.serviceAccount.create`                             | Enables ServiceAccount                                                                                                                                                                                                                | `true`                       |
+| `collector.serviceAccount.name`                               | ServiceAccount name                                                                                                                                                                                                                   | `""`                         |
+| `collector.serviceAccount.annotations`                        | Annotations to add to all deployed objects                                                                                                                                                                                            | `{}`                         |
+| `collector.serviceAccount.automountServiceAccountToken`       | Automount API credentials for a service account.                                                                                                                                                                                      | `false`                      |
+| `collector.podSecurityContext.enabled`                        | Enabled Jaeger pods' Security Context                                                                                                                                                                                                 | `true`                       |
+| `collector.podSecurityContext.fsGroupChangePolicy`            | Set filesystem group change policy                                                                                                                                                                                                    | `Always`                     |
+| `collector.podSecurityContext.sysctls`                        | Set kernel settings using the sysctl interface                                                                                                                                                                                        | `[]`                         |
+| `collector.podSecurityContext.supplementalGroups`             | Set filesystem extra groups                                                                                                                                                                                                           | `[]`                         |
+| `collector.podSecurityContext.fsGroup`                        | Set Jaeger pod's Security Context fsGroup                                                                                                                                                                                             | `1001`                       |
+| `collector.containerSecurityContext.enabled`                  | Enabled containers' Security Context                                                                                                                                                                                                  | `true`                       |
+| `collector.containerSecurityContext.seLinuxOptions`           | Set SELinux options in container                                                                                                                                                                                                      | `{}`                         |
+| `collector.containerSecurityContext.runAsUser`                | Set containers' Security Context runAsUser                                                                                                                                                                                            | `1001`                       |
+| `collector.containerSecurityContext.runAsGroup`               | Set containers' Security Context runAsGroup                                                                                                                                                                                           | `1001`                       |
+| `collector.containerSecurityContext.runAsNonRoot`             | Set container's Security Context runAsNonRoot                                                                                                                                                                                         | `true`                       |
+| `collector.containerSecurityContext.privileged`               | Set container's Security Context privileged                                                                                                                                                                                           | `false`                      |
+| `collector.containerSecurityContext.readOnlyRootFilesystem`   | Set container's Security Context readOnlyRootFilesystem                                                                                                                                                                               | `true`                       |
+| `collector.containerSecurityContext.allowPrivilegeEscalation` | Set container's Security Context allowPrivilegeEscalation                                                                                                                                                                             | `false`                      |
+| `collector.containerSecurityContext.capabilities.drop`        | List of capabilities to be dropped                                                                                                                                                                                                    | `["ALL"]`                    |
+| `collector.containerSecurityContext.seccompProfile.type`      | Set container's Security Context seccomp profile                                                                                                                                                                                      | `RuntimeDefault`             |
+| `collector.podAnnotations`                                    | Additional pod annotations                                                                                                                                                                                                            | `{}`                         |
+| `collector.podLabels`                                         | Additional pod labels                                                                                                                                                                                                                 | `{}`                         |
+| `collector.podAffinityPreset`                                 | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`                                                                                                                                                   | `""`                         |
+| `collector.podAntiAffinityPreset`                             | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`                                                                                                                                              | `soft`                       |
+| `collector.nodeAffinityPreset.type`                           | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`                                                                                                                                             | `""`                         |
+| `collector.nodeAffinityPreset.key`                            | Node label key to match. Ignored if `affinity` is set                                                                                                                                                                                 | `""`                         |
+| `collector.nodeAffinityPreset.values`                         | Node label values to match. Ignored if `affinity` is set                                                                                                                                                                              | `[]`                         |
+| `collector.priorityClassName`                                 | Server priorityClassName                                                                                                                                                                                                              | `""`                         |
+| `collector.affinity`                                          | Affinity for pod assignment                                                                                                                                                                                                           | `{}`                         |
+| `collector.nodeSelector`                                      | Node labels for pod assignment                                                                                                                                                                                                        | `{}`                         |
+| `collector.tolerations`                                       | Tolerations for pod assignment                                                                                                                                                                                                        | `[]`                         |
+| `collector.topologySpreadConstraints`                         | Topology Spread Constraints for pod assignment                                                                                                                                                                                        | `[]`                         |
+| `collector.schedulerName`                                     | Alternative scheduler                                                                                                                                                                                                                 | `""`                         |
+| `collector.updateStrategy.type`                               | Jaeger collector deployment strategy type                                                                                                                                                                                             | `RollingUpdate`              |
+| `collector.updateStrategy.rollingUpdate`                      | Jaeger collector deployment rolling update configuration parameters                                                                                                                                                                   | `{}`                         |
+| `collector.extraVolumes`                                      | Optionally specify extra list of additional volumes for jaeger container                                                                                                                                                              | `[]`                         |
+| `collector.initContainers`                                    | Add additional init containers to the jaeger pods                                                                                                                                                                                     | `[]`                         |
+| `collector.pdb.create`                                        | Enable/disable a Pod Disruption Budget creation                                                                                                                                                                                       | `true`                       |
+| `collector.pdb.minAvailable`                                  | Minimum number/percentage of pods that should remain scheduled                                                                                                                                                                        | `""`                         |
+| `collector.pdb.maxUnavailable`                                | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `collector.pdb.minAvailable` and `collector.pdb.maxUnavailable` are empty.                                                                    | `""`                         |
+| `collector.sidecars`                                          | Add additional sidecar containers to the jaeger pods                                                                                                                                                                                  | `[]`                         |
+| `migration.podLabels`                                         | Additional pod labels                                                                                                                                                                                                                 | `{}`                         |
+| `migration.podAnnotations`                                    | Additional pod annotations                                                                                                                                                                                                            | `{}`                         |
+| `migration.annotations`                                       | Provide any additional annotations which may be required.                                                                                                                                                                             | `{}`                         |
+| `migration.podSecurityContext.enabled`                        | Enabled Jaeger pods' Security Context                                                                                                                                                                                                 | `true`                       |
+| `migration.podSecurityContext.fsGroupChangePolicy`            | Set filesystem group change policy                                                                                                                                                                                                    | `Always`                     |
+| `migration.podSecurityContext.sysctls`                        | Set kernel settings using the sysctl interface                                                                                                                                                                                        | `[]`                         |
+| `migration.podSecurityContext.supplementalGroups`             | Set filesystem extra groups                                                                                                                                                                                                           | `[]`                         |
+| `migration.podSecurityContext.fsGroup`                        | Set Jaeger pod's Security Context fsGroup                                                                                                                                                                                             | `1001`                       |
+| `migration.containerSecurityContext.enabled`                  | Enabled containers' Security Context                                                                                                                                                                                                  | `true`                       |
+| `migration.containerSecurityContext.seLinuxOptions`           | Set SELinux options in container                                                                                                                                                                                                      | `{}`                         |
+| `migration.containerSecurityContext.runAsUser`                | Set containers' Security Context runAsUser                                                                                                                                                                                            | `1001`                       |
+| `migration.containerSecurityContext.runAsGroup`               | Set containers' Security Context runAsGroup                                                                                                                                                                                           | `1001`                       |
+| `migration.containerSecurityContext.runAsNonRoot`             | Set container's Security Context runAsNonRoot                                                                                                                                                                                         | `true`                       |
+| `migration.containerSecurityContext.privileged`               | Set container's Security Context privileged                                                                                                                                                                                           | `false`                      |
+| `migration.containerSecurityContext.readOnlyRootFilesystem`   | Set container's Security Context readOnlyRootFilesystem                                                                                                                                                                               | `true`                       |
+| `migration.containerSecurityContext.allowPrivilegeEscalation` | Set container's Security Context allowPrivilegeEscalation                                                                                                                                                                             | `false`                      |
+| `migration.containerSecurityContext.capabilities.drop`        | List of capabilities to be dropped                                                                                                                                                                                                    | `["ALL"]`                    |
+| `migration.containerSecurityContext.seccompProfile.type`      | Set container's Security Context seccomp profile                                                                                                                                                                                      | `RuntimeDefault`             |
+| `migration.extraEnvVars`                                      | Extra environment variables to be set on jaeger migration container                                                                                                                                                                   | `[]`                         |
+| `migration.extraEnvVarsCM`                                    | Name of existing ConfigMap containing extra env vars                                                                                                                                                                                  | `""`                         |
+| `migration.extraEnvVarsSecret`                                | Name of existing Secret containing extra env vars                                                                                                                                                                                     | `""`                         |
+| `migration.extraVolumeMounts`                                 | Optionally specify extra list of additional volumeMounts for jaeger container                                                                                                                                                         | `[]`                         |
+| `migration.resourcesPreset`                                   | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if migration.resources is set (migration.resources is recommended for production). | `small`                      |
+| `migration.resources`                                         | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                                     | `{}`                         |
+| `migration.initContainer.resourcesPreset`                     | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if migration.resources is set (migration.resources is recommended for production). | `nano`                       |
+| `migration.initContainer.resources`                           | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                                                     | `{}`                         |
+| `migration.networkPolicy.enabled`                             | Specifies whether a NetworkPolicy should be created                                                                                                                                                                                   | `true`                       |
+| `migration.networkPolicy.allowExternal`                       | Don't require server label for connections                                                                                                                                                                                            | `true`                       |
+| `migration.networkPolicy.allowExternalEgress`                 | Allow the pod to access any range of port and all destinations.                                                                                                                                                                       | `true`                       |
+| `migration.networkPolicy.extraIngress`                        | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`                         |
+| `migration.networkPolicy.extraEgress`                         | Add extra ingress rules to the NetworkPolicy                                                                                                                                                                                          | `[]`                         |
+| `migration.networkPolicy.ingressNSMatchLabels`                | Labels to match to allow traffic from other namespaces                                                                                                                                                                                | `{}`                         |
+| `migration.networkPolicy.ingressNSPodMatchLabels`             | Pod labels to match to allow traffic from other namespaces                                                                                                                                                                            | `{}`                         |
+| `migration.extraVolumes`                                      | Optionally specify extra list of additional volumes for jaeger container                                                                                                                                                              | `[]`                         |
 
 ### Set the image to use for the migration job
 
@@ -475,6 +488,7 @@ The [Bitnami jaeger](https://github.com/bitnami/containers/tree/main/bitnami/jae
 | `cassandra.dbUser.password`       | Password for `dbUser.user`. Randomly generated if empty                                                                                                                                                    | `""`             |
 | `cassandra.dbUser.existingSecret` | Name of an existing secret containing the user password.                                                                                                                                                   | `""`             |
 | `cassandra.service.ports.cql`     | Cassandra cql port                                                                                                                                                                                         | `9042`           |
+| `cassandra.initDB`                | Init script for initializing the instance                                                                                                                                                                  | `{}`             |
 | `cassandra.resourcesPreset`       | Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production). | `large`          |
 | `cassandra.resources`             | Set container requests and limits for different resources like CPU or memory (essential for production workloads)                                                                                          | `{}`             |
 
@@ -486,6 +500,19 @@ Find more information about how to deal with common errors related to Bitnami's
 
 ## Upgrading
 
+### To 6.0.0
+
+This major release updates Jaeger to its new major Jaeger v2. Previous releases of the chart (5.x.x) have been tagged as Jaeger v2, but due to an issue the chart continued using the Jaeger v1 binaries.
+
+Starting from this version, the chart will use the Jaeger v2 binary and the container will no longer include Jaeger v1 binaries in the v2 images.
+
+Additionally, this major release introduces the following changes:
+
+- Removes the cassandra-schema init job, as Jaeger v2 is capable of initializing the schema.
+- Removed the `admin`, `binary` and `grpc` collector port values. Added jaeger legacy ports `jaeger.grpc` (previously `grpc`) and `jaeger.thrift_http` (previously `binary`).
+- Jaeger v2 no longer supports the `admin` port. Prometheus metrics and healthcheck capabilities have been moved into the new ports `metrics` and `healthcheck` for both collector and query nodes.
+- Introduced the jaeger-query and jaeger-collector configmaps, as Jaeger v2 no longer supports configuration via environment variables. Added values `collector.configuration`/`query.configuration` and `collector.existingConfigmap`/`query.existingConfigmap` to customize configuration.
+
 ### To 5.1.0
 
 This version introduces image verification for security purposes. To disable it, set `global.security.allowInsecureImages` to `true`. More details at [GitHub issue](https://github.com/bitnami/charts/issues/30850).
@@ -527,4 +554,4 @@ Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
-limitations under the License.
+limitations under the License.

+ 52 - 6
bitnami/jaeger/templates/_helpers.tpl

@@ -35,6 +35,27 @@ Create the name of the query deployment
 {{- include "common.names.dependency.fullname" (dict "chartName" "cassandra" "chartValues" .Values.cassandra "context" $) -}}
 {{- end -}}
 
+{{/*
+Return the Jaeger Cassandra storage backed configuration.
+This is shared by both collector and query components
+*/}}
+{{- define "jaeger.cassandra.storage" -}}
+cassandra:
+  schema:
+    keyspace: "${env:CASSANDRA_KEYSPACE}"
+    create: true
+    datacenter: "${env:CASSANDRA_DATACENTER}"
+  connection:
+    servers: ["${env:CASSANDRA_SERVERS}:${env:CASSANDRA_PORT}"]
+    auth:
+      basic:
+        username: "${env:CASSANDRA_USERNAME}"
+        password: "${env:CASSANDRA_PASSWORD}"
+        allowed_authenticators: ["org.apache.cassandra.auth.PasswordAuthenticator"]
+    tls:
+      insecure: true
+{{- end }}
+
 {{/*
 Return the proper Docker Image Registry Secret Names
 */}}
@@ -101,6 +122,28 @@ Create a container for checking cassandra availability
   {{- end }}
 {{- end -}}
 
+{{/*
+Get the jaeger collector configmap name
+*/}}
+{{- define "jaeger.collector.configMapName" -}}
+{{- if .Values.collector.existingConfigmap -}}
+    {{- print (tpl .Values.collector.existingConfigmap .) -}}
+{{- else -}}
+    {{- print (include "jaeger.collector.fullname" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Get the jaeger query configmap name
+*/}}
+{{- define "jaeger.query.configMapName" -}}
+{{- if .Values.query.existingConfigmap -}}
+    {{- print (tpl .Values.query.existingConfigmap .) -}}
+{{- else -}}
+    {{- print (include "jaeger.query.fullname" .) -}}
+{{- end -}}
+{{- end -}}
+
 {{/*
 Create the name of the service account to use for the collector
 */}}
@@ -198,14 +241,17 @@ Create the cassandra datacenter
 {{- end -}}
 
 {{/*
-Create the cassandra keyspace
+Return the cassandra keyspace
 */}}
 {{- define "jaeger.cassandra.keyspace" -}}
-    {{- if not .Values.cassandra.enabled -}}
-        {{- .Values.externalDatabase.keyspace | quote -}}
-    {{- else }}
-        {{- .Values.cassandra.keyspace | quote -}}
-    {{- end -}}
+{{- if .Values.keyspace }}
+    {{- /* Inside cassandra subchart */ -}}
+    {{- print .Values.keyspace -}}
+{{- else if .Values.cassandra.enabled }}
+    {{- print .Values.cassandra.keyspace -}}
+{{- else -}}
+    {{- print .Values.externalDatabase.keyspace -}}
+{{- end -}}
 {{- end -}}
 
 {{/*

+ 89 - 0
bitnami/jaeger/templates/collector/configmap.yaml

@@ -0,0 +1,89 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/*
+Return the Jaeger collector configuration.
+*/}}
+{{- define "jaeger.collector.configuration" -}}
+{{- if .Values.collector.configuration }}
+{{- include "common.tplvalues.render" (dict "value" .Values.collector.configuration "context" .) }}
+{{- else }}
+service:
+  extensions: [jaeger_storage, healthcheckv2]
+  pipelines:
+    traces:
+      receivers: {{ include "common.tplvalues.render" (dict "value" .Values.collector.receivers "context" .) | nindent 12 }}
+      processors: [batch]
+      exporters: [jaeger_storage_exporter]
+  telemetry:
+    resource:
+      service.name: jaeger-collector
+    metrics:
+      level: detailed
+      readers:
+        - pull:
+            exporter:
+              prometheus:
+                host: 0.0.0.0
+                port: "${env:COLLECTOR_METRICS_PORT}"
+    logs:
+      level: info
+extensions:
+  healthcheckv2:
+    use_v2: true
+    http:
+      endpoint: "${env:COLLECTOR_HEALTHCHECK_HOST_PORT}"
+  jaeger_storage:
+    backends:
+      jaeger_storage: {{ include "jaeger.cassandra.storage" . | nindent 8 }}
+receivers:
+  {{- if has "otlp" .Values.collector.receivers }}
+  otlp:
+    protocols:
+      grpc:
+        endpoint: "${env:COLLECTOR_OTLP_GRPC_HOST_PORT}"
+      http:
+        endpoint: "${env:COLLECTOR_OTLP_HTTP_HOST_PORT}"
+  {{- end }}
+  {{- if has "jaeger" .Values.collector.receivers }}
+  jaeger:
+    protocols:
+      grpc:
+        endpoint: "${env:COLLECTOR_JAEGER_GRPC_SERVER_HOST_PORT}"
+      thrift_http:
+        endpoint: "${env:COLLECTOR_JAEGER_THRIFT_HTTP_HOST_PORT}"
+  {{- end }}
+  {{- if has "zipkin" .Values.collector.receivers }}
+  zipkin:
+    endpoint: "${env:COLLECTOR_ZIPKIN_HOST_PORT}"
+  {{- end }}
+processors:
+  batch:
+exporters:
+  jaeger_storage_exporter:
+    trace_storage: jaeger_storage
+{{- end -}}
+{{- end -}}
+
+{{- if not .Values.collector.existingConfigmap }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ template "jaeger.collector.fullname" . }}
+  namespace: {{ include "common.names.namespace" . | quote }}
+  labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+    app.kubernetes.io/component: collector
+  {{- if .Values.commonAnnotations }}
+  annotations: {{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
+  {{- end }}
+  {{- $configuration := include "jaeger.collector.configuration" . | fromYaml -}}
+  {{- if .Values.collector.overrideConfiguration }}
+  {{- $overrideConfiguration := include "common.tplvalues.render" (dict "value" .Values.collector.overrideConfiguration "context" .) | fromYaml }}
+  {{- $configuration = mustMergeOverwrite $configuration $overrideConfiguration }}
+  {{- end }}
+data:
+  collector-config.yaml: |-
+    {{- toYaml $configuration | nindent 4 }}
+{{- end }}

+ 59 - 30
bitnami/jaeger/templates/collector/deployment.yaml

@@ -27,8 +27,14 @@ spec:
       labels: {{- include "common.labels.standard" ( dict "customLabels" $podLabels "context" $ ) | nindent 8 }}
         app.kubernetes.io/part-of: jaeger
         app.kubernetes.io/component: collector
-      {{- if .Values.collector.podAnnotations }}
-      annotations: {{- include "common.tplvalues.render" (dict "value" .Values.collector.podAnnotations "context" $) | nindent 8 }}
+      {{- if or .Values.collector.podAnnotations (not .Values.collector.existingConfigmap) }}
+      annotations:
+        {{- if not .Values.collector.existingConfigmap }}
+        checksum/configmap: {{ include (print $.Template.BasePath "/collector/configmap.yaml") . | sha256sum }}
+        {{- end }}
+        {{- if .Values.collector.podAnnotations }}
+        {{- include "common.tplvalues.render" (dict "value" .Values.collector.podAnnotations "context" $) | nindent 8 }}
+        {{- end }}
       {{- end }}
     spec:
       {{- include "jaeger.imagePullSecrets" . | nindent 6 }}
@@ -76,32 +82,40 @@ spec:
           command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
           {{- else if .Values.collector.command }}
           command: {{- include "common.tplvalues.render" (dict "value" .Values.collector.command "context" $) | nindent 12 }}
-          {{- else }}
-          command: ["/opt/bitnami/jaeger/bin/jaeger-collector"]
           {{- end }}
           {{- if .Values.diagnosticMode.enabled }}
           args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }}
           {{- else if .Values.collector.args }}
           args: {{- include "common.tplvalues.render" (dict "value" .Values.collector.args "context" $) | nindent 12 }}
           {{- else }}
-          args: ["--cassandra.basic.allowed-authenticators=org.apache.cassandra.auth.PasswordAuthenticator"]
+          args:
+            - "--config"
+            - "/opt/bitnami/jaeger/conf/collector-config.yaml"
           {{- end }}
           {{- if .Values.collector.lifecycleHooks }}
           lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.collector.lifecycleHooks "context" $) | nindent 12 }}
           {{- end }}
           ports:
-            - name: zipkin
-              containerPort: {{ .Values.collector.containerPorts.zipkin }}
-            - name: binary
-              containerPort: {{ .Values.collector.containerPorts.binary }}
-            - name: grpc
-              containerPort: {{ .Values.collector.containerPorts.grpc }}
-            - name: admin
-              containerPort: {{ .Values.collector.containerPorts.admin }}
+            {{- if has "otlp" .Values.collector.receivers }}
             - name: grpc-otlp
               containerPort: {{ .Values.collector.containerPorts.otlp.grpc }}
             - name: http-otlp
               containerPort: {{ .Values.collector.containerPorts.otlp.http }}
+            {{- end }}
+            {{- if has "jaeger" .Values.collector.receivers }}
+            - name: grpc-jaeger
+              containerPort: {{ .Values.collector.containerPorts.jaeger.grpc }}
+            - name: http-jaeger-tf
+              containerPort: {{ .Values.collector.containerPorts.jaeger.thrift_http }}
+            {{- end }}
+            {{- if has "zipkin" .Values.collector.receivers }}
+            - name: zipkin
+              containerPort: {{ .Values.collector.containerPorts.zipkin }}
+            {{- end }}
+            - name: metrics
+              containerPort: {{ .Values.collector.containerPorts.metrics }}
+            - name: healthcheck
+              containerPort: {{ .Values.collector.containerPorts.healthcheck }}
           env:
             - name: CASSANDRA_SERVERS
               value: {{ include "jaeger.cassandra.host" . }}
@@ -118,18 +132,26 @@ spec:
               value: {{ include "jaeger.cassandra.keyspace" . }}
             - name: CASSANDRA_DATACENTER
               value: {{ include "jaeger.cassandra.datacenter" . }}
-            - name: ADMIN_HTTP_HOST_PORT
-              value: {{ printf ":%v" .Values.collector.containerPorts.admin | quote }}
-            - name: COLLECTOR_ZIPKIN_HOST_PORT
-              value: {{ printf ":%v" .Values.collector.containerPorts.zipkin | quote }}
-            - name: COLLECTOR_GRPC_SERVER_HOST_PORT
-              value: {{ printf ":%v" .Values.collector.containerPorts.grpc | quote }}
-            - name: COLLECTOR_HTTP_SERVER_HOST_PORT
-              value: {{ printf ":%v" .Values.collector.containerPorts.binary | quote }}
+            {{- if has "otlp" .Values.collector.receivers }}
             - name: COLLECTOR_OTLP_GRPC_HOST_PORT
               value: {{ printf ":%v" .Values.collector.containerPorts.otlp.grpc | quote }}
             - name: COLLECTOR_OTLP_HTTP_HOST_PORT
               value: {{ printf ":%v" .Values.collector.containerPorts.otlp.http | quote }}
+            {{- end }}
+            {{- if has "jaeger" .Values.collector.receivers }}
+            - name: COLLECTOR_JAEGER_GRPC_SERVER_HOST_PORT
+              value: {{ printf ":%v" .Values.collector.containerPorts.jaeger.grpc | quote }}
+            - name: COLLECTOR_JAEGER_THRIFT_HTTP_HOST_PORT
+              value: {{ printf ":%v" .Values.collector.containerPorts.jaeger.thrift_http | quote }}
+            {{- end }}
+            {{- if has "zipkin" .Values.collector.receivers }}
+            - name: COLLECTOR_ZIPKIN_HOST_PORT
+              value: {{ printf ":%v" .Values.collector.containerPorts.zipkin | quote }}
+            {{- end }}
+            - name: COLLECTOR_HEALTHCHECK_HOST_PORT
+              value: {{ printf ":%v" .Values.collector.containerPorts.healthcheck | quote }}
+            - name: COLLECTOR_METRICS_PORT
+              value: {{ .Values.collector.containerPorts.metrics | quote }}
             - name: BITNAMI_DEBUG
               value: {{ ternary "true" "false" .Values.image.debug | quote }}
             {{- if .Values.collector.extraEnvVars }}
@@ -150,23 +172,24 @@ spec:
           {{- else if .Values.collector.startupProbe.enabled }}
           startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.collector.startupProbe "enabled") "context" $) | nindent 12 }}
             httpGet:
-              path: /
-              port: admin
+              path: /status
+              port: healthcheck
           {{- end }}
           {{- if .Values.collector.customLivenessProbe }}
           livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.collector.customLivenessProbe "context" $) | nindent 12 }}
           {{- else if .Values.collector.livenessProbe.enabled }}
           livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.collector.livenessProbe "enabled") "context" $) | nindent 12 }}
-            tcpSocket:
-              port: admin
+            httpGet:
+              path: /status
+              port: healthcheck
           {{- end }}
           {{- if .Values.collector.customReadinessProbe }}
           readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.collector.customReadinessProbe "context" $) | nindent 12 }}
           {{- else if .Values.collector.readinessProbe.enabled }}
           readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.collector.readinessProbe "enabled") "context" $) | nindent 12 }}
             httpGet:
-              path: /
-              port: admin
+              path: /status
+              port: healthcheck
           {{- end }}
           {{- end }}
           {{- if .Values.query.resources }}
@@ -174,13 +197,19 @@ spec:
           {{- else if ne .Values.collector.resourcesPreset "none" }}
           resources: {{- include "common.resources.preset" (dict "type" .Values.collector.resourcesPreset) | nindent 12 }}
           {{- end }}
-          {{- if .Values.collector.extraVolumeMounts }}
-          volumeMounts: {{- include "common.tplvalues.render" ( dict "value" .Values.collector.extraVolumeMounts "context" $) | nindent 12 }}
-          {{- end }}
+          volumeMounts:
+            - name: configuration
+              mountPath: /opt/bitnami/jaeger/conf
+            {{- if .Values.collector.extraVolumeMounts }}
+            {{- include "common.tplvalues.render" ( dict "value" .Values.collector.extraVolumeMounts "context" $) | nindent 12 }}
+            {{- end }}
         {{- if .Values.collector.sidecars }}
         {{- include "common.tplvalues.render" ( dict "value" .Values.collector.sidecars "context" $) | nindent 8 }}
         {{- end }}
       volumes:
+        - name: configuration
+          configMap:
+            name: {{ include "jaeger.collector.configMapName"  . }}
         {{- if .Values.collector.extraVolumes }}
         {{- include "common.tplvalues.render" ( dict "value" .Values.collector.extraVolumes "context" $) | nindent 8 }}
         {{- end }}

+ 10 - 21
bitnami/jaeger/templates/collector/networkpolicy.yaml

@@ -33,23 +33,6 @@ spec:
           protocol: UDP
         - port: 53
           protocol: TCP
-    # Allow outbound connections to other collector pods
-    - ports:
-        - port: {{ .Values.collector.containerPorts.binary }}
-        - port: {{ .Values.collector.containerPorts.zipkin }}
-        - port: {{ .Values.collector.containerPorts.grpc }}
-        - port: {{ .Values.collector.containerPorts.admin }}
-      to:
-        - podSelector:
-            matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 14 }}
-              app.kubernetes.io/component: collector
-    # Allow outbound connections to other query pods
-    - ports:
-        - port: {{ .Values.query.containerPorts.admin }}
-      to:
-        - podSelector:
-            matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 14 }}
-              app.kubernetes.io/component: query
     # Allow outbound connections to Cassandra
     - ports:
         - port: {{ include "jaeger.cassandra.port" . | trimAll "\"" | int }}
@@ -66,12 +49,18 @@ spec:
   {{- end }}
   ingress:
     - ports:
-        - port: {{ .Values.collector.containerPorts.binary }}
-        - port: {{ .Values.collector.containerPorts.zipkin }}
-        - port: {{ .Values.collector.containerPorts.grpc }}
-        - port: {{ .Values.collector.containerPorts.admin }}
+        {{- if has "otlp" .Values.collector.receivers }}
         - port: {{ .Values.collector.containerPorts.otlp.grpc }}
         - port: {{ .Values.collector.containerPorts.otlp.http }}
+        {{- end }}
+        {{- if has "jaeger" .Values.collector.receivers }}
+        - port: {{ .Values.collector.containerPorts.jaeger.thrift_http }}
+        - port: {{ .Values.collector.containerPorts.jaeger.grpc }}
+        {{- end }}
+        {{- if has "zipkin" .Values.collector.receivers }}
+        - port: {{ .Values.collector.containerPorts.zipkin }}
+        {{- end }}
+        - port: {{ .Values.collector.containerPorts.metrics }}
       {{- if not .Values.collector.networkPolicy.allowExternal }}
       from:
         - podSelector:

+ 36 - 30
bitnami/jaeger/templates/collector/service.yml

@@ -36,51 +36,57 @@ spec:
   externalTrafficPolicy: {{ .Values.collector.service.externalTrafficPolicy | quote }}
   {{- end }}
   ports:
-    - name: grpc
-      port: {{ .Values.collector.service.ports.grpc }}
-      targetPort: {{ .Values.collector.containerPorts.grpc }}
-      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.grpc)) }}
-      nodePort: {{ .Values.collector.service.nodePorts.grpc }}
+    {{- if has "otlp" .Values.collector.receivers }}
+    - name: otlp-grpc
+      port: {{ .Values.collector.service.ports.otlp.grpc }}
+      targetPort: {{ .Values.collector.containerPorts.otlp.grpc }}
+      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.otlp.grpc)) }}
+      nodePort: {{ .Values.collector.service.nodePorts.otlp.grpc }}
       {{- else if eq .Values.collector.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}
-    - name: binary
-      port: {{ .Values.collector.service.ports.binary }}
-      targetPort: {{ .Values.collector.containerPorts.binary }}
-      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.binary)) }}
-      nodePort: {{ .Values.collector.service.nodePorts.binary }}
+    - name: otlp-http
+      port: {{ .Values.collector.service.ports.otlp.http }}
+      targetPort: {{ .Values.collector.containerPorts.otlp.http }}
+      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.otlp.http)) }}
+      nodePort: {{ .Values.collector.service.nodePorts.otlp.http }}
       {{- else if eq .Values.collector.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}
-    - name: zipkin
-      port: {{ .Values.collector.service.ports.zipkin }}
-      targetPort: {{ .Values.collector.containerPorts.zipkin }}
-      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.zipkin)) }}
-      nodePort: {{ .Values.collector.service.nodePorts.zipkin }}
+    {{- end }}
+    {{- if has "jaeger" .Values.collector.receivers }}
+    - name: jaeger-grpc
+      port: {{ .Values.collector.service.ports.jaeger.grpc }}
+      targetPort: {{ .Values.collector.containerPorts.jaeger.grpc }}
+      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.jaeger.grpc)) }}
+      nodePort: {{ .Values.collector.service.nodePorts.jaeger.grpc }}
       {{- else if eq .Values.collector.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}
-    - name: admin
-      port: {{ .Values.collector.service.ports.admin }}
-      targetPort: {{ .Values.collector.containerPorts.admin }}
-      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.admin)) }}
-      nodePort: {{ .Values.collector.service.nodePorts.admin }}
+    - name: jaeger-http-thrift
+      port: {{ .Values.collector.service.ports.jaeger.thrift_http }}
+      targetPort: {{ .Values.collector.containerPorts.jaeger.thrift_http }}
+      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.jaeger.thrift_http)) }}
+      nodePort: {{ .Values.collector.service.nodePorts.jaeger.thrift_http }}
       {{- else if eq .Values.collector.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}
-    - name: otlp-grpc
-      port: {{ .Values.collector.service.ports.otlp.grpc }}
-      targetPort: {{ .Values.collector.containerPorts.otlp.grpc }}
-      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.otlp.grpc)) }}
-      nodePort: {{ .Values.collector.service.nodePorts.otlp.grpc }}
+    {{- end }}
+    {{- if has "zipkin" .Values.collector.receivers }}
+    - name: zipkin
+      port: {{ .Values.collector.service.ports.zipkin }}
+      targetPort: {{ .Values.collector.containerPorts.zipkin }}
+      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.zipkin)) }}
+      nodePort: {{ .Values.collector.service.nodePorts.zipkin }}
       {{- else if eq .Values.collector.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}
-    - name: otlp-http
-      port: {{ .Values.collector.service.ports.otlp.http }}
-      targetPort: {{ .Values.collector.containerPorts.otlp.http }}
-      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.otlp.http)) }}
-      nodePort: {{ .Values.collector.service.nodePorts.otlp.http }}
+    {{- end }}
+    - name: metrics
+      port: {{ .Values.collector.service.ports.metrics }}
+      targetPort: {{ .Values.collector.containerPorts.metrics }}
+      {{- if and (or (eq .Values.collector.service.type "NodePort") (eq .Values.collector.service.type "LoadBalancer")) (not (empty .Values.collector.service.nodePorts.metrics)) }}
+      nodePort: {{ .Values.collector.service.nodePorts.metrics }}
       {{- else if eq .Values.collector.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}

+ 0 - 129
bitnami/jaeger/templates/migrate-job.yaml

@@ -1,129 +0,0 @@
-{{- /*
-Copyright Broadcom, Inc. All Rights Reserved.
-SPDX-License-Identifier: APACHE-2.0
-*/}}
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: {{ include "common.names.fullname" . }}-migrate
-  namespace: {{ include "common.names.namespace" . | quote }}
-  labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
-    app.kubernetes.io/component: migration
-  {{- if or .Values.migration.annotations .Values.commonAnnotations }}
-  {{- $annotations := include "common.tplvalues.merge" ( dict "values" ( list .Values.migration.annotations .Values.commonAnnotations ) "context" . ) }}
-  annotations: {{- include "common.tplvalues.render" ( dict "value" $annotations "context" $) | nindent 4 }}
-  {{- end }}
-spec:
-  ttlSecondsAfterFinished: 30
-  template:
-    metadata:
-      {{- $podLabels := include "common.tplvalues.merge" ( dict "values" ( list .Values.migration.podLabels .Values.commonLabels ) "context" . ) }}
-      labels: {{- include "common.labels.standard" ( dict "customLabels" $podLabels "context" $ ) | nindent 8 }}
-        app.kubernetes.io/component: migration
-      {{- if .Values.migration.podAnnotations }}
-      annotations: {{- include "common.tplvalues.render" (dict "value" .Values.migration.podAnnotations "context" $) | nindent 8 }}
-      {{- end }}
-    spec:
-      {{- include "jaeger.imagePullSecrets" . | nindent 6 }}
-      restartPolicy: OnFailure
-      {{- if .Values.migration.podSecurityContext.enabled }}
-      securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.migration.podSecurityContext "context" $) | nindent 8 }}
-      {{- end }}
-      initContainers:
-        - name: jaeger-cassandra-schema-grabber
-          image: {{ include "jaeger.image" . }}
-          command: [ "cp", "-T", "-r", "/opt/bitnami/jaeger/cassandra-schema", "/cassandra-schema/" ]
-          volumeMounts:
-            - name: cassandra-schema
-              mountPath: "/cassandra-schema"
-          {{- if .Values.migration.containerSecurityContext.enabled }}
-          securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.migration.containerSecurityContext "context" $) | nindent 12 }}
-          {{- end }}
-          {{- if .Values.migration.initContainer.resources }}
-          resources: {{- toYaml .Values.migration.initContainer.resources | nindent 12 }}
-          {{- else if ne .Values.migration.initContainer.resourcesPreset "none" }}
-          resources: {{- include "common.resources.preset" (dict "type" .Values.migration.initContainer.resourcesPreset) | nindent 12 }}
-          {{- end }}
-      containers:
-        - name: jaeger-cassandra-migrator
-          image: {{ include "jaeger.cqlshImage" . }}
-          command:
-            - /bin/bash
-          args:
-            - -ec
-            - |
-              #!/bin/bash
-
-              set -o errexit
-              set -o nounset
-              set -o pipefail
-
-              . /opt/bitnami/scripts/libos.sh
-
-              check_cassandra_connection() {
-                  echo "SELECT 1" | cqlsh -u $CASSANDRA_USERNAME -p $CASSANDRA_PASSWORD -e "QUIT"
-              }
-
-
-              info "Connecting to the Cassandra instance $CQLSH_HOST:$CQLSH_PORT"
-              if ! retry_while "check_cassandra_connection" 12 30; then
-                error "Could not connect to the database server"
-                exit 1
-              else
-                info "Connection check success"
-                sed -i 's/cqlsh -e "show version"/cqlsh -e "show version" -u $CASSANDRA_USERNAME -p $CASSANDRA_PASSWORD /' /cassandra-schema/create.sh
-                /cassandra-schema/docker.sh
-              fi
-          {{- if .Values.migration.containerSecurityContext.enabled }}
-          securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.migration.containerSecurityContext "context" $) | nindent 12 }}
-          {{- end }}
-          env:
-            - name: CQLSH
-              value: /opt/bitnami/cassandra/bin/cqlsh
-            - name: CQLSH_HOST
-              value: {{ include "jaeger.cassandra.host" . }}
-            - name: CQLSH_PORT
-              value: {{ include "jaeger.cassandra.port" . }}
-            - name: CASSANDRA_USERNAME
-              value: {{ include "jaeger.cassandra.user" . }}
-            - name: DATACENTER
-              value: {{ include "jaeger.cassandra.datacenter" . }}
-            - name: KEYSPACE
-              value: {{ include "jaeger.cassandra.keyspace" . }}
-            - name: CASSANDRA_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ include "jaeger.cassandra.secretName" . }}
-                  key: {{ include "jaeger.cassandra.secretKey" . }}
-          {{- if or .Values.migration.extraEnvVarsCM .Values.migration.extraEnvVarsSecret }}
-          envFrom:
-            {{- if .Values.migration.extraEnvVarsCM }}
-            - configMapRef:
-                name: {{ .Values.migration.extraEnvVarsCM }}
-            {{- end }}
-            {{- if .Values.migration.extraEnvVarsSecret }}
-            - secretRef:
-                name: {{ .Values.migration.extraEnvVarsSecret }}
-            {{- end }}
-          {{- end }}
-          {{- if .Values.migration.extraEnvVars }}
-            {{- include "common.tplvalues.render" (dict "value" .Values.migration.extraEnvVars "context" $) | nindent 12 }}
-          {{- end }}
-          volumeMounts:
-            - name: cassandra-schema
-              mountPath: "/cassandra-schema"
-            {{- if .Values.migration.extraVolumeMounts }}
-            {{- include "common.tplvalues.render" (dict "value" .Values.migration.extraVolumeMounts "context" $) | nindent 12 }}
-            {{- end }}
-          {{- if .Values.migration.resources }}
-          resources: {{- toYaml .Values.migration.resources | nindent 12 }}
-          {{- else if ne .Values.migration.resourcesPreset "none" }}
-          resources: {{- include "common.resources.preset" (dict "type" .Values.migration.resourcesPreset) | nindent 12 }}
-          {{- end }}
-      volumes:
-        - name: cassandra-schema
-          emptyDir: {}
-      {{- if .Values.migration.extraVolumes }}
-      {{- include "common.tplvalues.render" (dict "value" .Values.migration.extraVolumes "context" $) | nindent 6 }}
-      {{- end }}

+ 76 - 0
bitnami/jaeger/templates/query/configmap.yaml

@@ -0,0 +1,76 @@
+{{- /*
+Copyright Broadcom, Inc. All Rights Reserved.
+SPDX-License-Identifier: APACHE-2.0
+*/}}
+
+{{/*
+Return the Jaeger query configuration.
+*/}}
+{{- define "jaeger.query.configuration" -}}
+{{- if .Values.query.configuration }}
+{{- include "common.tplvalues.render" (dict "value" .Values.query.configuration "context" .) }}
+{{- else }}
+service:
+  extensions: [jaeger_storage, jaeger_query, healthcheckv2]
+  pipelines:
+    traces:
+      receivers: [nop]
+      processors: [batch]
+      exporters: [nop]
+  telemetry:
+    resource:
+      service.name: jaeger-query
+    metrics:
+      level: detailed
+      readers:
+        - pull:
+            exporter:
+              prometheus:
+                host: 0.0.0.0
+                port: "${env:QUERY_METRICS_PORT}"
+    logs:
+      level: info
+extensions:
+  healthcheckv2:
+    use_v2: true
+    http:
+      endpoint: "${env:QUERY_HEALTHCHECK_HOST_PORT}"
+  jaeger_query:
+    storage:
+      traces: jaeger_storage
+    grpc:
+      endpoint: "${env:QUERY_GRPC_SERVER_HOST_PORT}"
+    http:
+      endpoint: "${env:QUERY_HTTP_SERVER_HOST_PORT}"
+  jaeger_storage:
+    backends:
+      jaeger_storage: {{ include "jaeger.cassandra.storage" . | nindent 8 }}
+receivers:
+  nop:
+processors:
+  batch:
+exporters:
+  nop:
+{{- end -}}
+{{- end -}}
+
+{{- if not .Values.query.existingConfigmap }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ template "jaeger.query.fullname" . }}
+  namespace: {{ include "common.names.namespace" . | quote }}
+  labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }}
+    app.kubernetes.io/component: query
+  {{- if .Values.commonAnnotations }}
+  annotations: {{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
+  {{- end }}
+  {{- $configuration := include "jaeger.query.configuration" . | fromYaml -}}
+  {{- if .Values.query.overrideConfiguration }}
+  {{- $overrideConfiguration := include "common.tplvalues.render" (dict "value" .Values.query.overrideConfiguration "context" .) | fromYaml }}
+  {{- $configuration = mustMergeOverwrite $configuration $overrideConfiguration }}
+  {{- end }}
+data:
+  query-config.yaml: |-
+    {{- toYaml $configuration | nindent 4 }}
+{{- end }}

+ 40 - 21
bitnami/jaeger/templates/query/deployment.yaml

@@ -27,8 +27,14 @@ spec:
       labels: {{- include "common.labels.standard" ( dict "customLabels" $podLabels "context" $ ) | nindent 8 }}
         app.kubernetes.io/part-of: jaeger
         app.kubernetes.io/component: query
-      {{- if .Values.query.podAnnotations }}
-      annotations: {{- include "common.tplvalues.render" (dict "value" .Values.query.podAnnotations "context" $) | nindent 8 }}
+      {{- if or .Values.query.podAnnotations (not .Values.query.existingConfigmap) }}
+      annotations:
+        {{- if not .Values.query.existingConfigmap }}
+        checksum/configmap: {{ include (print $.Template.BasePath "/query/configmap.yaml") . | sha256sum }}
+        {{- end }}
+        {{- if .Values.query.podAnnotations }}
+        {{- include "common.tplvalues.render" (dict "value" .Values.query.podAnnotations "context" $) | nindent 8 }}
+        {{- end }}
       {{- end }}
     spec:
       {{- include "jaeger.imagePullSecrets" . | nindent 6 }}
@@ -76,24 +82,28 @@ spec:
           command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
           {{- else if .Values.query.command }}
           command: {{- include "common.tplvalues.render" (dict "value" .Values.query.command "context" $) | nindent 12 }}
-          {{- else }}
-          command: ["/opt/bitnami/jaeger/bin/jaeger-query"]
           {{- end }}
           {{- if .Values.diagnosticMode.enabled }}
           args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }}
           {{- else if .Values.query.args }}
           args: {{- include "common.tplvalues.render" (dict "value" .Values.query.args "context" $) | nindent 12 }}
           {{- else }}
-          args: ["--cassandra.basic.allowed-authenticators=org.apache.cassandra.auth.PasswordAuthenticator"]
+          args:
+            - "--config"
+            - "/opt/bitnami/jaeger/conf/query-config.yaml"
           {{- end }}
           {{- if .Values.query.lifecycleHooks }}
           lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.query.lifecycleHooks "context" $) | nindent 12 }}
           {{- end }}
           ports:
-            - name: ui
-              containerPort: {{ .Values.query.containerPorts.api }}
-            - name: admin
-              containerPort: {{ .Values.query.containerPorts.admin }}
+            - name: http
+              containerPort: {{ .Values.query.containerPorts.http }}
+            - name: grpc
+              containerPort: {{ .Values.query.containerPorts.grpc }}
+            - name: healthcheck
+              containerPort: {{ .Values.query.containerPorts.healthcheck }}
+            - name: metrics
+              containerPort: {{ .Values.query.containerPorts.metrics }}
           env:
             - name: CASSANDRA_SERVERS
               value: {{ include "jaeger.cassandra.host" . }}
@@ -111,11 +121,13 @@ spec:
             - name: CASSANDRA_DATACENTER
               value: {{ include "jaeger.cassandra.datacenter" . }}
             - name: QUERY_HTTP_SERVER_HOST_PORT
-              value: {{ printf ":%v" .Values.query.containerPorts.api | quote }}
+              value: {{ printf ":%v" .Values.query.containerPorts.http | quote }}
             - name: QUERY_GRPC_SERVER_HOST_PORT
               value: {{ printf ":%v" .Values.query.containerPorts.grpc | quote }}
-            - name: ADMIN_HTTP_HOST_PORT
-              value: {{ printf ":%v" .Values.query.containerPorts.admin | quote }}
+            - name: QUERY_HEALTHCHECK_HOST_PORT
+              value: {{ printf ":%v" .Values.query.containerPorts.healthcheck | quote }}
+            - name: QUERY_METRICS_PORT
+              value: {{ .Values.collector.containerPorts.metrics | quote }}
             - name: BITNAMI_DEBUG
               value: {{ ternary "true" "false" .Values.image.debug | quote }}
             {{- if .Values.query.extraEnvVars }}
@@ -136,23 +148,24 @@ spec:
           {{- else if .Values.query.startupProbe.enabled }}
           startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.query.startupProbe "enabled") "context" $) | nindent 12 }}
             httpGet:
-              path: /
-              port: admin
+              path: /status
+              port: healthcheck
           {{- end }}
           {{- if .Values.query.customLivenessProbe }}
           livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.query.customLivenessProbe "context" $) | nindent 12 }}
           {{- else if .Values.query.livenessProbe.enabled }}
           livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.query.livenessProbe "enabled") "context" $) | nindent 12 }}
-            tcpSocket:
-              port: admin
+            httpGet:
+              path: /status
+              port: healthcheck
           {{- end }}
           {{- if .Values.query.customReadinessProbe }}
           readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.query.customReadinessProbe "context" $) | nindent 12 }}
           {{- else if .Values.query.readinessProbe.enabled }}
           readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.query.readinessProbe "enabled") "context" $) | nindent 12 }}
             httpGet:
-              path: /
-              port: admin
+              path: /status
+              port: healthcheck
           {{- end }}
           {{- end }}
           {{- if .Values.query.resources }}
@@ -160,13 +173,19 @@ spec:
           {{- else if ne .Values.query.resourcesPreset "none" }}
           resources: {{- include "common.resources.preset" (dict "type" .Values.query.resourcesPreset) | nindent 12 }}
           {{- end }}
-          {{- if .Values.query.extraVolumeMounts }}
-          volumeMounts: {{- include "common.tplvalues.render" ( dict "value" .Values.query.extraVolumeMounts "context" $) | nindent 12 }}
-          {{- end }}
+          volumeMounts:
+            - name: configuration
+              mountPath: /opt/bitnami/jaeger/conf
+            {{- if .Values.query.extraVolumeMounts }}
+            {{- include "common.tplvalues.render" ( dict "value" .Values.query.extraVolumeMounts "context" $) | nindent 12 }}
+            {{- end }}
         {{- if .Values.query.sidecars }}
         {{- include "common.tplvalues.render" ( dict "value" .Values.query.sidecars "context" $) | nindent 8 }}
         {{- end }}
       volumes:
+        - name: configuration
+          configMap:
+            name: {{ include "jaeger.query.configMapName"  . }}
         {{- if .Values.query.extraVolumes }}
         {{- include "common.tplvalues.render" ( dict "value" .Values.query.extraVolumes "context" $) | nindent 8 }}
         {{- end }}

+ 3 - 20
bitnami/jaeger/templates/query/networkpolicy.yaml

@@ -33,24 +33,6 @@ spec:
           protocol: UDP
         - port: 53
           protocol: TCP
-    # Allow outbound connections to other collector pods
-    - ports:
-        - port: {{ .Values.collector.containerPorts.binary }}
-        - port: {{ .Values.collector.containerPorts.zipkin }}
-        - port: {{ .Values.collector.containerPorts.grpc }}
-        - port: {{ .Values.collector.containerPorts.admin }}
-      to:
-        - podSelector:
-            matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 14 }}
-              app.kubernetes.io/component: collector
-    # Allow outbound connections to other query pods
-    - ports:
-        - port: {{ .Values.query.containerPorts.admin }}
-        - port: {{ .Values.query.containerPorts.ui }}
-      to:
-        - podSelector:
-            matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 14 }}
-              app.kubernetes.io/component: query
     # Allow outbound connections to Cassandra
     - ports:
         - port: {{ include "jaeger.cassandra.port" . | trimAll "\"" | int }}
@@ -67,8 +49,9 @@ spec:
   {{- end }}
   ingress:
     - ports:
-        - port: {{ .Values.query.containerPorts.admin }}
-        - port: {{ .Values.query.containerPorts.ui }}
+        - port: {{ .Values.query.containerPorts.http }}
+        - port: {{ .Values.query.containerPorts.grpc }}
+        - port: {{ .Values.query.containerPorts.metrics }}
       {{- if not .Values.collector.networkPolicy.allowExternal }}
       from:
         - podSelector:

+ 18 - 10
bitnami/jaeger/templates/query/service.yml

@@ -36,19 +36,27 @@ spec:
   externalTrafficPolicy: {{ .Values.query.service.externalTrafficPolicy | quote }}
   {{- end }}
   ports:
-    - name: api
-      port: {{ .Values.query.service.ports.api }}
-      targetPort: {{ .Values.query.containerPorts.api }}
-      {{- if and (or (eq .Values.query.service.type "NodePort") (eq .Values.query.service.type "LoadBalancer")) (not (empty .Values.query.service.nodePorts.api)) }}
-      nodePort: {{ .Values.query.service.nodePorts.api }}
+    - name: grpc
+      port: {{ .Values.query.service.ports.grpc }}
+      targetPort: {{ .Values.query.containerPorts.grpc }}
+      {{- if and (or (eq .Values.query.service.type "NodePort") (eq .Values.query.service.type "LoadBalancer")) (not (empty .Values.query.service.nodePorts.grpc)) }}
+      nodePort: {{ .Values.query.service.nodePorts.grpc }}
       {{- else if eq .Values.query.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}
-    - name: admin
-      port: {{ .Values.query.service.ports.admin }}
-      targetPort: {{ .Values.query.containerPorts.admin }}
-      {{- if and (or (eq .Values.query.service.type "NodePort") (eq .Values.query.service.type "LoadBalancer")) (not (empty .Values.query.service.nodePorts.admin)) }}
-      nodePort: {{ .Values.query.service.nodePorts.admin }}
+    - name: http
+      port: {{ .Values.query.service.ports.http }}
+      targetPort: {{ .Values.query.containerPorts.http }}
+      {{- if and (or (eq .Values.query.service.type "NodePort") (eq .Values.query.service.type "LoadBalancer")) (not (empty .Values.query.service.nodePorts.http)) }}
+      nodePort: {{ .Values.query.service.nodePorts.http }}
+      {{- else if eq .Values.query.service.type "ClusterIP" }}
+      nodePort: null
+      {{- end }}
+    - name: metrics
+      port: {{ .Values.query.service.ports.metrics }}
+      targetPort: {{ .Values.query.containerPorts.metrics }}
+      {{- if and (or (eq .Values.query.service.type "NodePort") (eq .Values.query.service.type "LoadBalancer")) (not (empty .Values.query.service.nodePorts.metrics)) }}
+      nodePort: {{ .Values.query.service.nodePorts.metrics }}
       {{- else if eq .Values.query.service.type "ClusterIP" }}
       nodePort: null
       {{- end }}

+ 108 - 57
bitnami/jaeger/values.yaml

@@ -81,7 +81,7 @@ diagnosticMode:
 image:
   registry: docker.io
   repository: bitnami/jaeger
-  tag: 2.8.0-debian-12-r2
+  tag: 2.8.0-debian-12-r4
   digest: ""
   ## Specify a imagePullPolicy
   ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
@@ -213,18 +213,30 @@ query:
   ## @param query.extraVolumeMounts Optionally specify extra list of additional volumeMounts for jaeger container
   ##
   extraVolumeMounts: []
+  ## @param query.configuration Specify content for Jaeger collector configuration (auto-generated based on other values otherwise)
+  ##
+  configuration: {}
+  ## @param query.overrideConfiguration Jaeger query common configuration override. Values defined here takes precedence over the ones defined at `query.configuration`
+  ##
+  overrideConfiguration: {}
+  ## @param query.existingConfigmap The name of an existing ConfigMap with your custom configuration for Jaeger collector
+  ##
+  existingConfigmap: ""
   ## Container ports to expose
   ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
   containerPorts:
-    ## @param query.containerPorts.grpc Port for GRPC
+    ## @param query.containerPorts.grpc Port for GRPC API
     ##
     grpc: 16685
-    ## @param query.containerPorts.api Port for API
+    ## @param query.containerPorts.http Port for HTTP API
+    ##
+    http: 16686
+    ## @param query.containerPorts.metrics Jaeger query prometheus metrics port
     ##
-    api: 16686
-    ## @param query.containerPorts.admin Port for admin
+    metrics: 8888
+    ## @param query.containerPorts.healthcheck Jaeger query healthcheck port
     ##
-    admin: 16687
+    healthcheck: 13133
   ## Jaeger query.service parameters
   ##
   service:
@@ -234,21 +246,27 @@ query:
     ## Ports to expose
     ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
     ports:
-      ## @param query.service.ports.api Port for API
+      ## @param query.service.ports.grpc Port for gRPC API
       ##
-      api: 16686
-      ## @param query.service.ports.admin Port for admin
+      grpc: 16685
+      ## @param query.service.ports.http Port for API
       ##
-      admin: 16687
+      http: 16686
+      ## @param query.service.ports.metrics Jaeger query prometheus metrics port
+      ##
+      metrics: 8888
     ## Node ports to expose
     ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
     nodePorts:
-      ## @param query.service.nodePorts.api Node port for API
+      ## @param query.service.nodePorts.grpc Port for gRPC API
+      ##
+      grpc: ""
+      ## @param query.service.nodePorts.http Node port for API
       ##
-      api: ""
-      ## @param query.service.nodePorts.admin Node port for admin
+      http: ""
+      ## @param query.service.nodePorts.metrics Jaeger query prometheus metrics port
       ##
-      admin: ""
+      metrics: ""
     ## @param query.service.extraPorts Extra ports to expose in the service (normally used with the `sidecar` value)
     ##
     extraPorts: []
@@ -292,7 +310,7 @@ query:
     metrics:
       annotations:
         prometheus.io/scrape: "true"
-        prometheus.io/port: "{{ .Values.query.service.ports.admin }}"
+        prometheus.io/port: "{{ .Values.query.service.ports.metrics }}"
         prometheus.io/path: "/metrics"
   ## Network Policies
   ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
@@ -604,21 +622,24 @@ collector:
   ## @param collector.extraVolumeMounts Optionally specify extra list of additional volumeMounts for jaeger container
   ##
   extraVolumeMounts: []
-  ## Container ports to expose
-  ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+  ## @param collector.configuration Specify content for Jaeger collector configuration (auto-generated based on other values otherwise)
+  ##
+  configuration: {}
+  ## @param collector.overrideConfiguration Jaeger collector common configuration override. Values defined here takes precedence over the ones defined at `query.configuration`
+  ##
+  overrideConfiguration: {}
+  ## @param collector.existingConfigmap The name of an existing ConfigMap with your custom configuration for Jaeger collector
+  ##
+  existingConfigmap: ""
+  ## @param collector.receivers Sets the jaeger collector receivers that will be enabled
+  ##
+  receivers:
+    - otlp
+    - jaeger
+    - zipkin
+  ## Jaeger collector container ports to expose
+  ## ref: https://www.jaegertracing.io/docs/latest/architecture/apis/
   containerPorts:
-    ## @param collector.containerPorts.zipkin can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)
-    ##
-    zipkin: 9411
-    ## @param collector.containerPorts.grpc used by jaeger-collector to send spans in model.proto format
-    ##
-    grpc: 14250
-    ## @param collector.containerPorts.binary can accept spans directly from clients in jaeger.thrift format over binary thrift protocol
-    ##
-    binary: 14268
-    ## @param collector.containerPorts.admin Admin port: health check at / and metrics at /metrics
-    ##
-    admin: 14269
     ## Otlp ports to expose
     ##
     otlp:
@@ -628,27 +649,33 @@ collector:
       ## @param collector.containerPorts.otlp.http Accepts traces in OpenTelemetry OTLP format over HTTP
       ##
       http: 4318
+    ## Legacy Jaeger Write API. Maintained for backward-compatibility
+    ##
+    jaeger:
+      ## @param collector.containerPorts.jaeger.grpc Legacy Jaeger protobuf via gRPC API port
+      ##
+      grpc: 14250
+      ## @param collector.containerPorts.jaeger.thrift_http Legacy Jaeger Thrift over HTTP API port
+      ##
+      thrift_http: 14268
+    ## @param collector.containerPorts.zipkin can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)
+    ##
+    zipkin: 9411
+    ## @param collector.containerPorts.metrics Jaeger collector prometheus metrics port
+    ##
+    metrics: 8888
+    ## @param collector.containerPorts.healthcheck Jaeger collector healthcheck port
+    ##
+    healthcheck: 13133
   ## Jaeger collector.service parameters
   ##
   service:
     ## @param collector.service.type Jaeger service type
     ##
     type: ClusterIP
-    ## Ports to expose
-    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+    ## Jaeger collector ports to expose
+    ## ref: https://www.jaegertracing.io/docs/latest/architecture/apis/
     ports:
-      ## @param collector.service.ports.zipkin can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)
-      ##
-      zipkin: 9411
-      ## @param collector.service.ports.grpc used by jaeger-collector to send spans in model.proto format
-      ##
-      grpc: 14250
-      ## @param collector.service.ports.binary can accept spans directly from clients in jaeger.thrift format over binary thrift protocol
-      ##
-      binary: 14268
-      ## @param collector.service.ports.admin Admin port: health check at / and metrics at /metrics
-      ##
-      admin: 14269
       ## Otlp ports to expose
       ##
       otlp:
@@ -658,21 +685,24 @@ collector:
         ## @param collector.service.ports.otlp.http Accepts traces in OpenTelemetry OTLP format over HTTP
         ##
         http: 4318
-    ## Node ports to expose
-    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
-    nodePorts:
-      ## @param collector.service.nodePorts.zipkin can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)
-      ##
-      zipkin: ""
-      ## @param collector.service.nodePorts.grpc used by jaeger-collector to send spans in model.proto format
+      ## Legacy Jaeger Write API. Maintained for backward-compatibility
       ##
-      grpc: ""
-      ## @param collector.service.nodePorts.binary can accept spans directly from clients in jaeger.thrift format over binary thrift protocol
+      jaeger:
+        ## @param collector.service.ports.jaeger.grpc Legacy Jaeger protobuf via gRPC API port
+        ##
+        grpc: 14250
+        ## @param collector.service.ports.jaeger.thrift_http Legacy Jaeger Thrift over HTTP API port
+        ##
+        thrift_http: 14268
+      ## @param collector.service.ports.zipkin can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)
       ##
-      binary: ""
-      ## @param collector.service.nodePorts.admin Admin port: health check at / and metrics at /metrics
+      zipkin: 9411
+      ## @param collector.service.ports.metrics Jaeger collector prometheus metrics port
       ##
-      admin: ""
+      metrics: 8888
+    ## Node ports to expose
+    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+    nodePorts:
       ## Otlp ports to expose
       ##
       otlp:
@@ -682,6 +712,22 @@ collector:
         ## @param collector.service.nodePorts.otlp.http Accepts traces in OpenTelemetry OTLP format over HTTP
         ##
         http: ""
+      ## Legacy Jaeger Write API. Maintained for backward-compatibility
+      ##
+      jaeger:
+        ## @param collector.service.nodePorts.jaeger.grpc Legacy Jaeger protobuf via gRPC API port
+        ##
+        grpc: ""
+        ## @param collector.service.nodePorts.jaeger.thrift_http Legacy Jaeger Thrift over HTTP API port
+        ##
+        thrift_http: ""
+      ## @param collector.service.nodePorts.zipkin can accept Zipkin spans in Thrift, JSON and Proto (disabled by default)
+      ##
+      zipkin: ""
+      ## @param collector.service.nodePorts.metrics Jaeger collector prometheus metrics port
+      ##
+      metrics: ""
+
     ## @param collector.service.extraPorts Extra ports to expose in the service (normally used with the `sidecar` value)
     ##
     extraPorts: []
@@ -725,7 +771,7 @@ collector:
     metrics:
       annotations:
         prometheus.io/scrape: "true"
-        prometheus.io/port: "{{ .Values.collector.service.ports.admin }}"
+        prometheus.io/port: "{{ .Values.collector.service.ports.metrics }}"
         prometheus.io/path: "/metrics"
   ## Network Policies
   ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
@@ -1106,7 +1152,7 @@ migration:
 cqlshImage:
   registry: docker.io
   repository: bitnami/cassandra
-  tag: 5.0.4-debian-12-r6
+  tag: 5.0.4-debian-12-r7
   digest: ""
   ## Specify a imagePullPolicy
   ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
@@ -1199,6 +1245,11 @@ cassandra:
   service:
     ports:
       cql: 9042
+  ## @param cassandra.initDB [object] Init script for initializing the instance
+  ##
+  initDB:
+    create_keyspace.cql: |
+      CREATE KEYSPACE {{ include "jaeger.cassandra.keyspace" . }} WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
   ## Cassandra pods' resource requests and limits
   ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
   ## Minimum memory for development is 4GB and 2 CPU cores