fix: include-needs should only include direct dependencies, not transitive
- Fix collectDirectNeedsOnly to correctly match needs by full ID - Fix PlanReleases to respect SelectedReleases when provided - Fix unmarkNeedsDirectOnly to use full release IDs - Update tests to expect correct behavior for include-needs vs include-transitive-needs - Add SkipNeeds flag when needs are pre-included in withNeeds This fixes CI issues in PR #2485 Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
parent
3f2c07867d
commit
d026140fbc
|
|
@ -2323,7 +2323,7 @@ func (a *App) withNeeds(r *Run, c DAGConfig, includeDisabled bool, f func(*state
|
|||
SelectedReleases: selectedReleases,
|
||||
IncludeNeeds: false,
|
||||
IncludeTransitiveNeeds: false,
|
||||
SkipNeeds: c.SkipNeeds(),
|
||||
SkipNeeds: c.SkipNeeds() || includeNeeds,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -175,8 +175,6 @@ releases:
|
|||
error: ``,
|
||||
selectors: []string{"app=test"},
|
||||
diffed: []exectest.Release{
|
||||
// TODO: Turned out we can't differentiate needs vs transitive needs in this case :thinking:
|
||||
{Name: "logging", Flags: []string{"--kube-context", "default", "--namespace", "kube-system", "--reset-values"}},
|
||||
{Name: "kubernetes-external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "kube-system", "--reset-values"}},
|
||||
{Name: "external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "default", "--reset-values"}},
|
||||
{Name: "my-release", Flags: []string{"--kube-context", "default", "--namespace", "default", "--reset-values"}},
|
||||
|
|
|
|||
|
|
@ -1,21 +1,18 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/helmfile/vals"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/helmfile/helmfile/pkg/exectest"
|
||||
ffs "github.com/helmfile/helmfile/pkg/filesystem"
|
||||
"github.com/helmfile/helmfile/pkg/helmexec"
|
||||
"github.com/helmfile/helmfile/pkg/testhelper"
|
||||
)
|
||||
|
||||
func TestLint(t *testing.T) {
|
||||
|
|
@ -144,30 +141,7 @@ releases:
|
|||
require.Equal(t, wantLints, helm.Linted)
|
||||
})
|
||||
|
||||
testNameComponents := strings.Split(t.Name(), "/")
|
||||
testBaseName := strings.ToLower(
|
||||
strings.ReplaceAll(
|
||||
testNameComponents[len(testNameComponents)-1],
|
||||
" ",
|
||||
"_",
|
||||
),
|
||||
)
|
||||
wantLogFileDir := filepath.Join("testdata", "app_lint_test")
|
||||
wantLogFile := filepath.Join(wantLogFileDir, testBaseName)
|
||||
wantLogData, err := os.ReadFile(wantLogFile)
|
||||
updateLogFile := err != nil
|
||||
wantLog := string(wantLogData)
|
||||
gotLog := bs.String()
|
||||
if updateLogFile {
|
||||
if err := os.MkdirAll(wantLogFileDir, 0755); err != nil {
|
||||
t.Fatalf("unable to create directory %q: %v", wantLogFileDir, err)
|
||||
}
|
||||
if err := os.WriteFile(wantLogFile, bs.Bytes(), 0644); err != nil {
|
||||
t.Fatalf("unable to update lint log snapshot: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
assert.Equal(t, wantLog, gotLog)
|
||||
testhelper.RequireLog(t, "app_lint_test", bs)
|
||||
}
|
||||
|
||||
t.Run("fail on unselected need by default", func(t *testing.T) {
|
||||
|
|
@ -199,8 +173,6 @@ releases:
|
|||
error: ``,
|
||||
selectors: []string{"app=test"},
|
||||
linted: []exectest.Release{
|
||||
// TODO: Turned out we can't differentiate needs vs transitive needs in this case :thinking:
|
||||
{Name: "logging", Flags: []string{"--namespace", "kube-system"}},
|
||||
{Name: "kubernetes-external-secrets", Flags: []string{"--namespace", "kube-system"}},
|
||||
{Name: "external-secrets", Flags: []string{"--namespace", "default"}},
|
||||
{Name: "my-release", Flags: []string{"--namespace", "default"}},
|
||||
|
|
|
|||
|
|
@ -206,8 +206,6 @@ releases:
|
|||
selectors: []string{"app=test"},
|
||||
// Issue #2309: --kube-context is now added to template flags
|
||||
templated: []exectest.Release{
|
||||
// TODO: Turned out we can't differentiate needs vs transitive needs in this case :thinking:
|
||||
{Name: "logging", Flags: []string{"--kube-context", "default", "--namespace", "kube-system"}},
|
||||
{Name: "kubernetes-external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "kube-system"}},
|
||||
{Name: "external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "default"}},
|
||||
{Name: "my-release", Flags: []string{"--kube-context", "default", "--namespace", "default"}},
|
||||
|
|
|
|||
|
|
@ -2,14 +2,12 @@ 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
|
||||
|
||||
processing 4 groups of releases in this order:
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/logging
|
||||
2 default/kube-system/kubernetes-external-secrets
|
||||
3 default/default/external-secrets
|
||||
4 default/default/my-release
|
||||
1 default/kube-system/kubernetes-external-secrets
|
||||
2 default/default/external-secrets
|
||||
3 default/default/my-release
|
||||
|
||||
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
|
||||
processing releases in group 1/3: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 2/3: default/default/external-secrets
|
||||
processing releases in group 3/3: default/default/my-release
|
||||
|
|
|
|||
|
|
@ -2,16 +2,11 @@ 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
|
||||
|
||||
processing 3 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
3 default//test3
|
||||
1 default//test2
|
||||
2 default//test3
|
||||
|
||||
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
|
||||
processing releases in group 1/2: default//test2
|
||||
processing releases in group 2/2: 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
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,11 @@ 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
|
||||
|
||||
processing 2 groups of releases in this order:
|
||||
processing 1 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
1 default//test2
|
||||
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
processing releases in group 1/1: 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
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
|
|
|||
|
|
@ -2,15 +2,13 @@ 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
|
||||
|
||||
processing 3 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
3 default//test3
|
||||
1 default//test2
|
||||
2 default//test3
|
||||
|
||||
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
|
||||
processing releases in group 1/2: default//test2
|
||||
processing releases in group 2/2: 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
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
|
|
|||
|
|
@ -2,15 +2,13 @@ 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
|
||||
|
||||
processing 3 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
3 default//test3
|
||||
1 default//test2
|
||||
2 default//test3
|
||||
|
||||
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
|
||||
processing releases in group 1/2: default//test2
|
||||
processing releases in group 2/2: 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
|
||||
Affected releases are:
|
||||
disabled (incubator/raw) DELETED
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ merged environment: &{default map[] map[] map[]}
|
|||
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/ns1/bar
|
||||
1 default/ns1/bar, default/ns2/bar
|
||||
2 default/ns1/foo
|
||||
|
||||
processing releases in group 1/2: default/ns1/bar
|
||||
processing releases in group 1/2: default/ns1/bar, default/ns2/bar
|
||||
processing releases in group 2/2: default/ns1/foo
|
||||
Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
2 default//bar
|
||||
|
||||
processing releases in group 1/1: default//foo
|
||||
processing releases in group 1/2: default//foo
|
||||
processing releases in group 2/2: default//bar
|
||||
Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ 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
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/1: default//foo
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
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
|
||||
Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ 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
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
1 default//foo
|
||||
2 default//bar
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing releases in group 1/2: default//foo
|
||||
processing releases in group 2/2: default//bar
|
||||
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
|
||||
Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) DELETED
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
No affected releases
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@ GROUP RELEASES
|
|||
1 default//logging, default//front-proxy
|
||||
2 default//database, default//servicemesh
|
||||
3 default//anotherbackend
|
||||
4 default//backend-v2
|
||||
5 default//frontend-v2, default//frontend-v3
|
||||
4 default//backend-v1, default//backend-v2
|
||||
5 default//frontend-v1, default//frontend-v2, default//frontend-v3
|
||||
|
||||
processing releases in group 1/5: default//logging, default//front-proxy
|
||||
processing releases in group 2/5: default//database, default//servicemesh
|
||||
processing releases in group 3/5: default//anotherbackend
|
||||
processing releases in group 4/5: default//backend-v2
|
||||
processing releases in group 5/5: default//frontend-v2, default//frontend-v3
|
||||
processing releases in group 4/5: default//backend-v1, default//backend-v2
|
||||
processing releases in group 5/5: default//frontend-v1, default//frontend-v2, default//frontend-v3
|
||||
Affected releases are:
|
||||
anotherbackend (charts/anotherbackend) UPDATED
|
||||
backend-v1 (charts/backend) DELETED
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 foo
|
||||
2 bar
|
||||
|
||||
processing releases in group 1/1: foo
|
||||
processing releases in group 1/2: foo
|
||||
processing releases in group 2/2: bar
|
||||
Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
foo (mychart1) UPDATED
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@ 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
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 foo
|
||||
1 bar
|
||||
2 foo
|
||||
|
||||
processing releases in group 1/1: foo
|
||||
processing releases in group 1/2: bar
|
||||
processing releases in group 2/2: foo
|
||||
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
|
||||
Affected releases are:
|
||||
bar (mychart2) DELETED
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 bar
|
||||
2 foo
|
||||
|
||||
processing releases in group 1/1: bar
|
||||
processing releases in group 1/2: bar
|
||||
processing releases in group 2/2: foo
|
||||
Affected releases are:
|
||||
bar (mychart2) UPDATED
|
||||
foo (mychart1) DELETED
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
merged environment: &{default map[] map[] map[]}
|
||||
2 release(s) found in helmfile.yaml
|
||||
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 bar
|
||||
2 foo
|
||||
|
||||
processing releases in group 1/1: bar
|
||||
processing releases in group 1/2: bar
|
||||
processing releases in group 2/2: foo
|
||||
No affected releases
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@ GROUP RELEASES
|
|||
1 logging, front-proxy
|
||||
2 database, servicemesh
|
||||
3 anotherbackend
|
||||
4 backend-v2
|
||||
5 frontend-v2, frontend-v3
|
||||
4 backend-v1, backend-v2
|
||||
5 frontend-v1, frontend-v2, frontend-v3
|
||||
|
||||
processing releases in group 1/5: logging, front-proxy
|
||||
processing releases in group 2/5: database, servicemesh
|
||||
processing releases in group 3/5: anotherbackend
|
||||
processing releases in group 4/5: backend-v2
|
||||
processing releases in group 5/5: frontend-v2, frontend-v3
|
||||
processing releases in group 4/5: backend-v1, backend-v2
|
||||
processing releases in group 5/5: frontend-v1, frontend-v2, frontend-v3
|
||||
Affected releases are:
|
||||
anotherbackend (charts/anotherbackend) UPDATED
|
||||
backend-v1 (charts/backend) DELETED
|
||||
|
|
|
|||
|
|
@ -2,14 +2,12 @@ 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
|
||||
|
||||
processing 4 groups of releases in this order:
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/logging
|
||||
2 default/kube-system/kubernetes-external-secrets
|
||||
3 default/default/external-secrets
|
||||
4 default/default/my-release
|
||||
1 default/kube-system/kubernetes-external-secrets
|
||||
2 default/default/external-secrets
|
||||
3 default/default/my-release
|
||||
|
||||
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
|
||||
processing releases in group 1/3: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 2/3: default/default/external-secrets
|
||||
processing releases in group 3/3: default/default/my-release
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@ 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
|
||||
|
||||
processing 2 groups of releases in this order:
|
||||
processing 1 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
1 default//test2
|
||||
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
processing releases in group 1/1: default//test2
|
||||
|
|
|
|||
|
|
@ -2,12 +2,10 @@ 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
|
||||
|
||||
processing 3 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
3 default//test3
|
||||
1 default//test2
|
||||
2 default//test3
|
||||
|
||||
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
|
||||
processing releases in group 1/2: default//test2
|
||||
processing releases in group 2/2: default//test3
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@ 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
|
||||
|
||||
processing 2 groups of releases in this order:
|
||||
processing 1 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
1 default//test2
|
||||
|
||||
processing releases in group 1/2: default/kube-system/disabled
|
||||
processing releases in group 2/2: default//test2
|
||||
processing releases in group 1/1: default//test2
|
||||
|
|
|
|||
|
|
@ -2,12 +2,10 @@ 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
|
||||
|
||||
processing 3 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
3 default//test3
|
||||
1 default//test2
|
||||
2 default//test3
|
||||
|
||||
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
|
||||
processing releases in group 1/2: default//test2
|
||||
processing releases in group 2/2: default//test3
|
||||
|
|
|
|||
|
|
@ -2,12 +2,10 @@ 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
|
||||
|
||||
processing 3 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/kube-system/disabled
|
||||
2 default//test2
|
||||
3 default//test3
|
||||
1 default//test2
|
||||
2 default//test3
|
||||
|
||||
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
|
||||
processing releases in group 1/2: default//test2
|
||||
processing releases in group 2/2: default//test3
|
||||
|
|
|
|||
|
|
@ -12,16 +12,20 @@ GROUP RELEASES
|
|||
|
||||
invoking preapply hooks for releases in group 1/2: default//bar
|
||||
invoking preapply hooks for releases in group 2/2: default//foo
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing 1 groups of releases in this order:
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
2 default//bar
|
||||
|
||||
processing releases in group 1/1: default//foo
|
||||
processing releases in group 1/2: default//foo
|
||||
processing releases in group 2/2: default//bar
|
||||
|
||||
UPDATED RELEASES:
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
|
|
|
|||
|
|
@ -14,16 +14,20 @@ GROUP RELEASES
|
|||
|
||||
invoking preapply hooks for releases in group 1/2: default//foo
|
||||
invoking preapply hooks for releases in group 2/2: default//bar
|
||||
processing 1 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
2 default//bar
|
||||
|
||||
processing releases in group 1/1: default//foo
|
||||
processing releases in group 1/2: default//foo
|
||||
processing releases in group 2/2: default//bar
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
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
|
||||
|
||||
UPDATED RELEASES:
|
||||
|
|
|
|||
|
|
@ -14,16 +14,20 @@ GROUP RELEASES
|
|||
|
||||
invoking preapply hooks for releases in group 1/2: default//bar
|
||||
invoking preapply hooks for releases in group 2/2: default//foo
|
||||
processing 1 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
|
||||
processing releases in group 1/1: default//foo
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
2 default//bar
|
||||
|
||||
processing releases in group 1/2: default//foo
|
||||
processing releases in group 2/2: default//bar
|
||||
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
|
||||
|
||||
UPDATED RELEASES:
|
||||
|
|
|
|||
|
|
@ -12,16 +12,20 @@ GROUP RELEASES
|
|||
|
||||
invoking preapply hooks for releases in group 1/2: default//foo
|
||||
invoking preapply hooks for releases in group 2/2: default//bar
|
||||
processing 1 groups of releases in this order:
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//foo
|
||||
2 default//bar
|
||||
|
||||
processing releases in group 1/1: default//foo
|
||||
processing 1 groups of releases in this order:
|
||||
processing releases in group 1/2: default//foo
|
||||
processing releases in group 2/2: default//bar
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//bar
|
||||
2 default//foo
|
||||
|
||||
processing releases in group 1/1: default//bar
|
||||
processing releases in group 1/2: default//bar
|
||||
processing releases in group 2/2: default//foo
|
||||
|
||||
UPDATED RELEASES:
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
|
|
|
|||
|
|
@ -25,26 +25,32 @@ invoking preapply hooks for releases in group 2/5: default//backend-v1, default/
|
|||
invoking preapply hooks for releases in group 3/5: default//anotherbackend
|
||||
invoking preapply hooks for releases in group 4/5: default//database, default//servicemesh
|
||||
invoking preapply hooks for releases in group 5/5: default//logging, default//front-proxy
|
||||
processing 2 groups of releases in this order:
|
||||
processing 5 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//frontend-v1
|
||||
2 default//backend-v1
|
||||
1 default//frontend-v1, default//frontend-v2, default//frontend-v3
|
||||
2 default//backend-v1, default//backend-v2
|
||||
3 default//anotherbackend
|
||||
4 default//database, default//servicemesh
|
||||
5 default//logging, default//front-proxy
|
||||
|
||||
processing releases in group 1/2: default//frontend-v1
|
||||
processing releases in group 2/2: default//backend-v1
|
||||
processing releases in group 1/5: default//frontend-v1, default//frontend-v2, default//frontend-v3
|
||||
processing releases in group 2/5: default//backend-v1, default//backend-v2
|
||||
processing releases in group 3/5: default//anotherbackend
|
||||
processing releases in group 4/5: default//database, default//servicemesh
|
||||
processing releases in group 5/5: default//logging, default//front-proxy
|
||||
processing 5 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//logging, default//front-proxy
|
||||
2 default//database, default//servicemesh
|
||||
3 default//anotherbackend
|
||||
4 default//backend-v2
|
||||
5 default//frontend-v3
|
||||
4 default//backend-v1, default//backend-v2
|
||||
5 default//frontend-v1, default//frontend-v2, default//frontend-v3
|
||||
|
||||
processing releases in group 1/5: default//logging, default//front-proxy
|
||||
processing releases in group 2/5: default//database, default//servicemesh
|
||||
processing releases in group 3/5: default//anotherbackend
|
||||
processing releases in group 4/5: default//backend-v2
|
||||
processing releases in group 5/5: default//frontend-v3
|
||||
processing releases in group 4/5: default//backend-v1, default//backend-v2
|
||||
processing releases in group 5/5: default//frontend-v1, default//frontend-v2, default//frontend-v3
|
||||
|
||||
UPDATED RELEASES:
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
|
|
|
|||
|
|
@ -13,17 +13,19 @@ GROUP RELEASES
|
|||
|
||||
invoking preapply hooks for releases in group 1/2: default/ns1/foo
|
||||
invoking preapply hooks for releases in group 2/2: default/ns1/bar, default/ns2/bar
|
||||
processing 1 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/ns2/bar
|
||||
|
||||
processing releases in group 1/1: default/ns2/bar
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/ns1/bar
|
||||
1 default/ns1/foo
|
||||
2 default/ns1/bar, default/ns2/bar
|
||||
|
||||
processing releases in group 1/2: default/ns1/foo
|
||||
processing releases in group 2/2: default/ns1/bar, default/ns2/bar
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/ns1/bar, default/ns2/bar
|
||||
2 default/ns1/foo
|
||||
|
||||
processing releases in group 1/2: default/ns1/bar
|
||||
processing releases in group 1/2: default/ns1/bar, default/ns2/bar
|
||||
getting deployed release version failed: Failed to get the version for: mychart2
|
||||
processing releases in group 2/2: default/ns1/foo
|
||||
getting deployed release version failed: Failed to get the version for: mychart1
|
||||
|
|
|
|||
|
|
@ -29,11 +29,15 @@ Affected releases are:
|
|||
serviceB (my/chart) UPDATED
|
||||
serviceC (my/chart) UPDATED
|
||||
|
||||
invoking preapply hooks for 1 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//serviceA
|
||||
2 default//serviceB
|
||||
3 default//serviceC
|
||||
|
||||
invoking preapply hooks for releases in group 1/1: default//serviceA
|
||||
invoking preapply hooks for releases in group 1/3: default//serviceA
|
||||
invoking preapply hooks for releases in group 2/3: default//serviceB
|
||||
invoking preapply hooks for releases in group 3/3: default//serviceC
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default//serviceC
|
||||
|
|
|
|||
|
|
@ -33,23 +33,28 @@ Affected releases are:
|
|||
kubernetes-external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/my-release
|
||||
2 default/default/external-secrets
|
||||
3 default/kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/default/external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
invoking preapply hooks for releases in group 1/3: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/external-secrets
|
||||
2 default/default/my-release
|
||||
1 default/kube-system/kubernetes-external-secrets
|
||||
2 default/default/external-secrets
|
||||
3 default/default/my-release
|
||||
|
||||
processing releases in group 1/2: default/default/external-secrets
|
||||
processing releases in group 2/2: default/default/my-release
|
||||
processing releases in group 1/3: default/kube-system/kubernetes-external-secrets
|
||||
processing releases in group 2/3: default/default/external-secrets
|
||||
processing releases in group 3/3: default/default/my-release
|
||||
|
||||
UPDATED RELEASES:
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
external-secrets default incubator/raw 3.1.0 0s
|
||||
my-release default incubator/raw 3.1.0 0s
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
kubernetes-external-secrets kube-system incubator/raw 3.1.0 0s
|
||||
external-secrets default incubator/raw 3.1.0 0s
|
||||
my-release default incubator/raw 3.1.0 0s
|
||||
|
||||
|
|
|
|||
|
|
@ -32,13 +32,15 @@ Affected releases are:
|
|||
external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/my-release
|
||||
2 default/default/external-secrets
|
||||
3 default/kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/default/external-secrets
|
||||
invoking preapply hooks for releases in group 1/3: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/external-secrets
|
||||
|
|
|
|||
|
|
@ -36,20 +36,24 @@ Affected releases are:
|
|||
kubernetes-external-secrets (incubator/raw) DELETED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/my-release
|
||||
2 default/default/external-secrets
|
||||
3 default/kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/default/external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
invoking preapply hooks for releases in group 1/3: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/my-release
|
||||
2 default/default/external-secrets
|
||||
3 default/kube-system/kubernetes-external-secrets
|
||||
|
||||
processing releases in group 1/2: default/default/my-release
|
||||
processing releases in group 2/2: default/default/external-secrets
|
||||
processing releases in group 1/3: default/default/my-release
|
||||
processing releases in group 2/3: default/default/external-secrets
|
||||
processing releases in group 3/3: default/kube-system/kubernetes-external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/external-secrets
|
||||
|
|
@ -64,3 +68,8 @@ NAME NAMESPACE CHART VERSION DURATION
|
|||
external-secrets default incubator/raw 3.1.0 0s
|
||||
my-release default incubator/raw 3.1.0 0s
|
||||
|
||||
|
||||
DELETED RELEASES:
|
||||
NAME NAMESPACE DURATION
|
||||
kubernetes-external-secrets kube-system 0s
|
||||
|
||||
|
|
|
|||
|
|
@ -35,13 +35,15 @@ Affected releases are:
|
|||
external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/my-release
|
||||
2 default/default/external-secrets
|
||||
3 default/kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/default/external-secrets
|
||||
invoking preapply hooks for releases in group 1/3: default/default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: default/kube-system/kubernetes-external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/default/external-secrets
|
||||
|
|
|
|||
|
|
@ -33,23 +33,28 @@ Affected releases are:
|
|||
kubernetes-external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/my-release
|
||||
2 default/external-secrets
|
||||
3 kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
invoking preapply hooks for releases in group 1/3: default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/external-secrets
|
||||
2 default/my-release
|
||||
1 kube-system/kubernetes-external-secrets
|
||||
2 default/external-secrets
|
||||
3 default/my-release
|
||||
|
||||
processing releases in group 1/2: default/external-secrets
|
||||
processing releases in group 2/2: default/my-release
|
||||
processing releases in group 1/3: kube-system/kubernetes-external-secrets
|
||||
processing releases in group 2/3: default/external-secrets
|
||||
processing releases in group 3/3: default/my-release
|
||||
|
||||
UPDATED RELEASES:
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
external-secrets default incubator/raw 3.1.0 0s
|
||||
my-release default incubator/raw 3.1.0 0s
|
||||
NAME NAMESPACE CHART VERSION DURATION
|
||||
kubernetes-external-secrets kube-system incubator/raw 3.1.0 0s
|
||||
external-secrets default incubator/raw 3.1.0 0s
|
||||
my-release default incubator/raw 3.1.0 0s
|
||||
|
||||
|
|
|
|||
|
|
@ -32,13 +32,15 @@ Affected releases are:
|
|||
external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/my-release
|
||||
2 default/external-secrets
|
||||
3 kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/external-secrets
|
||||
invoking preapply hooks for releases in group 1/3: default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/external-secrets
|
||||
|
|
|
|||
|
|
@ -36,20 +36,24 @@ Affected releases are:
|
|||
kubernetes-external-secrets (incubator/raw) DELETED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/my-release
|
||||
2 default/external-secrets
|
||||
3 kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
invoking preapply hooks for releases in group 1/3: default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets
|
||||
processing 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/my-release
|
||||
2 default/external-secrets
|
||||
3 kube-system/kubernetes-external-secrets
|
||||
|
||||
processing releases in group 1/2: default/my-release
|
||||
processing releases in group 2/2: default/external-secrets
|
||||
processing releases in group 1/3: default/my-release
|
||||
processing releases in group 2/3: default/external-secrets
|
||||
processing releases in group 3/3: kube-system/kubernetes-external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/external-secrets
|
||||
|
|
@ -64,3 +68,8 @@ NAME NAMESPACE CHART VERSION DURATION
|
|||
external-secrets default incubator/raw 3.1.0 0s
|
||||
my-release default incubator/raw 3.1.0 0s
|
||||
|
||||
|
||||
DELETED RELEASES:
|
||||
NAME NAMESPACE DURATION
|
||||
kubernetes-external-secrets kube-system 0s
|
||||
|
||||
|
|
|
|||
|
|
@ -35,13 +35,15 @@ Affected releases are:
|
|||
external-secrets (incubator/raw) UPDATED
|
||||
my-release (incubator/raw) UPDATED
|
||||
|
||||
invoking preapply hooks for 2 groups of releases in this order:
|
||||
invoking preapply hooks for 3 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/my-release
|
||||
2 default/external-secrets
|
||||
3 kube-system/kubernetes-external-secrets
|
||||
|
||||
invoking preapply hooks for releases in group 1/2: default/my-release
|
||||
invoking preapply hooks for releases in group 2/2: default/external-secrets
|
||||
invoking preapply hooks for releases in group 1/3: default/my-release
|
||||
invoking preapply hooks for releases in group 2/3: default/external-secrets
|
||||
invoking preapply hooks for releases in group 3/3: kube-system/kubernetes-external-secrets
|
||||
processing 2 groups of releases in this order:
|
||||
GROUP RELEASES
|
||||
1 default/external-secrets
|
||||
|
|
|
|||
|
|
@ -3049,10 +3049,24 @@ func unmarkNeedsDirectOnly(filteredReleases []Release) {
|
|||
|
||||
func collectDirectNeedsOnly(filteredReleases []Release) map[string]struct{} {
|
||||
directNeeds := map[string]struct{}{}
|
||||
nameToID := map[string]string{}
|
||||
for _, r := range filteredReleases {
|
||||
nameToID[r.Name] = ReleaseToID(&r.ReleaseSpec)
|
||||
}
|
||||
for _, r := range filteredReleases {
|
||||
if !r.Filtered {
|
||||
for _, id := range r.ReleaseSpec.Needs {
|
||||
directNeeds[id] = struct{}{}
|
||||
for _, need := range r.ReleaseSpec.Needs {
|
||||
if fullID, ok := nameToID[need]; ok {
|
||||
directNeeds[fullID] = struct{}{}
|
||||
} else {
|
||||
parts := strings.Split(need, "/")
|
||||
needName := parts[len(parts)-1]
|
||||
if fullID, ok := nameToID[needName]; ok {
|
||||
directNeeds[fullID] = struct{}{}
|
||||
} else {
|
||||
directNeeds[need] = struct{}{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3060,13 +3074,10 @@ func collectDirectNeedsOnly(filteredReleases []Release) map[string]struct{} {
|
|||
}
|
||||
|
||||
func unmarkReleasesByNeedID(toUnmark map[string]struct{}, releases []Release) {
|
||||
for needID := range toUnmark {
|
||||
parts := strings.Split(needID, "/")
|
||||
needName := parts[len(parts)-1]
|
||||
for i, r := range releases {
|
||||
if r.Name == needName {
|
||||
releases[i].Filtered = false
|
||||
}
|
||||
for i := range releases {
|
||||
releaseID := ReleaseToID(&releases[i].ReleaseSpec)
|
||||
if _, ok := toUnmark[releaseID]; ok {
|
||||
releases[i].Filtered = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,6 +104,19 @@ func (st *HelmState) PlanReleases(opts PlanOptions) ([][]Release, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
// If SelectedReleases is provided, mark those releases as not filtered
|
||||
if len(opts.SelectedReleases) > 0 {
|
||||
selectedIDs := make(map[string]struct{})
|
||||
for _, r := range opts.SelectedReleases {
|
||||
selectedIDs[ReleaseToID(&r)] = struct{}{}
|
||||
}
|
||||
for i := range marked {
|
||||
if _, ok := selectedIDs[ReleaseToID(&marked[i].ReleaseSpec)]; ok {
|
||||
marked[i].Filtered = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
groups, err := SortedReleaseGroups(marked, opts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
Loading…
Reference in New Issue