Configuring the SpectroCloud Ingestor Plugin#
The SpectroCloud ingestor plugin provides extensive configuration options for customizing resource ingestion behavior.
Configuration Structure#
spectrocloud:
annotationPrefix: terasky.backstage.io # Global annotation prefix
environments:
- name: production
url: https://api.spectrocloud.com
tenant: my-tenant
apiToken: ${SPECTROCLOUD_API_TOKEN}
catalogProvider:
enabled: true
refreshIntervalSeconds: 600
ingestProjects: true
ingestClusterProfiles: true
ingestClusters: true
includeProjects:
- production
- staging
excludeProjects:
- sandbox
excludeTenantScopedProfiles: false
excludeTenantScopedClusters: false
Configuration Parameters#
Global Settings#
| Parameter | Type | Default | Description |
|---|---|---|---|
annotationPrefix |
string | terasky.backstage.io |
Prefix for entity annotations |
Environment Settings#
| Parameter | Type | Default | Description |
|---|---|---|---|
name |
string | optional | Instance name for multi-instance setups |
url |
string | required | SpectroCloud API URL |
tenant |
string | required | SpectroCloud tenant name |
apiToken |
string | required | SpectroCloud API token |
Catalog Provider Settings#
| Parameter | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | true |
Enable/disable the provider |
refreshIntervalSeconds |
number | 600 |
Refresh interval in seconds |
ingestProjects |
boolean | true |
Ingest project entities |
ingestClusterProfiles |
boolean | true |
Ingest cluster profile entities |
ingestClusters |
boolean | true |
Ingest cluster entities |
includeProjects |
string[] | [] |
Projects to include (empty = all) |
excludeProjects |
string[] | [] |
Projects to exclude |
excludeTenantScopedProfiles |
boolean | false |
Exclude tenant-scoped profiles |
excludeTenantScopedClusters |
boolean | false |
Exclude tenant-scoped clusters |
Configuration Examples#
Basic Configuration#
spectrocloud:
environments:
- url: https://api.spectrocloud.com
tenant: my-tenant
apiToken: ${SPECTROCLOUD_API_TOKEN}
catalogProvider:
enabled: true
Production-Only Configuration#
spectrocloud:
environments:
- name: prod
url: https://api.spectrocloud.com
tenant: my-tenant
apiToken: ${SPECTROCLOUD_API_TOKEN}
catalogProvider:
enabled: true
refreshIntervalSeconds: 300
includeProjects:
- production
- staging
excludeProjects:
- development
- sandbox
Multi-Instance Configuration#
spectrocloud:
annotationPrefix: terasky.backstage.io
environments:
- name: us-prod
url: https://api-us.spectrocloud.com
tenant: us-tenant
apiToken: ${SPECTROCLOUD_US_TOKEN}
catalogProvider:
enabled: true
refreshIntervalSeconds: 600
includeProjects:
- us-production
- name: eu-prod
url: https://api-eu.spectrocloud.com
tenant: eu-tenant
apiToken: ${SPECTROCLOUD_EU_TOKEN}
catalogProvider:
enabled: true
refreshIntervalSeconds: 600
includeProjects:
- eu-production
Clusters-Only Configuration#
spectrocloud:
environments:
- url: https://api.spectrocloud.com
tenant: my-tenant
apiToken: ${SPECTROCLOUD_API_TOKEN}
catalogProvider:
enabled: true
ingestProjects: false
ingestClusterProfiles: false
ingestClusters: true
Entity Naming Convention#
The plugin uses smart naming conventions to ensure uniqueness:
Projects#
- Format:
<project-name>or<instance>-<project-name> - Title: Original project name
Cluster Profiles#
- Project-scoped:
<project-name>-<profile-name> - Tenant-scoped:
tenant-<profile-name> - Title: Original profile name
Clusters#
- Project-scoped:
<project-name>-<cluster-name> - Tenant-scoped:
tenant-<cluster-name> - Title: Original cluster name
Filtering Strategies#
Include Strategy#
Use includeProjects to whitelist specific projects:
Exclude Strategy#
Use excludeProjects to blacklist specific projects:
Tenant-Scoped Exclusion#
Exclude tenant-scoped resources:
Best Practices#
Performance#
- Set appropriate refresh intervals (not too frequent)
- Use project filtering to limit scope
- Monitor catalog size growth
Security#
- Use environment variables for API tokens
- Limit API token permissions to read-only
- Use project filtering for sensitive environments
Organization#
- Use meaningful instance names
- Consistent annotation prefix across plugins
- Document project naming conventions
Troubleshooting#
Common Issues#
- No Entities Created
- Verify
catalogProvider.enabledistrue - Check API credentials
-
Review project filters
-
Missing Projects/Clusters
- Check
includeProjects/excludeProjectsfilters - Verify API token has access
-
Check tenant-scoped exclusion settings
-
Duplicate Entities
- Ensure unique instance names
- Check annotation prefix consistency
-
Review naming conventions
-
Stale Data
- Reduce
refreshIntervalSeconds - Check scheduler is running
- Review backend logs