SpectroCloud Plugins#
The SpectroCloud plugins for Backstage provide comprehensive integration with SpectroCloud Palette, enabling teams to visualize, manage, and interact with their SpectroCloud resources directly within Backstage. The suite includes catalog ingestion, frontend visualization, and AI-powered automation through MCP actions.
Plugin Suite Components#
The SpectroCloud plugin suite consists of several components:
- Frontend Plugin (
@terasky/backstage-plugin-spectrocloud): - Entity cards for clusters and cluster profiles
- Cluster information display (K8s version, cloud type, state)
- Profile version tracking and upgrade indicators
- Kubeconfig download functionality
- Pack/layer visualization with YAML viewer
-
Permission-based access control
-
Backend Plugin (
@terasky/backstage-plugin-spectrocloud-backend): - HTTP API for frontend communication
- MCP actions for AI agents
- Permission enforcement
-
Secure SpectroCloud API integration
-
Ingestor Plugin (
@terasky/backstage-plugin-spectrocloud-ingestor): - Catalog entity provider
- Project, cluster profile, and cluster ingestion
- Relationship mapping between entities
-
Scheduled refresh of resources
-
Cluster Provider Plugin (
@terasky/backstage-plugin-spectrocloud-cluster-provider): - Kubernetes cluster discovery from Palette
- Automatic RBAC setup with service accounts
-
Integration with Backstage Kubernetes plugin
-
Cluster Provider Plugin (
@terasky/backstage-plugin-spectrocloud-cluster-provider): - Kubernetes cluster discovery from Palette
- Automatic RBAC setup with service accounts
-
Integration with Backstage Kubernetes plugin
-
Common Library (
@terasky/backstage-plugin-spectrocloud-common): - Shared types and interfaces
- Permission definitions
- Common utilities
Key Features#
Catalog Integration#
- Automatic Resource Ingestion:
- Projects as System entities
- Cluster Profiles as Resource entities
- Clusters as Resource entities
- Automatic relationship mapping
Frontend Visualization#
- Cluster Cards:
- Kubernetes version display
- Attached profiles with versions
- Upgrade availability indicators
- Cloud type and scope information
-
Kubeconfig download
-
Profile Cards:
- Version listing with cluster counts
- Expandable cluster lists per version
- Profile type and scope display
Pack/Layer Details#
- YAML Viewer:
- Syntax-highlighted configuration display
- Values and manifest viewing
- Tab-based navigation for manifest packs
Access Control#
- Permission Management:
- Fine-grained access control
- Kubeconfig download permissions
- Pack values/manifests viewing permissions
- Profile and cluster info permissions
AI Integration#
- MCP Actions:
- Cluster health monitoring
- Kubeconfig generation
- Profile pack details
- Cluster-to-profile reverse lookup
Available Permissions#
The plugin suite provides granular permission controls:
spectrocloud.cluster.view-info: View basic cluster informationspectrocloud.cluster.download-kubeconfig: Download cluster kubeconfigspectrocloud.cluster.view-pack-values: View pack configuration valuesspectrocloud.cluster.view-pack-manifests: View pack manifest contentspectrocloud.profile.view-info: View profile informationspectrocloud.profile.view-clusters: View clusters using a profile
Configuration#
All SpectroCloud plugins share a common configuration structure:
spectrocloud:
annotationPrefix: terasky.backstage.io # Optional, default
enablePermissions: true # Enable permission checks
environments:
- name: production
url: https://api.spectrocloud.com
tenant: my-tenant
apiToken: ${SPECTROCLOUD_API_TOKEN}
catalogProvider:
enabled: true
refreshIntervalSeconds: 600
clusterProvider:
includeProjects: [production]
excludeProjects: [sandbox]
Getting Started#
To get started with the SpectroCloud plugins:
- Install the ingestor plugin for catalog integration
- Install the backend plugin for API and MCP actions
- Install the frontend plugin for visualization
- Optionally install the cluster provider for Kubernetes plugin integration
- Configure permissions as needed
For detailed installation and configuration instructions, refer to the individual plugin documentation: