A Helm chart for deploying a Backstage application
Homepage: https://janus-idp.io
Name | Url | |
---|---|---|
Janus-IDP | https://janus-idp.io |
Janus-IDP Backstage chart is an oppinionated flavor of the upstream chart located at backstage/charts. It extends the upstream chart with additional OpenShift specific functionality and provides oppinionated values.
Backstage is an open platform for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly — without compromising autonomy.
Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.
This chart offers an opinionated OpenShift-specific experience. It is based on and directly depends on an upstream canonical Backstage Helm chart. For less opinionated experience, please consider using the upstream chart directly.
This chart extends all the features in the upstream chart in addition to including OpenShift only features. It is not recommended to use this chart on other platforms.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add backstage https://backstage.github.io/charts
helm repo add janus-idp https://janus-idp.github.io/helm-backstage
helm install my-release janus-idp/backstage
This chart bootstraps a Backstage deployment on a Kubernetes cluster using the Helm package manager.
- Kubernetes 1.19+
- Helm 3.2.0+
- PV provisioner support in the underlying infrastructure
- Backstage container image
Chart is available in the following formats:
The following command can be used to add the chart repository:
helm repo add janus-idp https://janus-idp.github.io/helm-backstage
Once the chart has been added, install this chart. However before doing so, please review the default values.yaml
and adjust as needed.
-
To get proper connection between frontend and backend of Backstage please update the
apps.example.com
to match your cluster host:global: clusterRouterBase: apps.example.com
Tip: you can use
helm upgrade -i --set global.clusterRouterBase=apps.example.com ...
instead of a value file -
If your cluster doesn't provide PVCs, you should disable PostgreSQL persistence via:
upstream: postgresql: primary: persistence: enabled: false
helm upgrade -i <release_name> janus-idp/backstage
Chart is also available in OCI format. The list of available releases can be found here.
Install one of the available versions:
helm upgrade -i <release_name> oci://ghcr.io/janus-idp/helm-backstage/backstage --version=<version>
Tip: List all releases using
helm list
To uninstall/delete the my-backstage-release
deployment:
helm uninstall my-backstage-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Kubernetes: >= 1.19.0-0
Repository | Name | Version |
---|---|---|
https://backstage.github.io/charts | upstream(backstage) | 1.1.2 |
https://charts.bitnami.com/bitnami | common | 2.4.0 |
Key | Description | Type | Default |
---|---|---|---|
global.clusterRouterBase | Shorthand for users who do not want to specify a custom HOSTNAME. Used ONLY with the DEFAULT upstream.backstage.appConfig value and with OCP Route enabled. | string | "apps.example.com" |
global.host | Custom hostname shorthand, overrides global.clusterRouterBase , upstream.ingress.host , route.host , and url values in upstream.backstage.appConfig |
string | "" |
route | OpenShift Route parameters | object | {"annotations":{},"enabled":true,"host":"{{ .Values.global.host }}","path":"/","tls":{"caCertificate":"","certificate":"","destinationCACertificate":"","enabled":true,"insecureEdgeTerminationPolicy":"Redirect","key":"","termination":"edge"},"wildcardPolicy":"None"} |
route.annotations | Route specific annotations | object | {} |
route.enabled | Enable the creation of the route resource | bool | true |
route.host | Set the host attribute to a custom value. If not set, OpenShift will generate it, please make sure to match your baseUrl | string | "{{ .Values.global.host }}" |
route.path | Path that the router watches for, to route traffic for to the service. | string | "/" |
route.tls | Route TLS parameters Ref: https://docs.openshift.com/container-platform/4.9/networking/routes/secured-routes.html |
object | {"caCertificate":"","certificate":"","destinationCACertificate":"","enabled":true,"insecureEdgeTerminationPolicy":"Redirect","key":"","termination":"edge"} |
route.tls.caCertificate | Cert authority certificate contents. Optional | string | "" |
route.tls.certificate | Certificate contents | string | "" |
route.tls.destinationCACertificate | Contents of the ca certificate of the final destination. When using reencrypt termination this file should be provided in order to have routers use it for health checks on the secure connection. If this field is not specified, the router may provide its own destination CA and perform hostname validation using the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically verify. |
string | "" |
route.tls.enabled | Enable TLS configuration for the host defined at route.host parameter |
bool | true |
route.tls.insecureEdgeTerminationPolicy | Indicates the desired behavior for insecure connections to a route. While each router may make its own decisions on which ports to expose, this is normally port 80. The only valid values are None, Redirect, or empty for disabled. |
string | "Redirect" |
route.tls.key | Key file contents | string | "" |
route.tls.termination | Specify TLS termination. | string | "edge" |
route.wildcardPolicy | Wildcard policy if any for the route. Currently only 'Subdomain' or 'None' is allowed. | string | "None" |
upstream | Upstream Backstage chart configuration | object | Use Openshift compatible settings |
This chart defaults to an opinionated deployment of Backstage that provides user with a usable Backstage instance out of the box.
Features enabled by the default chart configuration:
- Uses janus-idp/backstage-showcase that pre-loads a lot of useful plugins and features
- Exposes a
Route
for easy access to the instance - Enables OpenShift-compatible PostgreSQL database storage
For additional instance features please consuls documentation for janus-idp/backstage-showcase
.
Additional features can be enabled by extending the default configuration at:
upstream:
backstage:
appConfig:
# Inline app-config.yaml for the instance
extraEnvVars:
# Additional environment variables
This charts defaults to using the Janus-IDP Backstage Showcase image that is OpenShift compatible:
quay.io/janus-idp/backstage-showcase:latest
Additionally this chart enhances the upstream Backstage chart with following OpenShift-specific features:
This chart offers a drop-in replacement for the Ingress
resource already provided by the upstream chart via an OpenShift Route
.
OpenShift routes are enabled by default. In order to use the chart without it, please switch to the Ingress
resource via upstream.ingress
values.
Routes can be further configured via the route
value.
By default, the chart expects you to expose Backstage via the autogenerated hostname. To provide Backstage pod with the right context, please adjust following value:
# values.yaml
global:
clusterRouterBase: apps.example.com
Custom hosts are also supported via following shorthand:
# values.yaml
global:
host: backstage.example.com
Please note this is just a templating shorthand. For full manual configuration please pay attention to values under route
key.
Please note that any custom modifications to how backstage is being exposed may require additional changes to values:
# values.yaml
upstream:
backstage:
appConfig:
app:
baseUrl: 'https://{{- include "janus-idp.hostname" . }}'
backend:
baseUrl: 'https://{{- include "janus-idp.hostname" . }}'
cors:
origin: 'https://{{- include "janus-idp.hostname" . }}'