Versions
This is the single table of every version pinned in the Fedshi reference
instance. All values render from _constants.mdx, which is the single source of truth —
bumping a version is a one-line edit there, never a site-wide find-and-replace.
DevsPortal is built on the Control Plane Operator engine. The chart
coordinates ({versions.helmSource}, etc.), chart names, and the CRD API group are
upstream identifiers and are kept unchanged.
Platform — DevsPortal / Control Plane Operator
| Component | Version | Source | Namespace |
|---|---|---|---|
| Branded portal image (Backstage) | {versions.portalImage} | {versions.portalRepo} | openchoreo-control-plane |
| Control plane chart | {versions.platformChart} | {versions.helmSource}/openchoreo-control-plane | openchoreo-control-plane |
| Data plane chart | {versions.platformChart} | {versions.helmSource}/openchoreo-data-plane | openchoreo-data-plane |
| Workflow plane chart | {versions.platformChart} | {versions.helmSource}/openchoreo-workflow-plane | openchoreo-workflow-plane |
| Observability plane chart | {versions.platformChart} | {versions.helmSource}/openchoreo-observability-plane | openchoreo-observability-plane |
The four plane charts all share the platform chart version {versions.platformChart}.
The portal image is a Fedshi-branded Backstage build (logo, name, colors)
pushed to the self-hosted Harbor idp project — it replaces the upstream
openchoreo-ui image.
Identity, registry, and observability modules
| Component | Version | Source | Namespace |
|---|---|---|---|
| ThunderID | {versions.thunder} | oci://ghcr.io/asgardeo/helm-charts/thunder | thunder |
| Harbor | {versions.harbor} (chart) | https://helm.goharbor.io | harbor |
| Observability — logs (OpenSearch) | {versions.obsLogs} | {versions.helmSource}/observability-logs-opensearch | openchoreo-observability-plane |
| Observability — metrics (Prometheus) | {versions.obsMetrics} | {versions.helmSource}/observability-metrics-prometheus | openchoreo-observability-plane |
| Observability — traces (OpenSearch) | {versions.obsTraces} | {versions.helmSource}/observability-tracing-opensearch | openchoreo-observability-plane |
Prerequisite stack (shared infrastructure)
| Component | Version | Source | Namespace |
|---|---|---|---|
| Gateway API CRDs | {versions.gatewayApi} (experimental channel) | kubernetes-sigs/gateway-api releases | cluster-scoped |
| cert-manager | {versions.certManager} | oci://quay.io/jetstack/charts/cert-manager | cert-manager |
| External Secrets Operator | {versions.externalSecrets} | oci://ghcr.io/external-secrets/charts/external-secrets | external-secrets |
| kgateway / kgateway-crds | {versions.kgateway} | oci://cr.kgateway.dev/kgateway-dev/charts | openchoreo-control-plane |
| OpenBao | {versions.openbao} | oci://ghcr.io/openbao/charts/openbao | openbao |
Cluster baseline
| Property | Value |
|---|---|
| Kubernetes | {versions.kubernetes} |
| Cluster context | {fedshi.cluster} |
Tag conventions
- Platform plane charts use the rolling
{versions.platformChart}tag — a development channel that always pulls the latest built chart. Pin to a released tag for production stability. - The branded portal image uses a
{fedshi.brand.toLowerCase()}-N.N.Ntag (currently{versions.portalImage}). It is rebuilt and re-tagged whenever the upstream UI commit or branding changes — see the day-2 Portal branding guide. - Prerequisite components use upstream release tags (
v…orN.N.N) exactly as published by each project.
A release bump is a one-line edit to the matching key in _constants.mdx
(versions.*). Every page that shows a version — including this one and the
install guide — re-renders from it automatically.