helmfile/docs
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
..
proposals feat(docs): add proposal to remove charts and delete subcommands (#1936) 2025-02-24 08:11:15 -05:00
advanced-features.md feat: kubedog integration with unified resource handling (#2383) 2026-03-02 17:15:12 +08:00
builtin-objects.md Expose release version as .Release.ChartVersion for templating (#2080) 2025-06-17 19:41:42 +08:00
contributing.md Documentation site based on mkdocs and Read the Docs 2022-04-03 05:04:54 +00:00
experimental-features.md v1: Document experimental features (#1512) 2024-05-09 10:18:29 +08:00
hcl_funcs.md feat: Add IP Network to supported HCL Functions (#2426) 2026-02-26 17:20:48 +08:00
index.md feat: Add IP Network to supported HCL Functions (#2426) 2026-02-26 17:20:48 +08:00
license.md Documentation site based on mkdocs and Read the Docs 2022-04-03 05:04:54 +00:00
paths.md update examples info (#658) 2023-01-26 07:34:43 +09:00
remote-secrets.md update example chart URL in remote-secrets doc (#1809) 2024-11-28 13:19:08 +08:00
requirements.txt build(deps): bump jinja2 from 3.1.5 to 3.1.6 in /docs (#1956) 2025-03-05 23:20:16 +00:00
shared-configuration-across-teams.md chore: documentation updates: grammar & rm whitespace (#1639) 2024-07-21 13:31:41 +08:00
templating_funcs.md feat: add isDir template function (#1657) 2024-08-06 21:39:00 +08:00
users.md Documentation site based on mkdocs and Read the Docs 2022-04-03 05:04:54 +00:00
writing-helmfile.md Allow secrets to be excluded from release template inheritance (#1189) 2023-12-05 18:17:48 +08:00