Skip to content

Commit 6e3d2a0

Browse files
authored
Merge branch 'main' into resource-attribute-from-annotations
2 parents 1bc62e5 + e40e3eb commit 6e3d2a0

File tree

103 files changed

+2040
-4227
lines changed

Some content is hidden

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

103 files changed

+2040
-4227
lines changed

.chloggen/enhanced-webhook.yaml

-16
This file was deleted.

.github/workflows/e2e.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -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].9
60+
uses: kyverno/[email protected].10
6161
- name: Install tools
6262
run: make install-tools
6363
- name: Prepare e2e tests

CHANGELOG.md

+23
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,29 @@
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+
528
## 0.108.0
629

730
### 💡 Enhancements 💡

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ In some cases (for example in the case of the injection of an Istio sidecar) it
361361

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

364-
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:
365365

366366
```yaml
367367
apiVersion: apps/v1
@@ -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.109.0 | v1.23 to v1.31 | v1 | v0.76.0 |
816817
| v0.108.0 | v1.23 to v1.31 | v1 | v0.76.0 |
817818
| v0.107.0 | v1.23 to v1.30 | v1 | v0.75.0 |
818819
| v0.106.0 | v1.23 to v1.30 | v1 | v0.75.0 |

RELEASE.md

+1-1
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.109.0 | @jaronoff97 |
4847
| v0.110.0 | @swiatekm |
4948
| v0.111.0 | @frzifus |
5049
| v0.112.0 | @yuriolisa |
5150
| v0.113.0 | @pavolloffay |
5251
| v0.114.0 | @TylerHelmuth |
52+
| v0.115.0 | @jaronoff97 |

apis/v1alpha1/targetallocator_types.go

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

apis/v1beta1/config.go

+41-1
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@ import (
2727
"github.com/go-logr/logr"
2828
"gopkg.in/yaml.v3"
2929
corev1 "k8s.io/api/core/v1"
30+
rbacv1 "k8s.io/api/rbac/v1"
3031

3132
"github.com/open-telemetry/opentelemetry-operator/internal/components"
3233
"github.com/open-telemetry/opentelemetry-operator/internal/components/exporters"
34+
"github.com/open-telemetry/opentelemetry-operator/internal/components/processors"
3335
"github.com/open-telemetry/opentelemetry-operator/internal/components/receivers"
3436
)
3537

@@ -139,9 +141,43 @@ type Config struct {
139141
Service Service `json:"service" yaml:"service"`
140142
}
141143

144+
// getRbacRulesForComponentKinds gets the RBAC Rules for the given ComponentKind(s).
145+
func (c *Config) getRbacRulesForComponentKinds(logger logr.Logger, componentKinds ...ComponentKind) ([]rbacv1.PolicyRule, error) {
146+
var rules []rbacv1.PolicyRule
147+
enabledComponents := c.GetEnabledComponents()
148+
for _, componentKind := range componentKinds {
149+
var retriever components.ParserRetriever
150+
var cfg AnyConfig
151+
switch componentKind {
152+
case KindReceiver:
153+
retriever = receivers.ReceiverFor
154+
cfg = c.Receivers
155+
case KindExporter:
156+
retriever = exporters.ParserFor
157+
cfg = c.Exporters
158+
case KindProcessor:
159+
retriever = processors.ProcessorFor
160+
if c.Processors == nil {
161+
cfg = AnyConfig{}
162+
} else {
163+
cfg = *c.Processors
164+
}
165+
}
166+
for componentName := range enabledComponents[componentKind] {
167+
// TODO: Clean up the naming here and make it simpler to use a retriever.
168+
parser := retriever(componentName)
169+
if parsedRules, err := parser.GetRBACRules(logger, cfg.Object[componentName]); err != nil {
170+
return nil, err
171+
} else {
172+
rules = append(rules, parsedRules...)
173+
}
174+
}
175+
}
176+
return rules, nil
177+
}
178+
142179
// getPortsForComponentKinds gets the ports for the given ComponentKind(s).
143180
func (c *Config) getPortsForComponentKinds(logger logr.Logger, componentKinds ...ComponentKind) ([]corev1.ServicePort, error) {
144-
145181
var ports []corev1.ServicePort
146182
enabledComponents := c.GetEnabledComponents()
147183
for _, componentKind := range componentKinds {
@@ -187,6 +223,10 @@ func (c *Config) GetAllPorts(logger logr.Logger) ([]corev1.ServicePort, error) {
187223
return c.getPortsForComponentKinds(logger, KindReceiver, KindExporter)
188224
}
189225

226+
func (c *Config) GetAllRbacRules(logger logr.Logger) ([]rbacv1.PolicyRule, error) {
227+
return c.getRbacRulesForComponentKinds(logger, KindReceiver, KindExporter, KindProcessor)
228+
}
229+
190230
// Yaml encodes the current object and returns it as a string.
191231
func (c *Config) Yaml() (string, error) {
192232
var buf bytes.Buffer

autoinstrumentation/java/version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.7.0
1+
2.8.0

bundle/community/manifests/opentelemetry-operator.clusterserviceversion.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,13 @@ metadata:
9999
categories: Logging & Tracing,Monitoring
100100
certified: "false"
101101
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
102-
createdAt: "2024-09-05T15:16:50Z"
102+
createdAt: "2024-09-19T17:15:52Z"
103103
description: Provides the OpenTelemetry components, including the Collector
104104
operators.operatorframework.io/builder: operator-sdk-v1.29.0
105105
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
106106
repository: github.com/open-telemetry/opentelemetry-operator
107107
support: OpenTelemetry Community
108-
name: opentelemetry-operator.v0.108.0
108+
name: opentelemetry-operator.v0.109.0
109109
namespace: placeholder
110110
spec:
111111
apiservicedefinitions: {}
@@ -479,7 +479,7 @@ spec:
479479
valueFrom:
480480
fieldRef:
481481
fieldPath: spec.serviceAccountName
482-
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.108.0
482+
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.109.0
483483
livenessProbe:
484484
httpGet:
485485
path: /healthz
@@ -587,7 +587,7 @@ spec:
587587
minKubeVersion: 1.23.0
588588
provider:
589589
name: OpenTelemetry Community
590-
version: 0.108.0
590+
version: 0.109.0
591591
webhookdefinitions:
592592
- admissionReviewVersions:
593593
- v1alpha1

bundle/openshift/manifests/opentelemetry-operator.clusterserviceversion.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,13 @@ metadata:
9999
categories: Logging & Tracing,Monitoring
100100
certified: "false"
101101
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
102-
createdAt: "2024-09-05T15:16:58Z"
102+
createdAt: "2024-09-19T17:16:12Z"
103103
description: Provides the OpenTelemetry components, including the Collector
104104
operators.operatorframework.io/builder: operator-sdk-v1.29.0
105105
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
106106
repository: github.com/open-telemetry/opentelemetry-operator
107107
support: OpenTelemetry Community
108-
name: opentelemetry-operator.v0.108.0
108+
name: opentelemetry-operator.v0.109.0
109109
namespace: placeholder
110110
spec:
111111
apiservicedefinitions: {}
@@ -483,7 +483,7 @@ spec:
483483
valueFrom:
484484
fieldRef:
485485
fieldPath: spec.serviceAccountName
486-
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.108.0
486+
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.109.0
487487
livenessProbe:
488488
httpGet:
489489
path: /healthz
@@ -591,7 +591,7 @@ spec:
591591
minKubeVersion: 1.23.0
592592
provider:
593593
name: OpenTelemetry Community
594-
version: 0.108.0
594+
version: 0.109.0
595595
webhookdefinitions:
596596
- admissionReviewVersions:
597597
- v1alpha1

controllers/common.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func BuildCollector(params manifests.Params) ([]client.Object, error) {
6767
Recorder: params.Recorder,
6868
Log: params.Log,
6969
Config: params.Config,
70-
Collector: params.OtelCol,
70+
Collector: &params.OtelCol,
7171
TargetAllocator: *params.TargetAllocator,
7272
}
7373
taResources, err := BuildTargetAllocator(taParams)

controllers/suite_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,10 @@ func TestMain(m *testing.M) {
182182
fmt.Printf("failed to SetupWebhookWithManager: %v", err)
183183
os.Exit(1)
184184
}
185+
if err = v1alpha1.SetupTargetAllocatorWebhook(mgr, config.New(), reviewer); err != nil {
186+
fmt.Printf("failed to SetupWebhookWithManager: %v", err)
187+
os.Exit(1)
188+
}
185189

186190
if err = v1alpha1.SetupOpAMPBridgeWebhook(mgr, config.New()); err != nil {
187191
fmt.Printf("failed to SetupWebhookWithManager: %v", err)

0 commit comments

Comments
 (0)