Skip to content

Commit c6b56b4

Browse files
committed
chore(chart-deps): update opentelemetry-operator to version 0.88.1
1 parent 41d316a commit c6b56b4

File tree

61 files changed

+54844
-9205
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+54844
-9205
lines changed

chart/chart-index/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ dependencies:
6565
repository: https://charts.bitnami.com/bitnami
6666
- name: opentelemetry-operator
6767
alias: otel-operator
68-
version: 0.33.0
68+
version: 0.88.1
6969
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
7070
- name: prometheus-blackbox-exporter
7171
version: 7.10.0

charts/otel-operator/CONTRIBUTING.md

+18-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,22 @@
44

55
1. Increase the minor version of the chart by one and set the patch version to zero.
66
2. Update the chart's `appVersion` to match the new operator version.
7-
3. In the values.yaml, update `manager.image.tag` to match the new operator release.
8-
4. In the values.yaml, update `manager.collectorImage.tag` to match the version of the collector managed by default by the operator.
7+
3. In the values.yaml, update `manager.collectorImage.tag` to match the version of the collector managed by default by the operator.
8+
4. Run `make update-operator-crds` to update the CRDs in this chart to match the operator's.
99
5. Run `make generate-examples CHARTS=opentelemetry-operator`.
10-
6. Run `make update-operator-crds` to update the CRDs in this chart to match the operator's.
11-
7. Review the [Operator release notes](https://github.com/open-telemetry/opentelemetry-operator/releases). If any changes affect the helm chart, adjust the helm chart accordingly.
10+
6. Review the [Operator release notes](https://github.com/open-telemetry/opentelemetry-operator/releases). If any changes affect the helm chart, adjust the helm chart accordingly.
11+
12+
### sed on Mac OS X
13+
14+
If you're performing the above steps on Mac OS X, you may need to install `gnu-sed` via Homebrew
15+
as the pre-installed `sed` version has some incompatible differences:
16+
17+
```sh
18+
brew install gnu-sed
19+
```
20+
21+
Then, you can use it for make instead of the system's `sed`:
22+
23+
```sh
24+
PATH="$(brew --prefix)/opt/gnu-sed/libexec/gnubin:$PATH" make ...
25+
```

charts/otel-operator/Chart.yaml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
apiVersion: v2
2-
appVersion: 0.80.0
2+
appVersion: 0.124.0
33
description: OpenTelemetry Operator Helm chart for Kubernetes
44
home: https://opentelemetry.io/
55
icon: https://raw.githubusercontent.com/cncf/artwork/a718fa97fffec1b9fd14147682e9e3ac0c8817cb/projects/opentelemetry/icon/color/opentelemetry-icon-color.png
66
maintainers:
77
- name: Allex1
88
- name: dmitryax
9+
- name: jaronoff97
910
- name: TylerHelmuth
1011
name: opentelemetry-operator
1112
sources:
1213
- https://github.com/open-telemetry/opentelemetry-operator
1314
type: application
14-
version: 0.33.0
15+
version: 0.88.1

charts/otel-operator/README.md

+75-38
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
# OpenTelemetry Operator Helm Chart
22

3-
The Helm chart installs [OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator) in Kubernetes cluster.
3+
> [!WARNING]
4+
> Version 0.58.0 of this Chart includes a new version of the `OpenTelemetryCollector` CRD. See [this document][v1beta1_migration] for upgrade instructions for the new Operator CRD. Please make sure you also follow the [helm upgrade instructions](./UPGRADING.md#0560-to-0570) for helm chart 0.57.0.
5+
6+
The Helm chart installs [OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator) in a Kubernetes cluster.
47
The OpenTelemetry Operator is an implementation of a [Kubernetes Operator](https://www.openshift.com/learn/topics/operators).
8+
The Operator's Docker image supports **only Linux** and cannot run on Windows nodes.
59
At this point, it has [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector) as the only managed component.
610

711
## Prerequisites
@@ -14,14 +18,14 @@ At this point, it has [OpenTelemetry Collector](https://github.com/open-telemetr
1418
In Kubernetes, in order for the API server to communicate with the webhook component, the webhook requires a TLS
1519
certificate that the API server is configured to trust. There are a few different ways you can use to generate/configure the required TLS certificate.
1620

17-
- The easiest and default method is to install the [cert-manager](https://cert-manager.io/docs/) and set `admissionWebhooks.certManager.create` to `true`.
21+
- The easiest and default method is to install the [cert-manager](https://cert-manager.io/docs/) and set `admissionWebhooks.certManager.enabled` to `true`.
1822
In this way, cert-manager will generate a self-signed certificate. _See [cert-manager installation](https://cert-manager.io/docs/installation/kubernetes/) for more details._
1923
- You can provide your own Issuer by configuring the `admissionWebhooks.certManager.issuerRef` value. You will need
2024
to specify the `kind` (Issuer or ClusterIssuer) and the `name`. Note that this method also requires the installation of cert-manager.
21-
- You can use an automatically generated self-signed certificate by setting `admissionWebhooks.certManager.enabled` to `false` and `admissionWebhooks.autoGenerateCert` to `true`. Helm will create a self-signd cert and a secret for you.
22-
- You can use your own generated self-signed certificate by setting both `admissionWebhooks.certManager.enabled` and `admissionWebhooks.autoGenerateCert` to `false`. You should provide the necessary values to `admissionWebhooks.cert_file`, `admissionWebhooks.key_file`, and `admissionWebhooks.ca_file`.
25+
- You can use an automatically generated self-signed certificate by setting `admissionWebhooks.certManager.enabled` to `false` and `admissionWebhooks.autoGenerateCert.enabled` to `true`. Helm will create a self-signed cert and a secret for you.
26+
- You can use your own generated self-signed certificate by setting both `admissionWebhooks.certManager.enabled` and `admissionWebhooks.autoGenerateCert.enabled` to `false`. You should provide the necessary values to `admissionWebhooks.certFile`, `admissionWebhooks.keyFile`, and `admissionWebhooks.caFile`.
2327
- You can sideload custom webhooks and certificate by disabling `.Values.admissionWebhooks.create` and `admissionWebhooks.certManager.enabled` while setting your custom cert secret name in `admissionWebhooks.secretName`
24-
- You can disable webhooks alltogether by disabling `.Values.admissionWebhooks.create` and setting env var to `ENABLE_WEBHOOKS: "false"`
28+
- You can disable webhooks altogether by disabling `.Values.admissionWebhooks.create` and setting env var to `ENABLE_WEBHOOKS: "false"`
2529

2630
## Add Repository
2731

@@ -34,16 +38,29 @@ _See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation
3438

3539
## Install Chart
3640

41+
> [!NOTE]
42+
> This Chart uses templated CRDs, and therefore does not support `--skip-crds`. Use `crds.create=false` instead if you do not want the chart to install the OpenTelemetry Operator's CRDs.
43+
3744
```console
38-
$ helm install \
39-
opentelemetry-operator open-telemetry/opentelemetry-operator
45+
$ helm install opentelemetry-operator open-telemetry/opentelemetry-operator \
46+
--set "manager.collectorImage.repository=otel/opentelemetry-collector-k8s"
4047
```
4148

4249
If you created a custom namespace, like in the TLS Certificate Requirement section above, you will need to specify the namespace with the `--namespace` helm option:
4350

4451
```console
45-
$ helm install --namespace opentelemetry-operator-system \
46-
opentelemetry-operator open-telemetry/opentelemetry-operator
52+
$ helm install opentelemetry-operator open-telemetry/opentelemetry-operator \
53+
--namespace opentelemetry-operator-system \
54+
--set "manager.collectorImage.repository=otel/opentelemetry-collector-k8s"
55+
```
56+
57+
If you wish for helm to create an automatically generated self-signed certificate, make sure to set the appropriate values when installing the chart:
58+
59+
```console
60+
$ helm install opentelemetry-operator open-telemetry/opentelemetry-operator \
61+
--set "manager.collectorImage.repository=otel/opentelemetry-collector-k8s" \
62+
--set admissionWebhooks.certManager.enabled=false \
63+
--set admissionWebhooks.autoGenerateCert.enabled=true
4764
```
4865

4966
_See [helm install](https://helm.sh/docs/helm/helm_install/) for command documentation._
@@ -64,6 +81,9 @@ The OpenTelemetry Collector CRD created by this chart won't be removed by defaul
6481

6582
```console
6683
$ kubectl delete crd opentelemetrycollectors.opentelemetry.io
84+
$ kubectl delete crd opampbridges.opentelemetry.io
85+
$ kubectl delete crd instrumentations.opentelemetry.io
86+
$ kubectl delete crd targetallocators.opentelemetry.io
6787
```
6888

6989
## Upgrade Chart
@@ -88,6 +108,20 @@ The following command will show all the configurable options with detailed comme
88108
$ helm show values open-telemetry/opentelemetry-operator
89109
```
90110

111+
When using this chart as a subchart, you may want to unset certain default values. Since Helm v3.13 values handling is improved and null can now consistently be used to remove values (e.g. to remove the default CPU limits).
112+
113+
### Role-based Access Control (RBAC) Configuration
114+
115+
The OpenTelemetry Collector requires specific RBAC permissions to function correctly, especially when using the `k8sattributesprocessor`. Depending on your deployment's scope, you may need to configure Cluster-scoped or Namespace-scoped RBAC permissions.
116+
117+
- **Cluster-scoped RBAC**: Necessary if the collector is to receive telemetry from across multiple namespaces. This setup requires `get`, `watch`, and `list` permissions on `pods`, `namespaces`, and `nodes`, plus `replicasets` if using deployment-related attributes.
118+
119+
- **Namespace-scoped RBAC**: Suitable for collecting telemetry within a specific namespace. This requires setting up a `Role` and `RoleBinding` to grant access to `pods` and `replicasets` within the target namespace. This setup limits the collector's access to resources within the specified namespace only.
120+
121+
**Important**: The `manager.createRbacPermissions` flag in the Helm chart values should be set to `false` if you are manually configuring RBAC permissions for the collector. Manual configuration allows for more granular control over the permissions granted to the OpenTelemetry Collector, ensuring it has exactly the access it needs based on your specific deployment requirements. Conversely, setting `manager.createRbacPermissions` to `true` will allow the operator to automatically configure RBAC for your collectors.
122+
123+
For detailed instructions and examples on configuring RBAC permissions, please refer to the [official documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/k8sattributesprocessor/README.md).
124+
91125
## Install OpenTelemetry Collector
92126

93127
_See [OpenTelemetry website](https://opentelemetry.io/docs/collector/) for more details about the Collector_
@@ -106,68 +140,69 @@ to an early version if anything unexpected happens, pause the Collector, etc. In
106140
instance just as an application.
107141

108142
The following example configuration deploys the Collector as Deployment resource. The receiver is Jaeger receiver and
109-
the exporter is logging exporter.
143+
the exporter is [debug exporter](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/debugexporter).
110144

111145
```console
112146
$ kubectl apply -f - <<EOF
113-
apiVersion: opentelemetry.io/v1alpha1
147+
apiVersion: opentelemetry.io/v1beta1
114148
kind: OpenTelemetryCollector
115149
metadata:
116150
name: my-collector
117151
spec:
118152
mode: deployment # This configuration is omittable.
119-
config: |
153+
config:
120154
receivers:
121155
jaeger:
122156
protocols:
123-
grpc:
124-
processors:
157+
grpc: {}
158+
processors: {}
125159

126160
exporters:
127-
logging:
161+
debug: {}
128162

129163
service:
130164
pipelines:
131165
traces:
132166
receivers: [jaeger]
133167
processors: []
134-
exporters: [logging]
168+
exporters: [debug]
135169
EOF
136170
```
137171

138172
### DaemonSet Mode
139173

140-
DaemonSet should satisfy your needs if you want the Collector run as an agent in your Kubernetes nodes.
174+
DaemonSet should satisfy your needs if you want the Collector to run as an agent on your Kubernetes nodes.
141175
In this case, every Kubernetes node will have its own Collector copy which would monitor the pods in it.
142176

143177
The following example configuration deploys the Collector as DaemonSet resource. The receiver is Jaeger receiver and
144-
the exporter is logging exporter.
178+
the exporter is debug exporter.
145179

146180
```console
147181
$ kubectl apply -f - <<EOF
148-
apiVersion: opentelemetry.io/v1alpha1
182+
apiVersion: opentelemetry.io/v1beta1
149183
kind: OpenTelemetryCollector
150184
metadata:
151185
name: my-collector
152186
spec:
153187
mode: daemonset
154-
config: |
188+
hostNetwork: true
189+
config:
155190
receivers:
156191
jaeger:
157192
protocols:
158-
grpc:
159-
processors:
193+
grpc: {}
194+
processors: {}
160195

161196
exporters:
162-
logging:
163-
loglevel: debug
197+
debug:
198+
verbosity: detailed
164199

165200
service:
166201
pipelines:
167202
traces:
168203
receivers: [jaeger]
169204
processors: []
170-
exporters: [logging]
205+
exporters: [debug]
171206
EOF
172207
```
173208

@@ -181,33 +216,33 @@ There are basically three main advantages to deploy the Collector as the Statefu
181216
to attach the same sticky identity (e.g., volumes) to the new pod.
182217

183218
The following example configuration deploys the Collector as StatefulSet resource with three replicas. The receiver
184-
is Jaeger receiver and the exporter is logging exporter.
219+
is Jaeger receiver and the exporter is debug exporter.
185220

186221
```console
187222
$ kubectl apply -f - <<EOF
188-
apiVersion: opentelemetry.io/v1alpha1
223+
apiVersion: opentelemetry.io/v1beta1
189224
kind: OpenTelemetryCollector
190225
metadata:
191226
name: my-collector
192227
spec:
193228
mode: statefulset
194229
replicas: 3
195-
config: |
230+
config:
196231
receivers:
197232
jaeger:
198233
protocols:
199-
grpc:
200-
processors:
234+
grpc: {}
235+
processors: {}
201236

202237
exporters:
203-
logging:
238+
debug: {}
204239

205240
service:
206241
pipelines:
207242
traces:
208243
receivers: [jaeger]
209244
processors: []
210-
exporters: [logging]
245+
exporters: [debug]
211246
EOF
212247
```
213248

@@ -223,28 +258,28 @@ _See the [OpenTelemetry Operator github repository](https://github.com/open-tele
223258

224259
```console
225260
$ kubectl apply -f - <<EOF
226-
apiVersion: opentelemetry.io/v1alpha1
261+
apiVersion: opentelemetry.io/v1beta1
227262
kind: OpenTelemetryCollector
228263
metadata:
229264
name: sidecar-for-my-app
230265
spec:
231266
mode: sidecar
232-
config: |
267+
config:
233268
receivers:
234269
jaeger:
235270
protocols:
236-
thrift_compact:
237-
processors:
271+
thrift_compact: {}
272+
processors: {}
238273

239274
exporters:
240-
logging:
275+
debug: {}
241276

242277
service:
243278
pipelines:
244279
traces:
245280
receivers: [jaeger]
246281
processors: []
247-
exporters: [logging]
282+
exporters: [debug]
248283
EOF
249284

250285
$ kubectl apply -f - <<EOF
@@ -263,3 +298,5 @@ spec:
263298
protocol: TCP
264299
EOF
265300
```
301+
302+
[v1beta1_migration]: https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/crd-changelog.md#opentelemetrycollectoropentelemetryiov1beta1

0 commit comments

Comments
 (0)