jaeger-operator is a Kubernetes operator.
$ helm install jaegertracing/jaeger-operator
This chart bootstraps a jaeger-operator deployment on a Kubernetes cluster using the Helm package manager.
- Kubernetes 1.19+
- Helm 3
- cert-manager 1.6.1+ installed, or certificate for webhook service in a secret
See the compatibility matrix here.
Add the Jaeger Tracing Helm repository:
$ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
To install the chart with the release name my-release
in observability
namespace:
$ helm install my-release jaegertracing/jaeger-operator -n observability
The command deploys jaeger-operator on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip: List all releases using
helm list
To uninstall/delete the my-release
deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
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.57.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 |
extraArgs |
Additional command line arguments arguments passed to the operator | {} |
extraEnv |
Additional environment variables passed to the operator. For example: name: LOG-LEVEL value: debug | [] |
replicaCount |
Desired number of operator pods | 1 |
resources |
K8s pod resources | None |
nodeSelector |
Node labels for pod assignment | {} |
tolerations |
Toleration labels for pod assignment | [] |
topologySpreadConstraints |
Topology Spread Constraints 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 section.
You can also specify any non-array parameter using the --set key=value[,key=value]
argument to helm install
. For example,
$ 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,
$ helm install jaegertracing/jaeger-operator --name my-release \
--skip-crds
The simplest possible way to install is by creating a YAML file like the following:
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: simplest
The YAML file can then be used with kubectl
:
$ kubectl apply -f simplest.yaml
To do that you need to have an ElasticSearch installed in your Kubernetes cluster or install one using the Helm Chart available for that.
After that just deploy the following manifest:
# 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
:
$ kubectl apply -f simple-prod.yaml