Skip to content

Commit 2ba5f30

Browse files
authored
Merge branch 'main' into TA-update-configs-to-enable-mtls
2 parents 2118b93 + 65b40cb commit 2ba5f30

File tree

68 files changed

+739
-270
lines changed

Some content is hidden

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

68 files changed

+739
-270
lines changed

.chloggen/3090-enable-multiinstrumentation-by-default.yaml

-30
This file was deleted.

.chloggen/3149-add-must-gather.yaml

-25
This file was deleted.

.chloggen/container-names.yaml

-16
This file was deleted.

.chloggen/fips.yaml

-19
This file was deleted.

.chloggen/improve-probe-parsing.yaml

-16
This file was deleted.

.chloggen/resource-attribute-from-annotations.yaml

-24
This file was deleted.

CHANGELOG.md

+109
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,115 @@
22

33
<!-- next version -->
44

5+
## 0.110.0
6+
7+
### 🛑 Breaking changes 🛑
8+
9+
- `auto-instrumentation`: Enable multi instrumentation by default. (#3090)
10+
11+
Starting with this release, the OpenTelemetry Operator now enables multi-instrumentation by default.
12+
This enhancement allows instrumentation of multiple containers in a pod with language-specific configurations.
13+
14+
Key Changes:
15+
- Single Instrumentation (Default Behavior): If no container names are specified using the
16+
`instrumentation.opentelemetry.io/container-names` annotation, instrumentation will be applied to the first container in
17+
the pod spec by default. This only applies when single instrumentation injection is configured.
18+
- Multi-Container Pods: In scenarios where different containers in a pod use distinct technologies, users must specify the
19+
container(s) for instrumentation using language-specific annotations. Without this specification, the default behavior may
20+
not work as expected for multi-container environments.
21+
22+
Compatibility:
23+
- Users already utilizing the `instrumentation.opentelemetry.io/container-names` annotation do not need to take any action.
24+
Their existing setup will continue to function as before.
25+
- Important: Users who attempt to configure both `instrumentation.opentelemetry.io/container-names` and language-specific annotations
26+
(for multi-instrumentation) simultaneously will encounter an error, as this configuration is not supported.
27+
28+
- `collector`: Remove ComponentUseLocalHostAsDefaultHost collector feature gate. (#3306)
29+
30+
This change may break setups where receiver endpoints are not explicitly configured to listen on e.g. 0.0.0.0.
31+
Change \#3333 attempts to address this issue for a known set of components.
32+
The operator performs the adjustment for the following receivers:
33+
- otlp
34+
- skywalking
35+
- jaeger
36+
- loki
37+
- opencensus
38+
- zipkin
39+
- tcplog
40+
- udplog
41+
- fluentforward
42+
- statsd
43+
- awsxray/UDP
44+
- carbon
45+
- collectd
46+
- sapm
47+
- signalfx
48+
- splunk_hec
49+
- wavefront
50+
51+
52+
### 💡 Enhancements 💡
53+
54+
- `auto-instrumentation, collector`: Add a must gather utility to help troubleshoot (#3149)
55+
56+
The new utility is available as part of a new container image.
57+
58+
To use the image in a running OpenShift cluster, you need to run the following command:
59+
60+
```sh
61+
oc adm must-gather --image=ghcr.io/open-telemetry/opentelemetry-operator/must-gather -- /usr/bin/must-gather --operator-namespace opentelemetry-operator-system
62+
```
63+
64+
See the [README](https://github.com/open-telemetry/opentelemetry-operator/blob/main/cmd/gather/README.md) for more details.
65+
66+
- `collector`: set default address for all parsed receivers (#3126)
67+
68+
This feature is enabled by default. It can be disabled by specifying
69+
`--feature-gates=-operator.collector.default.config`.
70+
- `operator`: Use 0.0.0.0 as otlp receiver default address (#3126)
71+
- `collector`: Add flag to disable components when operator runs on FIPS enabled cluster. (#3315)
72+
Flag `--fips-disabled-components=receiver.otlp,exporter.otlp,processor.batch,extension.oidc` can be used to disable
73+
components when operator runs on FIPS enabled cluster. The operator uses `/proc/sys/crypto/fips_enabled` to check
74+
if FIPS is enabled.
75+
76+
- `collector`: Improves healthcheck parsing capabilities, allowing for future extensions to configure a healthcheck other than the v1 healthcheck extension. (#3184)
77+
- `auto-instrumentation`: Add support for k8s labels such as app.kubernetes.io/name for resource attributes (#3112)
78+
79+
You can opt-in as follows:
80+
```yaml
81+
apiVersion: opentelemetry.io/v1alpha1
82+
kind: Instrumentation
83+
metadata:
84+
name: my-instrumentation
85+
spec:
86+
defaults:
87+
useLabelsForResourceAttributes: true
88+
```
89+
The following labels are supported:
90+
- `app.kubernetes.io/name` becomes `service.name`
91+
- `app.kubernetes.io/version` becomes `service.version`
92+
- `app.kubernetes.io/part-of` becomes `service.namespace`
93+
- `app.kubernetes.io/instance` becomes `service.instance.id`
94+
95+
96+
### 🧰 Bug fixes 🧰
97+
98+
- `auto-instrumentation`: Fix ApacheHttpd, Nginx and SDK injectors to honour their container-names annotations. (#3313)
99+
100+
This is a breaking change if anyone is accidentally using the enablement flag with container names for these 3 injectors.
101+
102+
### Components
103+
104+
* [OpenTelemetry Collector - v0.110.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.110.0)
105+
* [OpenTelemetry Contrib - v0.110.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.110.0)
106+
* [Java auto-instrumentation - v1.33.5](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v1.33.5)
107+
* [.NET auto-instrumentation - v1.2.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.2.0)
108+
* [Node.JS - v0.52.1](https://github.com/open-telemetry/opentelemetry-js/releases/tag/experimental%2Fv0.52.1)
109+
* [Python - v0.48b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.48b0)
110+
* [Go - v0.14.0-alpha](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v0.14.0-alpha)
111+
* [ApacheHTTPD - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
112+
* [Nginx - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
113+
5114
## 0.109.0
6115

7116
### 🚩 Deprecations 🚩

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,7 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range,
813813

814814
| OpenTelemetry Operator | Kubernetes | Cert-Manager | Prometheus-Operator |
815815
|------------------------|----------------| ------------ |---------------------|
816+
| v0.110.0 | v1.23 to v1.31 | v1 | v0.76.0 |
816817
| v0.109.0 | v1.23 to v1.31 | v1 | v0.76.0 |
817818
| v0.108.0 | v1.23 to v1.31 | v1 | v0.76.0 |
818819
| v0.107.0 | v1.23 to v1.30 | v1 | v0.75.0 |
@@ -836,7 +837,6 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range,
836837
| v0.89.0 | v1.23 to v1.28 | v1 | v0.69.1 |
837838
| v0.88.0 | v1.23 to v1.28 | v1 | v0.68.0 |
838839
| v0.87.0 | v1.23 to v1.28 | v1 | v0.68.0 |
839-
| v0.86.0 | v1.23 to v1.28 | v1 | v0.68.0 |
840840

841841
## Contributing and Developing
842842

RELEASE.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ The operator should be released within a week after the [OpenTelemetry collector
4444

4545
| Version | Release manager |
4646
|----------|-----------------|
47-
| v0.110.0 | @swiatekm |
4847
| v0.111.0 | @frzifus |
4948
| v0.112.0 | @yuriolisa |
5049
| v0.113.0 | @pavolloffay |
5150
| v0.114.0 | @TylerHelmuth |
52-
| v0.115.0 | @jaronoff97 |
51+
| v0.115.0 | @jaronoff97 |
52+
| v0.116.0 | @swiatekm |

apis/v1beta1/collector_webhook.go

+5-23
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/open-telemetry/opentelemetry-operator/internal/fips"
3131
ta "github.com/open-telemetry/opentelemetry-operator/internal/manifests/targetallocator/adapters"
3232
"github.com/open-telemetry/opentelemetry-operator/internal/rbac"
33+
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
3334
)
3435

3536
var (
@@ -78,8 +79,6 @@ func (c CollectorWebhook) Default(_ context.Context, obj runtime.Object) error {
7879
otelcol.Spec.TargetAllocator.Replicas = &one
7980
}
8081

81-
ComponentUseLocalHostAsDefaultHost(otelcol)
82-
8382
if otelcol.Spec.Autoscaler != nil && otelcol.Spec.Autoscaler.MaxReplicas != nil {
8483
if otelcol.Spec.Autoscaler.MinReplicas == nil {
8584
otelcol.Spec.Autoscaler.MinReplicas = otelcol.Spec.Replicas
@@ -102,7 +101,10 @@ func (c CollectorWebhook) Default(_ context.Context, obj runtime.Object) error {
102101
if len(otelcol.Spec.ManagementState) == 0 {
103102
otelcol.Spec.ManagementState = ManagementStateManaged
104103
}
105-
return nil
104+
if !featuregate.EnableConfigDefaulting.IsEnabled() {
105+
return nil
106+
}
107+
return otelcol.Spec.Config.ApplyDefaults(c.logger)
106108
}
107109

108110
func (c CollectorWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
@@ -453,23 +455,3 @@ func SetupCollectorWebhook(mgr ctrl.Manager, cfg config.Config, reviewer *rbac.R
453455
WithDefaulter(cvw).
454456
Complete()
455457
}
456-
457-
// ComponentUseLocalHostAsDefaultHost enables component.UseLocalHostAsDefaultHost
458-
// featuregate on the given collector instance.
459-
// NOTE: For more details, visit:
460-
// https://github.com/open-telemetry/opentelemetry-collector/issues/8510
461-
func ComponentUseLocalHostAsDefaultHost(otelcol *OpenTelemetryCollector) {
462-
const (
463-
baseFlag = "feature-gates"
464-
fgFlag = "component.UseLocalHostAsDefaultHost"
465-
)
466-
if otelcol.Spec.Args == nil {
467-
otelcol.Spec.Args = make(map[string]string)
468-
}
469-
args, ok := otelcol.Spec.Args[baseFlag]
470-
if !ok || len(args) == 0 {
471-
otelcol.Spec.Args[baseFlag] = "-" + fgFlag
472-
} else if !strings.Contains(otelcol.Spec.Args[baseFlag], fgFlag) {
473-
otelcol.Spec.Args[baseFlag] += ",-" + fgFlag
474-
}
475-
}

0 commit comments

Comments
 (0)