diff --git a/metadata/app/app010.go b/metadata/app/app010.go index a6fb27ae17e689e6fb42f97919b3317c81cad4d6..3d98a2d4854967ae67a65af36aaaca990ed6d6e3 100644 --- a/metadata/app/app010.go +++ b/metadata/app/app010.go @@ -92,12 +92,14 @@ func (a *App010) AddEnvironment(name, k8sSpecFlag string, spec *EnvironmentSpec) a.spec.Environments[name] = spec - ver, err := LibUpdater(a.fs, k8sSpecFlag, app010LibPath(a.root), true) - if err != nil { - return err - } + if k8sSpecFlag != "" { + ver, err := LibUpdater(a.fs, k8sSpecFlag, app010LibPath(a.root), true) + if err != nil { + return err + } - a.spec.Environments[name].KubernetesVersion = ver + a.spec.Environments[name].KubernetesVersion = ver + } return a.save() } diff --git a/metadata/app/app010_test.go b/metadata/app/app010_test.go index 8451ffeb6ade60291dfadcad4898b99aff21607d..89e33445ce4a22a0069affbe5037c89a4261731f 100644 --- a/metadata/app/app010_test.go +++ b/metadata/app/app010_test.go @@ -194,6 +194,35 @@ func TestApp010_AddEnvironment(t *testing.T) { }) } +func TestApp010_AddEnvironment_empty_spec_flag(t *testing.T) { + withApp010Fs(t, "app010_app.yaml", func(fs afero.Fs) { + app, err := NewApp010(fs, "/") + require.NoError(t, err) + + envs, err := app.Environments() + require.NoError(t, err) + + envLen := len(envs) + + env, err := app.Environment("default") + require.NoError(t, err) + + env.Destination.Namespace = "updated" + + err = app.AddEnvironment("default", "", env) + require.NoError(t, err) + + envs, err = app.Environments() + require.NoError(t, err) + require.Len(t, envs, envLen) + + env, err = app.Environment("default") + require.NoError(t, err) + require.Equal(t, "v1.7.0", env.KubernetesVersion) + require.Equal(t, "updated", env.Destination.Namespace) + }) +} + func TestApp010_RemoveEnvironment(t *testing.T) { withApp010Fs(t, "app010_app.yaml", func(fs afero.Fs) { app, err := NewApp010(fs, "/")