This PR adds a new provider for Flux CD, similar to the existing ArgoCD provider. Flux CD is a GitOps tool for Kubernetes that provides continuous delivery through automated deployment, monitoring, and management of applications.
Features Implemented
Topology Integration
- Pull topology data from Flux CD resources (GitRepositories, HelmRepositories, Kustomizations, HelmReleases)
- Create a graph of services with proper dependencies
- Categorize resources as “source” or “deployment”
Alert Integration
- Pull alerts from Kubernetes events related to Flux CD controllers
- Pull alerts from resource status conditions (non-ready resources)
- Determine alert severity based on event reason
- Provide detailed alert information
Authentication Options
- Support for kubeconfig file content
- Support for API server URL and token
- Support for in-cluster configuration
- Support for default kubeconfig file
Provider Metadata
- Get Flux CD version
- Get installed controllers
- Get resource counts
Implementation Details
- Created a new provider class FluxcdProvider that extends BaseTopologyProvider
- Implemented authentication with Kubernetes API
- Implemented methods to get Flux CD resources (GitRepositories, Kustomizations, HelmReleases)
- Implemented the pull_topology method to create a topology map
- Implemented the get_alerts method to pull alerts from Flux CD
- Added comprehensive error handling and logging
- Added unit tests for all functionality
- Added documentation
Documentation
- Added a README.md file with comprehensive documentation
- Added a documentation file for the Keep documentation site
Testing
- Added unit tests for all functionality
- Tested with a local Kubernetes cluster running Flux CD
/fixes #4632
/claim #4632