Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit 3db3526

Browse files
Draft
1 parent b922051 commit 3db3526

File tree

6 files changed

+184
-109
lines changed

6 files changed

+184
-109
lines changed

gdi/opentelemetry/common-config/collector-common-config-auth.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ You can configure two types of authentication for the Collector:
1515
* Client type authentication takes place in outgoing HTTP/gRPC requests and is typically used by :ref:`exporters <otel-components-exporters>`. Client type authenticators include:
1616

1717
* ASAP Client Authentication extension
18-
* :ref:`Basic Auth Extension <basic-auth-extension>`
18+
* :ref:`Basic Auth extension <basic-auth-extension>`
1919
* Bearer Token extension
2020
* :ref:`oauth2client-extension`
2121
* Sigv4 extension
2222

23-
.. note:: You can add new authenticators by creating a new extension with the appropriate interface, ``configauth.ServerAuthenticator`` or ``configauth.ClientAuthenticator``.
23+
.. note:: For more details see :new-page:`Auth Configuration Settings https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/configauth` in OTel's GitHub repo.
2424

2525
Example
2626
=============================================================================================

gdi/opentelemetry/common-config/collector-common-config-grcp.rst

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,39 @@ Configure gRCP
66

77
gRPC exposes a variety of settings you can adjust within individual receivers or exporters of the Collector.
88

9-
For more details on the available settings refer to :new-page:`gRPC Configuration Settings <https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/configgrpc>` in OTel's GitHub repo and :new-page:`Golang's gRCP documentation <https://pkg.go.dev/google.golang.org/grpc>`.
10-
119
.. note::
1210

1311
To configure transport, see :ref:`collector-common-config-net`.
1412

1513
Configure gRCP clients
1614
=============================================================================================
1715

18-
.. note:: For more details see :new-page:`gRPC Configuration Settings https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/configgrpc` in OTel's GitHub repo.
19-
2016
To configure gRCP clients in :ref:`exporters <otel-components-exporters>` use these settings:
2117

2218
* ``auth``. See :ref:`collector-common-config-auth`
19+
2320
* ``balancer_name``
21+
2422
* Defaults: ``pick_first`` before version 0.103.0, ``round_robin`` for v0.103.0 or higher
23+
2524
* Learn more at gRCP's :new-page:`Load Balancing README https://github.com/grpc/grpc-go/blob/master/examples/features/load_balancing/README.md`.
25+
2626
* ``compression``.
27+
2728
* Compression type valid values are ``gzip``, ``snappy``, ``zstd``, and ``none``
29+
2830
* ``endpoint``
31+
2932
* For valid syntax see :new-page:`gRPC Name Resolution <https://github.com/grpc/grpc/blob/master/doc/naming.md>`.
33+
3034
* ``headers``
35+
3136
* ``keepalive``
37+
3238
* ``read_buffer_size``
39+
3340
* ``tls``. See :ref:`collector-common-config-tls`.
41+
3442
* ``write_buffer_size``
3543

3644
For example:
@@ -50,21 +58,29 @@ For example:
5058
test1: "value1"
5159
"test 2": "value 2"
5260
53-
Server configuration
61+
Configure gRCP servers
5462
=============================================================================================
5563

56-
.. note:: For more details see :new-page:`gRPC Configuration Settings https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/configgrpc` in OTel's GitHub repo.
57-
58-
To configure servers in :ref:`collector receivers <otel-components-receivers>` use these settings:
64+
To configure gRCP servers in :ref:`collector receivers <otel-components-receivers>` use these settings:
5965

6066
* ``auth``. See :ref:`collector-common-config-auth`
67+
6168
* ``keepalive``
69+
6270
* ``max_concurrent_streams``
71+
6372
* ``max_recv_msg_size_mib``
73+
6474
* ``read_buffer_size``
75+
6576
* ``tls``. See :ref:`collector-common-config-tls`
66-
* ``write_buffer_size``
6777

78+
* ``write_buffer_size``
6879

80+
Learn more
81+
=============================================================================================
6982

83+
For more details on the available settings refer to:
7084

85+
* :new-page:`gRPC Configuration Settings <https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/configgrpc>` in OTel's GitHub repo
86+
* :new-page:`Golang's gRCP documentation <https://pkg.go.dev/google.golang.org/grpc>`

gdi/opentelemetry/common-config/collector-common-config-tls.rst

Lines changed: 152 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -4,114 +4,178 @@
44
Configure TLS
55
*********************************************************************************
66

7-
:ref:`Collector receivers <otel-components-receivers>` leverage network configuration to set connection and transport information.
7+
Crypto TLS exposes a variety of settings you can adjust within individual receivers or exporters of the Collector.
88

9-
Crypto TLS exposes a variety of settings. Several of these settings are available for configuration within individual receivers or exporters.
9+
.. note:: Mutual TLS (mTLS) is also supported.
1010

11-
Note that mutual TLS (mTLS) is also supported.
11+
Configure TLS / mTLS
12+
=============================================================================================
1213

13-
TLS / mTLS Configuration
14-
By default, TLS is enabled:
14+
By default, TLS is enabled:
1515

16-
insecure (default = false): whether to enable client transport security for the exporter's HTTPs or gRPC connection. See grpc.WithInsecure() for gRPC.
17-
As a result, the following parameters are also required:
16+
#. See the required and optional settings available
17+
#. To complete the TLS/mTLS configuration, proceed to :ref:`collector-common-config-tls-client` or :ref:`collector-common-config-tls-server`
1818

19-
cert_file: Path to the TLS cert to use for TLS required connections. Should only be used if insecure is set to false.
19+
Required settings
20+
---------------------------------
2021

21-
cert_pem: Alternative to cert_file. Provide the certificate contents as a string instead of a filepath.
22-
key_file: Path to the TLS key to use for TLS required connections. Should only be used if insecure is set to false.
22+
The following settings are required:
2323

24-
key_pem: Alternative to key_file. Provide the key contents as a string instead of a filepath.
25-
A certificate authority may also need to be defined:
24+
* ``insecure``. ``false`` by default. Whether to enable client transport security for the exporter's HTTPs or gRPC connection.
2625

27-
ca_file: Path to the CA cert. For a client this verifies the server certificate. For a server this verifies client certificates. If empty uses system root CA. Should only be used if insecure is set to false.
28-
ca_pem: Alternative to ca_file. Provide the CA cert contents as a string instead of a filepath.
29-
You can also combine defining a certificate authority with the system certificate authorities.
26+
* For gRCP, see :new-page:`Golang's grpc.WithInsecure() <https://pkg.go.dev/google.golang.org/grpc#WithInsecure>`.
3027

31-
include_system_ca_certs_pool (default = false): whether to load the system certificate authorities pool alongside the certificate authority.
32-
Additionally you can configure TLS to be enabled but skip verifying the server's certificate chain. This cannot be combined with insecure since insecure won't use TLS at all.
28+
* ``cert_file``. Use only if ``insecure`` is set to ``false``. Path to the TLS cert to use for TLS required connections.
3329

34-
insecure_skip_verify (default = false): whether to skip verifying the certificate or not.
35-
Minimum and maximum TLS version can be set:
30+
* ``cert_pem``. Alternative to ``cert_file``. Provide the certificate contents as a string instead of a filepath.
3631

37-
IMPORTANT: TLS 1.0 and 1.1 are deprecated due to known vulnerabilities and should be avoided.
32+
* ``key_file``. Use only if ``insecure`` is set to ``false``. Path to the TLS key to use for TLS required connections.
3833

39-
min_version (default = "1.2"): Minimum acceptable TLS version.
34+
* ``key_pem``: Alternative to ``key_file``. Provide the key contents as a string instead of a filepath.
4035

41-
options: ["1.0", "1.1", "1.2", "1.3"]
42-
max_version (default = "" handled by crypto/tls - currently TLS 1.3): Maximum acceptable TLS version.
36+
Additional settings
37+
---------------------------------
4338

44-
options: ["1.0", "1.1", "1.2", "1.3"]
45-
Explicit cipher suites can be set. If left blank, a safe default list is used. See https://go.dev/src/crypto/tls/cipher_suites.go for a list of supported cipher suites.
39+
Certificate authority
40+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4641

47-
cipher_suites: (default = []): List of cipher suites to use.
48-
Example:
42+
To define a certificate authority use:
43+
44+
* ``ca_file``. Use only if ``insecure`` is set to ``false``. Path to the CA cert.
45+
46+
* For a client this verifies the server certificate.
47+
48+
* For a server this verifies client certificates.
49+
50+
* If empty it uses the system root CA.
51+
52+
* ``ca_pem``. Alternative to ``ca_file``. Provide the CA cert contents as a string instead of a filepath.
53+
54+
To combine defining a certificate authority with the system certificate authorities use:
55+
56+
* ``include_system_ca_certs_pool``. ``false`` by default. Whether to load the system certificate authorities pool alongside the certificate authority.
57+
58+
Additionally you can configure TLS to be enabled but skip verifying the server's certificate chain. This cannot be combined with ``insecure`` since ``insecure`` won't use TLS at all.
59+
60+
* ``insecure_skip_verify``. ``false`` by default. Whether to skip verifying the certificate or not.
61+
62+
TLS version
63+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64+
65+
.. caution:: Avoid using TLS 1.0 and 1.1. Both are deprecated due to known vulnerabilities.
66+
67+
You can set minimum and maximum TLS versions:
68+
69+
* ``min_version``. "1.2" by default. Minimum acceptable TLS version.
70+
71+
* Options: "1.0", "1.1", "1.2", "1.3"
72+
73+
* ``max_version``. "" by default. Maximum acceptable TLS version.
74+
75+
* Options: "1.0", "1.1", "1.2", "1.3"
76+
77+
Cipher suites
78+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
79+
80+
You can set explicit cipher suites using ``cipher_suites``.
81+
82+
* ``[]`` by default. If left blank, a safe default list is used.
83+
* See the :new-page:`Cipher suites source files <https://go.dev/src/crypto/tls/cipher_suites.go>` for a list of supported cipher suites.
84+
85+
For example:
86+
87+
.. code-block:: yaml
4988
5089
cipher_suites:
5190
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
5291
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
5392
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
54-
Additionally certificates may be reloaded by setting the below configuration.
55-
56-
reload_interval (optional) : ReloadInterval specifies the duration after which the certificate will be reloaded. If not set, it will never be reloaded. Accepts a duration string, valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
57-
How TLS/mTLS is configured depends on whether configuring the client or server. See below for examples.
58-
59-
Client Configuration
60-
Exporters leverage client configuration. The TLS configuration parameters are defined under tls, like server configuration.
61-
62-
Beyond TLS configuration, the following setting can optionally be configured:
63-
64-
server_name_override: If set to a non-empty string, it will override the virtual host name of authority (e.g. :authority header field) in requests (typically used for testing).
65-
Example:
66-
67-
exporters:
68-
otlp:
69-
endpoint: myserver.local:55690
70-
tls:
71-
insecure: false
72-
ca_file: server.crt
73-
cert_file: client.crt
74-
key_file: client.key
75-
min_version: "1.1"
76-
max_version: "1.2"
77-
otlp/insecure:
78-
endpoint: myserver.local:55690
79-
tls:
80-
insecure: true
81-
otlp/secure_no_verify:
82-
endpoint: myserver.local:55690
83-
tls:
84-
insecure: false
85-
insecure_skip_verify: true
86-
Server Configuration
87-
Receivers leverage server configuration.
88-
89-
Beyond TLS configuration, the following setting can optionally be configured (required for mTLS):
90-
91-
client_ca_file: Path to the TLS cert to use by the server to verify a client certificate. (optional) This sets the ClientCAs and ClientAuth to RequireAndVerifyClientCert in the TLSConfig. Please refer to https://godoc.org/crypto/tls#Config for more information.
92-
client_ca_file_reload (default = false): Reload the ClientCAs file when it is modified.
93-
Example:
94-
95-
receivers:
96-
otlp:
97-
protocols:
98-
grpc:
99-
endpoint: mysite.local:55690
100-
tls:
101-
cert_file: server.crt
102-
key_file: server.key
103-
otlp/mtls:
104-
protocols:
105-
grpc:
106-
endpoint: mysite.local:55690
107-
tls:
108-
client_ca_file: client.pem
109-
cert_file: server.crt
110-
key_file: server.key
111-
otlp/notls:
112-
protocols:
113-
grpc:
114-
endpoint: mysite.local:55690
11593
94+
Reload certificates
95+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
96+
97+
Optionally you can reload certificates with ``reload_interval``, which specifies the duration after which the certificate will be reloaded.
98+
99+
* If not set, certificates are never reloaded.
100+
* Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
101+
102+
.. _collector-common-config-tls-client:
103+
104+
Configure TLS clients
105+
=============================================================================================
106+
107+
To configure TLS clients in :ref:`exporters <otel-components-exporters>` use the settings in the previous section.
108+
109+
Optionally, you can also configure ``server_name_override``.
110+
111+
* If set to a non-empty string, it will override the virtual host name of the authority in requests.
112+
* This is typically used for testing.
113+
114+
For example:
115+
116+
.. code-block:: yaml
117+
118+
exporters:
119+
otlp:
120+
endpoint: myserver.local:55690
121+
tls:
122+
insecure: false
123+
ca_file: server.crt
124+
cert_file: client.crt
125+
key_file: client.key
126+
min_version: "1.1"
127+
max_version: "1.2"
128+
otlp/insecure:
129+
endpoint: myserver.local:55690
130+
tls:
131+
insecure: true
132+
otlp/secure_no_verify:
133+
endpoint: myserver.local:55690
134+
tls:
135+
insecure: false
136+
insecure_skip_verify: true
137+
138+
.. _collector-common-config-tls-server:
139+
140+
Configure TLS servers
141+
=============================================================================================
142+
143+
To configure TLS servers in :ref:`collector receivers <otel-components-receivers>` use the settings in the previous section.
144+
145+
Optionally, you can also configure:
146+
147+
* ``client_ca_file``. Path to the TLS cert to use by the server to verify a client certificate. This sets the ClientCAs and ClientAuth to ``RequireAndVerifyClientCert`` in the TLS configuration. Refer to :new-page:`https://godoc.org/crypto/tls#Config` for more information.
148+
149+
* ``client_ca_file_reload``. ``false`` by default. Reloads the ClientCAs file when it is modified.
150+
151+
.. note:: These are required for mTLS.
152+
153+
For example:
154+
155+
.. code-block:: yaml
156+
157+
receivers:
158+
otlp:
159+
protocols:
160+
grpc:
161+
endpoint: mysite.local:55690
162+
tls:
163+
cert_file: server.crt
164+
key_file: server.key
165+
otlp/mtls:
166+
protocols:
167+
grpc:
168+
endpoint: mysite.local:55690
169+
tls:
170+
client_ca_file: client.pem
171+
cert_file: server.crt
172+
key_file: server.key
173+
otlp/notls:
174+
protocols:
175+
grpc:
176+
endpoint: mysite.local:55690
116177
178+
Learn more
179+
=============================================================================================
117180

181+
For more details on the available settings refer to :new-page:`TLS Configuration Settings <https://github.com/open-telemetry/opentelemetry-collector/tree/main/config/configtls>` in OTel's GitHub repo.

gdi/opentelemetry/components/kubelet-stats-receiver.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ A kubelet runs on a Kubernetes node and has an API server to which the Kubelet s
5151

5252
There are two ways to authenticate, as indicated by the ``auth_type`` field:
5353

54-
- ``tls`` tells the receiver to use TLS for authentication and requires that the ``ca_file``, ``key_file``, and ``cert_file`` fields.
54+
- ``tls`` tells the receiver to use TLS for authentication and requires that the ``ca_file``, ``key_file``, and ``cert_file`` fields. See more at :ref:`collector-common-config-tls`.
5555
- ``ServiceAccount`` tells this receiver to use the default service account token to authenticate to the kubelet API.
5656

5757
Configure TLS authentication

gdi/opentelemetry/components/otlp-exporter.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ The following settings are required:
7575
* ``tls``. See :ref:`TLS Configuration Settings <otlp-exporter-settings>` in this document for the full set of available options.
7676

7777
* By default, ``tls: insecure`` is set to ``true``.
78-
* Mutual TLS (mTLS) is also supported. See more at :new-page:`TLS/mTLS configuration <https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configtls/README.md#tls--mtls-configuration>` in GitHub.
78+
* Mutual TLS (mTLS) is also supported.
79+
* See more at :ref:`collector-common-config-tls`.
7980

8081
Configuration examples
8182
--------------------------------
@@ -102,7 +103,6 @@ By default, gzip compression is enabled. To turn it off, use the following confi
102103

103104
.. code-block:: yaml
104105
105-
106106
exporters:
107107
otlp:
108108
...

0 commit comments

Comments
 (0)