forked from janus-idp/helm-backstage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.md.gotmpl
217 lines (148 loc) · 7.34 KB
/
README.md.gotmpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# Janus-IDP Backstage Helm Chart
{{ template "chart.deprecationWarning" . }}
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/janus-idp&style=flat-square)](https://artifacthub.io/packages/search?repo=janus-idp)
{{ template "chart.versionBadge" . }}
{{ template "chart.typeBadge" . }}
{{ template "chart.description" . }}
{{ template "chart.homepageLine" . }}
{{ template "chart.maintainersSection" . }}
{{ template "chart.sourcesSection" . }}
---
[Janus-IDP](https://janus-idp.io/) Backstage chart is an opinionated flavor of the upstream chart located at [backstage/charts](https://github.com/backstage/charts). It extends the upstream chart with additional OpenShift specific functionality and provides opinionated values.
[Backstage](https://backstage.io) 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](https://github.com/backstage/charts/tree/main/charts/backstage). 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.
## TL;DR
```console
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
```
## Introduction
This chart bootstraps a [Backstage](https://backstage.io/docs/deployment/docker) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes 1.19+
- Helm 3.2.0+
- PV provisioner support in the underlying infrastructure
- [Backstage container image](https://backstage.io/docs/deployment/docker)
## Usage
Chart is available in the following formats:
- [Chart Repository](https://helm.sh/docs/topics/chart_repository/)
- [OCI Artifacts](https://helm.sh/docs/topics/registries/)
### Installing from the Chart Repository
The following command can be used to add the chart repository:
```console
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:
```yaml
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:
```yaml
upstream:
postgresql:
primary:
persistence:
enabled: false
```
```console
helm upgrade -i <release_name> janus-idp/backstage
```
### Installing from an OCI Registry
Chart is also available in OCI format. The list of available releases can be found [here](https://github.com/janus-idp/helm-backstage/pkgs/container/charts%2Fbackstage).
Install one of the available versions:
```shell
helm upgrade -i <release_name> oci://ghcr.io/janus-idp/helm-backstage/backstage --version=<version>
```
> **Tip**: List all releases using `helm list`
### Uninstalling the Chart
To uninstall/delete the `my-backstage-release` deployment:
```console
helm uninstall my-backstage-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
{{ template "chart.requirementsSection" . }}
{{ template "chart.valuesSection" . }}
## Opinionated Backstage deployment
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:
1. Uses [janus-idp/backstage-showcase](https://github.com/janus-idp/backstage-showcase/) that pre-loads a lot of useful plugins and features
2. Exposes a `Route` for easy access to the instance
3. Enables OpenShift-compatible PostgreSQL database storage
For additional instance features please consuls [documentation for `janus-idp/backstage-showcase`](https://github.com/janus-idp/backstage-showcase/).
Additional features can be enabled by extending the default configuration at:
```yaml
upstream:
backstage:
appConfig:
# Inline app-config.yaml for the instance
extraEnvVars:
# Additional environment variables
```
## Features
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:
### OpenShift Routes
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:
```yaml
# values.yaml
global:
clusterRouterBase: apps.example.com
```
Custom hosts are also supported via following shorthand:
```yaml
# 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:
```yaml
# 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" . {{"}}"}}'
```
### Vanilla Kubernetes compatibility mode
In order to deploy this chart on vanilla Kubernetes or any other non-OCP platform, please make sure to apply following changes. Further customization may be required, depending on your exact Kubernetes setup:
```yaml
# values.yaml
global:
host: # Specify your own Ingress host
route:
enabled: false # OpenShift Routes do not exist on vanilla Kubernetes
upstream:
ingress:
enabled: true # Use Kubernetes Ingress instead of OpenShift Route
backstage:
podSecurityContext: # Vanilla Kubernetes doesn't feature OpenShift default SCCs with dynamic UIDs, adjust accordingly to the deployed image
runAsUser: 1001
runAsGroup: 1001
fsGroup: 1001
postgresql:
primary:
podSecurityContext:
enabled: true
fsGroup: 26
runAsUser: 26
volumePermissions:
enabled: true
```