mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-10-01 01:36:09 -04:00
efcd0337b4
Run with: constellation upgrade execute --helm. This will only upgrade the helm charts. No config is needed. Upgrades are implemented via helm's upgrade action, i.e. they automatically roll back if something goes wrong. Releases could still be managed via helm, even after an upgrade with constellation has been done. Currently not user facing as CRD/CR backups are still in progress. These backups should be automatically created and saved to the user's disk as updates may delete CRs. This happens implicitly through CRD upgrades, which are part of microservice upgrades.
110 lines
2.1 KiB
Go
110 lines
2.1 KiB
Go
/*
|
|
Copyright (c) Edgeless Systems GmbH
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
package helm
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestMergeMaps(t *testing.T) {
|
|
testCases := map[string]struct {
|
|
vals map[string]any
|
|
extraVals map[string]any
|
|
expected map[string]any
|
|
}{
|
|
"equal": {
|
|
vals: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "foo",
|
|
"key2": "bar",
|
|
},
|
|
},
|
|
extraVals: map[string]any{
|
|
"join-service": map[string]any{
|
|
"extraKey1": "extraFoo",
|
|
"extraKey2": "extraBar",
|
|
},
|
|
},
|
|
expected: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "foo",
|
|
"key2": "bar",
|
|
"extraKey1": "extraFoo",
|
|
"extraKey2": "extraBar",
|
|
},
|
|
},
|
|
},
|
|
"missing join-service extraVals": {
|
|
vals: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "foo",
|
|
"key2": "bar",
|
|
},
|
|
},
|
|
extraVals: map[string]any{
|
|
"extraKey1": "extraFoo",
|
|
"extraKey2": "extraBar",
|
|
},
|
|
expected: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "foo",
|
|
"key2": "bar",
|
|
},
|
|
"extraKey1": "extraFoo",
|
|
"extraKey2": "extraBar",
|
|
},
|
|
},
|
|
"missing join-service vals": {
|
|
vals: map[string]any{
|
|
"key1": "foo",
|
|
"key2": "bar",
|
|
},
|
|
extraVals: map[string]any{
|
|
"join-service": map[string]any{
|
|
"extraKey1": "extraFoo",
|
|
"extraKey2": "extraBar",
|
|
},
|
|
},
|
|
expected: map[string]any{
|
|
"key1": "foo",
|
|
"key2": "bar",
|
|
"join-service": map[string]any{
|
|
"extraKey1": "extraFoo",
|
|
"extraKey2": "extraBar",
|
|
},
|
|
},
|
|
},
|
|
"key collision": {
|
|
vals: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "foo",
|
|
},
|
|
},
|
|
extraVals: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "bar",
|
|
},
|
|
},
|
|
expected: map[string]any{
|
|
"join-service": map[string]any{
|
|
"key1": "bar",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
for name, tc := range testCases {
|
|
t.Run(name, func(t *testing.T) {
|
|
assert := assert.New(t)
|
|
newVals := MergeMaps(tc.vals, tc.extraVals)
|
|
assert.Equal(tc.expected, newVals)
|
|
})
|
|
}
|
|
}
|