140 lines
6.4 KiB
Markdown
140 lines
6.4 KiB
Markdown
|
# 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 |
|
||
|
| :---------------------- | :---------------------------------------------------------------------------------------------------------- | :------------------------------ |
|
||
|
| `extraLabels` | Additional labels to jaeger-operator deployment | `{}`
|
||
|
| `image.repository` | Controller container image repository | `jaegertracing/jaeger-operator` |
|
||
|
| `image.tag` | Controller container image tag | `1.39.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 | `{}` |
|
||
|
| `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
|
||
|
```
|