helmfile/test/integration/test-cases
yxxhero 6e21671228
feat: kubedog integration with unified resource handling (#2383)
* feat: add kubedog-based resource tracking integration

Add kubedog tracking as an alternative to Helm's --wait flag with:
- Real-time deployment progress tracking
- Container log streaming
- Fine-grained resource filtering (trackKinds/skipKinds/trackResources)

Features:
- New pkg/resource package for unified manifest parsing and filtering
- New pkg/kubedog package wrapping kubedog library
- CLI flags: --track-mode, --track-timeout, --track-logs
- Helmfile YAML support for trackMode, trackTimeout, trackLogs, trackKinds, skipKinds, trackResources
- Case-insensitive kind matching for filtering
- Multi-context support with proper kubeconfig/kubeContext handling

Tracking supports: Deployment, StatefulSet, DaemonSet, Job

Resource filtering priority (highest to lowest):
1. trackResources - explicit resource whitelist
2. skipKinds - blacklist specific kinds
3. trackKinds - whitelist specific kinds

Integration:
- Disable Helm --wait when using kubedog tracking
- Track after successful Helm sync/apply
- Respect release.Namespace as fallback for resources without namespace
- Use getKubeContext() for correct cluster targeting

Tests:
- Unit tests for resource filtering and kubedog options
- Integration test with httpbin chart
- E2E snapshot tests for YAML serialization
- Documentation in docs/advanced-features.md

Signed-off-by: yxxhero <aiopsclub@163.com>

* fix: address PR #2383 review comments (round 4)

1. resource/filter.go: Skip empty whitelist entries in matchWhitelist
   - At least one field (kind/name/namespace) must be specified
   - Prevents matching all resources with empty TrackResources entries

2. config/apply.go: Add ValidateConfig for track-mode validation
   - Validate --track-mode must be 'helm' or 'kubedog'
   - Reject invalid values like --track-mode foo

3. config/sync.go: Add ValidateConfig for track-mode validation
   - Same validation as apply command
   - Ensures consistent behavior across commands

Signed-off-by: yxxhero <aiopsclub@163.com>

---------

Signed-off-by: yxxhero <aiopsclub@163.com>
2026-03-02 17:15:12 +08:00
..
chart-needs
chartify
chartify-jsonPatches-and-strategicMergePatches
chartify-with-non-chart-dir
cli-overwrite-environment-values
deps-kustomization-i-1402/input
deps-mr-1011/input
diff-args
fetch-forl-local-chart/input
happypath
hcl-secrets
helmfile-double-fetch/input
include-template-func
issue-1749/input
issue-1893/input
issue-2097
issue-2103/input
issue-2247
issue-2269/input
issue-2271/input
issue-2275/input
issue-2280/input
issue-2281-array-merge
issue-2291/input
issue-2297-local-chart-transformers/input
issue-2309-kube-context-template
issue-2353-layer-array-replace
issue-2355/input
issue-2409-sequential-kubecontext/input
issue-2418/input fix: skip helm repo update when only OCI repos are configured (#2420) 2026-02-25 12:13:20 +08:00
issue-2424-sequential-values-paths/input fix: use absolute baseDir in sequential helmfiles for correct values path resolution (#2425) 2026-02-26 07:47:39 +08:00
issue-2431/input fix: local chart with external dependencies error when repos configured (#2433) 2026-02-28 09:23:04 +08:00
kubedog-tracking feat: kubedog integration with unified resource handling (#2383) 2026-03-02 17:15:12 +08:00
kustomized-fetch/input
oci-parallel-pull/input
postrender
regression/input
secretssops
skip-diff-output
state-values-set-cli-args-in-environments
suppress-output-line-regex
unittest/input
v1-subhelmfile-multi-bases-with-array-values
yaml-overwrite
chart-needs.sh
chartify-jsonPatches-and-strategicMergePatches.sh
chartify-with-non-chart-dir.sh
chartify.sh
cli-overwrite-environment-values.sh
deps-kustomization-i-1402.sh
deps-mr-1011.sh
diff-args.sh
fetch-forl-local-chart.sh
happypath.sh
hcl-secrets.sh
helmfile-double-fetch.sh
include-template-func.sh
issue-1749.sh
issue-1893.sh
issue-2097.sh
issue-2103.sh
issue-2247.sh
issue-2269.sh
issue-2271.sh
issue-2275.sh
issue-2280.sh
issue-2281-array-merge.sh
issue-2291.sh
issue-2297-local-chart-transformers.sh
issue-2309-kube-context-template.sh
issue-2353-layer-array-replace.sh
issue-2355.sh
issue-2409-sequential-kubecontext.sh
issue-2418.sh fix: skip helm repo update when only OCI repos are configured (#2420) 2026-02-25 12:13:20 +08:00
issue-2424-sequential-values-paths.sh fix: use absolute baseDir in sequential helmfiles for correct values path resolution (#2425) 2026-02-26 07:47:39 +08:00
issue-2431.sh fix: local chart with external dependencies error when repos configured (#2433) 2026-02-28 09:23:04 +08:00
kubedog-tracking.sh feat: kubedog integration with unified resource handling (#2383) 2026-03-02 17:15:12 +08:00
kustomized-fetch.sh
oci-parallel-pull.sh
postrender.sh
regression.sh
secretssops.sh
skip-diff-output.sh
state-values-set-cli-args-in-environments.sh
suppress-output-line-regex.sh
unittest.sh
v1-subhelmfile-multi-bases-with-array-values.sh
yaml-overwrite.sh