mirror of https://github.com/helm/helm
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dependabot/go_modules/main/sigs.k8s.io/controller-runtime-0.24.1
dependabot/go_modules/dev-v3/k8s-io-dad96f7a66
dependabot/go_modules/main/k8s-io-df5ae65025
dev-v3
main
release-3.21
release-4.2
gjenkins/v3/bump_v3.21
gjenkins/v4.2_bump
dependabot/go_modules/dev-v3/golang.org/x/crypto-0.49.0
dependabot/go_modules/dev-v3/golang.org/x/term-0.41.0
release-3.20
release-4.1
dependabot/go_modules/dev-v3/golang.org/x/text-0.35.0
dependabot/go_modules/main/k8s.io/klog/v2-2.140.0
dependabot/go_modules/dev-v3/k8s.io/klog/v2-2.140.0
release-3.19
release-4.0
copilot/backport-reflect-pointer-change
gjenkins8-patch-2
release-3.18
release-3.17
revert-toml-change
revert-13534-dev-v3-12987
add-lfx-insights
release-3.16
revert-11726-fixDepUpPerformance
release-3.15
dependabot/go_modules/k8s-io-4a36690ef2
release-3.14
release-3.13
release-3.12
release-3.11
release-3.10
Release
release-3.9
release-3.8
release-3.7
release-3.6
release-3.6.2
release-3.6.1
release-3.5
release-3.4
add-codeql
dev-v2
release-2.17
release-3.3
release-2.16
release-3.2
release-3.1
release-3.0
release-2.15
release-v3.0.0-beta.4
release-2.14
release-2.13
release-2.12
release-2.11
release-2.10
feat-v3/event-emitter-lua
release-2.9
release-2.8
release-2.7
release-2.6
release-2.5
release-2.4
release-2.3
release-2.2
release-2.1
release-2.0
kube-update-test
release-v1.2.1
v3.21.0-rc.1
v4.2.0-rc.1
v3.20.2
v4.1.4
v3.20.1
v4.1.3
v4.1.2
v4.1.1
v3.20.0
v4.1.0
v3.19.5
v4.0.5
v3.20.0-rc.1
v4.1.0-rc.1
v4.0.4
v3.19.4
v4.0.2
v3.19.3
v4.0.1
v3.19.2
v4.0.0
v3.19.1
v4.0.0-rc.1
v4.0.0-beta.2
v4.0.0-beta.1
v3.19.0
v3.19.0-rc.1
v4.0.0-alpha.1
v3.18.6
v3.18.5
v3.17.4
v3.18.4
v3.18.3
v3.18.2
v3.18.1
v3.18.0
v3.18.0-rc.2
v3.18.0-rc.1
v3.17.3
v3.17.2
v3.17.1
v3.17.0
v3.17.0-rc.1
v3.16.4
v3.16.3
v3.16.2
v3.16.1
v3.16.0
v3.16.0-rc.1
v3.15.4
v3.15.3
v3.15.2
v3.15.1
v3.15.0
v3.15.0-rc.2
v3.15.0-rc.1
v3.14.4
v3.14.3
v3.14.2
v3.14.1
v3.14.0
v3.14.0-rc.1
v3.13.3
v3.13.2
v3.13.1
v3.13.0
v3.13.0-rc.1
v3.12.3
v3.12.2
v3.12.1
v3.12.0
v3.12.0-rc.1
v3.11.3
v3.11.2
v3.12.0-dev.1
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v2.17.0
v3.4.0-rc.1
v2.17.0-rc.1
v3.3.4
v2.16.12
v3.3.3
v2.16.11
v3.3.2
v3.3.1
v2.16.10
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v2.16.9
v3.2.4
v2.16.8
v3.2.3
v3.2.2
v3.2.1
v2.16.7
v3.1.3
v3.2.0
v3.2.0-rc.1
v2.16.6
v2.16.5
v2.16.4
v3.1.2
v3.1.1
v2.16.3
v2.16.2
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.16.1
v3.0.0-rc.4
v3.0.0-rc.3
v2.16.0
v3.0.0-rc.2
v2.16.0-rc.2
v2.16.0-rc.1
v3.0.0-rc.1
v2.15.2
v2.15.1
v3.0.0-beta.5
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v2.14.3
v3.0.0-alpha.2
v2.14.2
v2.14.1
v3.0.0-alpha.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
1.999.0
v1.0
v1.1
v1.2
v1.2.1
v2.0.0
v2.0.0-alpha.1
v2.0.0-alpha.2
v2.0.0-alpha.3
v2.0.0-alpha.4
v2.0.0-alpha.5
v2.0.0-beta.1
v2.0.0-beta.2
v2.0.0-rc.1
v2.0.0-rc.2
v2.0.1
v2.0.2
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.2.0
v2.2.1
v2.2.2
v2.2.3
${ noResults }
Implements HIP-0025 to give chart authors first-class control over deployment ordering of chart resources and subcharts. Helm operators opt in via --wait=ordered (or WaitStrategy=ordered in the SDK); default behavior for Chart v2 is unchanged. == Foundations == - DAG abstraction (pkg/chart/v2/util/dag.go) with topological batch output and cycle detection. - Resource-group annotation parsing and dependency tracking (pkg/release/v1/util/resource_group.go) for helm.sh/resource-group and helm.sh/depends-on/resource-groups; resource IDs are apiVersion/Kind/Namespace/Name to disambiguate cross-namespace. - Subchart DAG (pkg/chart/v2/util/subchart_dag.go) reading depends-on on Chart.yaml dependencies and the helm.sh/depends-on/subcharts annotation. BuildSubchartDAG inspects c.Dependencies() (post ProcessDependencies) so it correctly respects conditions, tags, and aliases - addresses joejulian's review feedback on metadata heuristics. - DependsOn []string field on chart.Dependency (pkg/chart/v2/dependency.go). - SequencingInfo metadata stored on the release object (pkg/release/v1/release.go) so rollback knows whether a revision was sequenced. - Custom readiness via helm.sh/readiness-success and helm.sh/readiness-failure JSONPath expressions (pkg/kube/readiness.go); falls back to kstatus if either is missing. Failure conditions take precedence over success. == Action integration == - pkg/action/sequencing.go: sequencedDeployment with per-batch deadline via min(), context.Done() honored at build/create/wait phases, and isolated/partial-readiness warnings emitted once per batch (not per poll tick). - Install, upgrade, rollback, and uninstall actions consume WaitStrategy=ordered. Sequenced uninstall and rollback are gated on the release's stored SequencingInfo to enforce the HIP "reverse install order" semantic. - ReadinessTimeout (default 1m) is capped by --timeout and applied per batch. - Manifest path recovery for nested subcharts on rollback/uninstall. == CLI == - --wait=ordered on install, upgrade, rollback, AND uninstall. The AddOrderedWaitFlag helper in pkg/cmd/flags.go is shared across all four commands. - --readiness-timeout flag with docstring clarifying that "ready" is determined by kstatus signals or custom readiness annotations, and that vanilla Jobs need --wait-for-jobs. - helm template emits "## START resource-group: <chart> <name>" / "## END resource-group: ..." delimiters when --wait=ordered. Falls back to flat manifest output with a warning if YAML parsing fails. == Lint == - pkg/chart/v2/lint/rules/sequencing.go: ErrorSev for circular subchart deps, partial readiness annotations, and orphan helm.sh/depends-on/resource-groups references. Empty annotation values are treated as absent (matches runtime behavior). == Tests + fixtures == - Unit tests for DAG, subchart DAG, lint rules, readiness JSONPath, resource-group parsing, sequencing action, ordered template output, and CLI flag wiring. Includes context-cancellation coverage for sequencedDeployment per joejulian's request. - Integration testchart at pkg/cmd/testdata/testcharts/sequenced-chart/ exercising parent->subchart and resource-group ordering. == Backward compatibility == Sequencing is gated on WaitStrategy == OrderedWaitStrategy. Charts without HIP-0025 annotations or --wait=ordered behave exactly as before. The depends-on field on Chart.yaml dependencies is silently accepted and unknown to upstream-stable lint (forward-compat fix to be tracked separately once HIP is accepted). Refs: HIP-0025 Addresses: joejulian and Copilot review feedback on PR #32038 Signed-off-by: Rohit Gudi <50377477+caretak3r@users.noreply.github.com> |
2 weeks ago | |
|---|---|---|
| .. | ||
| charts/worker | feat: implement HIP-0025 resource creation sequencing | 2 weeks ago |
| templates | feat: implement HIP-0025 resource creation sequencing | 2 weeks ago |
| Chart.yaml | feat: implement HIP-0025 resource creation sequencing | 2 weeks ago |