You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the `storage:type` is set to `elasticsearch` but there is no value set for `spec:storage:options:es:server-urls`, the {JaegerName} Operator uses the OpenShift Elasticsearch Operator to create an Elasticsearch cluster based on the configuration provided in the `storage` section of the custom resource file.
68
+
When you deploy a Jaeger custom resource, the {JaegerName} Operator uses the OpenShift Elasticsearch Operator to create an Elasticsearch cluster based on the configuration provided in the `storage` section of the custom resource file. The {JaegerName} Operator will provision Elasticsearch if the following configurations are set:
69
+
70
+
* `spec.storage:type` is set to `elasticsearch`
71
+
* `spec.storage.elasticsearch.doNotProvision` set to `false`
72
+
* `spec.storage.options.es.server-urls` is not defined, that is, there is no connection to an Elasticsearch instance that was not provisioned by the Red Hat Elasticsearch Operator.
73
+
74
+
When provisioning Elasticsearch, the {JaegerName} Operator sets the Elasticsearch custom resource `name` to the value of `spec.storage.elasticsearch.name` from the Jaeger custom resource. If you do not specify a value for `spec.storage.elasticsearch.name`, the Operator uses `elasticsearch`.
69
75
70
76
.Restrictions
71
77
@@ -84,6 +90,20 @@ The following configuration parameters are for a _self-provisioned_ Elasticsearc
84
90
[cols="l, a, a, a"]
85
91
|===
86
92
|Parameter |Description |Values |Default value
93
+
|elasticsearch:
94
+
properties:
95
+
doNotProvision:
96
+
|Use to specify whether or not an Elasticsearch instance should be provisioned by the {JaegerName} Operator.
97
+
|`true`/`false`
98
+
|`true`
99
+
100
+
|elasticsearch:
101
+
properties:
102
+
name:
103
+
|Name of the Elasticsearch instance. The {JaegerName} Operator uses the Elasticsearch instance specified in this parameter to connect to Elasticsearch.
104
+
|string
105
+
|`elasticsearch`
106
+
87
107
|elasticsearch:
88
108
nodeCount:
89
109
|Number of Elasticsearch nodes. For high availability use at least 3 nodes. Do not use 2 nodes as “split brain” problem can happen.
@@ -133,6 +153,12 @@ Minimum deployment = 16Gi*
133
153
|`ZeroRedundancy`(no replica shards), `SingleRedundancy`(one replica shard), `MultipleRedundancy`(each index is spread over half of the Data nodes), `FullRedundancy` (each index is fully replicated on every Data node in the cluster).
134
154
|
135
155
156
+
|elasticsearch:
157
+
useCertManagement:
158
+
|Use to specify whether or not {JaegerShortName} should use the certificate management feature of the Red Hat Elasticsearch Operator. This feature was added to {logging-title} 5.2 in {product-title} 4.7 and is the preferred setting for new Jaeger deployments.
159
+
|`true`/`false`
160
+
|`true`
161
+
136
162
|
137
163
3+|*Each Elasticsearch node can operate with a lower memory setting though this is NOT recommended for production deployments. For production use, you should have no less than 16Gi allocated to each pod by default, but preferably allocate as much as you can, up to 64Gi per pod.
== Connecting to an existing Elasticsearch instance
191
217
192
-
You can use an existing Elasticsearch cluster for storage with {DTShortName}, that is, an instance that was not auto-provisioned by the {JaegerName} Operator. You do this by specifying the URL of the existing cluster as the `spec:storage:options:es:server-urls` value in your configuration.
218
+
You can use an existing Elasticsearch cluster for storage with {DTShortName}. An existing Elasticsearch cluster, also known as an _external_ Elasticsearch instance, is an instance that was not installed by the {JaegerName} Operator or by the Red Hat Elasticsearch Operator.
219
+
220
+
When you deploy a Jaeger custom resource, the {JaegerName} Operator will not provision Elasticsearch if the following configurations are set:
221
+
222
+
* `spec.storage.elasticsearch.doNotProvision` set to `true`
223
+
* `spec.storage.options.es.server-urls` has a value
224
+
* `spec.storage.elasticsearch.name` has a value, or if the Elasticsearch instance name is `elasticsearch`.
225
+
226
+
The {JaegerName} Operator uses the Elasticsearch instance specified in `spec.storage.elasticsearch.name` to connect to Elasticsearch.
193
227
194
228
.Restrictions
195
229
@@ -615,3 +649,84 @@ spec:
615
649
<2> TLS configuration. In this case only CA certificate, but it can also contain es.tls.key and es.tls.cert when using mutual TLS.
616
650
<3> Secret which defines environment variables ES_PASSWORD and ES_USERNAME. Created by kubectl create secret generic tracing-secret --from-literal=ES_PASSWORD=changeme --from-literal=ES_USERNAME=elastic
617
651
<4> Volume mounts and volumes which are mounted into all storage components.
You can create and manage certificates using the Red Hat Elasticsearch Operator. Managing certificates using the Red Hat Elasticsearch Operator also lets you use a single Elasticsearch cluster with multiple Jaeger Collectors.
657
+
658
+
[IMPORTANT]
659
+
====
660
+
Managing certificates with Elasticsearch is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production.
661
+
662
+
These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview/.
663
+
====
664
+
665
+
Starting with version 2.4, the {JaegerName} Operator delegates certificate creation to the Red Hat Elasticsearch Operator by using the following annotations in the Elasticsearch custom resource:
Where the `<shared-es-node-name>` is the name of the Elasticsearch node. For example, if you create an Elasticsearch node named `custom-es`, your custom resource might look like the following example.
* The Elasticsearch node and the Jaeger instances must be deployed in the same namespace. For example, `tracing-system`.
710
+
711
+
You enable certificate management by setting `spec.storage.elasticsearch.useCertManagement` to `true` in the Jaeger custom resource.
712
+
713
+
.Example showing `useCertManagement`
714
+
[source,yaml]
715
+
----
716
+
apiVersion: jaegertracing.io/v1
717
+
kind: Jaeger
718
+
metadata:
719
+
name: jaeger-prod
720
+
spec:
721
+
strategy: production
722
+
storage:
723
+
type: elasticsearch
724
+
elasticsearch:
725
+
name: custom-es
726
+
doNotProvision: true
727
+
useCertManagement: true
728
+
----
729
+
730
+
The {JaegerName} Operator sets the Elasticsearch custom resource `name` to the value of `spec.storage.elasticsearch.name` from the Jaeger custom resource when provisioning Elasticsearch.
731
+
732
+
The certificates are provisioned by the Red Hat Elasticsearch Operator and the {JaegerName} Operator injects the certificates.
0 commit comments