Enhance kubedog tracker with flexible resource filtering options, allowing users to control which resources are tracked. Key Features: - TrackKinds: Only track resources of specified types - SkipKinds: Skip resources of specified types - CustomTrackableKinds: Define custom resource types to actively track - CustomStaticKinds: Define custom resource types that don't need tracking - pkg/cluster/release.go: Manifest-based resource detection with filtering - Comprehensive documentation and examples Changes: - pkg/kubedog/options.go: Add new tracking configuration fields and methods - pkg/kubedog/tracker.go: Add filterResources and shouldSkipResource methods - pkg/cluster/release.go: New package for manifest parsing and resource filtering - docs/: Complete guides for custom tracking configuration - examples/: Working examples demonstrating all filtering options Benefits: - Fine-grained control over resource tracking - Support for custom resource types (CRDs) - Performance improvement by skipping unnecessary tracking - Backward compatible (defaults unchanged when not configured) Signed-off-by: yxxhero <aiopsclub@163.com> |
||
|---|---|---|
| .. | ||
| charts | ||
| custom_tracking | ||
| deployments | ||
| remote | ||
| resource_detection | ||
| values | ||
| README.md | ||
README.md
Helmfile practical examples and advanced usages
Managing oneshot-jobs with Helmfile
In case you want to manage oneshot-jobs like a report generation or a database migration and so on, add a dedicated release spec for the job in helmfile.yaml like:
repositories:
- name: yourorg
url: https://yourorg.example.com/charts
releases:
- name: dbmigrator
labels:
job: dbmigrator
chart: ./dbmigrator
# DB host, port, and connection opts for the environment
values:
- "deploy/environments/{{ env "RAILS_ENV" }}/values.yaml"
# DB username and password encrypted with helm-secrets (getsops/sops)
secrets:
- "deploy/environments/{{ env "RAILS_ENV" }}/secrets.yaml"
You would then start a database migration job by executing:
# Start a database migration for the prod environment
$ RAILS_ENV=prod helmfile --selector job=dbmigrator sync
# Tail log until you are satisfied
$ kubectl logs -l job=dbmigrator
For more context, see this issue.