From 3fa287b4b7692cbb993759e096a33aaedfe72786 Mon Sep 17 00:00:00 2001 From: Benedikt Bongartz Date: Wed, 21 Sep 2022 18:47:45 +0200 Subject: [PATCH 1/5] upgrade routine for jaeger remote sampling Signed-off-by: Benedikt Bongartz --- pkg/collector/upgrade/v0_61_0-input.yaml | 22 +++ pkg/collector/upgrade/v0_61_0-output.yaml | 33 +++++ pkg/collector/upgrade/v0_61_0.go | 157 ++++++++++++++++++++++ pkg/collector/upgrade/v0_61_0_test.go | 65 +++++++++ pkg/collector/upgrade/versions.go | 4 + 5 files changed, 281 insertions(+) create mode 100644 pkg/collector/upgrade/v0_61_0-input.yaml create mode 100644 pkg/collector/upgrade/v0_61_0-output.yaml create mode 100644 pkg/collector/upgrade/v0_61_0.go create mode 100644 pkg/collector/upgrade/v0_61_0_test.go diff --git a/pkg/collector/upgrade/v0_61_0-input.yaml b/pkg/collector/upgrade/v0_61_0-input.yaml new file mode 100644 index 0000000000..3a09263e22 --- /dev/null +++ b/pkg/collector/upgrade/v0_61_0-input.yaml @@ -0,0 +1,22 @@ +--- +receivers: + jaeger: + protocols: + grpc: + remote_sampling: + endpoint: "jaeger-collector1:14250" + strategy_file: "/etc/strategy.json" + strategy_file_reload_interval: 10s + + jaeger/2: + protocols: + grpc: + remote_sampling: + endpoint: "jaeger-collector2:14251" + tls: + insecure: true +service: + pipelines: + traces: + receivers: [jaeger, jaeger/2] + exporters: [nop] diff --git a/pkg/collector/upgrade/v0_61_0-output.yaml b/pkg/collector/upgrade/v0_61_0-output.yaml new file mode 100644 index 0000000000..ae9278d979 --- /dev/null +++ b/pkg/collector/upgrade/v0_61_0-output.yaml @@ -0,0 +1,33 @@ +--- +extensions: + jaegerremotesampling: + source: + remote: + endpoint: jaeger-collector1:14250 + reload_interval: 10s + file: /etc/strategy.json + jaegerremotesampling/2: + source: + remote: + endpoint: jaeger-collector2:14251 + tls: + insecure: true +receivers: + jaeger: + protocols: + grpc: null + jaeger/2: + protocols: + grpc: null + +service: + extensions: + - jaegerremotesampling + - jaegerremotesampling/2 + pipelines: + traces: + exporters: + - nop + receivers: + - jaeger + - jaeger/2 diff --git a/pkg/collector/upgrade/v0_61_0.go b/pkg/collector/upgrade/v0_61_0.go new file mode 100644 index 0000000000..e6c3c28bc6 --- /dev/null +++ b/pkg/collector/upgrade/v0_61_0.go @@ -0,0 +1,157 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package upgrade + +import ( + "fmt" + "sort" + "strings" + + "gopkg.in/yaml.v2" + corev1 "k8s.io/api/core/v1" + + "github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1" + "github.com/open-telemetry/opentelemetry-operator/pkg/collector/adapters" +) + +func upgrade0_61_0(u VersionUpgrade, otelcol *v1alpha1.OpenTelemetryCollector) (*v1alpha1.OpenTelemetryCollector, error) { + if len(otelcol.Spec.Config) == 0 { + return otelcol, nil + } + + otelCfg, err := adapters.ConfigFromString(otelcol.Spec.Config) + if err != nil { + return otelcol, fmt.Errorf("couldn't upgrade to v0.61.0, failed to parse configuration: %w", err) + } + + // Search for removed Jaeger remote sampling settings. (https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/14163) + receiversConfig, ok := otelCfg["receivers"].(map[any]any) + if !ok { + // In case there is no extensions config. + return otelcol, nil + } + + jaegerRec := make(map[any]any, 0) + for key, rc := range receiversConfig { + k, ok := key.(string) + if !ok { + continue + } + cfg, ok := rc.(map[any]any) + // check if jaeger is configured + if !ok || !strings.HasPrefix(k, "jaeger") { + continue + } + // check if remote sampling settings exit + rs, ok := cfg["remote_sampling"] + if !ok { + continue + } + jaegerRec[k] = rs + } + + if len(jaegerRec) == 0 { + // nothing to do + return otelcol, nil + } + + extensionsConfig, ok := otelCfg["extensions"].(map[any]any) + if !ok { + // In case there is no extensions config. + extensionsConfig = make(map[any]any) + } + + var jaegerExtenions []string + for name, oldCfg := range jaegerRec { + recName, ok := name.(string) + if !ok { + continue + } + extName := "jaegerremotesampling" + split := strings.Split(recName, "/") + if len(split) > 2 { + return nil, fmt.Errorf("couldn't upgrade to v0.61.0, failed to define extension name: %w", err) + } else if len(split) == 2 { + extName = fmt.Sprintf("%s/%s", extName, split[1]) + } + // Configure new Jaeger remote sampling extension. (https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/6510) + newCfg, err := upgradeRemoteSamplingConfigTo0_61_0(oldCfg) + if err != nil { + return nil, err + } + extensionsConfig[extName] = newCfg + jaegerExtenions = append(jaegerExtenions, extName) + } + + otelCfg["extensions"] = extensionsConfig + serviceConfig, ok := otelCfg["service"].(map[any]any) + if !ok { + // In case there is no extensions config. + serviceConfig = make(map[any]any) + } + + extensionConfig, ok := serviceConfig["extensions"].([]any) + if !ok { + extensionConfig = make([]any, 0) + } + for _, name := range jaegerExtenions { + extensionConfig = append(extensionConfig, name) + } + serviceConfig["extensions"] = extensionConfig + otelCfg["service"] = serviceConfig + + res, err := yaml.Marshal(otelCfg) + if err != nil { + return otelcol, fmt.Errorf("couldn't upgrade to v0.61.0, failed to marshall back configuration: %w", err) + } + otelcol.Spec.Config = string(res) + keys := make([]string, 0, len(jaegerRec)) + for kk := range jaegerRec { + if k, ok := kk.(string); ok { + keys = append(keys, k) + } + } + sort.Strings(keys) + existing := &corev1.ConfigMap{} + updated := existing.DeepCopy() + u.Recorder.Event(updated, "Normal", "Upgrade", + fmt.Sprintf("upgrade to v0.61.0 replaced the deprecated jaeger receiver settings with "+ + "jaegerremotesampling extension settings. Affected receivers are: %v", keys), + ) + fmt.Println(otelcol.Spec.Config) + return otelcol, nil +} + +func upgradeRemoteSamplingConfigTo0_61_0(input any) (any, error) { + origin, ok := input.(map[any]any) + if !ok { + return nil, fmt.Errorf("couldn't upgrade to v0.61.0, failed to convert receiver: %v", origin) + } + newCfg := make(map[any]map[any]any) + if _, ok := newCfg["source"]; !ok { + newCfg["source"] = make(map[any]any) + } + newCfg["source"]["remote"] = map[any]any{"endpoint": origin["endpoint"]} + newCfg["source"]["tls"] = origin["tls"] + newCfg["source"]["reload_interval"] = origin["strategy_file"] + newCfg["source"]["file"] = origin["strategy_file_reload_interval"] + + delete(origin, "endpoint") + delete(origin, "tls") + delete(origin, "strategy_file") + delete(origin, "strategy_file_reload_interval") + + return origin, nil +} diff --git a/pkg/collector/upgrade/v0_61_0_test.go b/pkg/collector/upgrade/v0_61_0_test.go new file mode 100644 index 0000000000..55563759cf --- /dev/null +++ b/pkg/collector/upgrade/v0_61_0_test.go @@ -0,0 +1,65 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package upgrade_test + +import ( + "context" + _ "embed" + "testing" + + "github.com/stretchr/testify/assert" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/tools/record" + + "github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1" + "github.com/open-telemetry/opentelemetry-operator/internal/version" + "github.com/open-telemetry/opentelemetry-operator/pkg/collector/upgrade" +) + +var ( + //go:embed v0_61_0-input.yaml + input string + //go:embed v0_61_0-output.yaml + output string +) + +func Test0_61_0Upgrade(t *testing.T) { + collectorInstance := v1alpha1.OpenTelemetryCollector{ + TypeMeta: metav1.TypeMeta{ + Kind: "OpenTelemetryCollector", + APIVersion: "v1alpha1", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "otel-my-instance", + Namespace: "somewhere", + }, + Spec: v1alpha1.OpenTelemetryCollectorSpec{ + Config: input, + }, + } + + collectorInstance.Status.Version = "0.60.0" + //Test to remove port and change endpoint value. + versionUpgrade := &upgrade.VersionUpgrade{ + Log: logger, + Version: version.Get(), + Client: k8sClient, + Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize), + } + + upgradedInstance, err := versionUpgrade.ManagedInstance(context.Background(), collectorInstance) + assert.NoError(t, err) + assert.Equal(t, output, upgradedInstance.Spec.Config) +} diff --git a/pkg/collector/upgrade/versions.go b/pkg/collector/upgrade/versions.go index a311cf2ee1..ae0870f044 100644 --- a/pkg/collector/upgrade/versions.go +++ b/pkg/collector/upgrade/versions.go @@ -81,6 +81,10 @@ var ( Version: *semver.MustParse("0.57.2"), upgrade: upgrade0_57_2, }, + { + Version: *semver.MustParse("0.61.0"), + upgrade: upgrade0_61_0, + }, } // Latest represents the latest version that we need to upgrade. This is not necessarily the latest known version. From c38db317a762dc8f41bb8373a79e5644a83d4465 Mon Sep 17 00:00:00 2001 From: Benedikt Bongartz Date: Tue, 4 Oct 2022 18:48:30 +0200 Subject: [PATCH 2/5] upgrade routine to fail if jaeger receiver uses remote sapmling Signed-off-by: Benedikt Bongartz --- pkg/collector/upgrade/v0_61_0-input.yaml | 22 ----- pkg/collector/upgrade/v0_61_0-invalid.yaml | 8 ++ pkg/collector/upgrade/v0_61_0-output.yaml | 33 ------- pkg/collector/upgrade/v0_61_0-valid.yaml | 5 + pkg/collector/upgrade/v0_61_0.go | 107 ++------------------- pkg/collector/upgrade/v0_61_0_test.go | 57 +++++++---- 6 files changed, 60 insertions(+), 172 deletions(-) delete mode 100644 pkg/collector/upgrade/v0_61_0-input.yaml create mode 100644 pkg/collector/upgrade/v0_61_0-invalid.yaml delete mode 100644 pkg/collector/upgrade/v0_61_0-output.yaml create mode 100644 pkg/collector/upgrade/v0_61_0-valid.yaml diff --git a/pkg/collector/upgrade/v0_61_0-input.yaml b/pkg/collector/upgrade/v0_61_0-input.yaml deleted file mode 100644 index 3a09263e22..0000000000 --- a/pkg/collector/upgrade/v0_61_0-input.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -receivers: - jaeger: - protocols: - grpc: - remote_sampling: - endpoint: "jaeger-collector1:14250" - strategy_file: "/etc/strategy.json" - strategy_file_reload_interval: 10s - - jaeger/2: - protocols: - grpc: - remote_sampling: - endpoint: "jaeger-collector2:14251" - tls: - insecure: true -service: - pipelines: - traces: - receivers: [jaeger, jaeger/2] - exporters: [nop] diff --git a/pkg/collector/upgrade/v0_61_0-invalid.yaml b/pkg/collector/upgrade/v0_61_0-invalid.yaml new file mode 100644 index 0000000000..e04bc249a2 --- /dev/null +++ b/pkg/collector/upgrade/v0_61_0-invalid.yaml @@ -0,0 +1,8 @@ +--- +receivers: + jaeger: + protocols: + grpc: + remote_sampling: + strategy_file: "/etc/strategy.json" + strategy_file_reload_interval: 10s diff --git a/pkg/collector/upgrade/v0_61_0-output.yaml b/pkg/collector/upgrade/v0_61_0-output.yaml deleted file mode 100644 index ae9278d979..0000000000 --- a/pkg/collector/upgrade/v0_61_0-output.yaml +++ /dev/null @@ -1,33 +0,0 @@ ---- -extensions: - jaegerremotesampling: - source: - remote: - endpoint: jaeger-collector1:14250 - reload_interval: 10s - file: /etc/strategy.json - jaegerremotesampling/2: - source: - remote: - endpoint: jaeger-collector2:14251 - tls: - insecure: true -receivers: - jaeger: - protocols: - grpc: null - jaeger/2: - protocols: - grpc: null - -service: - extensions: - - jaegerremotesampling - - jaegerremotesampling/2 - pipelines: - traces: - exporters: - - nop - receivers: - - jaeger - - jaeger/2 diff --git a/pkg/collector/upgrade/v0_61_0-valid.yaml b/pkg/collector/upgrade/v0_61_0-valid.yaml new file mode 100644 index 0000000000..2dc25ca4a1 --- /dev/null +++ b/pkg/collector/upgrade/v0_61_0-valid.yaml @@ -0,0 +1,5 @@ +--- +receivers: + jaeger: + protocols: + grpc: diff --git a/pkg/collector/upgrade/v0_61_0.go b/pkg/collector/upgrade/v0_61_0.go index e6c3c28bc6..4cf470411f 100644 --- a/pkg/collector/upgrade/v0_61_0.go +++ b/pkg/collector/upgrade/v0_61_0.go @@ -16,12 +16,8 @@ package upgrade import ( "fmt" - "sort" "strings" - "gopkg.in/yaml.v2" - corev1 "k8s.io/api/core/v1" - "github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1" "github.com/open-telemetry/opentelemetry-operator/pkg/collector/adapters" ) @@ -43,7 +39,6 @@ func upgrade0_61_0(u VersionUpgrade, otelcol *v1alpha1.OpenTelemetryCollector) ( return otelcol, nil } - jaegerRec := make(map[any]any, 0) for key, rc := range receiversConfig { k, ok := key.(string) if !ok { @@ -54,104 +49,18 @@ func upgrade0_61_0(u VersionUpgrade, otelcol *v1alpha1.OpenTelemetryCollector) ( if !ok || !strings.HasPrefix(k, "jaeger") { continue } - // check if remote sampling settings exit - rs, ok := cfg["remote_sampling"] - if !ok { - continue - } - jaegerRec[k] = rs - } - - if len(jaegerRec) == 0 { - // nothing to do - return otelcol, nil - } - extensionsConfig, ok := otelCfg["extensions"].(map[any]any) - if !ok { - // In case there is no extensions config. - extensionsConfig = make(map[any]any) - } - - var jaegerExtenions []string - for name, oldCfg := range jaegerRec { - recName, ok := name.(string) - if !ok { + // check if remote sampling settings exit + if _, ok := cfg["remote_sampling"]; !ok { continue } - extName := "jaegerremotesampling" - split := strings.Split(recName, "/") - if len(split) > 2 { - return nil, fmt.Errorf("couldn't upgrade to v0.61.0, failed to define extension name: %w", err) - } else if len(split) == 2 { - extName = fmt.Sprintf("%s/%s", extName, split[1]) - } - // Configure new Jaeger remote sampling extension. (https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/6510) - newCfg, err := upgradeRemoteSamplingConfigTo0_61_0(oldCfg) - if err != nil { - return nil, err - } - extensionsConfig[extName] = newCfg - jaegerExtenions = append(jaegerExtenions, extName) - } - otelCfg["extensions"] = extensionsConfig - serviceConfig, ok := otelCfg["service"].(map[any]any) - if !ok { - // In case there is no extensions config. - serviceConfig = make(map[any]any) - } - - extensionConfig, ok := serviceConfig["extensions"].([]any) - if !ok { - extensionConfig = make([]any, 0) - } - for _, name := range jaegerExtenions { - extensionConfig = append(extensionConfig, name) - } - serviceConfig["extensions"] = extensionConfig - otelCfg["service"] = serviceConfig - - res, err := yaml.Marshal(otelCfg) - if err != nil { - return otelcol, fmt.Errorf("couldn't upgrade to v0.61.0, failed to marshall back configuration: %w", err) + const issueID = "https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/14707" + return nil, fmt.Errorf( + "jaegerremotesampling is no longer available as receiver configuration. "+ + "Please use the extension instead. See: %s", + issueID, + ) } - otelcol.Spec.Config = string(res) - keys := make([]string, 0, len(jaegerRec)) - for kk := range jaegerRec { - if k, ok := kk.(string); ok { - keys = append(keys, k) - } - } - sort.Strings(keys) - existing := &corev1.ConfigMap{} - updated := existing.DeepCopy() - u.Recorder.Event(updated, "Normal", "Upgrade", - fmt.Sprintf("upgrade to v0.61.0 replaced the deprecated jaeger receiver settings with "+ - "jaegerremotesampling extension settings. Affected receivers are: %v", keys), - ) - fmt.Println(otelcol.Spec.Config) return otelcol, nil } - -func upgradeRemoteSamplingConfigTo0_61_0(input any) (any, error) { - origin, ok := input.(map[any]any) - if !ok { - return nil, fmt.Errorf("couldn't upgrade to v0.61.0, failed to convert receiver: %v", origin) - } - newCfg := make(map[any]map[any]any) - if _, ok := newCfg["source"]; !ok { - newCfg["source"] = make(map[any]any) - } - newCfg["source"]["remote"] = map[any]any{"endpoint": origin["endpoint"]} - newCfg["source"]["tls"] = origin["tls"] - newCfg["source"]["reload_interval"] = origin["strategy_file"] - newCfg["source"]["file"] = origin["strategy_file_reload_interval"] - - delete(origin, "endpoint") - delete(origin, "tls") - delete(origin, "strategy_file") - delete(origin, "strategy_file_reload_interval") - - return origin, nil -} diff --git a/pkg/collector/upgrade/v0_61_0_test.go b/pkg/collector/upgrade/v0_61_0_test.go index 55563759cf..9572758fd3 100644 --- a/pkg/collector/upgrade/v0_61_0_test.go +++ b/pkg/collector/upgrade/v0_61_0_test.go @@ -19,7 +19,6 @@ import ( _ "embed" "testing" - "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/record" @@ -29,13 +28,14 @@ import ( ) var ( - //go:embed v0_61_0-input.yaml - input string - //go:embed v0_61_0-output.yaml - output string + //go:embed v0_61_0-valid.yaml + valid string + //go:embed v0_61_0-invalid.yaml + invalid string ) func Test0_61_0Upgrade(t *testing.T) { + collectorInstance := v1alpha1.OpenTelemetryCollector{ TypeMeta: metav1.TypeMeta{ Kind: "OpenTelemetryCollector", @@ -45,21 +45,42 @@ func Test0_61_0Upgrade(t *testing.T) { Name: "otel-my-instance", Namespace: "somewhere", }, - Spec: v1alpha1.OpenTelemetryCollectorSpec{ - Config: input, - }, + Spec: v1alpha1.OpenTelemetryCollectorSpec{}, } - collectorInstance.Status.Version = "0.60.0" - //Test to remove port and change endpoint value. - versionUpgrade := &upgrade.VersionUpgrade{ - Log: logger, - Version: version.Get(), - Client: k8sClient, - Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize), + tt := []struct { + name string + config string + expectErr bool + }{ + { + name: "no remote sampling config", // valid + config: valid, + expectErr: false, + }, + { + name: "has remote sampling config", // invalid + config: invalid, + expectErr: true, + }, } - upgradedInstance, err := versionUpgrade.ManagedInstance(context.Background(), collectorInstance) - assert.NoError(t, err) - assert.Equal(t, output, upgradedInstance.Spec.Config) + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + collectorInstance.Spec.Config = tc.config + collectorInstance.Status.Version = "0.60.0" + + versionUpgrade := &upgrade.VersionUpgrade{ + Log: logger, + Version: version.Get(), + Client: k8sClient, + Recorder: record.NewFakeRecorder(upgrade.RecordBufferSize), + } + + _, err := versionUpgrade.ManagedInstance(context.Background(), collectorInstance) + if (err != nil) != tc.expectErr { + t.Errorf("expect err: %t but got: %v", tc.expectErr, err) + } + }) + } } From 0bbe1151e095044aa837e3459475ae590cb07a8f Mon Sep 17 00:00:00 2001 From: Benedikt Bongartz Date: Thu, 6 Oct 2022 21:05:53 +0200 Subject: [PATCH 3/5] improve error message and create event when upgrade fails Signed-off-by: Benedikt Bongartz --- pkg/collector/upgrade/v0_61_0.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/collector/upgrade/v0_61_0.go b/pkg/collector/upgrade/v0_61_0.go index 4cf470411f..dff6365a63 100644 --- a/pkg/collector/upgrade/v0_61_0.go +++ b/pkg/collector/upgrade/v0_61_0.go @@ -15,6 +15,7 @@ package upgrade import ( + "errors" "fmt" "strings" @@ -56,11 +57,13 @@ func upgrade0_61_0(u VersionUpgrade, otelcol *v1alpha1.OpenTelemetryCollector) ( } const issueID = "https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/14707" - return nil, fmt.Errorf( + errStr := fmt.Sprintf( "jaegerremotesampling is no longer available as receiver configuration. "+ - "Please use the extension instead. See: %s", + "Please use the extension instead with a different remote sampling port. See: %s", issueID, ) + u.Recorder.Event(otelcol, "Error", "Upgrade", errStr) + return nil, errors.New(errStr) } return otelcol, nil } From 557a3ffd2a5f3d07f2a245adc1859c2559c15835 Mon Sep 17 00:00:00 2001 From: Benedikt Bongartz Date: Tue, 11 Oct 2022 19:22:08 +0200 Subject: [PATCH 4/5] always inform users about failed upgrades Signed-off-by: Benedikt Bongartz --- pkg/collector/upgrade/upgrade.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/collector/upgrade/upgrade.go b/pkg/collector/upgrade/upgrade.go index 93123a7f00..aafedea500 100644 --- a/pkg/collector/upgrade/upgrade.go +++ b/pkg/collector/upgrade/upgrade.go @@ -61,7 +61,9 @@ func (u VersionUpgrade) ManagedInstances(ctx context.Context) error { } upgraded, err := u.ManagedInstance(ctx, original) if err != nil { - // nothing to do at this level, just go to the next instance + const msg = "automated update not possible. Configuration must be checked manually and recreated." + itemLogger.Info(msg) + u.Recorder.Event(&original, "Error", "Upgrade", msg) continue } From 56c792a8581d0ff8e0511c3d9b1a731f94cec3d8 Mon Sep 17 00:00:00 2001 From: Benedikt Bongartz Date: Wed, 12 Oct 2022 10:20:14 +0200 Subject: [PATCH 5/5] follow recommendations Signed-off-by: Benedikt Bongartz --- pkg/collector/upgrade/{ => testdata}/v0_61_0-invalid.yaml | 0 pkg/collector/upgrade/{ => testdata}/v0_61_0-valid.yaml | 0 pkg/collector/upgrade/upgrade.go | 2 +- pkg/collector/upgrade/v0_61_0_test.go | 4 ++-- 4 files changed, 3 insertions(+), 3 deletions(-) rename pkg/collector/upgrade/{ => testdata}/v0_61_0-invalid.yaml (100%) rename pkg/collector/upgrade/{ => testdata}/v0_61_0-valid.yaml (100%) diff --git a/pkg/collector/upgrade/v0_61_0-invalid.yaml b/pkg/collector/upgrade/testdata/v0_61_0-invalid.yaml similarity index 100% rename from pkg/collector/upgrade/v0_61_0-invalid.yaml rename to pkg/collector/upgrade/testdata/v0_61_0-invalid.yaml diff --git a/pkg/collector/upgrade/v0_61_0-valid.yaml b/pkg/collector/upgrade/testdata/v0_61_0-valid.yaml similarity index 100% rename from pkg/collector/upgrade/v0_61_0-valid.yaml rename to pkg/collector/upgrade/testdata/v0_61_0-valid.yaml diff --git a/pkg/collector/upgrade/upgrade.go b/pkg/collector/upgrade/upgrade.go index aafedea500..7d6dae3bf2 100644 --- a/pkg/collector/upgrade/upgrade.go +++ b/pkg/collector/upgrade/upgrade.go @@ -61,7 +61,7 @@ func (u VersionUpgrade) ManagedInstances(ctx context.Context) error { } upgraded, err := u.ManagedInstance(ctx, original) if err != nil { - const msg = "automated update not possible. Configuration must be checked manually and recreated." + const msg = "automated update not possible. Configuration must be corrected manually and CR instance must be re-created." itemLogger.Info(msg) u.Recorder.Event(&original, "Error", "Upgrade", msg) continue diff --git a/pkg/collector/upgrade/v0_61_0_test.go b/pkg/collector/upgrade/v0_61_0_test.go index 9572758fd3..5c43aa32b4 100644 --- a/pkg/collector/upgrade/v0_61_0_test.go +++ b/pkg/collector/upgrade/v0_61_0_test.go @@ -28,9 +28,9 @@ import ( ) var ( - //go:embed v0_61_0-valid.yaml + //go:embed testdata/v0_61_0-valid.yaml valid string - //go:embed v0_61_0-invalid.yaml + //go:embed testdata/v0_61_0-invalid.yaml invalid string )