Skip to content

Commit

Permalink
feat(upgrade_to_v3): add migration warnings for tailing-sidecar-opera…
Browse files Browse the repository at this point in the history
…tor (#400)

Signed-off-by: Dominik Rosiek <drosiek@sumologic.com>

Signed-off-by: Dominik Rosiek <drosiek@sumologic.com>
  • Loading branch information
sumo-drosiek committed Nov 30, 2022
1 parent 5c6976c commit dfb0ff9
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/go/cmd/update-collection-v3/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
metricsserverupgrade "github.com/SumoLogic/sumologic-kubernetes-collection/tools/cmd/update-collection-v3/migrations/metrics-server-upgrade"
otellogsconfigmerge "github.com/SumoLogic/sumologic-kubernetes-collection/tools/cmd/update-collection-v3/migrations/otellogs-config-merge"
removeloadconfigfile "github.com/SumoLogic/sumologic-kubernetes-collection/tools/cmd/update-collection-v3/migrations/remove-load-config-file"
tailingsidecaroperatorupgrade "github.com/SumoLogic/sumologic-kubernetes-collection/tools/cmd/update-collection-v3/migrations/tailing-sidecar-operator-upgrade"
tracingreplaces "github.com/SumoLogic/sumologic-kubernetes-collection/tools/cmd/update-collection-v3/migrations/tracing-replaces"
"gopkg.in/yaml.v3"
)
Expand Down Expand Up @@ -106,6 +107,10 @@ var migrations = []Migration{
directory: "metrics-server-upgrade",
action: metricsserverupgrade.Migrate,
},
{
directory: "tailing-sidecar-operator-upgrade",
action: tailingsidecaroperatorupgrade.Migrate,
},
}

func migrateYaml(input string) (string, error) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package tailingsidecaroperatorupgrade

import (
"fmt"

"gopkg.in/yaml.v3"
)

type Values struct {
TailingSidecarOperator struct {
Rest map[string]interface{} `yaml:",inline"`
} `yaml:"tailing-sidecar-operator,omitempty"`
Rest map[string]interface{} `yaml:",inline"`
}

func Migrate(inputYaml string) (outputYaml string, err error) {
values, err := parseValues(inputYaml)
if err != nil {
return "", fmt.Errorf("error parsing input yaml: %v", err)
}

values = migrate(&values)
if err != nil {
return "", fmt.Errorf("error migrating: %v", err)
}

return inputYaml, nil
}

func parseValues(inputYaml string) (Values, error) {
var v Values
err := yaml.Unmarshal([]byte(inputYaml), &v)
return v, err
}

func migrate(values *Values) Values {
log := migrateLog(values)

if log != "" {
fmt.Println(log)
}

return *values
}

func migrateLog(values *Values) string {
if len(values.TailingSidecarOperator.Rest) == 0 {
return ""
}

return "WARNING! Changes in tailing-sidecar-operator detected, which may require manual migration\n" +
"For details please see the following documentations:\n - https://github.com/SumoLogic/sumologic-kubernetes-collection/blob/main/docs/v3-migration-doc.md\n" +
" - https://github.com/SumoLogic/tailing-sidecar/blob/63e7c7f38e9e1edf1a105407b4aea8322101ab8a/CHANGELOG.md"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package tailingsidecaroperatorupgrade

import (
"testing"

"gotest.tools/assert"
)

var (
foo interface{} = "bar"
)

func TestMain(t *testing.T) {
for _, tt := range []struct {
input func() *Values
expected string
name string
}{
{
name: "all",
input: func() *Values {
values := &Values{}
values.TailingSidecarOperator.Rest = map[string]interface{}{
"foo": foo,
}
return values
},
expected: `WARNING! Changes in tailing-sidecar-operator detected, which may require manual migration
For details please see the following documentations:
- https://github.com/SumoLogic/sumologic-kubernetes-collection/blob/main/docs/v3-migration-doc.md
- https://github.com/SumoLogic/tailing-sidecar/blob/63e7c7f38e9e1edf1a105407b4aea8322101ab8a/CHANGELOG.md`,
},
{
name: "no values",
input: func() *Values {
values := &Values{}
return values
},
expected: ``,
},
} {
t.Run(tt.name, func(t *testing.T) {
val := migrateLog(tt.input())
assert.Equal(t, tt.expected, val)
})
}
}

0 comments on commit dfb0ff9

Please sign in to comment.