helmfile/pkg/cluster
yxxhero bc8ed87397 feat: implement getReleaseResources for kubedog tracking
Implement the getReleaseResources method to detect Kubernetes resources
from Helm chart manifests for kubedog tracking.

This implementation:

1. Creates a new pkg/cluster package with:
   - Resource struct for resource metadata (kind, name, namespace)
   - ReleaseResources struct for holding all resources in a release
   - TrackConfig for custom tracking configuration
   - GetReleaseResourcesFromManifest() to parse helm template output
   - Helper functions for filtering trackable vs static resources
   - Helper functions for getting Helm release labels/annotations

2. Implements getReleaseResources() method that:
   - Runs helm template to generate Kubernetes manifests
   - Reads all YAML files from template output directory
   - Combines files into a single manifest with document separators
   - Parses manifest using k8s.io/apimachinery unstructured decoder
   - Converts cluster.Resource to kubedog.ResourceSpec for tracking
   - Cleans up temporary files after parsing

3. Removes unused functions from helmx.go:
   - parseResourceKindAndName() - replaced by manifest parsing
   - isTrackableResourceKind() - moved to cluster package

Benefits:
- Works offline without Kubernetes cluster connection
- Faster than API-based resource detection
- More reliable and deterministic
- Enables kubedog tracking with proper resource filtering

Fixes: #2383
Signed-off-by: yxxhero <aiopsclub@163.com>
2026-01-25 21:57:12 +08:00
..
release.go feat: implement getReleaseResources for kubedog tracking 2026-01-25 21:57:12 +08:00
version.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00
version_test.go 🐛 Fix four critical issues: environment merging, kubeVersion detection, lookup() with kustomize, and Helm 4 color flags (#2276) 2025-11-21 08:32:54 +08:00