Skip to content

Commit 868a65a

Browse files
authored
fix upgrade testing (#3364)
1 parent b703b78 commit 868a65a

17 files changed

+45
-35
lines changed

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
}

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
}

pkg/collector/upgrade/v0_41_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
// TESTCASE 1: restructure cors for both allowed_origin & allowed_headers
6564
up := &upgrade.VersionUpgrade{
6665
Log: logger,
67-
Version: version.Get(),
66+
Version: makeVersion("0.41.0"),
6867
Client: nil,
6968
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
7069
}

pkg/collector/upgrade/v0_43_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

@@ -70,7 +69,7 @@ service:
7069
// test
7170
up := &upgrade.VersionUpgrade{
7271
Log: logger,
73-
Version: version.Get(),
72+
Version: makeVersion("0.43.0"),
7473
Client: nil,
7574
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
7675
}

pkg/collector/upgrade/v0_56_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/v1alpha1"
26-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2726
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2827
)
2928

@@ -50,7 +49,7 @@ func Test0_56_0Upgrade(t *testing.T) {
5049
collectorInstance.Status.Version = "0.55.0"
5150
versionUpgrade := &upgrade.VersionUpgrade{
5251
Log: logger,
53-
Version: version.Get(),
52+
Version: makeVersion("0.56.0"),
5453
Client: k8sClient,
5554
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
5655
}

pkg/collector/upgrade/v0_57_2_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/v1alpha1"
26-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2726
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2827
)
2928

@@ -67,7 +66,7 @@ service:
6766
//Test to remove port and change endpoint value.
6867
versionUpgrade := &upgrade.VersionUpgrade{
6968
Log: logger,
70-
Version: version.Get(),
69+
Version: makeVersion("0.57.2"),
7170
Client: k8sClient,
7271
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
7372
}

pkg/collector/upgrade/v0_61_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/v1alpha1"
26-
"github.com/open-telemetry/opentelemetry-operator/internal/version"
2726
"github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade"
2827
)
2928

@@ -72,7 +71,7 @@ func Test0_61_0Upgrade(t *testing.T) {
7271

7372
versionUpgrade := &upgrade.VersionUpgrade{
7473
Log: logger,
75-
Version: version.Get(),
74+
Version: makeVersion("0.61.0"),
7675
Client: k8sClient,
7776
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
7877
}

pkg/collector/upgrade/v0_9_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

@@ -56,7 +55,7 @@ func TestRemoveConnectionDelay(t *testing.T) {
5655
// test
5756
up := &upgrade.VersionUpgrade{
5857
Log: logger,
59-
Version: version.Get(),
58+
Version: makeVersion("0.9.0"),
6059
Client: nil,
6160
Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize),
6261
}

0 commit comments

Comments
 (0)