Kubernetes Ingestor Backend Plugin#
Overview#
The Kubernetes Ingestor backend plugin is a catalog entity provider that automatically creates and maintains Backstage catalog entities from Kubernetes resources. It supports standard workloads, custom resources, and provides deep integration with Crossplane for managing cloud infrastructure.
Features#
Resource Discovery#
- Automatic workload detection
- Custom resource type support
- Namespace filtering
- Selective ingestion
- Multi-cluster support
Crossplane Integration#
- Claim resource ingestion (v1)
- XR resource ingestion (v2)
- XRD template generation
- API entity creation
- Relationship tracking
Template Generation#
- XRD-based templates
- Multiple publishing targets
- Git integration
- YAML download option
- Customizable outputs
Entity Management#
- Automatic updates
- Relationship mapping
- System organization
- Metadata handling
- Annotation processing
Components#
Entity Provider#
The core component that:
- Discovers resources
- Creates entities
- Maintains relationships
- Updates catalog
Template Generator#
Generates software templates for:
- Crossplane XRDs
- Custom resources
- Resource creation
- Configuration management
API Manager#
Handles API-related tasks:
- API entity creation
- Relationship tracking
- Version management
- Documentation links
Technical Details#
Resource Processing#
The plugin processes resources through:
1. Discovery phase
2. Filtering phase
3. Entity creation
4. Relationship mapping
5. Catalog update
Mapping Models#
Supports various mapping models:
- Namespace mapping
- Name mapping
- Title mapping
- System mapping
- Reference mapping
Task Runners#
Configurable task runners for:
- Resource discovery
- Template generation
- API updates
- Relationship maintenance
Integration Points#
Kubernetes Integration#
- Cluster access
- Resource watching
- Event handling
- State management
Crossplane Integration#
- XRD processing
- Claim handling
- API generation
- Template creation
Git Integration#
- Repository access
- PR creation
- Branch management
- File handling
Use Cases#
Standard Workload Management#
- Discover workloads
- Create components
- Map relationships
- Maintain metadata
Crossplane Resource Management#
- Process XRDs
- Generate templates
- Create API entities
- Track relationships
Custom Resource Management#
- Define custom types
- Configure ingestion
- Process resources
- Create entities
Example Workflows#
Workload Discovery#
kubernetesIngestor:
components:
enabled: true
taskRunner:
frequency: 10
timeout: 600
excludedNamespaces:
- kube-system
customWorkloadTypes:
- group: pkg.crossplane.io
apiVersion: v1
plural: providers
Template Generation#
kubernetesIngestor:
crossplane:
xrds:
publishPhase:
allowedTargets: ['github.com', 'gitlab.com']
target: github
git:
repoUrl: github.com?owner=org&repo=templates
targetBranch: main
allowRepoSelection: true
For installation and configuration details, refer to the Installation Guide and Configuration Guide.