Initial commit

This commit is contained in:
2025-12-09 19:34:54 +11:00
commit a4d98eea50
894 changed files with 131646 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj

View File

@@ -0,0 +1,35 @@
The following table shows the compatibility of `Jaeger Operator helm chart` with different components, in this particular case we shows Jaeger Operator, Kubernetes and Strimzi operator compatibility. Cert-manager installed or certificate for webhook service in a secret is required in version 2.29.0+ of the helm chart.
| Chart version | Jaeger Operator | Kubernetes | Strimzi Operator | Cert-Manager |
|---------------------------|-----------------|-----------------|--------------------|--------------|
| 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+ |
| 2.47.0 | v1.47.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
| 2.46.0 | v1.46.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
| 2.45.0 | v1.45.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
| 2.42.0 | v1.43.x | v1.19 to v1.26 | v0.23 | v1.6.1+ |
| 2.41.0 | v1.42.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| (Missing) | | v1.19 to v1.23 | v0.23 | v1.6.1+ |
| (Missing) | v1.41.x | v1.19 to v1.23 | v0.23 | v1.6.1+ |
| (Missing) | v1.40.x | v1.19 to v1.23 | v0.23 | v1.6.1+ |
| 2.37.0 | v1.39.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| 2.36.0 | v1.38.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| 2.35.0 | v1.37.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| 2.34.0 | v1.36.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| 2.33.0 | v1.35.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| 2.32.0(C), 2.32.1, 2.32.2 | v1.34.x | v1.19 to v1.24 | v0.23 | v1.6.1+ |
| (Missing) | v1.33.x | v1.19 to v1.23 | v0.23 | v1.6.1+ |
| 2.30.0(C), 2.31.0(C) | v1.32.x | v1.19 to v1.21 | v0.23 | v1.6.1+ |
| 2.29.0(C) | v1.31.x | v1.19 to v1.21 | v0.23 | v1.6.1+ |
| 2.28.0 | v1.30.x | v1.19 to v1.21 | v0.23 | |
| 2.27.1 | v1.29.x | v1.19 to v1.21 | v0.23 | |
| 2.27.0 | v1.28.x | v1.19 to v1.21 | v0.23 | |
| 2.26.0 | v1.27.x | v1.19 to v1.21 | v0.23 | |
| (Missing) | v1.26.x | v1.19 to v1.21 | v0.23 | |
| (Missing) | v1.25.x | v1.19 to v1.21 | v0.23 | |
| 2.23.0, 2.24.0, 2.25.0 | v1.24.x | v1.19 to v1.21 | v0.23 | |
| (Missing) | v1.23.x | v1.19 to v1.21 | v0.19, v0.20 | |
| 2.21.* | v1.22.x | v1.18 to v1.20 | v0.19 | |
Legend:
- `(C)` Chart is corrupted. Please do not use it, see [link](https://github.com/jaegertracing/helm-charts/issues/351) and [link](https://github.com/jaegertracing/helm-charts/issues/373)
- `(Missing)` Missing chart version for specified Jaeger Operator version

View File

@@ -0,0 +1,14 @@
apiVersion: v1
appVersion: 1.52.0
description: jaeger-operator Helm chart for Kubernetes
home: https://www.jaegertracing.io/
icon: https://www.jaegertracing.io/img/jaeger-icon-reverse-color.svg
maintainers:
- email: ctadeu@gmail.com
name: cpanato
- email: batazor111@gmail.com
name: batazor
name: jaeger-operator
sources:
- https://github.com/jaegertracing/jaeger-operator
version: 2.50.1

View File

@@ -0,0 +1,142 @@
# jaeger-operator
[jaeger-operator](https://github.com/jaegertracing/jaeger-operator) is a Kubernetes operator.
## Install
```console
$ helm install jaegertracing/jaeger-operator
```
## Introduction
This chart bootstraps a jaeger-operator deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes 1.19+
- Helm 3
- cert-manager 1.6.1+ installed, or certificate for webhook service in a secret
## Check compability matrix
See the compatibility matrix [here](./COMPATIBILITY.md).
## Installing the Chart
Add the Jaeger Tracing Helm repository:
```console
$ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
```
To install the chart with the release name `my-release` in `observability` namespace:
```console
$ helm install my-release jaegertracing/jaeger-operator -n observability
```
The command deploys jaeger-operator on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
```console
$ helm delete my-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
## Configuration
The following table lists the configurable parameters of the jaeger-operator chart and their default values.
| Parameter | Description | Default |
| :------------------------- | :---------------------------------------------------------------------------------------------------------- |:--------------------------------|
| `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.52.0` |
| `image.pullPolicy` | Controller container image pull policy | `IfNotPresent` |
| `jaeger.create` | Jaeger instance will be created | `false` |
| `jaeger.spec` | Jaeger instance specification | `{}` |
| `rbac.create` | All required roles and rolebindings will be created | `true` |
| `serviceAccount.create` | Service account to use | `true` |
| `rbac.pspEnabled` | Pod security policy for pod will be created and included in rbac role | `false` |
| `rbac.clusterRole` | ClusterRole will be used by operator ServiceAccount | `false` |
| `serviceAccount.name` | Service account name to use. If not set and create is true, a name is generated using the fullname template | `nil` |
| `extraEnv` | Additional environment variables passed to the operator. For example: name: LOG-LEVEL value: debug | `[]` |
| `resources` | K8s pod resources | `None` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `tolerations` | Toleration labels for pod assignment | `[]` |
| `affinity` | Affinity settings for pod assignment | `{}` |
| `securityContext` | Security context for pod | `{}` |
| `containerSecurityContext` | Security context for the container | `{}` |
| `priorityClassName` | Priority class name for the pod | `None` |
Specify each parameter you'd like to override using a YAML file as described above in the [installation](#installing-the-chart) section.
You can also specify any non-array parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```console
$ helm install jaegertracing/jaeger-operator --name my-release \
--set rbac.create=false
```
To install the chart without creating the CRDs (any files under `chart/crds`) make use of the `--skip-crds` flag. For example,
```console
$ helm install jaegertracing/jaeger-operator --name my-release \
--skip-crds
```
## After the Helm Installation
### Creating a new Jaeger instance
The simplest possible way to install is by creating a YAML file like the following:
```YAML
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simplest
```
The YAML file can then be used with `kubectl`:
```console
$ kubectl apply -f simplest.yaml
```
### Creating a new Jaeger with ElasticSearch
To do that you need to have an ElasticSearch installed in your Kubernetes cluster or install one using the [Helm Chart](https://github.com/helm/charts/tree/master/incubator/elasticsearch) available for that.
After that just deploy the following manifest:
```YAML
# setup an elasticsearch with `make es`
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simple-prod
spec:
strategy: production
storage:
type: elasticsearch
options:
es:
server-urls: http://elasticsearch:9200
username: elastic
password: changeme
```
The YAML file can then be used with `kubectl`:
```console
$ kubectl apply -f simple-prod.yaml
```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
jaeger-operator is installed.
Check the jaeger-operator logs
export POD=$(kubectl get pods -l app.kubernetes.io/instance={{ .Release.Name }} -l app.kubernetes.io/name=jaeger-operator --namespace {{ .Release.Namespace }} --output name)
kubectl logs $POD --namespace={{ .Release.Namespace }}

View File

@@ -0,0 +1,49 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "jaeger-operator.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "jaeger-operator.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "jaeger-operator.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "jaeger-operator.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "jaeger-operator.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/* Generate basic labels */}}
{{- define "jaeger-operator.labels" }}
app.kubernetes.io/name: {{ include "jaeger-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,22 @@
{{- if .Values.certs.certificate.create }}
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: {{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
namespace: {{ .Release.Namespace }}
spec:
dnsNames:
- "{{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}.{{ .Release.Namespace }}.svc"
- "{{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}.{{ .Release.Namespace }}.svc.cluster.local"
issuerRef:
{{- if .Values.certs.issuer.create }}
kind: Issuer
{{- else }}
kind: {{ .Values.certs.certificate.issuerKind }}
{{- end }}
name: {{ default "selfsigned-issuer" .Values.certs.issuer.name }}
secretName: {{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
subject:
organizationalUnits:
- "{{ include "jaeger-operator.name" . }}"
{{- end }}

View File

@@ -0,0 +1,106 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "jaeger-operator.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
{{- with .Values.extraLabels }}
{{ . | toYaml | indent 4 }}
{{- end }}
spec:
replicas: 1
selector:
matchLabels:
{{ include "jaeger-operator.labels" . | indent 6 }}
template:
metadata:
name: {{ include "jaeger-operator.fullname" . }}
labels:
{{ include "jaeger-operator.labels" . | indent 8 }}
{{- with .Values.extraLabels }}
{{ . | toYaml | indent 8 }}
{{- end }}
spec:
{{- if .Values.serviceAccount.create }}
serviceAccountName: {{ include "jaeger-operator.serviceAccountName" . }}
{{- end }}
{{- with .Values.securityContext }}
securityContext:
{{ toYaml . | indent 8 }}
{{- end }}
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
{{- if and .Values.image.imagePullSecrets (not .Values.serviceAccount.create ) }}
imagePullSecrets:
{{- range .Values.image.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
{{- if .Values.hostNetwork }}
hostNetwork: {{ .Values.hostNetwork }}
{{- end }}
containers:
- name: {{ include "jaeger-operator.fullname" . }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.metricsPort }}
name: metrics
- containerPort: {{ .Values.webhooks.port }}
name: webhook-server
protocol: TCP
volumeMounts:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
args:
- start
- {{ printf "--metrics-port=%v" .Values.metricsPort }}
- {{ printf "--webhook-bind-port=%v" .Values.webhooks.port }}
env:
- name: WATCH_NAMESPACE
{{- if .Values.rbac.clusterRole }}
value: ""
{{- else }}
valueFrom:
fieldRef:
fieldPath: metadata.namespace
{{- end }}
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: OPERATOR_NAME
value: {{ include "jaeger-operator.fullname" . | quote }}
{{- if .Values.extraEnv }}
{{- toYaml .Values.extraEnv | nindent 12 }}
{{- end }}
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- with .Values.containerSecurityContext }}
securityContext:
{{- toYaml . | nindent 12 }}
{{- end }}
volumes:
- name: cert
secret:
defaultMode: 420
secretName: {{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}

View File

@@ -0,0 +1,9 @@
{{- if .Values.certs.issuer.create }}
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: {{ default "selfsigned-issuer" .Values.certs.issuer.name }}
namespace: {{ .Release.Namespace }}
spec:
selfSigned: {}
{{- end }}

View File

@@ -0,0 +1,11 @@
{{- if .Values.jaeger.create }}
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: {{ include "jaeger-operator.fullname" . }}-jaeger
namespace: {{ default .Release.Namespace .Values.jaeger.namespace }}
{{- with .Values.jaeger.spec }}
spec:
{{ toYaml . | indent 2}}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,57 @@
{{- if and (.Values.webhooks.mutatingWebhook.create) (.Values.webhooks.service.create) }}
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
annotations:
cert-manager.io/inject-ca-from: {{ default .Release.Namespace .Values.certs.certificate.namespace }}/{{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
name: jaeger-operator-mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1
clientConfig:
service:
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
namespace: {{ .Release.Namespace }}
path: /mutate-v1-deployment
failurePolicy: Ignore
name: deployment.sidecar-injector.jaegertracing.io
objectSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: NotIn
values:
- {{ include "jaeger-operator.name" . }}
rules:
- apiGroups:
- apps
apiVersions:
- v1
operations:
- CREATE
- UPDATE
resources:
- deployments
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
namespace: {{ .Release.Namespace }}
path: /mutate-jaegertracing-io-v1-jaeger
failurePolicy: Fail
name: mjaeger.kb.io
rules:
- apiGroups:
- jaegertracing.io
apiVersions:
- v1
operations:
- CREATE
- UPDATE
resources:
- jaegers
sideEffects: None
{{- end }}

View File

@@ -0,0 +1,36 @@
{{- if and .Values.rbac.create .Values.rbac.pspEnabled }}
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: {{ include "jaeger-operator.fullname" . }}-operator-psp
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
spec:
privileged: false
allowPrivilegeEscalation: false
volumes:
- 'configMap'
- 'emptyDir'
- 'projected'
- 'secret'
- 'downwardAPI'
- 'persistentVolumeClaim'
hostNetwork: false
hostIPC: false
hostPID: false
runAsUser:
rule: 'MustRunAsNonRoot'
seLinux:
rule: 'RunAsAny'
supplementalGroups:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
fsGroup:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
readOnlyRootFilesystem: false
{{- end }}

View File

@@ -0,0 +1,17 @@
{{- if .Values.rbac.create }}
kind: {{ if .Values.rbac.clusterRole }}Cluster{{ end }}RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "jaeger-operator.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
subjects:
- kind: ServiceAccount
namespace: {{ .Release.Namespace }}
name: {{ include "jaeger-operator.serviceAccountName" . }}
roleRef:
kind: {{ if .Values.rbac.clusterRole }}Cluster{{ end }}Role
name: {{ include "jaeger-operator.fullname" . }}
apiGroup: rbac.authorization.k8s.io
{{- end }}

View File

@@ -0,0 +1,267 @@
{{- if .Values.rbac.create }}
kind: {{ if .Values.rbac.clusterRole }}Cluster{{ end }}Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "jaeger-operator.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
rules:
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- apps
resources:
- deployments
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- apps
resources:
- deployments/status
verbs:
- get
- patch
- update
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- batch
resources:
- cronjobs
- jobs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- console.openshift.io
resources:
- consolelinks
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- create
- get
- list
- update
- apiGroups:
- ""
resources:
- configmaps
- persistentvolumeclaims
- pods
- secrets
- serviceaccounts
- services
- services/finalizers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- namespaces
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- namespaces/status
verbs:
- get
- patch
- update
- apiGroups:
- extensions
resources:
- ingresses
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- jaegertracing.io
resources:
- jaegers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- jaegertracing.io
resources:
- jaegers/finalizers
verbs:
- update
- apiGroups:
- jaegertracing.io
resources:
- jaegers/status
verbs:
- get
- patch
- update
- apiGroups:
- kafka.strimzi.io
resources:
- kafkas
- kafkausers
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- logging.openshift.io
resources:
- elasticsearch
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- logging.openshift.io
resources:
- elasticsearches
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- route.openshift.io
resources:
- routes
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
{{- if .Values.rbac.pspEnabled }}
- apiGroups: ['policy']
resources: ['podsecuritypolicies']
verbs: ['use']
resourceNames:
- {{ include "jaeger-operator.fullname" . }}-operator-psp
{{- end }}
{{- end }}

View File

@@ -0,0 +1,19 @@
{{- if .Values.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "jaeger-operator.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
{{- if .Values.serviceAccount.annotations }}
annotations:
{{ toYaml .Values.serviceAccount.annotations | indent 4 }}
{{- end }}
{{- if .Values.image.imagePullSecrets }}
imagePullSecrets:
{{- range .Values.image.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,48 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "jaeger-operator.fullname" . }}-metrics
namespace: {{ .Release.Namespace }}
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
{{- with .Values.serviceExtraLabels }}
{{ . | toYaml | indent 4 }}
{{- end }}
{{- if .Values.service.annotations }}
annotations:
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
spec:
ports:
- name: metrics
port: {{ .Values.metricsPort }}
protocol: TCP
targetPort: {{ .Values.metricsPort }}
{{- if and (eq .Values.service.type "NodePort") (.Values.service.nodePort) }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}
selector:
app.kubernetes.io/name: {{ include "jaeger-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
type: {{ .Values.service.type }}
---
{{- if .Values.webhooks.service.create }}
apiVersion: v1
kind: Service
metadata:
labels:
{{ include "jaeger-operator.labels" . | indent 4 }}
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
namespace: {{ .Release.Namespace }}
{{- if .Values.webhooks.service.annotations }}
annotations:
{{ toYaml .Values.webhooks.service.annotations | indent 4 }}
{{- end }}
spec:
ports:
- port: 443
protocol: TCP
targetPort: {{ .Values.webhooks.port }}
selector:
{{ include "jaeger-operator.labels" . | indent 4 }}
{{- end }}

View File

@@ -0,0 +1,29 @@
{{- if and (.Values.webhooks.validatingWebhook.create) (.Values.webhooks.service.create) }}
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
annotations:
cert-manager.io/inject-ca-from: {{ default .Release.Namespace .Values.certs.certificate.namespace }}/{{ default "jaeger-operator-service-cert" .Values.certs.certificate.secretName }}
name: jaeger-operator-validating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1
clientConfig:
service:
name: {{ default "jaeger-operator-webhook-service" .Values.webhooks.service.name }}
namespace: {{ .Release.Namespace }}
path: /validate-jaegertracing-io-v1-jaeger
failurePolicy: Fail
name: vjaeger.kb.io
rules:
- apiGroups:
- jaegertracing.io
apiVersions:
- v1
operations:
- CREATE
- UPDATE
resources:
- jaegers
sideEffects: None
{{- end }}

View File

@@ -0,0 +1,101 @@
# Default values for jaeger-operator.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
image:
repository: jaegertracing/jaeger-operator
tag: 1.52.0
pullPolicy: IfNotPresent
imagePullSecrets: []
certs:
issuer:
create: true
name: ""
certificate:
create: true
namespace: ""
secretName: ""
# Specify the cert-manager issuer kind to use an existing cert-manager
# issuer; typically Issuer or ClusterIssuer
# This field will be ignored if issuer.create is true
issuerKind: Issuer
webhooks:
mutatingWebhook:
create: true
validatingWebhook:
create: true
port: 9443
service:
annotations: {}
create: true
name: ""
jaeger:
# Specifies whether Jaeger instance should be created
create: false
# namespace where Jaeger resource should be created default to .Release.Namespace
namespace:
spec: {}
rbac:
# Specifies whether RBAC resources should be created
create: true
pspEnabled: false
clusterRole: false
service:
type: ClusterIP
# Specify a specific node port when type is NodePort
# nodePort: 32500
# Annotations for service
annotations: {}
serviceAccount:
# Specifies whether a ServiceAccount should be created
create: true
# The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template
name:
# Annotations for serviceAccount
annotations: {}
# Specifies extra environment variables passed to the operator:
extraEnv: []
# Specifies log-level for the operator:
# - name: LOG-LEVEL
# value: debug
serviceExtraLabels: {}
# Specifies extra labels for the operator-metric service:
# foo: bar
extraLabels: {}
# Specifies extra labels for the operator deployment:
# foo: bar
resources: {}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
securityContext: {}
containerSecurityContext: {}
priorityClassName:
# Specifies weather host network should be used
hostNetwork: false
metricsPort: 8383