Files
helmfile/pkg/app/testdata/testapply_2/skip-needs=false_include-needs=true/log
T
yxxhero 72a8727d17 fix: --include-needs should only include direct dependencies
Fixes #1003

Previously, --include-needs was incorrectly including transitive
dependencies (dependencies of dependencies). This fix ensures that:

- --include-needs only includes direct needs
- --include-transitive-needs includes both direct and transitive needs

Changes:
- Add separate handling for direct vs transitive needs in state.go
- Add IncludeNeeds field to ChartPrepareOptions
- Add unmarkNeedsDirectOnly() and collectDirectNeedsOnly() functions
- Update ForEachState and related functions to accept both flags
- Fix incorrect usage of c.IncludeNeeds() for IncludeTransitiveNeeds
- Update tests to verify the correct behavior

Signed-off-by: yxxhero <aiopsclub@163.com>
2026-03-18 08:25:32 +08:00

61 lines
2.1 KiB
Plaintext

rendering starting for "helmfile.yaml.gotmpl.part.0": inherited=&{default map[] map[] map[]}, overrode=<nil>
rendering result of "helmfile.yaml.gotmpl.part.0":
0:
1:
2:
3: releases:
4: - name: kubernetes-external-secrets
5: chart: incubator/raw
6: namespace: kube-system
7:
8: - name: external-secrets
9: chart: incubator/raw
10: namespace: default
11: labels:
12: app: test
13: needs:
14: - kube-system/kubernetes-external-secrets
15:
16: - name: my-release
17: chart: incubator/raw
18: namespace: default
19: labels:
20: app: test
21: needs:
22: - default/external-secrets
23:
merged environment: &{default map[] map[] map[]}
3 release(s) matching app=test found in helmfile.yaml.gotmpl
Affected releases are:
external-secrets (incubator/raw) UPDATED
kubernetes-external-secrets (incubator/raw) UPDATED
my-release (incubator/raw) UPDATED
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/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/kube-system/kubernetes-external-secrets
2 default/default/external-secrets
3 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
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