Skip to content

Commit 7d71715

Browse files
authored
Merge branch 'main' into improve-probe-parsing
2 parents 1cb601b + e40e3eb commit 7d71715

File tree

119 files changed

+4203
-2951
lines changed

Some content is hidden

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

119 files changed

+4203
-2951
lines changed

.github/workflows/e2e.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
# should be compatible with them.
2222
kube-version:
2323
- "1.23"
24-
- "1.30"
24+
- "1.31"
2525
group:
2626
- e2e
2727
- e2e-automatic-rbac
@@ -40,7 +40,7 @@ jobs:
4040
- group: e2e-multi-instrumentation
4141
setup: "add-multi-instrumentation-params prepare-e2e"
4242
- group: e2e-metadata-filters
43-
setup: "add-operator-arg OPERATOR_ARG='--annotations-filter=.*filter.out --annotations-filter=config.*.gke.io.* --labels=.*filter.out' prepare-e2e"
43+
setup: "add-operator-arg OPERATOR_ARG='--annotations-filter=.*filter.out --annotations-filter=config.*.gke.io.* --labels-filter=.*filter.out' prepare-e2e"
4444
- group: e2e-automatic-rbac
4545
setup: "add-rbac-permissions-to-operator prepare-e2e"
4646
steps:
@@ -57,7 +57,7 @@ jobs:
5757
path: bin
5858
key: ${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('Makefile') }}-${{ steps.setup-go.outputs.go-version }}
5959
- name: Install chainsaw
60-
uses: kyverno/[email protected].8
60+
uses: kyverno/[email protected].10
6161
- name: Install tools
6262
run: make install-tools
6363
- name: Prepare e2e tests

.github/workflows/publish-test-e2e-images.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,8 @@ jobs:
5353
with:
5454
path: nodejs
5555
platforms: linux/arm64,linux/amd64,linux/s390x,linux/ppc64le
56+
metrics-basic-auth:
57+
uses: ./.github/workflows/reusable-publish-test-e2e-images.yaml
58+
with:
59+
path: metrics-basic-auth
60+
platforms: linux/arm64,linux/amd64,linux/s390x,linux/ppc64le

.github/workflows/scorecard.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
matrix:
1919
kube-version:
2020
- "1.23"
21-
- "1.30"
21+
- "1.31"
2222

2323
steps:
2424

CHANGELOG.md

+64
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,70 @@
22

33
<!-- next version -->
44

5+
## 0.109.0
6+
7+
### 🚩 Deprecations 🚩
8+
9+
- `operator`: Deprecated `label` flag and introduced `labels-filter` flag to align the label filtering with the attribute filtering flag name. The `label` flag will be removed when #3236 issue is resolved. (#3218)
10+
11+
### 💡 Enhancements 💡
12+
13+
- `collector`: adds test for memory utilization (#3283)
14+
- `operator`: Added reconciliation errors for webhook events. The webhooks run the manifest generators to check for any errors. (#2399)
15+
16+
### Components
17+
18+
* [OpenTelemetry Collector - v0.109.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.109.0)
19+
* [OpenTelemetry Contrib - v0.109.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.109.0)
20+
* [Java auto-instrumentation - v1.33.5](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v1.33.5)
21+
* [.NET auto-instrumentation - v1.2.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.2.0)
22+
* [Node.JS - v0.52.1](https://github.com/open-telemetry/opentelemetry-js/releases/tag/experimental%2Fv0.52.1)
23+
* [Python - v0.48b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.48b0)
24+
* [Go - v0.14.0-alpha](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v0.14.0-alpha)
25+
* [ApacheHTTPD - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
26+
* [Nginx - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
27+
28+
## 0.108.0
29+
30+
### 💡 Enhancements 💡
31+
32+
- `auto-instrumentation`: set OTEL_EXPORTER_OTLP_PROTOCOL instead of signal specific env vars in python instrumentation (#3165)
33+
- `collector`: Allow autoscaler targetCPUUtilization and TargetMemoryUtilization to be greater than 99 (#3258)
34+
- `auto-instrumentation`: Not ignore the `instrumentation.opentelemetry.io/container-names` annotation when the multi-instrumentation is enabled (#3090)
35+
- `operator`: Support for Kubernetes `1.31` version. (#3247)
36+
- `target allocator`: introduces the global field in the TA config to allow for setting scrape protocols (#3160)
37+
38+
### 🧰 Bug fixes 🧰
39+
40+
- `auto-instrumentation`: Fix file copy for NGINX auto-instrumentation for non-root workloads. (#2726)
41+
- `target allocator`: Retrying failed namespace informer creation in promOperator CRD watcher, then exit if creation issue cannot be resolved (#3216)
42+
- `target allocator`: Rollback #3187 (#3242)
43+
This Rollsback 3187 which breaks TargetAllocator config for clusters with custom domains.
44+
- `auto-instrumentation`: Fixes a bug that was preventing auto instrumentation from getting correct images. (#3014)
45+
This PR removes the restriction on the operator to only upgrade manually applied CRDs. This meant
46+
that resources applied by helm were not upgraded at all. The solution was to remove the restriction
47+
we had on querying the label app.kubernetes.io/managed-by=opentelemetry-operator, thereby upgrading
48+
ALL CRDs in the cluster.
49+
50+
- `collector`: Fixes a bug that was preventing upgrade patches from reliably applying. (#3074)
51+
A bug was discovered in the process of testing the PR that was failing to remove the environment
52+
variables introduced in the 0.104.0 upgrade. The fix was to take a deepcopy of the object and update that.
53+
54+
- `collector`: Don't unnecessarily take ownership of PersistentVolumes and PersistentVolumeClaims (#3042)
55+
- `awsxray-receiver`: Switched the protocol of awsxray-receiver to UDP from TCP (#3261)
56+
57+
### Components
58+
59+
* [OpenTelemetry Collector - v0.108.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.108.0)
60+
* [OpenTelemetry Contrib - v0.108.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.108.0)
61+
* [Java auto-instrumentation - v1.33.5](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v1.33.5)
62+
* [.NET auto-instrumentation - v1.2.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.2.0)
63+
* [Node.JS - v0.52.1](https://github.com/open-telemetry/opentelemetry-js/releases/tag/experimental%2Fv0.52.1)
64+
* [Python - v0.48b0](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/v0.48b0)
65+
* [Go - v0.14.0-alpha](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v0.14.0-alpha)
66+
* [ApacheHTTPD - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
67+
* [Nginx - 1.0.4](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv1.0.4)
68+
569
## 0.107.0
670

771
### 💡 Enhancements 💡

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ endif
5757

5858
START_KIND_CLUSTER ?= true
5959

60-
KUBE_VERSION ?= 1.30
60+
KUBE_VERSION ?= 1.31
6161
KIND_CONFIG ?= kind-$(KUBE_VERSION).yaml
6262
KIND_CLUSTER_NAME ?= "otel-operator"
6363

@@ -437,7 +437,7 @@ GOLANGCI_LINT ?= $(LOCALBIN)/golangci-lint
437437
CHAINSAW ?= $(LOCALBIN)/chainsaw
438438

439439
KUSTOMIZE_VERSION ?= v5.0.3
440-
CONTROLLER_TOOLS_VERSION ?= v0.14.0
440+
CONTROLLER_TOOLS_VERSION ?= v0.16.1
441441
GOLANGCI_LINT_VERSION ?= v1.57.2
442442
KIND_VERSION ?= v0.20.0
443443
CHAINSAW_VERSION ?= v0.2.5

README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ The operator manages:
1212
## Documentation
1313

1414
- [API docs](./docs/api.md)
15+
- [Offical Telemetry Operator page](https://opentelemetry.io/docs/kubernetes/operator/)
1516

1617
## Helm Charts
1718

@@ -360,7 +361,7 @@ In some cases (for example in the case of the injection of an Istio sidecar) it
360361

361362
For this, it is possible to fine-tune the pod(s) on which the injection will be carried out.
362363

363-
For this, we will use the `instrumentation.opentelemetry.io/container-names` annotation for which we will indicate one or more pod names (`.spec.containers.name`) on which the injection must be made:
364+
For this, we will use the `instrumentation.opentelemetry.io/container-names` annotation for which we will indicate one or more container names (`.spec.containers.name`) on which the injection must be made:
364365

365366
```yaml
366367
apiVersion: apps/v1
@@ -758,6 +759,8 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range,
758759

759760
| OpenTelemetry Operator | Kubernetes | Cert-Manager | Prometheus-Operator |
760761
|------------------------|----------------| ------------ |---------------------|
762+
| v0.109.0 | v1.23 to v1.31 | v1 | v0.76.0 |
763+
| v0.108.0 | v1.23 to v1.31 | v1 | v0.76.0 |
761764
| v0.107.0 | v1.23 to v1.30 | v1 | v0.75.0 |
762765
| v0.106.0 | v1.23 to v1.30 | v1 | v0.75.0 |
763766
| v0.105.0 | v1.23 to v1.30 | v1 | v0.74.0 |
@@ -780,7 +783,6 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range,
780783
| v0.88.0 | v1.23 to v1.28 | v1 | v0.68.0 |
781784
| v0.87.0 | v1.23 to v1.28 | v1 | v0.68.0 |
782785
| v0.86.0 | v1.23 to v1.28 | v1 | v0.68.0 |
783-
| v0.85.0 | v1.19 to v1.28 | v1 | v0.67.1 |
784786

785787
## Contributing and Developing
786788

@@ -815,7 +817,7 @@ Emeritus Target Allocator Maintainers
815817
Maintainers ([@open-telemetry/operator-maintainers](https://github.com/orgs/open-telemetry/teams/operator-maintainers)):
816818

817819
- [Jacob Aronoff](https://github.com/jaronoff97), Lightstep
818-
- [Mikołaj Świątek](https://github.com/swiatekm), Sumo Logic
820+
- [Mikołaj Świątek](https://github.com/swiatekm), Elastic
819821
- [Pavol Loffay](https://github.com/pavolloffay), Red Hat
820822

821823
Emeritus Maintainers

RELEASE.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ In order to have more people comfortable with the release process, and in order
4242

4343
The operator should be released within a week after the [OpenTelemetry collector release](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/release.md#release-schedule).
4444

45-
| Version | Release manager |
46-
|-----------|-----------------|
47-
| v0.108.0 | @TylerHelmuth |
48-
| v0.109.0 | @jaronoff97 |
49-
| v0.110.0 | @swiatekm |
50-
| v0.111.0 | @frzifus |
51-
| v0.112.0 | @yuriolisa |
52-
| v0.113.0 | @pavolloffay |
45+
| Version | Release manager |
46+
|----------|-----------------|
47+
| v0.110.0 | @swiatekm |
48+
| v0.111.0 | @frzifus |
49+
| v0.112.0 | @yuriolisa |
50+
| v0.113.0 | @pavolloffay |
51+
| v0.114.0 | @TylerHelmuth |
52+
| v0.115.0 | @jaronoff97 |

apis/v1alpha1/instrumentation_webhook.go

-4
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ func (w InstrumentationWebhook) defaulter(r *Instrumentation) error {
9191
if r.Labels == nil {
9292
r.Labels = map[string]string{}
9393
}
94-
if r.Labels["app.kubernetes.io/managed-by"] == "" {
95-
r.Labels["app.kubernetes.io/managed-by"] = "opentelemetry-operator"
96-
}
97-
9894
if r.Spec.Java.Image == "" {
9995
r.Spec.Java.Image = w.cfg.AutoInstrumentationJavaImage()
10096
}

apis/v1alpha1/opampbridge_webhook.go

+7-11
Original file line numberDiff line numberDiff line change
@@ -52,42 +52,38 @@ func (o *OpAMPBridgeWebhook) Default(ctx context.Context, obj runtime.Object) er
5252
return o.defaulter(opampBridge)
5353
}
5454

55-
func (c OpAMPBridgeWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
55+
func (o *OpAMPBridgeWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
5656
opampBridge, ok := obj.(*OpAMPBridge)
5757
if !ok {
5858
return nil, fmt.Errorf("expected an OpAMPBridge, received %T", obj)
5959
}
60-
return c.validate(opampBridge)
60+
return o.validate(opampBridge)
6161
}
6262

63-
func (c OpAMPBridgeWebhook) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error) {
63+
func (o *OpAMPBridgeWebhook) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error) {
6464
opampBridge, ok := newObj.(*OpAMPBridge)
6565
if !ok {
6666
return nil, fmt.Errorf("expected an OpAMPBridge, received %T", newObj)
6767
}
68-
return c.validate(opampBridge)
68+
return o.validate(opampBridge)
6969
}
7070

71-
func (o OpAMPBridgeWebhook) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
71+
func (o *OpAMPBridgeWebhook) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
7272
opampBridge, ok := obj.(*OpAMPBridge)
7373
if !ok || opampBridge == nil {
7474
return nil, fmt.Errorf("expected an OpAMPBridge, received %T", obj)
7575
}
7676
return o.validate(opampBridge)
7777
}
7878

79-
func (o OpAMPBridgeWebhook) defaulter(r *OpAMPBridge) error {
79+
func (o *OpAMPBridgeWebhook) defaulter(r *OpAMPBridge) error {
8080
if len(r.Spec.UpgradeStrategy) == 0 {
8181
r.Spec.UpgradeStrategy = UpgradeStrategyAutomatic
8282
}
8383

8484
if r.Labels == nil {
8585
r.Labels = map[string]string{}
8686
}
87-
if r.Labels["app.kubernetes.io/managed-by"] == "" {
88-
r.Labels["app.kubernetes.io/managed-by"] = "opentelemetry-operator"
89-
}
90-
9187
one := int32(1)
9288
if r.Spec.Replicas == nil {
9389
r.Spec.Replicas = &one
@@ -104,7 +100,7 @@ func (o OpAMPBridgeWebhook) defaulter(r *OpAMPBridge) error {
104100
return nil
105101
}
106102

107-
func (o OpAMPBridgeWebhook) validate(r *OpAMPBridge) (admission.Warnings, error) {
103+
func (o *OpAMPBridgeWebhook) validate(r *OpAMPBridge) (admission.Warnings, error) {
108104
warnings := admission.Warnings{}
109105

110106
// validate OpAMP server endpoint

apis/v1alpha1/opampbridge_webhook_test.go

+3-9
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ func TestOpAMPBridgeDefaultingWebhook(t *testing.T) {
5050
opampBridge: OpAMPBridge{},
5151
expected: OpAMPBridge{
5252
ObjectMeta: metav1.ObjectMeta{
53-
Labels: map[string]string{
54-
"app.kubernetes.io/managed-by": "opentelemetry-operator",
55-
},
53+
Labels: map[string]string{},
5654
},
5755
Spec: OpAMPBridgeSpec{
5856
Replicas: &one,
@@ -71,9 +69,7 @@ func TestOpAMPBridgeDefaultingWebhook(t *testing.T) {
7169
},
7270
expected: OpAMPBridge{
7371
ObjectMeta: metav1.ObjectMeta{
74-
Labels: map[string]string{
75-
"app.kubernetes.io/managed-by": "opentelemetry-operator",
76-
},
72+
Labels: map[string]string{},
7773
},
7874
Spec: OpAMPBridgeSpec{
7975
Replicas: &five,
@@ -93,9 +89,7 @@ func TestOpAMPBridgeDefaultingWebhook(t *testing.T) {
9389
},
9490
expected: OpAMPBridge{
9591
ObjectMeta: metav1.ObjectMeta{
96-
Labels: map[string]string{
97-
"app.kubernetes.io/managed-by": "opentelemetry-operator",
98-
},
92+
Labels: map[string]string{},
9993
},
10094
Spec: OpAMPBridgeSpec{
10195
Replicas: &one,

apis/v1alpha1/targetallocator_types.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ import (
2121
)
2222

2323
func init() {
24-
v1beta1.SchemeBuilder.Register(&TargetAllocator{}, &TargetAllocatorList{})
24+
SchemeBuilder.Register(&TargetAllocator{}, &TargetAllocatorList{})
2525
}
2626

2727
//+kubebuilder:object:root=true
28+
//+kubebuilder:storageversion
2829
//+kubebuilder:subresource:status
2930

3031
// TargetAllocator is the Schema for the targetallocators API.
@@ -73,6 +74,9 @@ type TargetAllocatorSpec struct {
7374
// +optional
7475
// +kubebuilder:default:=relabel-config
7576
FilterStrategy v1beta1.TargetAllocatorFilterStrategy `json:"filterStrategy,omitempty"`
77+
// GlobalConfig configures the global configuration for Prometheus
78+
// For more info, see https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file.
79+
GlobalConfig v1beta1.AnyConfig `json:"global,omitempty"`
7680
// ScrapeConfigs define static Prometheus scrape configurations for the target allocator.
7781
// To use dynamic configurations from ServiceMonitors and PodMonitors, see the PrometheusCR section.
7882
// For the exact format, see https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.

apis/v1alpha1/zz_generated.deepcopy.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)