Help
|
App Name
β
β
|
Namespace
β
β
|
||||
|---|---|---|---|---|---|
| - | - | - |
Castle Black is your deployment dashboard - it gives you a unified view of all your applications across dev, staging, and production environments.
What you can do:
Why use it?
Castle Black is owned and maintained by the SRE team.
Need help or want to report an issue?
Want to contribute?
Mostly no. Castle Black provides the same core functionality across all environments with cross-environment visibility.
What's the same everywhere:
What's environment-specific:
Recommendation: Use the environment you want to monitor for the most complete warning coverage, or use production for the most stable experience.
Environment URLs:
The π¦ icon in the Dev column indicates that there's a pending release-please PR affecting this app. The system automatically determines which apps are affected by analyzing the PR title:
π¦ Icon appears for:
chore: release 1.2.3 β affects ALL apps from that repositorychore(authentik): release 2025.8.4 β affects only the 'authentik' appchore(main): release 1.0.0 β affects ALL apps (main/master/release/deps)π¦ Icon does NOT appear when:
chore(other-app): release 1.0.0chore(API): release 1.0.0 won't match app 'api'π‘ Tips:
Available filters:
URL Parameters for bookmarking:
?ns=namespace - Filter by namespace?search=term - Search filter?mismatches=1 - Show only version mismatchesWhy do errors link to source repos instead of staging configs?
Even when errors say "missing from staging," the fix is always in the source repo. CI/CD copies files from source repo to staging, so you need to add/fix configs in the source repo at the specific tag being promoted.
How does tag inference work for monorepos?
If no tagPrefix specified, Castle Black tries {app-name}@{version} first, then falls back to plain {version}. With tagPrefix: "castle-black@", it uses exactly castle-black@v1.0.0 with no fallbacks.
What's the difference between promotion_metadata.yaml and metadata.json?
promotion_metadata.yaml = project-level config for finding deployment files (sourceRepo, configPath, tagPrefix). metadata.json = environment-specific ArgoCD app config (targetRevision, name, chart).
Why doesn't Castle Black just copy staging configs to prod?
Architecture decision: production configs must be versioned with the code they deploy. This ensures data integrity and proper audit trail.
To roll back a production deployment:
apps/{namespace}/{app-name}/prod/metadata.jsontargetRevision to the previous version you want to roll back toArgoCD will automatically detect this change and deploy the previous version within a few minutes. You can monitor the rollback progress in ArgoCD and Castle Black will reflect the changes once complete.
Alternative approach: You can also revert the specific commit that was created during the original promotion directly in GitHub.
Demo mode is enabled. Only allowlisted apps may be promoted through this tool:
This is a demo environment. In production, all eligible applications can be promoted.
π° The night is dark and full of deployments βοΈ
Castle Black v0.0.0-sha-d538d3c