Skip to content

Commit 1d9ddfc

Browse files
author
Israel Blancas
committed
Merge branch '3155-2' of github.com:iblancasa/opentelemetry-operator into 3155-2
2 parents d94ca86 + 75eb188 commit 1d9ddfc

37 files changed

+2459
-337
lines changed

.chloggen/1814-java-configmap.yaml

-19
This file was deleted.

.chloggen/3267-custom-instr-vol.yaml

-16
This file was deleted.

.chloggen/3305-persistentVolumeClaimRetentionPolicy.yaml

-16
This file was deleted.

.chloggen/3384-build-musl-python-autoinstrumentation.yaml

-16
This file was deleted.

.chloggen/httpd_safe_conf.yaml

-16
This file was deleted.

.chloggen/kubeletstats.yaml

-16
This file was deleted.

.chloggen/nodejs-ibm-platforms.yaml

-16
This file was deleted.

.chloggen/ta-no-root.yaml

-16
This file was deleted.

.github/workflows/e2e.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ jobs:
4949
- group: e2e-native-sidecar
5050
setup: "add-operator-arg OPERATOR_ARG='--feature-gates=operator.sidecarcontainers.native' prepare-e2e"
5151
kube-version: "1.29"
52+
- group: e2e-targetallocator
53+
setup: "enable-targetallocator-cr prepare-e2e"
5254
steps:
5355
- name: Check out code into the Go module directory
5456
uses: actions/checkout@v4

CHANGELOG.md

+33
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,39 @@
22

33
<!-- next version -->
44

5+
## 0.112.0
6+
7+
### 💡 Enhancements 💡
8+
9+
- `auto-instrumentation`: Support configuring Java auto-instrumentation when runtime configuration is provided from configmap or secret. (#1814)
10+
This change allows users to configure JAVA_TOOL_OPTIONS in config map or secret when the name of the variable is defined in the pod spec.
11+
The operator in this case set another JAVA_TOOL_OPTIONS that references the original value
12+
e.g. `JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS) -javaagent:/otel-auto-instrumentation-java/javaagent.jar`.
13+
14+
- `auto-instrumentation`: Adds VolumeClaimTemplate field to Instrumentation spec to enable user-definable ephemeral volumes for auto-instrumentation. (#3267)
15+
- `collector`: Add support for persistentVolumeClaimRetentionPolicy field (#3305)
16+
- `auto-instrumentation`: build musl based auto-instrumentation in Python docker image (#2264)
17+
- `auto-instrumentation`: An empty line should come before the addition of Include ...opentemetry_agent.conf, as a protection measure against cases of httpd.conf w/o a blank last line (#3401)
18+
- `collector`: Add automatic RBAC creation for the `kubeletstats` receiver. (#3155)
19+
- `auto-instrumentation`: Add Nodejs auto-instrumentation image builds for linux/s390x,linux/ppc64le. (#3322)
20+
21+
### 🧰 Bug fixes 🧰
22+
23+
- `target allocator`: Permission check fixed for the serviceaccount of the target allocator (#3380)
24+
- `target allocator`: Change docker image to run as non-root (#3378)
25+
26+
### Components
27+
28+
* [OpenTelemetry Collector - v0.112.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.112.0)
29+
* [OpenTelemetry Contrib - v0.112.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.112.0)
30+
* [Java auto-instrumentation - v1.33.5](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v1.33.5)
31+
* [.NET auto-instrumentation - v1.2.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.2.0)
32+
* [Node.JS - v0.53.0](https://github.com/open-telemetry/opentelemetry-js/releases/tag/experimental%2Fv0.53.0)
33+
* [Python - v0.48b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.48b0)
34+
* [Go - v0.15.0-alpha](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v0.15.0-alpha)
35+
* [ApacheHTTPD - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
36+
* [Nginx - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
37+
538
## 0.111.0
639

740
### 💡 Enhancements 💡

Makefile

+5
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,11 @@ add-rbac-permissions-to-operator: manifests kustomize
213213
cd config/rbac && $(KUSTOMIZE) edit add patch --kind ClusterRole --name manager-role --path extra-permissions-operator/rbac.yaml
214214
cd config/rbac && $(KUSTOMIZE) edit add patch --kind ClusterRole --name manager-role --path extra-permissions-operator/replicaset.yaml
215215

216+
.PHONY: enable-targetallocator-cr
217+
enable-targetallocator-cr:
218+
@$(MAKE) add-operator-arg OPERATOR_ARG='--feature-gates=operator.collector.targetallocatorcr'
219+
cd config/crd && $(KUSTOMIZE) edit add resource bases/opentelemetry.io_targetallocators.yaml
220+
216221
# Deploy controller in the current Kubernetes context, configured in ~/.kube/config
217222
.PHONY: deploy
218223
deploy: set-image-controller

README.md

+1-48
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ The operator manages:
1111

1212
## Documentation
1313

14+
- [Compatibility & Support docs](./docs/compatibility.md)
1415
- [API docs](./docs/api.md)
1516
- [Offical Telemetry Operator page](https://opentelemetry.io/docs/kubernetes/operator/)
1617

@@ -790,54 +791,6 @@ The priority for setting resource attributes is as follows (first found wins):
790791
This priority is applied for each resource attribute separately, so it is possible to set some attributes via
791792
annotations and others via labels.
792793

793-
## Compatibility matrix
794-
795-
### OpenTelemetry Operator vs. OpenTelemetry Collector
796-
797-
The OpenTelemetry Operator follows the same versioning as the operand (OpenTelemetry Collector) up to the minor part of the version. For example, the OpenTelemetry Operator v0.18.1 tracks OpenTelemetry Collector 0.18.0. The patch part of the version indicates the patch level of the operator itself, not that of OpenTelemetry Collector. Whenever a new patch version is released for OpenTelemetry Collector, we'll release a new patch version of the operator.
798-
799-
By default, the OpenTelemetry Operator ensures consistent versioning between itself and the managed `OpenTelemetryCollector` resources. That is, if the OpenTelemetry Operator is based on version `0.40.0`, it will create resources with an underlying OpenTelemetry Collector at version `0.40.0`.
800-
801-
When a custom `Spec.Image` is used with an `OpenTelemetryCollector` resource, the OpenTelemetry Operator will not manage this versioning and upgrading. In this scenario, it is best practice that the OpenTelemetry Operator version should match the underlying core version. Given a `OpenTelemetryCollector` resource with a `Spec.Image` configured to a custom image based on underlying OpenTelemetry Collector at version `0.40.0`, it is recommended that the OpenTelemetry Operator is kept at version `0.40.0`.
802-
803-
### OpenTelemetry Operator vs. Kubernetes vs. Cert Manager vs Prometheus Operator
804-
805-
We strive to be compatible with the widest range of Kubernetes versions as possible, but some changes to Kubernetes itself require us to break compatibility with older Kubernetes versions, be it because of code incompatibilities, or in the name of maintainability. Every released operator will support a specific range of Kubernetes versions, to be determined at the latest during the release.
806-
807-
We use `cert-manager` for some features of this operator and the third column shows the versions of the `cert-manager` that are known to work with this operator's versions.
808-
809-
The Target Allocator supports prometheus-operator CRDs like ServiceMonitor, and it does so by using packages imported from prometheus-operator itself. The table shows which version is shipped with a given operator version.
810-
Generally speaking, these are backwards compatible, but specific features require the appropriate package versions.
811-
812-
The OpenTelemetry Operator _might_ work on versions outside of the given range, but when opening new issues, please make sure to test your scenario on a supported version.
813-
814-
| OpenTelemetry Operator | Kubernetes | Cert-Manager | Prometheus-Operator |
815-
|------------------------|----------------| ------------ |---------------------|
816-
| v0.111.0 | v1.23 to v1.31 | v1 | v0.76.0 |
817-
| v0.110.0 | v1.23 to v1.31 | v1 | v0.76.0 |
818-
| v0.109.0 | v1.23 to v1.31 | v1 | v0.76.0 |
819-
| v0.108.0 | v1.23 to v1.31 | v1 | v0.76.0 |
820-
| v0.107.0 | v1.23 to v1.30 | v1 | v0.75.0 |
821-
| v0.106.0 | v1.23 to v1.30 | v1 | v0.75.0 |
822-
| v0.105.0 | v1.23 to v1.30 | v1 | v0.74.0 |
823-
| v0.104.0 | v1.23 to v1.30 | v1 | v0.74.0 |
824-
| v0.103.0 | v1.23 to v1.30 | v1 | v0.74.0 |
825-
| v0.102.0 | v1.23 to v1.30 | v1 | v0.71.2 |
826-
| v0.101.0 | v1.23 to v1.30 | v1 | v0.71.2 |
827-
| v0.100.0 | v1.23 to v1.29 | v1 | v0.71.2 |
828-
| v0.99.0 | v1.23 to v1.29 | v1 | v0.71.2 |
829-
| v0.98.0 | v1.23 to v1.29 | v1 | v0.71.2 |
830-
| v0.97.0 | v1.23 to v1.29 | v1 | v0.71.2 |
831-
| v0.96.0 | v1.23 to v1.29 | v1 | v0.71.2 |
832-
| v0.95.0 | v1.23 to v1.29 | v1 | v0.71.2 |
833-
| v0.94.0 | v1.23 to v1.29 | v1 | v0.71.0 |
834-
| v0.93.0 | v1.23 to v1.29 | v1 | v0.71.0 |
835-
| v0.92.0 | v1.23 to v1.29 | v1 | v0.71.0 |
836-
| v0.91.0 | v1.23 to v1.29 | v1 | v0.70.0 |
837-
| v0.90.0 | v1.23 to v1.28 | v1 | v0.69.1 |
838-
| v0.89.0 | v1.23 to v1.28 | v1 | v0.69.1 |
839-
| v0.88.0 | v1.23 to v1.28 | v1 | v0.68.0 |
840-
841794
## Contributing and Developing
842795

843796
Please see [CONTRIBUTING.md](CONTRIBUTING.md).

RELEASE.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Steps to release a new version of the OpenTelemetry Operator:
1212
> DO NOT BUMP JAVA PAST `1.X.X` AND DO NOT BUMP .NET PAST `1.2.0`. Upgrades past these versions will introduce breaking HTTP semantic convention changes.
1313
1. Check if the compatible OpenShift versions are updated in the `Makefile`.
1414
1. Update the bundle by running `make bundle VERSION=$VERSION`.
15-
1. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry.
15+
1. Change the compatibility matrix in the [compatibility doc](./docs/compatibility.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry.
1616
1. Update release schedule table, by moving the current release manager to the end of the table with updated release version.
1717
1. Add the changes to the changelog by running `make chlog-update VERSION=$VERSION`.
1818
1. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade`
@@ -44,10 +44,10 @@ The operator should be released within a week after the [OpenTelemetry collector
4444

4545
| Version | Release manager |
4646
|----------|-----------------|
47-
| v0.112.0 | @yuriolisa |
4847
| v0.113.0 | @pavolloffay |
4948
| v0.114.0 | @TylerHelmuth |
5049
| v0.115.0 | @jaronoff97 |
5150
| v0.116.0 | @swiatekm |
5251
| v0.117.0 | @iblancasa |
5352
| v0.118.0 | @frzifus |
53+
| v0.119.0 | @yuriolisa |

apis/v1alpha1/targetallocator_webhook.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626

2727
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
2828
"github.com/open-telemetry/opentelemetry-operator/internal/config"
29+
"github.com/open-telemetry/opentelemetry-operator/internal/naming"
2930
"github.com/open-telemetry/opentelemetry-operator/internal/rbac"
3031
)
3132

@@ -119,7 +120,11 @@ func (w TargetAllocatorWebhook) validate(ctx context.Context, ta *TargetAllocato
119120

120121
// if the prometheusCR is enabled, it needs a suite of permissions to function
121122
if ta.Spec.PrometheusCR.Enabled {
122-
warnings, err := v1beta1.CheckTargetAllocatorPrometheusCRPolicyRules(ctx, w.reviewer, ta.Spec.ServiceAccount, ta.GetNamespace())
123+
saname := ta.Spec.ServiceAccount
124+
if len(ta.Spec.ServiceAccount) == 0 {
125+
saname = naming.TargetAllocatorServiceAccount(ta.Name)
126+
}
127+
warnings, err := v1beta1.CheckTargetAllocatorPrometheusCRPolicyRules(ctx, w.reviewer, ta.GetNamespace(), saname)
123128
if err != nil || len(warnings) > 0 {
124129
return warnings, err
125130
}

0 commit comments

Comments
 (0)