From 4166b418c932f9ed637e9e6d59cc14130a6b170a Mon Sep 17 00:00:00 2001 From: Marc Sutter Date: Thu, 11 Jul 2019 02:13:34 +0200 Subject: [PATCH] feat: Adopt existing K8s resources as Helm release on install (#746) Use with the helm-x support(#673) This enhances config syntax to accept adopt: [NS/KIND/RESOURCE_NAME] at the release level so that helmfile calls helm-x to transparently import existing resources at the installation time. Resolves #84 --- pkg/state/helmx.go | 4 ++++ pkg/state/state.go | 1 + 2 files changed, 5 insertions(+) diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index d8a73e2ab..92e11441d 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -19,6 +19,10 @@ func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) ([]s flags = append(flags, "--dependency", dep) } + for _, adopt := range release.Adopt { + flags = append(flags, "--adopt", adopt) + } + jsonPatches := release.JSONPatches if len(jsonPatches) > 0 { generatedFiles, err := st.generateTemporaryValuesFiles(jsonPatches, release.MissingFileHandler) diff --git a/pkg/state/state.go b/pkg/state/state.go index e92b878ea..f47e13346 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -168,6 +168,7 @@ type ReleaseSpec struct { Dependencies []Dependency `yaml:"dependencies"` JSONPatches []interface{} `yaml:"jsonPatches"` StrategicMergePatches []interface{} `yaml:"strategicMergePatches"` + Adopt []string `yaml:"adopt"` // generatedValues are values that need cleaned up on exit generatedValues []string