# 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.43.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 ```