mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-21 11:05:56 +02:00
fix: eliminate os.Chdir in sequential helmfiles to fix relative path resolution (#2410)
* fix: eliminate os.Chdir in sequential helmfiles to fix relative path resolution The sequential code path used within() → os.Chdir() to change the process-wide working directory when processing helmfile.d files. This broke relative environment variable paths (e.g. KUBECONFIG=kubeconfig.yaml) because they resolved from the wrong directory after chdir. Replace the chdir-based approach with the same baseDir parameter pattern used by the parallel code path, passing explicit directory context through loadDesiredStateFromYamlWithBaseDir() instead of mutating global process state. Closes #2409 Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> * fix: restore within() for single-file sequential to preserve chart path format The previous approach used baseDir for all sequential processing, which changed chart path format in output (e.g. from "../../../../charts/raw" to "test/integration/charts/raw"). This broke integration tests that compare chart paths in expected output. Now the sequential branch uses two strategies: - Single file: use os.Chdir via within() to preserve backward-compatible relative chart paths in output - Multiple files with --sequential-helmfiles: use baseDir parameter to avoid os.Chdir, fixing relative env var paths like KUBECONFIG (#2409) Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> * fix: revert e2e snapshot outputs to match within() behavior The previous commit restored within() for single-file sequential processing, which produces relative chart paths (e.g. ../../charts/raw) and filename-only FilePath. Revert the e2e snapshot expected outputs to match main branch since single-file behavior is now identical. Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> * fix: restructure integration test for multi-file sequential processing - Point -f at helmfile.d/ directly (not parent dir) so findDesiredStateFiles discovers the yaml files - Add second helmfile to trigger baseDir path (len > 1) - Inline environment config to avoid base file relative path issues - Verify both releases appear in output instead of comparing with parallel (which may differ in ordering) Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> * fix: reduce cognitive complexity and improve accuracy of sequential helmfiles Replace inline visitSubHelmfiles closure with calls to the existing processNestedHelmfiles() method, matching the parallel path. This eliminates duplicated nested logic and reduces gocognit complexity below the CI threshold of 110. Also fixes help text and docs to accurately describe that single-file processing still uses within(), and adds kubeContext verification to the integration test. Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> * test: validate kubeContext resolution in sequential helmfiles integration test Restructure the integration test to replicate the exact user scenario from issue #2409: - Multiple files in helmfile.d/ using bases: with relative paths (../bases/) for environments and defaults - Environment values set kubeContext via .Environment.Values - helmDefaults.kubeContext rendered from gotmpl - Local chart references (../../../../charts/raw) from helmfile.d/ - Run diff against the minikube cluster to exercise kubeContext resolution, which would fail with "context does not exist" if os.Chdir() broke relative path resolution - Also verify template output for both releases and relative values file (values/common.yaml) resolution Fix normalizeChart() in util.go to be idempotent — skip re-prefixing when the chart path already starts with basePath. This prevents double-prefixing of local chart paths (e.g. helmfile.d/test/.../raw) when normalizeChart is called multiple times (once during chart preparation and again during diff/sync). Signed-off-by: Aditya Menon <amenon@canarytechnologies.com> --------- Signed-off-by: Aditya Menon <amenon@canarytechnologies.com>
This commit is contained in:
+4
-1
@@ -150,7 +150,10 @@ The name of a release can be used as a label: "--selector name=myrelease"`)
|
||||
fs.BoolVar(&globalOptions.EnableLiveOutput, "enable-live-output", globalOptions.EnableLiveOutput, `Show live output from the Helm binary Stdout/Stderr into Helmfile own Stdout/Stderr.
|
||||
It only applies for the Helm CLI commands, Stdout/Stderr for Hooks are still displayed only when it's execution finishes.`)
|
||||
fs.BoolVarP(&globalOptions.Interactive, "interactive", "i", false, "Request confirmation before attempting to modify clusters")
|
||||
fs.BoolVar(&globalOptions.SequentialHelmfiles, "sequential-helmfiles", false, "Process helmfile.d files sequentially in alphabetical order instead of in parallel. Useful when file order matters for dependencies.")
|
||||
fs.BoolVar(&globalOptions.SequentialHelmfiles, "sequential-helmfiles", false, `Process helmfile.d files sequentially in alphabetical order instead of in parallel.
|
||||
Useful when file order matters for dependencies (e.g., databases before applications).
|
||||
When processing multiple files, paths are resolved without changing the process working directory,
|
||||
so relative environment variables like KUBECONFIG work correctly.`)
|
||||
// avoid 'pflag: help requested' error (#251)
|
||||
fs.BoolP("help", "h", false, "help for helmfile")
|
||||
}
|
||||
|
||||
@@ -655,6 +655,7 @@ Flags:
|
||||
--state-values-file stringArray specify state values in a YAML file. Used to override .Values within the helmfile template (not values template).
|
||||
--state-values-set stringArray set state values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2). Used to override .Values within the helmfile template (not values template).
|
||||
--state-values-set-string stringArray set state STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2). Used to override .Values within the helmfile template (not values template).
|
||||
--sequential-helmfiles Process helmfile.d files sequentially in alphabetical order instead of in parallel
|
||||
--strip-args-values-on-exit-error Strip the potential secret values of the helm command args contained in a helmfile error message (default true)
|
||||
-v, --version version for helmfile
|
||||
|
||||
@@ -1443,6 +1444,8 @@ For example, you can use a `<two digit number>-<microservice>.yaml` naming conve
|
||||
helmfile --sequential-helmfiles sync
|
||||
```
|
||||
|
||||
> **Note:** When processing multiple helmfile.d files, both parallel and sequential modes resolve paths without changing the process working directory, so relative environment variables like `KUBECONFIG` work correctly.
|
||||
|
||||
### Glob patterns
|
||||
|
||||
In case you want more control over how multiple `helmfile.yaml` files are organized, use `helmfiles:` configuration key in the `helmfile.yaml`:
|
||||
|
||||
+152
-131
@@ -756,6 +756,11 @@ func (a *App) within(dir string, do func() error) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Skip chdir if we're already in the target directory
|
||||
if absDir == prev {
|
||||
return do()
|
||||
}
|
||||
|
||||
a.Logger.Debugf("changing working directory to \"%s\"", absDir)
|
||||
|
||||
if err := a.fs.Chdir(absDir); err != nil {
|
||||
@@ -776,40 +781,6 @@ func (a *App) within(dir string, do func() error) error {
|
||||
return appErr
|
||||
}
|
||||
|
||||
func (a *App) visitStateFiles(fileOrDir string, opts LoadOpts, do func(string, string) error) error {
|
||||
desiredStateFiles, err := a.findDesiredStateFiles(fileOrDir, opts)
|
||||
if err != nil {
|
||||
return appError("", err)
|
||||
}
|
||||
|
||||
for _, relPath := range desiredStateFiles {
|
||||
var file string
|
||||
var dir string
|
||||
if a.fs.DirectoryExistsAt(relPath) {
|
||||
file = relPath
|
||||
dir = relPath
|
||||
} else {
|
||||
file = filepath.Base(relPath)
|
||||
dir = filepath.Dir(relPath)
|
||||
}
|
||||
|
||||
a.Logger.Debugf("processing file \"%s\" in directory \"%s\"", file, dir)
|
||||
|
||||
absd, errAbsDir := a.fs.Abs(dir)
|
||||
if errAbsDir != nil {
|
||||
return errAbsDir
|
||||
}
|
||||
err := a.within(absd, func() error {
|
||||
return do(file, absd)
|
||||
})
|
||||
if err != nil {
|
||||
return appError(fmt.Sprintf("in %s/%s", dir, file), err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *App) loadDesiredStateFromYaml(file string, opts ...LoadOpts) (*state.HelmState, error) {
|
||||
return a.loadDesiredStateFromYamlWithBaseDir(file, "", opts...)
|
||||
}
|
||||
@@ -894,10 +865,6 @@ func (a *App) getHelm(st *state.HelmState) (helmexec.Interface, error) {
|
||||
return a.helms[key], nil
|
||||
}
|
||||
|
||||
func (a *App) visitStates(fileOrDir string, defOpts LoadOpts, converge func(*state.HelmState) (bool, []error)) error {
|
||||
return a.visitStatesWithContext(fileOrDir, defOpts, converge, nil)
|
||||
}
|
||||
|
||||
// processStateFileParallel processes a single helmfile state file in a goroutine.
|
||||
// It is used for parallel processing of multiple helmfile.d files.
|
||||
// Results are communicated via errChan (errors) and matchChan (whether file had matching releases).
|
||||
@@ -946,11 +913,20 @@ func (a *App) processStateFileParallel(relPath string, defOpts LoadOpts, converg
|
||||
|
||||
st.Selectors = opts.Selectors
|
||||
|
||||
// Track whether any releases matched across nested helmfiles and converge.
|
||||
// Aggregate into a single send to matchChan to avoid overfilling the buffer
|
||||
// (which is sized to len(desiredStateFiles), i.e. one send per goroutine).
|
||||
anyMatched := false
|
||||
|
||||
if len(st.Helmfiles) > 0 && !opts.Reverse {
|
||||
if err := a.processNestedHelmfiles(st, absd, file, defOpts, opts, converge, sharedCtx); err != nil {
|
||||
matched, err := a.processNestedHelmfiles(st, absd, file, defOpts, opts, converge, sharedCtx)
|
||||
if err != nil {
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
if matched {
|
||||
anyMatched = true
|
||||
}
|
||||
}
|
||||
|
||||
templated, err := st.ExecuteTemplates()
|
||||
@@ -978,19 +954,31 @@ func (a *App) processStateFileParallel(relPath string, defOpts LoadOpts, converg
|
||||
return
|
||||
}
|
||||
|
||||
// Report if this file had matching releases
|
||||
if processed {
|
||||
matchChan <- true
|
||||
anyMatched = true
|
||||
}
|
||||
|
||||
if opts.Reverse && len(st.Helmfiles) > 0 {
|
||||
if err := a.processNestedHelmfiles(st, absd, file, defOpts, opts, converge, sharedCtx); err != nil {
|
||||
matched, err := a.processNestedHelmfiles(st, absd, file, defOpts, opts, converge, sharedCtx)
|
||||
if err != nil {
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
if matched {
|
||||
anyMatched = true
|
||||
}
|
||||
}
|
||||
|
||||
if anyMatched {
|
||||
matchChan <- true
|
||||
}
|
||||
}
|
||||
|
||||
func (a *App) processNestedHelmfiles(st *state.HelmState, absd, file string, defOpts, opts LoadOpts, converge func(*state.HelmState) (bool, []error), sharedCtx *Context) error {
|
||||
// processNestedHelmfiles processes sub-helmfiles referenced from a parent state.
|
||||
// It returns true if any nested helmfile successfully found matching releases,
|
||||
// which is used to update the caller's noMatchInHelmfiles tracking.
|
||||
func (a *App) processNestedHelmfiles(st *state.HelmState, absd, file string, defOpts, opts LoadOpts, converge func(*state.HelmState) (bool, []error), sharedCtx *Context) (bool, error) {
|
||||
anyMatched := false
|
||||
for i, m := range st.Helmfiles {
|
||||
optsForNestedState := LoadOpts{
|
||||
CalleePath: filepath.Join(absd, file),
|
||||
@@ -1008,17 +996,22 @@ func (a *App) processNestedHelmfiles(st *state.HelmState, absd, file string, def
|
||||
switch err.(type) {
|
||||
case *NoMatchingHelmfileError:
|
||||
default:
|
||||
return appError(fmt.Sprintf("in .helmfiles[%d]", i), err)
|
||||
return anyMatched, appError(fmt.Sprintf("in .helmfiles[%d]", i), err)
|
||||
}
|
||||
} else {
|
||||
anyMatched = true
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return anyMatched, nil
|
||||
}
|
||||
|
||||
func (a *App) visitStatesWithContext(fileOrDir string, defOpts LoadOpts, converge func(*state.HelmState) (bool, []error), sharedCtx *Context) error {
|
||||
noMatchInHelmfiles := true
|
||||
|
||||
desiredStateFiles, err := a.findDesiredStateFiles(fileOrDir, defOpts)
|
||||
desiredStateFiles, findErr := a.findDesiredStateFiles(fileOrDir, defOpts)
|
||||
if findErr != nil {
|
||||
return appError("", findErr)
|
||||
}
|
||||
|
||||
// Process files in parallel if we have multiple files and parallel mode is enabled
|
||||
shouldProcessInParallel := len(desiredStateFiles) > 1 && !a.SequentialHelmfiles
|
||||
@@ -1052,109 +1045,137 @@ func (a *App) visitStatesWithContext(fileOrDir string, defOpts LoadOpts, converg
|
||||
noMatchInHelmfiles = false
|
||||
}
|
||||
} else {
|
||||
// Sequential processing for single file or when --sequential-helmfiles is set
|
||||
err = a.visitStateFiles(fileOrDir, defOpts, func(f, d string) (retErr error) {
|
||||
// Sequential processing for single file or when --sequential-helmfiles is set.
|
||||
//
|
||||
// Two strategies for path resolution:
|
||||
// - Single file: use os.Chdir (via within()) to preserve backward-compatible
|
||||
// chart path format in output (relative to the helmfile directory).
|
||||
// - Multiple files with --sequential-helmfiles: use baseDir parameter to avoid
|
||||
// os.Chdir, which fixes relative env var paths like KUBECONFIG (#2409).
|
||||
useBaseDir := len(desiredStateFiles) > 1
|
||||
|
||||
for _, relPath := range desiredStateFiles {
|
||||
var file string
|
||||
var dir string
|
||||
if a.fs.DirectoryExistsAt(relPath) {
|
||||
file = relPath
|
||||
dir = relPath
|
||||
} else {
|
||||
file = filepath.Base(relPath)
|
||||
dir = filepath.Dir(relPath)
|
||||
}
|
||||
|
||||
absd, errAbsDir := a.fs.Abs(dir)
|
||||
if errAbsDir != nil {
|
||||
return errAbsDir
|
||||
}
|
||||
|
||||
opts := defOpts.DeepCopy()
|
||||
|
||||
if opts.CalleePath == "" {
|
||||
opts.CalleePath = f
|
||||
opts.CalleePath = file
|
||||
}
|
||||
|
||||
st, err := a.loadDesiredStateFromYaml(f, opts)
|
||||
processFile := func() (retErr error) {
|
||||
var st *state.HelmState
|
||||
var loadErr error
|
||||
|
||||
ctx := context{app: a, st: st, retainValues: defOpts.RetainValuesFiles}
|
||||
if useBaseDir {
|
||||
// Multi-file sequential: use baseDir for path resolution
|
||||
// instead of os.Chdir to avoid breaking relative env var paths.
|
||||
baseDir := dir
|
||||
if dir == "." {
|
||||
baseDir = ""
|
||||
}
|
||||
st, loadErr = a.loadDesiredStateFromYamlWithBaseDir(file, baseDir, opts)
|
||||
} else {
|
||||
// Single file: CWD is set by within(), load without baseDir
|
||||
st, loadErr = a.loadDesiredStateFromYaml(file, opts)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
switch stateLoadErr := err.(type) {
|
||||
case *state.StateLoadError:
|
||||
switch stateLoadErr.Cause.(type) {
|
||||
case *state.UndefinedEnvError:
|
||||
return nil
|
||||
ctx := context{app: a, st: st, retainValues: defOpts.RetainValuesFiles}
|
||||
|
||||
if loadErr != nil {
|
||||
switch stateLoadErr := loadErr.(type) {
|
||||
case *state.StateLoadError:
|
||||
switch stateLoadErr.Cause.(type) {
|
||||
case *state.UndefinedEnvError:
|
||||
return nil
|
||||
default:
|
||||
return ctx.wrapErrs(loadErr)
|
||||
}
|
||||
default:
|
||||
return ctx.wrapErrs(err)
|
||||
return ctx.wrapErrs(loadErr)
|
||||
}
|
||||
default:
|
||||
return ctx.wrapErrs(err)
|
||||
}
|
||||
}
|
||||
st.Selectors = opts.Selectors
|
||||
|
||||
visitSubHelmfiles := func() error {
|
||||
if len(st.Helmfiles) > 0 {
|
||||
noMatchInSubHelmfiles := true
|
||||
for i, m := range st.Helmfiles {
|
||||
optsForNestedState := LoadOpts{
|
||||
CalleePath: filepath.Join(d, f),
|
||||
Environment: m.Environment,
|
||||
Reverse: defOpts.Reverse,
|
||||
RetainValuesFiles: defOpts.RetainValuesFiles,
|
||||
}
|
||||
if (m.Selectors == nil && !isExplicitSelectorInheritanceEnabled()) || m.SelectorsInherited {
|
||||
optsForNestedState.Selectors = opts.Selectors
|
||||
} else {
|
||||
optsForNestedState.Selectors = m.Selectors
|
||||
}
|
||||
if st == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := a.visitStates(m.Path, optsForNestedState, converge); err != nil {
|
||||
switch err.(type) {
|
||||
case *NoMatchingHelmfileError:
|
||||
default:
|
||||
return appError(fmt.Sprintf("in .helmfiles[%d]", i), err)
|
||||
}
|
||||
} else {
|
||||
noMatchInSubHelmfiles = false
|
||||
}
|
||||
st.Selectors = opts.Selectors
|
||||
|
||||
if !opts.Reverse && len(st.Helmfiles) > 0 {
|
||||
matched, err := a.processNestedHelmfiles(st, absd, file, defOpts, opts, converge, sharedCtx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if matched {
|
||||
noMatchInHelmfiles = false
|
||||
}
|
||||
noMatchInHelmfiles = noMatchInHelmfiles && noMatchInSubHelmfiles
|
||||
}
|
||||
|
||||
templated, tmplErr := st.ExecuteTemplates()
|
||||
if tmplErr != nil {
|
||||
return appError(fmt.Sprintf("failed executing release templates in \"%s\"", file), tmplErr)
|
||||
}
|
||||
|
||||
var (
|
||||
processed bool
|
||||
errs []error
|
||||
)
|
||||
|
||||
CleanWaitGroup.Add(1)
|
||||
defer func() {
|
||||
defer CleanWaitGroup.Done()
|
||||
cleanErr := context{app: a, st: templated, retainValues: defOpts.RetainValuesFiles}.clean(errs)
|
||||
if retErr == nil {
|
||||
retErr = cleanErr
|
||||
} else if cleanErr != nil {
|
||||
a.Logger.Debugf("Failed to clean up temporary files generated while processing %q: %v", templated.FilePath, cleanErr)
|
||||
}
|
||||
}()
|
||||
|
||||
processed, errs = converge(templated)
|
||||
|
||||
if len(errs) > 0 {
|
||||
return errs[0]
|
||||
}
|
||||
|
||||
noMatchInHelmfiles = noMatchInHelmfiles && !processed
|
||||
|
||||
if opts.Reverse && len(st.Helmfiles) > 0 {
|
||||
matched, err := a.processNestedHelmfiles(st, absd, file, defOpts, opts, converge, sharedCtx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if matched {
|
||||
noMatchInHelmfiles = false
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
if !opts.Reverse {
|
||||
err = visitSubHelmfiles()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var fileErr error
|
||||
if useBaseDir {
|
||||
fileErr = processFile()
|
||||
} else {
|
||||
fileErr = a.within(absd, processFile)
|
||||
}
|
||||
|
||||
templated, tmplErr := st.ExecuteTemplates()
|
||||
if tmplErr != nil {
|
||||
return appError(fmt.Sprintf("failed executing release templates in \"%s\"", f), tmplErr)
|
||||
if fileErr != nil {
|
||||
return appError(fmt.Sprintf("in %s/%s", dir, file), fileErr)
|
||||
}
|
||||
|
||||
var (
|
||||
processed bool
|
||||
errs []error
|
||||
)
|
||||
|
||||
CleanWaitGroup.Add(1)
|
||||
defer func() {
|
||||
defer CleanWaitGroup.Done()
|
||||
cleanErr := context{app: a, st: templated, retainValues: defOpts.RetainValuesFiles}.clean(errs)
|
||||
if retErr == nil {
|
||||
retErr = cleanErr
|
||||
} else if cleanErr != nil {
|
||||
a.Logger.Debugf("Failed to clean up temporary files generated while processing %q: %v", templated.FilePath, cleanErr)
|
||||
}
|
||||
}()
|
||||
|
||||
processed, errs = converge(templated)
|
||||
|
||||
noMatchInHelmfiles = noMatchInHelmfiles && !processed
|
||||
|
||||
if opts.Reverse {
|
||||
err = visitSubHelmfiles()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if noMatchInHelmfiles {
|
||||
|
||||
@@ -0,0 +1,417 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/helmfile/vals"
|
||||
|
||||
ffs "github.com/helmfile/helmfile/pkg/filesystem"
|
||||
"github.com/helmfile/helmfile/pkg/helmexec"
|
||||
"github.com/helmfile/helmfile/pkg/testhelper"
|
||||
"github.com/helmfile/helmfile/pkg/testutil"
|
||||
)
|
||||
|
||||
// TestSequentialHelmfilesNoChdirCalled verifies that sequential processing
|
||||
// does NOT call os.Chdir(), which was the root cause of issue #2409.
|
||||
func TestSequentialHelmfilesNoChdirCalled(t *testing.T) {
|
||||
files := map[string]string{
|
||||
"/path/to/helmfile.d/01-first.yaml": `
|
||||
releases:
|
||||
- name: first-release
|
||||
chart: stable/chart-a
|
||||
namespace: default
|
||||
`,
|
||||
"/path/to/helmfile.d/02-second.yaml": `
|
||||
releases:
|
||||
- name: second-release
|
||||
chart: stable/chart-b
|
||||
namespace: default
|
||||
`,
|
||||
}
|
||||
|
||||
testFs := testhelper.NewTestFs(files)
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating vals runtime: %v", err)
|
||||
}
|
||||
|
||||
app := &App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "default",
|
||||
Logger: newAppTestLogger(),
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: true,
|
||||
}
|
||||
|
||||
app = injectFs(app, testFs)
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
err = app.ForEachState(
|
||||
Noop,
|
||||
false,
|
||||
SetFilter(true),
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
if testFs.ChdirCalls != 0 {
|
||||
t.Errorf("expected 0 Chdir calls in sequential mode, got %d", testFs.ChdirCalls)
|
||||
}
|
||||
}
|
||||
|
||||
// TestSequentialHelmfilesProcessesAllFiles verifies all files in helmfile.d
|
||||
// are processed when using sequential mode.
|
||||
func TestSequentialHelmfilesProcessesAllFiles(t *testing.T) {
|
||||
files := map[string]string{
|
||||
"/path/to/helmfile.d/001-app.yaml": `
|
||||
releases:
|
||||
- name: app1
|
||||
chart: stable/app1
|
||||
namespace: default
|
||||
`,
|
||||
"/path/to/helmfile.d/002-db.yaml": `
|
||||
releases:
|
||||
- name: db1
|
||||
chart: stable/postgresql
|
||||
namespace: default
|
||||
`,
|
||||
"/path/to/helmfile.d/003-cache.yaml": `
|
||||
releases:
|
||||
- name: cache1
|
||||
chart: stable/redis
|
||||
namespace: default
|
||||
`,
|
||||
}
|
||||
|
||||
var buffer bytes.Buffer
|
||||
syncWriter := testhelper.NewSyncWriter(&buffer)
|
||||
logger := helmexec.NewLogger(syncWriter, "debug")
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating vals runtime: %v", err)
|
||||
}
|
||||
|
||||
app := appWithFs(&App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
fs: ffs.DefaultFileSystem(),
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "default",
|
||||
Logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: true,
|
||||
}, files)
|
||||
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
out, err := testutil.CaptureStdout(func() {
|
||||
err := app.ListReleases(configImpl{
|
||||
skipCharts: false,
|
||||
output: "json",
|
||||
})
|
||||
if err != nil {
|
||||
t.Logf("ListReleases error: %v", err)
|
||||
}
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error capturing output: %v", err)
|
||||
}
|
||||
|
||||
if !bytes.Contains([]byte(out), []byte("app1")) {
|
||||
t.Errorf("app1 release not found in output:\n%s", out)
|
||||
}
|
||||
if !bytes.Contains([]byte(out), []byte("db1")) {
|
||||
t.Errorf("db1 release not found in output:\n%s", out)
|
||||
}
|
||||
if !bytes.Contains([]byte(out), []byte("cache1")) {
|
||||
t.Errorf("cache1 release not found in output:\n%s", out)
|
||||
}
|
||||
}
|
||||
|
||||
// TestSequentialHelmfilesAlphabeticalOrder verifies sequential mode processes
|
||||
// files in alphabetical order.
|
||||
func TestSequentialHelmfilesAlphabeticalOrder(t *testing.T) {
|
||||
files := map[string]string{
|
||||
"/path/to/helmfile.d/z-last.yaml": `
|
||||
releases:
|
||||
- name: zulu-release
|
||||
chart: stable/chart-z
|
||||
namespace: ns-z
|
||||
`,
|
||||
"/path/to/helmfile.d/a-first.yaml": `
|
||||
releases:
|
||||
- name: alpha-release
|
||||
chart: stable/chart-a
|
||||
namespace: ns-a
|
||||
`,
|
||||
"/path/to/helmfile.d/m-middle.yaml": `
|
||||
releases:
|
||||
- name: mike-release
|
||||
chart: stable/chart-m
|
||||
namespace: ns-m
|
||||
`,
|
||||
}
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating vals runtime: %v", err)
|
||||
}
|
||||
|
||||
app := appWithFs(&App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
fs: ffs.DefaultFileSystem(),
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "default",
|
||||
Logger: newAppTestLogger(),
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: true,
|
||||
}, files)
|
||||
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
var actualOrder []string
|
||||
noop := func(run *Run) (bool, []error) {
|
||||
actualOrder = append(actualOrder, run.state.FilePath)
|
||||
return false, []error{}
|
||||
}
|
||||
|
||||
err = app.ForEachState(
|
||||
noop,
|
||||
false,
|
||||
SetFilter(true),
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
expectedOrder := []string{"/path/to/helmfile.d/a-first.yaml", "/path/to/helmfile.d/m-middle.yaml", "/path/to/helmfile.d/z-last.yaml"}
|
||||
if !reflect.DeepEqual(actualOrder, expectedOrder) {
|
||||
t.Errorf("unexpected order of processed state files: expected=%v, actual=%v", expectedOrder, actualOrder)
|
||||
}
|
||||
}
|
||||
|
||||
// TestSequentialHelmfilesMatchesParallelResults verifies that sequential and
|
||||
// parallel modes produce the same set of releases.
|
||||
func TestSequentialHelmfilesMatchesParallelResults(t *testing.T) {
|
||||
files := map[string]string{
|
||||
"/path/to/helmfile.d/01-app.yaml": `
|
||||
releases:
|
||||
- name: app-release
|
||||
chart: stable/app
|
||||
namespace: default
|
||||
`,
|
||||
"/path/to/helmfile.d/02-db.yaml": `
|
||||
releases:
|
||||
- name: db-release
|
||||
chart: stable/postgresql
|
||||
namespace: default
|
||||
`,
|
||||
}
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating vals runtime: %v", err)
|
||||
}
|
||||
|
||||
// Run in parallel mode (default)
|
||||
parallelOut, err := testutil.CaptureStdout(func() {
|
||||
var buffer bytes.Buffer
|
||||
syncWriter := testhelper.NewSyncWriter(&buffer)
|
||||
logger := helmexec.NewLogger(syncWriter, "debug")
|
||||
|
||||
app := appWithFs(&App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
fs: ffs.DefaultFileSystem(),
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "default",
|
||||
Logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: false,
|
||||
}, files)
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
if err := app.ListReleases(configImpl{skipCharts: false, output: "json"}); err != nil {
|
||||
t.Logf("parallel ListReleases error: %v", err)
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error capturing parallel output: %v", err)
|
||||
}
|
||||
|
||||
// Run in sequential mode
|
||||
sequentialOut, err := testutil.CaptureStdout(func() {
|
||||
var buffer bytes.Buffer
|
||||
syncWriter := testhelper.NewSyncWriter(&buffer)
|
||||
logger := helmexec.NewLogger(syncWriter, "debug")
|
||||
|
||||
app := appWithFs(&App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
fs: ffs.DefaultFileSystem(),
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "default",
|
||||
Logger: logger,
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: true,
|
||||
}, files)
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
if err := app.ListReleases(configImpl{skipCharts: false, output: "json"}); err != nil {
|
||||
t.Logf("sequential ListReleases error: %v", err)
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error capturing sequential output: %v", err)
|
||||
}
|
||||
|
||||
// Both modes should contain the same releases
|
||||
for _, name := range []string{"app-release", "db-release"} {
|
||||
if !bytes.Contains([]byte(parallelOut), []byte(name)) {
|
||||
t.Errorf("parallel output missing release %q:\n%s", name, parallelOut)
|
||||
}
|
||||
if !bytes.Contains([]byte(sequentialOut), []byte(name)) {
|
||||
t.Errorf("sequential output missing release %q:\n%s", name, sequentialOut)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestSequentialHelmfilesWithUndefinedEnv verifies that files with undefined
|
||||
// environments are skipped gracefully in sequential mode.
|
||||
func TestSequentialHelmfilesWithUndefinedEnv(t *testing.T) {
|
||||
files := map[string]string{
|
||||
"/path/to/helmfile.d/01-has-prod.yaml": `
|
||||
environments:
|
||||
prod: {}
|
||||
---
|
||||
releases:
|
||||
- name: prod-release
|
||||
chart: stable/prod
|
||||
namespace: default
|
||||
`,
|
||||
"/path/to/helmfile.d/02-no-prod.yaml": `
|
||||
environments:
|
||||
staging: {}
|
||||
---
|
||||
releases:
|
||||
- name: staging-release
|
||||
chart: stable/staging
|
||||
namespace: default
|
||||
`,
|
||||
}
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating vals runtime: %v", err)
|
||||
}
|
||||
|
||||
app := appWithFs(&App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
fs: ffs.DefaultFileSystem(),
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "prod",
|
||||
Logger: newAppTestLogger(),
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: true,
|
||||
}, files)
|
||||
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
out, err := testutil.CaptureStdout(func() {
|
||||
err := app.ListReleases(configImpl{
|
||||
skipCharts: false,
|
||||
output: "json",
|
||||
})
|
||||
if err != nil {
|
||||
t.Logf("ListReleases error: %v", err)
|
||||
}
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error capturing output: %v", err)
|
||||
}
|
||||
|
||||
// The prod-release should be present
|
||||
if !bytes.Contains([]byte(out), []byte("prod-release")) {
|
||||
t.Errorf("prod-release not found in output:\n%s", out)
|
||||
}
|
||||
|
||||
// The staging-release should NOT be present (env "prod" not defined in that file)
|
||||
if bytes.Contains([]byte(out), []byte("staging-release")) {
|
||||
t.Errorf("staging-release should have been skipped but was found in output:\n%s", out)
|
||||
}
|
||||
}
|
||||
|
||||
// TestSequentialHelmfilesConvergeErrorPropagated verifies that errors returned
|
||||
// from the converge function are properly propagated in sequential mode.
|
||||
func TestSequentialHelmfilesConvergeErrorPropagated(t *testing.T) {
|
||||
files := map[string]string{
|
||||
"/path/to/helmfile.d/01-first.yaml": `
|
||||
releases:
|
||||
- name: first-release
|
||||
chart: stable/chart-a
|
||||
namespace: default
|
||||
`,
|
||||
"/path/to/helmfile.d/02-second.yaml": `
|
||||
releases:
|
||||
- name: second-release
|
||||
chart: stable/chart-b
|
||||
namespace: default
|
||||
`,
|
||||
}
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating vals runtime: %v", err)
|
||||
}
|
||||
|
||||
app := appWithFs(&App{
|
||||
OverrideHelmBinary: DefaultHelmBinary,
|
||||
fs: ffs.DefaultFileSystem(),
|
||||
OverrideKubeContext: "default",
|
||||
DisableKubeVersionAutoDetection: true,
|
||||
Env: "default",
|
||||
Logger: newAppTestLogger(),
|
||||
valsRuntime: valsRuntime,
|
||||
FileOrDir: "/path/to/helmfile.d",
|
||||
SequentialHelmfiles: true,
|
||||
}, files)
|
||||
|
||||
expectNoCallsToHelm(app)
|
||||
|
||||
convergeErr := fmt.Errorf("simulated converge failure")
|
||||
failingConverge := func(_ *Run) (bool, []error) {
|
||||
return false, []error{convergeErr}
|
||||
}
|
||||
|
||||
err = app.ForEachState(
|
||||
failingConverge,
|
||||
false,
|
||||
SetFilter(true),
|
||||
)
|
||||
|
||||
if err == nil {
|
||||
t.Fatal("expected error from ForEachState, got nil")
|
||||
}
|
||||
|
||||
if !bytes.Contains([]byte(err.Error()), []byte("simulated converge failure")) {
|
||||
t.Errorf("expected error to contain 'simulated converge failure', got: %v", err)
|
||||
}
|
||||
}
|
||||
-3
@@ -1,7 +1,4 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
0 release(s) matching app=test_non_existent found in helmfile.yaml
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
|
||||
err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test2 found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ WARNING: release test2 needs disabled, but disabled is not installed due to inst
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -17,4 +15,3 @@ WARNING: release test2 needs disabled, but disabled is not installed due to inst
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test2 found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ WARNING: release test2 needs disabled, but disabled is not installed due to inst
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -17,4 +15,3 @@ WARNING: release test2 needs disabled, but disabled is not installed due to inst
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Vendored
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -17,4 +15,3 @@ WARNING: release test2 needs disabled, but disabled is not installed due to inst
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=a found in helmfile.yaml
|
||||
|
||||
@@ -8,4 +6,3 @@ GROUP RELEASES
|
||||
1 default/default/a
|
||||
|
||||
processing releases in group 1/1: default/default/a
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=a found in helmfile.yaml
|
||||
|
||||
@@ -8,4 +6,3 @@ GROUP RELEASES
|
||||
1 default/default/a
|
||||
|
||||
processing releases in group 1/1: default/default/a
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,6 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=a found in helmfile.yaml
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Vendored
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
3 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -15,4 +13,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -12,4 +10,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -16,4 +14,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -7,4 +5,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -7,4 +5,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
err: release "default//bar" depends on "default//foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "default//bar" depends on "default//foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -16,4 +14,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -12,4 +10,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
3 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -15,4 +13,3 @@ Affected releases are:
|
||||
baz (mychart3) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
err: release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release(s) "default//foo" depend(s) on an undefined release "default//bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -9,4 +7,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
No affected releases
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
10 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -27,4 +25,3 @@ Affected releases are:
|
||||
logging (charts/fluent-bit) UPDATED
|
||||
servicemesh (charts/istio) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=foo found in helmfile.yaml
|
||||
|
||||
err: release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "default//foo" depends on "default//bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
releaseA (mychart1) UPDATED
|
||||
releaseB (mychart2) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml.gotmpl" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
|
||||
rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
0:
|
||||
@@ -30,4 +28,3 @@ rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
+1
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml.gotmpl" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
|
||||
rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
0:
|
||||
@@ -31,4 +29,4 @@ merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) matching app=test found in helmfile.yaml.gotmpl
|
||||
|
||||
err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml.gotmpl": release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml.gotmpl" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
|
||||
rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
0:
|
||||
@@ -41,4 +39,3 @@ Affected releases are:
|
||||
external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Vendored
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -12,4 +10,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
err: release "foo" depends on "bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "foo" depends on "bar" which does not match the selectors. Please add a selector like "--selector name=bar", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -16,4 +14,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -7,4 +5,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -7,4 +5,3 @@ Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release bar needs foo, but foo is not installed due to installed: false. Either mark foo as installed or remove foo from bar's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
err: release "bar" depends on "foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "bar" depends on "foo" which does not match the selectors. Please add a selector like "--selector name=foo", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -12,4 +10,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) DELETED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Vendored
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
3 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -15,4 +13,3 @@ Affected releases are:
|
||||
baz (mychart3) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
err: release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release(s) "foo" depend(s) on an undefined release "bar". Perhaps you made a typo in "needs" or forgot defining a release named "bar" with appropriate "namespace" and "kubeContext"?
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -9,4 +7,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/1: bar
|
||||
No affected releases
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
10 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -27,4 +25,3 @@ Affected releases are:
|
||||
logging (charts/fluent-bit) UPDATED
|
||||
servicemesh (charts/istio) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml.gotmpl" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
|
||||
rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
0:
|
||||
@@ -30,4 +28,3 @@ rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
0 release(s) matching app=test_non_existent found in helmfile.yaml.gotmpl
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
+1
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml.gotmpl" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
|
||||
rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
0:
|
||||
@@ -31,4 +29,4 @@ merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) matching app=test found in helmfile.yaml.gotmpl
|
||||
|
||||
err: release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml.gotmpl": release "default/external-secrets" depends on "kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml.gotmpl" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
|
||||
rendering result of "helmfile.yaml.gotmpl.part.0":
|
||||
0:
|
||||
@@ -41,4 +39,3 @@ Affected releases are:
|
||||
external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,7 +1,4 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
0 release(s) matching app=test_non_existent found in helmfile.yaml
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
|
||||
err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test2 found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -13,4 +11,3 @@ GROUP RELEASES
|
||||
processing releases in group 1/3: default/kube-system/disabled
|
||||
processing releases in group 2/3: default//test2
|
||||
processing releases in group 3/3: default//test3
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test2 found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -13,4 +11,3 @@ GROUP RELEASES
|
||||
processing releases in group 1/3: default/kube-system/disabled
|
||||
processing releases in group 2/3: default//test2
|
||||
processing releases in group 3/3: default//test3
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Vendored
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -13,4 +11,3 @@ GROUP RELEASES
|
||||
processing releases in group 1/3: default/kube-system/disabled
|
||||
processing releases in group 2/3: default//test2
|
||||
processing releases in group 3/3: default//test3
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
0 release(s) matching app=test_non_existent found in helmfile.yaml
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
|
||||
err: release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
changing working directory back to "/path/to"
|
||||
Failed to clean up temporary files generated while processing "helmfile.yaml": release "default/default/external-secrets" depends on "default/kube-system/kubernetes-external-secrets" which does not match the selectors. Please add a selector like "--selector name=kubernetes-external-secrets", or indicate whether to skip (--skip-needs) or include (--include-needs) these dependencies
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test2 found in helmfile.yaml
|
||||
@@ -12,4 +10,3 @@ GROUP RELEASES
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Vendored
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -14,4 +12,3 @@ processing releases in group 1/3: default/kube-system/disabled
|
||||
processing releases in group 2/3: default//test2
|
||||
processing releases in group 3/3: default//test3
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test2 found in helmfile.yaml
|
||||
@@ -12,4 +10,3 @@ GROUP RELEASES
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -14,4 +12,3 @@ processing releases in group 1/3: default/kube-system/disabled
|
||||
processing releases in group 2/3: default//test2
|
||||
processing releases in group 3/3: default//test3
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -15,4 +13,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=test3 found in helmfile.yaml
|
||||
@@ -14,4 +12,3 @@ processing releases in group 1/3: default/kube-system/disabled
|
||||
processing releases in group 2/3: default//test2
|
||||
processing releases in group 3/3: default//test3
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
-3
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
1 release(s) matching name=logging found in helmfile.yaml
|
||||
@@ -9,4 +7,3 @@ GROUP RELEASES
|
||||
1 default/kube-system/logging
|
||||
|
||||
processing releases in group 1/1: default/kube-system/logging
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
@@ -11,4 +9,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
0 release(s) matching app=test_non_existent found in helmfile.yaml
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ processing releases in group 1/4: default/kube-system/logging
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=no-tests found in helmfile.yaml
|
||||
|
||||
@@ -8,4 +6,3 @@ GROUP RELEASES
|
||||
1 default/default/no-tests
|
||||
|
||||
processing releases in group 1/1: default/default/no-tests
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) matching app=test found in helmfile.yaml
|
||||
|
||||
@@ -10,4 +8,3 @@ GROUP RELEASES
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
5 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -14,4 +12,3 @@ processing releases in group 1/4: default/kube-system/logging, default/default/n
|
||||
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 3/4: default/default/external-secrets
|
||||
processing releases in group 4/4: default/default/my-release
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=logging found in helmfile.yaml
|
||||
|
||||
@@ -8,4 +6,3 @@ GROUP RELEASES
|
||||
1 default/kube-system/logging
|
||||
|
||||
processing releases in group 1/1: default/kube-system/logging
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
1 release(s) matching name=logging found in helmfile.yaml
|
||||
|
||||
@@ -10,4 +8,3 @@ GROUP RELEASES
|
||||
processing releases in group 1/1: default/kube-system/logging
|
||||
warn: --color flag is not supported with Helm 4 due to flag parsing issues, ignoring
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release test2 needs disabled, but disabled is not installed due to installed: false. Either mark disabled as installed or remove disabled from test2's needs
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
@@ -34,4 +32,3 @@ DELETED RELEASES:
|
||||
NAME NAMESPACE DURATION
|
||||
bar 0s
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
processing file "helmfile.yaml" in directory "."
|
||||
changing working directory to "/path/to"
|
||||
merged environment: &{default map[] map[] map[]}
|
||||
WARNING: release foo needs bar, but bar is not installed due to installed: false. Either mark bar as installed or remove bar from foo's needs
|
||||
2 release(s) found in helmfile.yaml
|
||||
@@ -37,4 +35,3 @@ DELETED RELEASES:
|
||||
NAME NAMESPACE DURATION
|
||||
bar 0s
|
||||
|
||||
changing working directory back to "/path/to"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user