Skip to content

Commit dcb9857

Browse files
author
Israel Blancas
authored
Merge branch 'main' into nodejs-ibm
2 parents 108999f + a748078 commit dcb9857

21 files changed

+121
-43
lines changed

.github/workflows/reusable-operator-hub-release.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
env:
5757
VERSION: ${{ env.version }}
5858
run: |
59-
mkdir operators/opentelemetry-operator/${VERSION}
59+
mkdir operators/opentelemetry-operator/${VERSION}
6060
cp -R ./tmp/bundle/${{ inputs.folder }}/* operators/opentelemetry-operator/${VERSION}
6161
rm -rf ./tmp
6262
@@ -73,7 +73,7 @@ jobs:
7373
message="Update the opentelemetry to $VERSION"
7474
body="Release opentelemetry-operator \`$VERSION\`.
7575
76-
cc @pavolloffay @frzifus @yuriolisa @jaronoff97 @TylerHelmuth @swiatekm
76+
cc @pavolloffay @frzifus @yuriolisa @jaronoff97 @TylerHelmuth @swiatekm @iblancasa
7777
"
7878
branch="update-opentelemetry-operator-to-${VERSION}"
7979

README.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ spec:
608608
mode: statefulset
609609
targetAllocator:
610610
enabled: true
611-
config:
611+
config:
612612
receivers:
613613
prometheus:
614614
config:
@@ -740,7 +740,7 @@ spec:
740740

741741
### Configure resource attributes with labels
742742

743-
You can also use common labels to set resource attributes.
743+
You can also use common labels to set resource attributes.
744744

745745
The following labels are supported:
746746
- `app.kubernetes.io/name` becomes `service.name`
@@ -782,12 +782,12 @@ The priority for setting resource attributes is as follows (first found wins):
782782

783783
1. Resource attributes set via `OTEL_RESOURCE_ATTRIBUTES` and `OTEL_SERVICE_NAME` environment variables
784784
2. Resource attributes set via annotations (with the `resource.opentelemetry.io/` prefix)
785-
3. Resource attributes set via labels (e.g. `app.kubernetes.io/name`)
785+
3. Resource attributes set via labels (e.g. `app.kubernetes.io/name`)
786786
if the `Instrumentation` CR has defaults.useLabelsForResourceAttributes=true (see above)
787787
4. Resource attributes calculated from the pod's metadata (e.g. `k8s.pod.name`)
788788
5. Resource attributes set via the `Instrumentation` CR (in the `spec.resource.resourceAttributes` section)
789789

790-
This priority is applied for each resource attribute separately, so it is possible to set some attributes via
790+
This priority is applied for each resource attribute separately, so it is possible to set some attributes via
791791
annotations and others via labels.
792792

793793
## Compatibility matrix
@@ -807,7 +807,7 @@ We strive to be compatible with the widest range of Kubernetes versions as possi
807807
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.
808808

809809
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.
810+
Generally speaking, these are backwards compatible, but specific features require the appropriate package versions.
811811

812812
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.
813813

@@ -849,6 +849,7 @@ Approvers ([@open-telemetry/operator-approvers](https://github.com/orgs/open-tel
849849
- [Benedikt Bongartz](https://github.com/frzifus), Red Hat
850850
- [Tyler Helmuth](https://github.com/TylerHelmuth), Honeycomb
851851
- [Yuri Oliveira Sa](https://github.com/yuriolisa), Red Hat
852+
- [Israel Blancas](https://github.com/iblancasa), Red Hat
852853

853854
Emeritus Approvers:
854855

RELEASE.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,5 @@ The operator should be released within a week after the [OpenTelemetry collector
4949
| v0.113.0 | @pavolloffay |
5050
| v0.114.0 | @TylerHelmuth |
5151
| v0.115.0 | @jaronoff97 |
52-
| v0.116.0 | @swiatekm |
52+
| v0.116.0 | @swiatekm |
53+
| v0.117.0 | @iblancasa |

pkg/collector/upgrade/suite_test.go

+7
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
4343
"github.com/open-telemetry/opentelemetry-operator/internal/config"
4444
"github.com/open-telemetry/opentelemetry-operator/internal/rbac"
45+
"github.com/open-telemetry/opentelemetry-operator/internal/version"
4546
)
4647

4748
var (
@@ -160,3 +161,9 @@ func TestMain(m *testing.M) {
160161

161162
os.Exit(code)
162163
}
164+
165+
func makeVersion(v string) version.Version {
166+
return version.Version{
167+
OpenTelemetryCollector: v,
168+
}
169+
}

pkg/collector/upgrade/upgrade.go

+18-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,17 @@ type VersionUpgrade struct {
3939

4040
const RecordBufferSize int = 100
4141

42+
func (u VersionUpgrade) semVer() *semver.Version {
43+
if len(u.Version.OpenTelemetryCollector) == 0 {
44+
return &Latest.Version
45+
}
46+
if v, err := semver.NewVersion(u.Version.OpenTelemetryCollector); err != nil {
47+
return &Latest.Version
48+
} else {
49+
return v
50+
}
51+
}
52+
4253
// ManagedInstances finds all the otelcol instances for the current operator and upgrades them, if necessary.
4354
func (u VersionUpgrade) ManagedInstances(ctx context.Context) error {
4455
u.Log.Info("looking for managed instances to upgrade")
@@ -107,9 +118,9 @@ func (u VersionUpgrade) ManagedInstance(_ context.Context, otelcol v1beta1.OpenT
107118
}
108119

109120
updated := *(otelcol.DeepCopy())
110-
if instanceV.GreaterThan(&Latest.Version) {
121+
if instanceV.GreaterThan(u.semVer()) {
111122
// Update with the latest known version, which is what we have from versions.txt
112-
u.Log.V(4).Info("no upgrade routines are needed for the OpenTelemetry instance", "name", updated.Name, "namespace", updated.Namespace, "version", updated.Status.Version, "latest", Latest.Version.String())
123+
u.Log.V(4).Info("no upgrade routines are needed for the OpenTelemetry instance", "name", updated.Name, "namespace", updated.Namespace, "version", updated.Status.Version, "latest", u.semVer().String())
113124

114125
otelColV, err := semver.NewVersion(u.Version.OpenTelemetryCollector)
115126
if err != nil {
@@ -126,6 +137,11 @@ func (u VersionUpgrade) ManagedInstance(_ context.Context, otelcol v1beta1.OpenT
126137
}
127138

128139
for _, available := range versions {
140+
// Don't run upgrades for versions after the webhook's set version.
141+
// This is important only for testing.
142+
if available.GreaterThan(u.semVer()) {
143+
continue
144+
}
129145
if available.GreaterThan(instanceV) {
130146
if available.upgrade != nil {
131147
otelcolV1alpha1 := &v1alpha1.OpenTelemetryCollector{}

pkg/collector/upgrade/v0_104_0_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/client-go/tools/record"
2525

2626
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
27-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2827
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2928
)
3029

@@ -46,7 +45,7 @@ func Test0_104_0Upgrade(t *testing.T) {
4645

4746
versionUpgrade := &upgrade.VersionUpgrade{
4847
Log: logger,
49-
Version: version.Get(),
48+
Version: makeVersion("0.104.0"),
5049
Client: k8sClient,
5150
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
5251
}
@@ -56,7 +55,9 @@ func Test0_104_0Upgrade(t *testing.T) {
5655
t.Errorf("expect err: nil but got: %v", err)
5756
}
5857
assert.EqualValues(t,
59-
map[string]string{},
58+
map[string]string{
59+
"feature-gates": "-component.UseLocalHostAsDefaultHost",
60+
},
6061
col.Spec.Args, "missing featuregate")
6162
}
6263

pkg/collector/upgrade/v0_105_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"k8s.io/client-go/tools/record"
2424

2525
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
26-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2726
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2827
)
2928

@@ -59,7 +58,7 @@ func Test0_105_0Upgrade(t *testing.T) {
5958

6059
versionUpgrade := &upgrade.VersionUpgrade{
6160
Log: logger,
62-
Version: version.Get(),
61+
Version: makeVersion("0.105.0"),
6362
Client: k8sClient,
6463
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
6564
}
+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Copyright The OpenTelemetry Authors
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package upgrade_test
16+
17+
import (
18+
"context"
19+
"testing"
20+
21+
"github.com/stretchr/testify/assert"
22+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
"k8s.io/client-go/tools/record"
24+
25+
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
26+
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
27+
)
28+
29+
func Test0_110_0Upgrade(t *testing.T) {
30+
collectorInstance := v1beta1.OpenTelemetryCollector{
31+
TypeMeta: metav1.TypeMeta{
32+
Kind: "OpenTelemetryCollector",
33+
APIVersion: "v1beta1",
34+
},
35+
ObjectMeta: metav1.ObjectMeta{
36+
Name: "otel-my-instance",
37+
Namespace: "somewhere",
38+
},
39+
Status: v1beta1.OpenTelemetryCollectorStatus{
40+
Version: "0.104.0",
41+
},
42+
Spec: v1beta1.OpenTelemetryCollectorSpec{
43+
OpenTelemetryCommonFields: v1beta1.OpenTelemetryCommonFields{
44+
Args: map[string]string{
45+
"foo": "bar",
46+
"feature-gates": "+baz,-component.UseLocalHostAsDefaultHost",
47+
},
48+
},
49+
Config: v1beta1.Config{},
50+
},
51+
}
52+
53+
versionUpgrade := &upgrade.VersionUpgrade{
54+
Log: logger,
55+
Version: makeVersion("0.110.0"),
56+
Client: k8sClient,
57+
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
58+
}
59+
60+
col, err := versionUpgrade.ManagedInstance(context.Background(), collectorInstance)
61+
if err != nil {
62+
t.Errorf("expect err: nil but got: %v", err)
63+
}
64+
assert.EqualValues(t,
65+
map[string]string{"foo": "bar", "feature-gates": "+baz"}, col.Spec.Args)
66+
}

pkg/collector/upgrade/v0_15_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"k8s.io/client-go/tools/record"
2626

2727
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
28-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2928
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
3029
)
3130

@@ -57,7 +56,7 @@ func TestRemoveMetricsTypeFlags(t *testing.T) {
5756
// test
5857
up := &upgrade.VersionUpgrade{
5958
Log: logger,
60-
Version: version.Get(),
59+
Version: makeVersion("0.15.0"),
6160
Client: nil,
6261
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
6362
}

pkg/collector/upgrade/v0_19_0_test.go

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

2727
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
2828
"github.com/open-telemetry/opentelemetry-operator/internal/manifests/collector/adapters"
29-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
3029
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
3130
)
3231

@@ -74,7 +73,7 @@ service:
7473
// test
7574
up := &upgrade.VersionUpgrade{
7675
Log: logger,
77-
Version: version.Get(),
76+
Version: makeVersion("0.19.0"),
7877
Client: nil,
7978
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
8079
}
@@ -124,7 +123,7 @@ service:
124123
// test
125124
up := &upgrade.VersionUpgrade{
126125
Log: logger,
127-
Version: version.Get(),
126+
Version: makeVersion("0.19.0"),
128127
Client: nil,
129128
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
130129
}
@@ -191,7 +190,7 @@ service:
191190
// test
192191
up := &upgrade.VersionUpgrade{
193192
Log: logger,
194-
Version: version.Get(),
193+
Version: makeVersion("0.19.0"),
195194
Client: nil,
196195
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
197196
}

pkg/collector/upgrade/v0_24_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/client-go/tools/record"
2525

2626
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
27-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2827
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2928
)
3029

@@ -64,7 +63,7 @@ service:
6463
// test
6564
up := &upgrade.VersionUpgrade{
6665
Log: logger,
67-
Version: version.Get(),
66+
Version: makeVersion("0.24.0"),
6867
Client: nil,
6968
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
7069
}

pkg/collector/upgrade/v0_31_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/client-go/tools/record"
2525

2626
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
27-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2827
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2928
)
3029

@@ -63,7 +62,7 @@ service:
6362
// test
6463
up := &upgrade.VersionUpgrade{
6564
Log: logger,
66-
Version: version.Get(),
65+
Version: makeVersion("0.31.0"),
6766
Client: nil,
6867
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
6968
}

pkg/collector/upgrade/v0_36_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/client-go/tools/record"
2525

2626
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
27-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2827
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2928
)
3029

@@ -79,7 +78,7 @@ service:
7978

8079
up := &upgrade.VersionUpgrade{
8180
Log: logger,
82-
Version: version.Get(),
81+
Version: makeVersion("0.36.0"),
8382
Client: nil,
8483
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
8584
}

pkg/collector/upgrade/v0_38_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/client-go/tools/record"
2525

2626
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
27-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2827
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2928
)
3029

@@ -72,7 +71,7 @@ service:
7271
// EXPECTED: drop logging args and configure logging parameters into config from args
7372
up := &upgrade.VersionUpgrade{
7473
Log: logger,
75-
Version: version.Get(),
74+
Version: makeVersion("0.38.0"),
7675
Client: nil,
7776
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
7877
}

pkg/collector/upgrade/v0_39_0_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"k8s.io/client-go/tools/record"
2525

2626
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
27-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2827
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2928
)
3029

@@ -74,7 +73,7 @@ service:
7473
// drop processors.memory_limiter field 'ballast_size_mib'
7574
up := &upgrade.VersionUpgrade{
7675
Log: logger,
77-
Version: version.Get(),
76+
Version: makeVersion("0.39.0"),
7877
Client: nil,
7978
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
8079
}

0 commit comments

Comments
 (0)