Compare commits

...

12 Commits

Author SHA1 Message Date
chahat sagar bd7ce6db25
bump python version (#648) 2025-07-19 17:02:17 -04:00
Yuri Shkuro 8ac04753df
Point to v2 chart
Signed-off-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>
2025-06-26 21:05:49 -04:00
Paul Hewlett e3ff031bfa
[jaeger] TopologySpreadConstraints (#637) 2025-03-21 09:04:22 +11:00
lsu-tc 9c9abf4646
add schema nodeSelector (#629) 2025-01-25 02:53:10 +11:00
Ryan C. Underwood 2a624a7195
[jaeger] Support gRPC storage in Jaeger >=1.60.0 (#627) 2025-01-16 11:29:15 +11:00
Ryan C. Underwood ba67df8984
[jaeger] Support gRPC storage in Jaeger >=1.60.0 (#626) 2025-01-16 09:45:34 +11:00
Fiete e2dc6645ca
make curl image respect global.imageRegistry (#621) 2024-12-02 08:58:46 +11:00
mehul gautam 05e6fa34d5
[jaeger] Fix hostname for Elasticsearch service and add CI test (#616)
* Fix hostname for Elasticsearch and add CI test

Signed-off-by: mehul <mehulsharma4786@gmail.com>

* fixed the ci

Signed-off-by: mehul <mehulsharma4786@gmail.com>

* fixed es

Signed-off-by: mehul <mehulsharma4786@gmail.com>

---------

Signed-off-by: mehul <mehulsharma4786@gmail.com>
Co-authored-by: mehul <mehulsharam4786@gmail.com>
2024-11-03 09:34:45 +11:00
Yuri Shkuro 1db9b6368c
Share setup sub-action in CI (#615)
* Share setup sub-action in CI

Signed-off-by: Yuri Shkuro <github@ysh.us>
2024-10-31 10:59:34 -04:00
Blair Bowden 4aab996119
upgrade jaeger-operator to latest 1.61.0 (#605)
Signed-off-by: Blair Bowden <blair@radiusmethod.com>
2024-10-01 02:29:36 +03:00
Reddysekhar Gaduputi 29a0e21b58
Jaeger allInOne allow different storage types (#603)
Signed-off-by: Reddysekhar Gaduputi <gsekhar73@gmail.com>
2024-09-20 06:49:51 +02:00
Kendi 2ee81aa797
[jaeger] Add missing loadBalancerIp to collector-svc template (#601)
Signed-off-by: Kendi Paet <kendi@tavex.eu>
2024-09-12 16:15:54 +02:00
16 changed files with 185 additions and 53 deletions

51
.github/actions/prepare-k8s/action.yaml vendored Normal file
View File

@ -0,0 +1,51 @@
name: Prepare K8s for Helm tests
runs:
using: "composite"
steps:
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.14.4
# Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and
# yamllint (https://github.com/adrienverge/yamllint) which require Python
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.1
with:
version: v3.10.1
- name: Create kind cluster
uses: helm/kind-action@v1.9.0
- name: Install kubectl
uses: azure/setup-kubectl@v4.0.0
with:
version: 'v1.28.8'
id: install
- name: Set up cert-manager
shell: bash
run: |
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml --namespace ingress-nginx
kubectl label node --all ingress-ready=true
kubectl describe pod --selector=app.kubernetes.io/component=controller -n ingress-nginx
kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=5m
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml
- name: Set up cmctl
shell: bash
run: |
curl -sSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/download/v1.6.1/cmctl-linux-amd64.tar.gz
tar xzf cmctl.tar.gz
sudo mv cmctl /usr/local/bin
cmctl version
- name: Check if cert-manager is up
shell: bash
run: |
cmctl check api --wait=5m

View File

@ -3,11 +3,10 @@ name: Lint and Test Charts
on: pull_request
jobs:
lint-test:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/checkout@v2
with:
fetch-depth: 0
@ -19,9 +18,9 @@ jobs:
# Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and
# yamllint (https://github.com/adrienverge/yamllint) which require Python
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.7
python-version: '3.11'
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.1
@ -39,34 +38,52 @@ jobs:
- name: Run chart-testing (lint)
run: ct lint --config ct.yaml
- name: Create kind cluster
uses: helm/kind-action@v1.9.0
if: steps.list-changed.outputs.changed == 'true'
- name: Install kubectl
uses: azure/setup-kubectl@v4.0.0
test-with-cassandra:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
version: 'v1.28.8'
id: install
fetch-depth: 0
- name: Set up cert-manager
run: |
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml --namespace ingress-nginx
kubectl label node --all ingress-ready=true
kubectl describe pod --selector=app.kubernetes.io/component=controller -n ingress-nginx
kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=5m
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml
- uses: ./.github/actions/prepare-k8s
- name: Set up cmctl
run: |
curl -sSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/download/v1.6.1/cmctl-linux-amd64.tar.gz
tar xzf cmctl.tar.gz
sudo mv cmctl /usr/local/bin
cmctl version
- name: Check if cert-manager is up
run: |
cmctl check api --wait=5m
- name: Run chart-testing (install)
- name: Run cassandra-chart-testing (install)
run: ct install --config ct.yaml
test-with-allInOne:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: ./.github/actions/prepare-k8s
- name: Run allInOne-chart-testing (install)
run: |
ct install --config ct.yaml --helm-extra-set-args "
--set provisionDataStore.cassandra=false
--set storage.type=memory
--set allInOne.enabled=true
--set agent.enabled=false
--set collector.enabled=false
--set query.enabled=false"
test-with-elasticsearch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: ./.github/actions/prepare-k8s
- name: Run elasticsearch-chart-testing (install)
run: |
ct install --config ct.yaml --helm-extra-set-args "
--set provisionDataStore.cassandra=false
--set provisionDataStore.elasticsearch=true
--set storage.type=elasticsearch
--set elasticsearch.master.masterOnly=false
--set elasticsearch.master.replicaCount=1
--set elasticsearch.data.replicaCount=0
--set elasticsearch.coordinating.replicaCount=0
--set elasticsearch.ingest.replicaCount=0"

View File

@ -5,6 +5,11 @@
This functionality is in beta and is subject to change. The code is provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.
# 🛑 If you are looking for Helm Chart for Jaeger-v2
it is located in the [v2 branch](https://github.com/jaegertracing/helm-charts/blob/v2/charts/jaeger/README-v2.md).
## Usage
[Helm](https://helm.sh) must be installed to use the charts.

View File

@ -2,6 +2,7 @@ The following table shows the compatibility of `Jaeger Operator helm chart` with
| Chart version | Jaeger Operator | Kubernetes | Strimzi Operator | Cert-Manager |
|---------------------------|-----------------|-----------------|--------------------|--------------|
| 2.57.0 | v1.61.x | v1.19 to v1.29 | v0.32 | v1.6.1+ |
| 2.54.0 | v1.57.x | v1.19 to v1.29 | v0.32 | v1.6.1+ |
| 2.50.0 | v1.52.x | v1.19 to v1.28 | v0.32 | v1.6.1+ |
| 2.49.0 | v1.49.x | v1.19 to v1.28 | v0.32 | v1.6.1+ |

View File

@ -1,8 +1,8 @@
apiVersion: v1
description: jaeger-operator Helm chart for Kubernetes
name: jaeger-operator
version: 2.56.0
appVersion: 1.57.0
version: 2.57.0
appVersion: 1.61.0
home: https://www.jaegertracing.io/
icon: https://www.jaegertracing.io/img/jaeger-icon-reverse-color.svg
sources:

View File

@ -59,7 +59,7 @@ The following table lists the configurable parameters of the jaeger-operator cha
| `serviceExtraLabels` | Additional labels to jaeger-operator service | `{}` |
| `extraLabels` | Additional labels to jaeger-operator deployment | `{}` |
| `image.repository` | Controller container image repository | `jaegertracing/jaeger-operator` |
| `image.tag` | Controller container image tag | `1.57.0` |
| `image.tag` | Controller container image tag | `1.61.0` |
| `image.pullPolicy` | Controller container image pull policy | `IfNotPresent` |
| `jaeger.create` | Jaeger instance will be created | `false` |
| `jaeger.spec` | Jaeger instance specification | `{}` |

View File

@ -4,7 +4,7 @@
image:
repository: jaegertracing/jaeger-operator
tag: 1.57.0
tag: 1.61.0
pullPolicy: IfNotPresent
imagePullSecrets: []

View File

@ -3,7 +3,7 @@ appVersion: 1.53.0
description: A Jaeger Helm chart for Kubernetes
name: jaeger
type: application
version: 3.2.1
version: 3.4.1
# CronJobs require v1.21
kubeVersion: ">= 1.21-0"
keywords:

View File

@ -268,7 +268,11 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
*/}}
{{- define "elasticsearch.client.url" -}}
{{- $port := .Values.storage.elasticsearch.port | toString -}}
{{- printf "%s://%s:%s" .Values.storage.elasticsearch.scheme .Values.storage.elasticsearch.host $port }}
{{- $host := .Values.storage.elasticsearch.host }}
{{- if .Values.provisionDataStore.elasticsearch }}
{{- $host = printf "%s-elasticsearch" .Release.Name }}
{{- end }}
{{- printf "%s://%s:%s" .Values.storage.elasticsearch.scheme $host $port }}
{{- end -}}
{{- define "jaeger.hotrod.tracing.host" -}}
@ -408,16 +412,6 @@ memory related environment variables
{{- end }}
{{- end -}}
{{/*
allInOne currently only supports memory/badger storage type.
*/}}
{{- define "allInOne.storage.type" -}}
{{ $type := .Values.storage.type }}
{{- if or (eq $type "memory") (eq $type "badger") -}}
{{ .Values.storage.type }}
{{- end -}}
{{- end -}}
{{/*
Cassandra, Elasticsearch, or grpc-plugin, badger, memory related environment variables depending on which is used
@ -427,7 +421,7 @@ Cassandra, Elasticsearch, or grpc-plugin, badger, memory related environment var
{{ include "cassandra.env" . }}
{{- else if eq .Values.storage.type "elasticsearch" -}}
{{ include "elasticsearch.env" . }}
{{- else if eq .Values.storage.type "grpc-plugin" -}}
{{- else if or (eq .Values.storage.type "grpc-plugin") (eq .Values.storage.type "grpc") -}}
{{ include "grpcPlugin.env" . }}
{{- else if eq .Values.storage.type "badger" -}}
{{ include "badger.env" . }}
@ -723,6 +717,18 @@ Create image name for hotrod image
{{- include "renderImage" ( dict "imageRoot" .Values.hotrod.image "context" $ ) -}}
{{- end -}}
{{/*
Define curl image declaration
*/}}
{{- define "curl.image" -}}
{{- $image := "curlimages/curl" -}}
{{- if .Values.global.imageRegistry -}}
{{ .Values.global.imageRegistry }}/{{ $image }}
{{- else -}}
{{ $image }}
{{- end -}}
{{- end -}}
{{/*
Create pull secrets for hotrod image
*/}}

View File

@ -37,7 +37,7 @@ spec:
{{- toYaml .Values.allInOne.extraEnv | nindent 12 }}
{{- end }}
- name: SPAN_STORAGE_TYPE
value: {{ include "allInOne.storage.type" . | required "Invalid storage type provided. Use either badger or memory for allInOne" }}
value: {{ .Values.storage.type }}
{{- include "storage.env" . | nindent 12 }}
- name: COLLECTOR_ZIPKIN_HOST_PORT
value: :9411

View File

@ -100,6 +100,10 @@ spec:
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.schema.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end -}}
{{- end -}}
{{- end -}}

View File

@ -32,6 +32,20 @@ spec:
{{- toYaml .Values.collector.podLabels | nindent 8 }}
{{- end }}
spec:
{{- if .Values.provisionDataStore.elasticsearch }}
initContainers:
- name: elasticsearch-checker
image: {{ include "curl.image" . }}
command:
- sh
- "-c"
- |
url="{{ include "elasticsearch.client.url" . }}"
until [ "$(curl -s -o /dev/null -w '%{http_code}' "$url/_cluster/health")" = "200" ]; do
echo "Waiting for Elasticsearch at $url"
sleep 5
done
{{- end}}
{{- with .Values.collector.priorityClassName }}
priorityClassName: {{ . }}
{{- end }}
@ -208,6 +222,10 @@ spec:
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.collector.topologySpreadConstraints }}
topologySpreadConstraints:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.collector.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}

View File

@ -70,5 +70,8 @@ spec:
clusterIP: {{ .Values.collector.service.clusterIP }}
{{- end }}
type: {{ .Values.collector.service.type }}
{{- if and (eq .Values.collector.service.type "LoadBalancer") .Values.collector.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.collector.service.loadBalancerIP }}
{{- end -}}
{{- template "loadBalancerSourceRanges" .Values.collector }}
{{- end -}}

View File

@ -43,6 +43,10 @@ spec:
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.ingester.topologySpreadConstraints }}
topologySpreadConstraints:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.ingester.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}

View File

@ -44,10 +44,25 @@ spec:
{{- toYaml .Values.query.podSecurityContext | nindent 8 }}
serviceAccountName: {{ template "jaeger.query.serviceAccountName" . }}
{{- include "query.imagePullSecrets" . | nindent 6 }}
{{- if .Values.query.initContainers }}
{{- if or .Values.query.initContainers .Values.provisionDataStore.elasticsearch }}
initContainers:
{{- toYaml .Values.query.initContainers | nindent 8 }}
{{- end}}
{{- if .Values.query.initContainers }}
{{- toYaml .Values.query.initContainers | nindent 8 }}
{{- end }}
{{- if .Values.provisionDataStore.elasticsearch }}
- name: elasticsearch-checker
image: {{ include "curl.image" . }}
command:
- sh
- "-c"
- |
url="{{ include "elasticsearch.client.url" . }}"
until [ "$(curl -s -o /dev/null -w '%{http_code}' "$url/_cluster/health")" = "200" ]; do
echo "waiting for Elasticsearch at $url"
sleep 5
done
{{- end }}
{{- end }}
containers:
- name: {{ template "jaeger.query.name" . }}
securityContext:
@ -297,6 +312,10 @@ spec:
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.query.topologySpreadConstraints }}
topologySpreadConstraints:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.query.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}

View File

@ -257,6 +257,7 @@ schema:
podLabels: {}
securityContext: {}
podSecurityContext: {}
nodeSelector: {}
## Deadline for cassandra schema creation job
activeDeadlineSeconds: 300
extraEnv:
@ -353,6 +354,7 @@ ingester:
nodeSelector: {}
tolerations: []
affinity: {}
topologySpreadContraints: []
podAnnotations: {}
## Additional pod labels
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
@ -557,6 +559,7 @@ collector:
nodeSelector: {}
tolerations: []
affinity: {}
topologySpreadContraints: []
podAnnotations: {}
## Additional pod labels
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
@ -740,6 +743,7 @@ query:
nodeSelector: {}
tolerations: []
affinity: {}
topologySpreadContraints: []
podAnnotations: {}
## Additional pod labels
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/