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:
Aditya Menon
2026-02-22 09:21:46 +08:00
committed by GitHub
parent ca8fc293e9
commit c63947483c
165 changed files with 727 additions and 583 deletions
+4 -1
View File
@@ -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")
}
+3
View File
@@ -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
View File
@@ -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 {
+417
View File
@@ -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
View File
@@ -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
-3
View File
@@ -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"
@@ -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"
@@ -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
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"
@@ -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"
@@ -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
View File
@@ -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"
@@ -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"
@@ -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
View File
@@ -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"
-3
View File
@@ -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
View File
@@ -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
@@ -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"
@@ -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
@@ -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"
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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"
@@ -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:
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,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
@@ -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
View File
@@ -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
@@ -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"
@@ -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"
-3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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,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
@@ -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
View File
@@ -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
-3
View File
@@ -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"
@@ -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"
@@ -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
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"
@@ -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"
@@ -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
View File
@@ -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"
-3
View File
@@ -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
-3
View File
@@ -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"
@@ -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"
@@ -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
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"
@@ -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"
@@ -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
View File
@@ -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"
-3
View File
@@ -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"
-3
View File
@@ -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"
-3
View File
@@ -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"
-3
View File
@@ -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"
-3
View File
@@ -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