Skip to content

Commit 97fc6fe

Browse files
authored
Merge branch 'main' into cleanups
2 parents 09ad837 + f2a8cf2 commit 97fc6fe

File tree

109 files changed

+3592
-2903
lines changed

Some content is hidden

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

109 files changed

+3592
-2903
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: deprecation
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action)
5+
component: operator
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: "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."
9+
10+
# One or more tracking issues related to the change
11+
issues: [3218]
12+
13+
# (Optional) One or more lines of additional information to render under the primary note.
14+
# These lines will be padded with 2 spaces and then inserted directly into the document.
15+
# Use pipe (|) for multiline entries.
16+
subtext:

.chloggen/enhanced-webhook.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
2+
change_type: enhancement
3+
4+
# The name of the component, or a single word describing the area of concern, (e.g. operator, target allocator, github action)
5+
component: operator
6+
7+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
8+
note: Added reconciliation errors for webhook events. The webhooks run the manifest generators to check for any errors.
9+
10+
# One or more tracking issues related to the change
11+
issues: [2399]
12+
13+
# (Optional) One or more lines of additional information to render under the primary note.
14+
# These lines will be padded with 2 spaces and then inserted directly into the document.
15+
# Use pipe (|) for multiline entries.
16+
subtext:

.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].9
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

+41
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,47 @@
22

33
<!-- next version -->
44

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

748
### 💡 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

+3-2
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

@@ -758,6 +759,7 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range,
758759

759760
| OpenTelemetry Operator | Kubernetes | Cert-Manager | Prometheus-Operator |
760761
|------------------------|----------------| ------------ |---------------------|
762+
| v0.108.0 | v1.23 to v1.31 | v1 | v0.76.0 |
761763
| v0.107.0 | v1.23 to v1.30 | v1 | v0.75.0 |
762764
| v0.106.0 | v1.23 to v1.30 | v1 | v0.75.0 |
763765
| v0.105.0 | v1.23 to v1.30 | v1 | v0.74.0 |
@@ -780,7 +782,6 @@ The OpenTelemetry Operator _might_ work on versions outside of the given range,
780782
| v0.88.0 | v1.23 to v1.28 | v1 | v0.68.0 |
781783
| v0.87.0 | v1.23 to v1.28 | v1 | v0.68.0 |
782784
| 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 |
784785

785786
## Contributing and Developing
786787

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

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

821822
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.109.0 | @jaronoff97 |
48+
| v0.110.0 | @swiatekm |
49+
| v0.111.0 | @frzifus |
50+
| v0.112.0 | @yuriolisa |
51+
| v0.113.0 | @pavolloffay |
52+
| v0.114.0 | @TylerHelmuth |

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

+3
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ type TargetAllocatorSpec struct {
7373
// +optional
7474
// +kubebuilder:default:=relabel-config
7575
FilterStrategy v1beta1.TargetAllocatorFilterStrategy `json:"filterStrategy,omitempty"`
76+
// GlobalConfig configures the global configuration for Prometheus
77+
// For more info, see https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file.
78+
GlobalConfig v1beta1.AnyConfig `json:"global,omitempty"`
7679
// ScrapeConfigs define static Prometheus scrape configurations for the target allocator.
7780
// To use dynamic configurations from ServiceMonitors and PodMonitors, see the PrometheusCR section.
7881
// 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)