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> |
||
|---|---|---|
| .. | ||
| release.go | ||
| version.go | ||
| version_test.go | ||