Compare commits

...

174 Commits

Author SHA1 Message Date
Armel Soro c1b06c96dd
feat: Support autoscaling via HPA (#268)
* feat: expose autoscaling configuration using the HPA resource

Signed-off-by: Armel Soro <asoro@redhat.com>

* Set the Deployment replicas only if autoscaling is not enabled

When autoscaling is enabled, the HPA controller controls the number of replicas [1]

[1] https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/\#migrating-deployments-and-statefulsets-to-horizontal-autoscaling

Signed-off-by: Armel Soro <asoro@redhat.com>

* Add CI values file with autoscaling enabled

Signed-off-by: Armel Soro <asoro@redhat.com>

* Bump chart version

This is a backward-compatible change

Signed-off-by: Armel Soro <asoro@redhat.com>

* Update values schema

Signed-off-by: Armel Soro <asoro@redhat.com>

* Update README

Signed-off-by: Armel Soro <asoro@redhat.com>

---------

Signed-off-by: Armel Soro <asoro@redhat.com>
2025-07-09 21:16:13 +01:00
dependabot[bot] 3b72b98b16
chore(deps): bump sigstore/cosign-installer from 3.8.2 to 3.9.1 (#267)
* chore(deps): bump sigstore/cosign-installer from 3.8.2 to 3.9.1

Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.2 to 3.9.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](3454372f43...398d4b0eee)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: schema references

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* bumps chart version to 2.5.3

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
2025-06-23 17:54:27 +01:00
dependabot[bot] 45ba9bd1de
chore(deps): bump actions/setup-go from 5.4.0 to 5.5.0 (#265) 2025-05-24 06:18:15 +01:00
dependabot[bot] a8c862044a
chore(deps): bump actions/setup-python from 5.5.0 to 5.6.0 (#263)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](8d9ed9ac5c...a26af69be9)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 5.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-10 15:05:28 +01:00
dependabot[bot] 6dcd9bb905
chore(deps): bump sigstore/cosign-installer from 3.8.1 to 3.8.2 (#262)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d7d6bc7722...3454372f43)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-10 15:05:06 +01:00
dependabot[bot] dd66752014
chore(deps): bump oras-project/setup-oras from 1.2.2 to 1.2.3 (#264)
* chore(deps): bump oras-project/setup-oras from 1.2.2 to 1.2.3

Bumps [oras-project/setup-oras](https://github.com/oras-project/setup-oras) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/oras-project/setup-oras/releases)
- [Commits](5c0b487ce3...8d34698a59)

---
updated-dependencies:
- dependency-name: oras-project/setup-oras
  dependency-version: 1.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* adds schema

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* bumps chart

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
2025-05-10 15:00:20 +01:00
Chris Burns ebba2e3094
feat: adds codespell action to ensure correct spelling (#259)
* feat: adds codespell action to ensure correct spelling

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* bumps chart version

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* merge conflicts

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* adds codespell action

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* bumps chart

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

---------

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com>
2025-04-14 15:56:44 +02:00
Ilan Zerath 63ec4eb19e
feat: Add PDB (#248)
Signed-off-by: Ilan Zerath <contact@fuegobyp.business>
Co-authored-by: Ilan Zerath <contact@fuegobyp.business>
2025-04-10 17:18:00 +01:00
dependabot[bot] da59cbc874
chore(deps): bump actions/setup-python from 5.4.0 to 5.5.0 (#260)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](42375524e2...8d9ed9ac5c)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-31 18:12:30 +01:00
Chris Burns cb7f0d4955
fix: serviceMonitor port is a string not integer (#258) 2025-03-31 01:08:44 +01:00
dependabot[bot] 9bbdaf000b
chore(deps): bump actions/setup-go from 5.3.0 to 5.4.0 (#257)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.3.0 to 5.4.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](f111f3307d...0aaccfd150)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-29 14:05:48 +00:00
dependabot[bot] c06522e9c5
chore(deps): bump docker/login-action from 3.3.0 to 3.4.0 (#256)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](9780b0c442...74a5d14239)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 17:44:46 +00:00
dependabot[bot] c34f95a3ec
chore(deps): bump azure/setup-helm from 4.2.0 to 4.3.0 (#253) 2025-02-26 11:46:04 +00:00
dependabot[bot] 56dcd7b10c
chore(deps): bump sigstore/cosign-installer from 3.8.0 to 3.8.1 (#254) 2025-02-24 17:57:03 +00:00
Armel Soro 2df03a970e
feat: Allow configuring the Service IP Family policy to make it dual-stack (#252)
* feat: Allow configuring the Service IP Family policy to make it dual-stack

Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
Signed-off-by: Armel Soro <asoro@redhat.com>

* Bump the Chart version

Signed-off-by: Armel Soro <asoro@redhat.com>

* Update values schema

Signed-off-by: Armel Soro <asoro@redhat.com>

* Add test values file for CI

Signed-off-by: Armel Soro <asoro@redhat.com>

* Run pre-commit hooks

Signed-off-by: Armel Soro <asoro@redhat.com>

---------

Signed-off-by: Armel Soro <asoro@redhat.com>
2025-02-23 14:35:03 +00:00
dependabot[bot] 174eb0ea08
chore(deps): bump sigstore/cosign-installer from 3.7.0 to 3.8.0 (#251)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](dc72c7d5c4...c56c2d3e59)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 18:37:38 +00:00
Vincenzo Scamporlino 672bf55dd3
Bump python version (#249)
* Bump python version

Apparently 3.7 isn't available anymore in the running image which is causing some CI issues

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* Update test.yml

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* Update test.yml

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* fix: updates json schemas

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* chore: bump bugfix chart version

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

---------

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
Co-authored-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
2025-02-08 20:34:58 +00:00
dependabot[bot] 165d184f37
chore(deps): bump actions/setup-python from 5.3.0 to 5.4.0 (#247) 2025-02-04 09:59:03 +00:00
dependabot[bot] 593e6d312e
chore(deps): bump actions/stale from 9.0.0 to 9.1.0 (#246) 2025-02-03 06:47:02 +00:00
dependabot[bot] 65f39ba05c
chore(deps): bump oras-project/setup-oras from 1.2.1 to 1.2.2 (#245) 2025-02-02 00:12:33 +00:00
dependabot[bot] cb8ddd1c15
chore(deps): bump actions/setup-go from 5.2.0 to 5.3.0 (#244) 2025-02-01 13:26:08 +00:00
dependabot[bot] 14b574f9b8
chore(deps): bump helm/chart-releaser-action from 1.6.0 to 1.7.0 (#243)
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases)
- [Commits](a917fd15b2...cae68fefc6)

---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 15:19:10 +00:00
dependabot[bot] 805abd937f
chore(deps): bump helm/chart-testing-action from 2.6.1 to 2.7.0 (#242)
Bumps [helm/chart-testing-action](https://github.com/helm/chart-testing-action) from 2.6.1 to 2.7.0.
- [Release notes](https://github.com/helm/chart-testing-action/releases)
- [Commits](e6669bcd63...0d28d3144d)

---
updated-dependencies:
- dependency-name: helm/chart-testing-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 15:18:41 +00:00
dependabot[bot] 1a215fc9dc
chore(deps): bump helm/kind-action from 1.11.0 to 1.12.0 (#240)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](ae94020eaf...a1b0e39133)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-28 15:25:48 +00:00
dependabot[bot] f035007788
chore(deps): bump helm/kind-action from 1.10.0 to 1.11.0 (#238)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](0025e74a8c...ae94020eaf)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-17 22:30:09 +01:00
dependabot[bot] 0972ad802e
chore(deps): bump actions/setup-go from 5.1.0 to 5.2.0 (#239)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](41dfa10bad...3041bf56c9)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-17 22:29:45 +01:00
RedlineTriad df1d5e8e63
feat: allow extra ports to be added to the backend service (#237)
This is useful when prometheus metrics are exposed on a different port.
This resolves #236.

Signed-off-by: RedlineTriad <39059512+RedlineTriad@users.noreply.github.com>
2024-12-10 17:24:34 +01:00
Corey Daley 51294434ea
fix: Updates to jsonschema dereference script (#235)
- Fix linting errors when opening files without selecting an encoding
 - Search for values.schema.tmpl.json instead of Chart.lock files
 - Rename 'schema' variables to prevent shadowing or redefining
 - Add Module docstring
 - Add comments explaining what is being done
 - Rename file to follow Python module naming convention of snake_case
 - Rename some variables to correctly represent what they are doing, schema_template instead of chart, etc.
 - Update pre-commit to point to new jsonschema_dereference script name

Signed-off-by: Corey Daley <cdaley@redhat.com>
2024-11-25 16:14:42 +00:00
Corey Daley b0e982d951
Add support for hostAliases (#234)
* Add support for hostAliases

Signed-off-by: Joel Damata <damatj@pointclickcare.com>

* bump chart version and run pre-commit

Signed-off-by: Corey Daley <cdaley@redhat.com>

---------

Signed-off-by: Joel Damata <damatj@pointclickcare.com>
Signed-off-by: Corey Daley <cdaley@redhat.com>
Co-authored-by: Joel Damata <damatj@pointclickcare.com>
2024-11-13 19:34:50 +00:00
Corey Daley 560f425eb7
Update derived charts list and link (#233)
Signed-off-by: Corey Daley <cdaley@redhat.com>
2024-11-10 20:25:21 +00:00
Philipp Eckel 3c11e5bf74
Allow to customize the metrics port of the ServiceMonitor (#228)
fixes backstage/charts#221

Signed-off-by: Philipp Eckel <philipp.eckel@intive.com>
2024-10-31 15:58:33 +01:00
dependabot[bot] 963ffa5b00
chore(deps): bump actions/setup-go from 5.0.2 to 5.1.0 (#229)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](0a12ed9d6a...41dfa10bad)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-30 21:35:21 +01:00
dependabot[bot] 04027ec1e5
chore(deps): bump actions/checkout from 4.2.1 to 4.2.2 (#230)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](eef61447b9...11bd71901b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-30 21:35:06 +01:00
dependabot[bot] cacc587fa0
chore(deps): bump actions/setup-python from 5.2.0 to 5.3.0 (#231)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](f677139bbe...0b93645e9f)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-30 21:34:48 +01:00
Nikolai Røed Kristiansen d77bf20a9a
fix!: Use builtin probe endpoints (#216)
* fix!: Use builtin probe endpoints

These are `/.backstage/health/v1/readiness` and `/.backstage/health/v1/liveness` and were added in v1.29

Ref: https://backstage.io/docs/releases/v1.29.0#backend-health-service

Signed-off-by: Nikolai Røed Kristiansen <nikolai.kristiansen@remarkable.no>

* chore(ci): Fix test failures in v1.31

Techdocs needs to be configured in app config.
Point our image-digest test to the v1.31.0 sha

Signed-off-by: Nikolai Røed Kristiansen <nikolai.kristiansen@remarkable.no>

---------

Signed-off-by: Nikolai Røed Kristiansen <nikolai.kristiansen@remarkable.no>
2024-10-22 14:59:05 +02:00
dependabot[bot] d8e2ab88cc
chore(deps): bump oras-project/setup-oras from 1.2.0 to 1.2.1 (#227)
Bumps [oras-project/setup-oras](https://github.com/oras-project/setup-oras) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/oras-project/setup-oras/releases)
- [Commits](ca28077386...9c92598691)

---
updated-dependencies:
- dependency-name: oras-project/setup-oras
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 23:41:39 +02:00
David Roberts e7efd3e447
Add option to set Topology Spread Constraints, rather than just Affinity (#217)
* add option to set Topology Spread Constraints, rather than just Affinity

Signed-off-by: David Roberts <David.Roberts@orbis.com>

* add lint values for topologySpreadConstraints

Signed-off-by: David Roberts <David.Roberts@orbis.com>

* bump chart version

Signed-off-by: David Roberts <David.Roberts@orbis.com>

* remove the zone constraint, since the test environment is more limited

Signed-off-by: David Roberts <David.Roberts@orbis.com>

---------

Signed-off-by: David Roberts <David.Roberts@orbis.com>
2024-10-18 15:21:14 +02:00
dependabot[bot] 9ffb2b1045
chore(deps): bump actions/checkout from 4.2.0 to 4.2.1 (#226)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](d632683dd7...eef61447b9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-14 17:17:02 +02:00
Patrik Oldsberg 978e586ef7
README: notice sections for important information (#225)
Just suggesting that we highlight things that I think are commonly missed

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2024-10-11 15:48:23 +02:00
Marcus Söderberg b2e1d7dad3
feat: add support for multiple hosts and tls configurations in ingress (#218)
* feat: add support for multiple hosts and tls configurations in ingress

Signed-off-by: Marcus Söderberg <msoderb@gmail.com>

* chore(test): add ingress CI tests

Signed-off-by: Marcus Söderberg <msoderb@gmail.com>

---------

Signed-off-by: Marcus Söderberg <msoderb@gmail.com>
2024-10-10 14:34:31 +02:00
dependabot[bot] 9385bf3a19
chore(deps): bump sigstore/cosign-installer from 3.6.0 to 3.7.0 (#224)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](4959ce089c...dc72c7d5c4)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-10 14:32:13 +02:00
dependabot[bot] 112e1f743d
chore(deps): bump actions/checkout from 4.1.7 to 4.2.0 (#222)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...d632683dd7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 11:55:07 +02:00
dependabot[bot] c0b0a9b21d
chore(deps): bump actions/setup-python from 5.1.1 to 5.2.0 (#219)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](39cd14951b...f677139bbe)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 20:57:08 +01:00
jack 0aa17f4fd6
feat(backstage): option to pass in image by digest (#208)
* feat(backstage): option to pass in image by digest

Signed-off-by: 1602077 <62025739+1602077@users.noreply.github.com>

* test: add ci test for digest

Signed-off-by: 1602077 <62025739+1602077@users.noreply.github.com>

* chore: rerun precommit hook

Signed-off-by: 1602077 <62025739+1602077@users.noreply.github.com>

---------

Signed-off-by: 1602077 <62025739+1602077@users.noreply.github.com>
2024-08-22 16:26:35 +01:00
dependabot[bot] 9d0c0627b5
chore(deps): bump sigstore/cosign-installer from 3.5.0 to 3.6.0 (#215)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](59acb6260d...4959ce089c)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 20:03:37 +01:00
dependabot[bot] 88240ce7a0
chore(deps): bump docker/login-action from 3.2.0 to 3.3.0 (#210)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](0d4c9c5ea7...9780b0c442)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-27 15:39:43 +01:00
dependabot[bot] e1a709207c
chore(deps): bump actions/setup-python from 5.1.0 to 5.1.1 (#205)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](82c7e631bb...39cd14951b)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-16 21:08:10 +01:00
dependabot[bot] d8fe7d03ca
chore(deps): bump actions/setup-go from 5.0.1 to 5.0.2 (#206)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](cdcb360436...0a12ed9d6a)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-16 21:07:53 +01:00
dependabot[bot] d16ce968d8
chore(deps): bump actions/checkout from 4.1.6 to 4.1.7 (#202)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](a5ac7e51b4...692973e3d9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 20:55:51 +02:00
dependabot[bot] 864c683f5f
chore(deps): bump oras-project/setup-oras from 1.1.0 to 1.2.0 (#200)
Bumps [oras-project/setup-oras](https://github.com/oras-project/setup-oras) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/oras-project/setup-oras/releases)
- [Commits](ee7dbe1144...ca28077386)

---
updated-dependencies:
- dependency-name: oras-project/setup-oras
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-11 14:49:08 +01:00
Jason Díaz G b77ce14166
feat(ingress): add path as property configurable (#196)
* feat(ingress): add path as property configurable

Signed-off-by: Jason Diaz G. <jasondiazg@gmail.com>
Signed-off-by: Jason Diaz <jasondiazg@gmail.com>

* fix(docs): Add the correct expected ingress default value in README.md file

Signed-off-by: Jason Diaz <jasondiazg@gmail.com>

* chore(chart-version): Bump chart version to 1.9.5

Signed-off-by: Jason Diaz <jasondiazg@gmail.com>

* fix(schema): Change ingress path examples in chart schema

Signed-off-by: Jason Diaz <jasondiazg@gmail.com>

* chore(chart-version): Bump chart version to 1.9.5 in README.md

---------

Signed-off-by: Jason Diaz G. <jasondiazg@gmail.com>
Signed-off-by: Jason Diaz <jasondiazg@gmail.com>
Co-authored-by: Jason Diaz G <jason.rene.diaz.gonzalez@ericsson.com>
2024-06-04 15:48:30 -05:00
dependabot[bot] ddaaa45fa1
chore(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#198)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](e92390c5fb...0d4c9c5ea7)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 08:52:46 +02:00
Chris Burns d0314410f4
fix: move dependencies to OCI registry (#192)
* fix: migrates to bitnami oci registry

OCI is the Bitnami recommended registry to use as described in
https://blog.bitnami.com/2023/04/httpsblog.bitnami.com202304bitnami-helm-charts-now-oci.html.

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* Removes remaining Chart references for Bitnami

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* JSON Schema updates

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

---------

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
2024-05-30 20:17:07 +02:00
Chris Burns bcf7046104
chore(docs): contributing docs (#189)
Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
2024-05-22 14:29:52 +02:00
dependabot[bot] 5cc3fc62b0
chore(deps): bump actions/checkout from 4.1.5 to 4.1.6 (#197)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.5 to 4.1.6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](44c2b7a8a4...a5ac7e51b4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-22 14:06:01 +02:00
Chris Burns 62c2605e13
chore(test) adds postgres CI tests (#193)
* chore(test) adds basic postgres test

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* bumps version

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* renames file for pickup during test

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* adds ci password for postgres

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* update schema

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2024-05-22 14:05:44 +02:00
dependabot[bot] 21e6b5fa4a
chore(deps): bump actions/checkout from 4.1.4 to 4.1.5 (#194)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](0ad4b8fada...44c2b7a8a4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-13 18:40:15 +01:00
Nick Boldt 0bf76cc58d
fix: add namespace to configmap = .Release.Namespace; bump chart version to 1.9.3; update/regen docs (#178)
Signed-off-by: Nick Boldt <nboldt@redhat.com>
2024-05-09 21:52:00 +02:00
Chris Burns 68d8aec463
fix(test): adds auth test key as auth is mandatory (#187)
* fix(test): adds auth test key as auth is mandatory

Authentication has been enabled by default in newer versions of
Backstage. This adds a dummy secret so tests can continue as normal

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* updates schema json

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* bump version

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* Adds a more representative secret

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* moves comment

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* whitespace :(

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* adds test auth key

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* adds missing node

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* adds app baseurl

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* adds base url

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>

* ci: add missing techdocs config

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* chore: upgrade schema

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* Apply suggestions from code review

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: ChrisJBurns <29541485+ChrisJBurns@users.noreply.github.com>
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2024-05-09 21:45:16 +02:00
dependabot[bot] 9343f0d312
chore(deps): bump actions/setup-go from 5.0.0 to 5.0.1 (#188)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](0c52d547c9...cdcb360436)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-06 21:48:37 +02:00
dependabot[bot] 259c020ffd
chore(deps): bump actions/checkout from 4.1.2 to 4.1.4 (#184)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](9bb56186c3...0ad4b8fada)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-04 14:03:08 +01:00
dependabot[bot] e7cd943334
chore(deps): bump azure/setup-helm from 4.1.0 to 4.2.0 (#183)
Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md)
- [Commits](b7246b12e7...fe7b79cd5e)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-04 14:02:31 +01:00
dependabot[bot] 63d747303f
chore(deps): bump helm/kind-action from 1.9.0 to 1.10.0 (#182)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](99576bfa6d...0025e74a8c)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-04 14:01:43 +01:00
dependabot[bot] 45c7cc6a9a
chore(deps): bump azure/setup-helm from 3.5 to 4 (#175)
Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 3.5 to 4.
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md)
- [Commits](5119fcb908...b7246b12e7)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-23 14:49:27 +02:00
dependabot[bot] dbdef5923a
chore(deps): bump sigstore/cosign-installer from 3.4.0 to 3.5.0 (#174)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](e1523de757...59acb6260d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 14:57:46 +01:00
dependabot[bot] 659962de79
chore(deps): bump actions/setup-python from 5.0.0 to 5.1.0 (#172)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](0a5c615913...82c7e631bb)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 20:09:18 +02:00
dependabot[bot] f270900ea2
chore(deps): bump actions/checkout from 4.1.1 to 4.1.2 (#170)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](b4ffde65f4...9bb56186c3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 23:55:10 +01:00
dependabot[bot] 77d3ea2e8b
chore(deps): bump docker/login-action from 3.0.0 to 3.1.0 (#171)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](343f7c4344...e92390c5fb)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 23:54:45 +01:00
Nick Boldt fd3a453edd
chore: update chart readme to recommend newer versions of Helm (not 3.2) (#161)
* chore: update chart readme to recommend newer versions of Helm (not 3.2) - RHIDP-976

Signed-off-by: Nick Boldt <nboldt@redhat.com>

* Apply suggestions from code review

Co-authored-by: Nick Boldt <nboldt@redhat.com>
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* fix: update values.yaml schema

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: Nick Boldt <nboldt@redhat.com>
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2024-03-08 15:00:08 +01:00
Vincenzo Scamporlino b1544f660d
add stale workflow (#168)
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2024-02-28 22:36:09 +01:00
Andreas Stenius 5473e3fde6
fix: render ingress host also when using tls. (#167)
* fix: render ingress host also when using tls.

Signed-off-by: Andreas Stenius <andreas.stenius@svenskaspel.se>

* Fix README

Signed-off-by: Andreas Stenius <andreas.stenius@svenskaspel.se>

---------

Signed-off-by: Andreas Stenius <andreas.stenius@svenskaspel.se>
2024-02-23 23:49:46 +01:00
smcavallo 36f7e34d7d
feat: add support for pod affinity (#162)
* feat: add support for pod affinity
Signed-off-by: smcavallo <smcavallo@hotmail.com>

* update affinity schema
Signed-off-by: smcavallo <smcavallo@hotmail.com>

* docs: fix pod affinity readme

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* bump minor version

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2024-02-21 23:14:29 +01:00
smcavallo 92af33b2ed
fix: latest schema gen (#164)
Signed-off-by: smcavallo <smcavallo@hotmail.com>
2024-02-21 22:39:38 +01:00
dependabot[bot] 5d429b09e7
chore(deps): bump helm/kind-action from 1.8.0 to 1.9.0 (#165)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](dda0770415...99576bfa6d)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 23:26:59 +00:00
dependabot[bot] d6a4ad5bae
chore(deps): bump pre-commit/action from 3.0.0 to 3.0.1 (#166)
Bumps [pre-commit/action](https://github.com/pre-commit/action) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/pre-commit/action/releases)
- [Commits](646c83fcd0...2c7b3805fd)

---
updated-dependencies:
- dependency-name: pre-commit/action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 23:26:06 +00:00
dependabot[bot] ed9da7489d
chore(deps): bump sigstore/cosign-installer from 3.3.0 to 3.4.0 (#163)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](9614fae9e5...e1523de757)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-10 14:39:03 +00:00
Tom Coufal e122dc571b
fix: remove unused backstage.debug flag (#159)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2024-01-09 14:54:00 +01:00
dependabot[bot] 644d4351ab
chore(deps): bump sigstore/cosign-installer from 3.2.0 to 3.3.0 (#158)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](1fc5bd396d...9614fae9e5)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:06:07 +01:00
dependabot[bot] 56d73be15c
chore(deps): bump actions/setup-go from 4.1.0 to 5.0.0 (#157)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](93397bea11...0c52d547c9)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:05:51 +01:00
dependabot[bot] 51e33cd1c6
chore(deps): bump actions/setup-python from 4.7.1 to 5.0.0 (#156)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](65d7f2d534...0a5c615913)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:05:36 +01:00
Tom Coufal 1b41758add
fix: honor .global.postgresql.auth values (#154)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-12-01 16:43:51 +01:00
Tom Coufal 58edf6ee95
feat: allow for ingress.host templating (#153)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-11-24 15:51:35 +01:00
anessi e0d7fb2705
Add support for external configmaps using backstage.extraEnvVarsCM (#152)
Signed-off-by: anessi <anessi@users.noreply.github.com>
Co-authored-by: anessi <anessi@users.noreply.github.com>
2023-11-24 10:35:58 +01:00
dependabot[bot] 2dab094a5b
chore(deps): bump sigstore/cosign-installer from 3.1.2 to 3.2.0 (#151)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.2 to 3.2.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](11086d2504...1fc5bd396d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-16 10:14:19 +01:00
David Festal 00f8d98e25
fix: Use an up-to-date `kubernetes` schema (#150)
Signed-off-by: David Festal <dfestal@redhat.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-13 12:59:19 +01:00
dependabot[bot] 7c77addb58
chore(deps): bump helm/chart-releaser-action from 1.5.0 to 1.6.0 (#147)
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases)
- [Commits](be16258da8...a917fd15b2)

---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-08 18:36:01 +01:00
dependabot[bot] b9d9978952
chore(deps): bump helm/chart-testing-action from 2.4.0 to 2.6.1 (#148)
Bumps [helm/chart-testing-action](https://github.com/helm/chart-testing-action) from 2.4.0 to 2.6.1.
- [Release notes](https://github.com/helm/chart-testing-action/releases)
- [Commits](e878887317...e6669bcd63)

---
updated-dependencies:
- dependency-name: helm/chart-testing-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-08 18:35:45 +01:00
Tom Coufal 703768c779
feat: values.schema.json to support air-gapped environments (#141)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-10-25 08:47:00 +02:00
Andrew Block b0e4aafb44
Added support for NetworkPolicies (#146)
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-10-24 22:24:13 +02:00
Jakub Coufal 640ce6c882
bug: fix name of appConfig configmap (#144)
Signed-off-by: Jakub Coufal <jakub.coufal@jamf.com>
2023-10-24 15:24:54 +02:00
dependabot[bot] 1bfd1116e2
chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 (#145)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8ade135a41...b4ffde65f4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 12:59:04 +02:00
Brett Wright 462540742d
Add kubernetes startup probe (#139)
* Add kubernetes startup probe

Signed-off-by: Brett Wright <brett.wright@nine.com.au>

* Update charts/backstage/templates/backstage-deployment.yaml

Co-authored-by: Vincenzo Scamporlino <me@vinzscam.dev>
Signed-off-by: Brett Wright <brett.wright@nine.com.au>

* Fixed linting issue

Signed-off-by: Brett Wright <brett.wright@nine.com.au>

---------

Signed-off-by: Brett Wright <brett.wright@nine.com.au>
Co-authored-by: Vincenzo Scamporlino <me@vinzscam.dev>
2023-10-20 12:41:33 +02:00
dependabot[bot] a79fbc731b
chore(deps): bump actions/setup-python from 4.7.0 to 4.7.1 (#137)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](61a6322f88...65d7f2d534)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 18:48:41 +01:00
dependabot[bot] c6f1c5c5c6
chore(deps): bump oras-project/setup-oras from 1.0.0 to 1.1.0 (#135)
Bumps [oras-project/setup-oras](https://github.com/oras-project/setup-oras) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/oras-project/setup-oras/releases)
- [Commits](c90396b2dd...ee7dbe1144)

---
updated-dependencies:
- dependency-name: oras-project/setup-oras
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 18:20:13 +01:00
dependabot[bot] ec3b087c07
chore(deps): bump actions/checkout from 4.0.0 to 4.1.0 (#136)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](3df4ab11eb...8ade135a41)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 18:19:09 +01:00
dependabot[bot] f50465f990
chore(deps): bump docker/login-action from 2.2.0 to 3.0.0 (#134)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](465a07811f...343f7c4344)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-21 15:38:09 +02:00
Tomas Kral b72797a7f8
feat: update bitnami-common to 2.10.0 and postgresql to 12.10.0 (#132)
- bitnami-common@2.10.0
- postgresql@12.10.0

Signed-off-by: Tomas Kral <tkral@redhat.com>
2023-09-12 15:58:21 +02:00
dependabot[bot] 33cc076d5b
chore(deps): bump actions/checkout from 3.6.0 to 4.0.0 (#131)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](f43a0e5ff2...3df4ab11eb)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 10:07:29 +02:00
dependabot[bot] 2fee9210e1
chore(deps): bump sigstore/cosign-installer from 3.1.1 to 3.1.2 (#130)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](6e04d228eb...11086d2504)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 16:43:53 +01:00
dependabot[bot] 803761ed6d
chore(deps): bump actions/checkout from 3.5.3 to 3.6.0 (#129)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.3 to 3.6.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](c85c95e3d7...f43a0e5ff2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 13:42:59 +01:00
dependabot[bot] eeb6957161
chore(deps): bump actions/setup-go from 4.0.1 to 4.1.0 (#128)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](fac708d667...93397bea11)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-14 20:32:21 +01:00
dependabot[bot] 25da33c67d
chore(deps): bump helm/kind-action from 1.7.0 to 1.8.0 (#125)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](fa81e57adf...dda0770415)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 17:50:27 +01:00
dependabot[bot] dac28096cb
chore(deps): bump actions/setup-python from 4.6.1 to 4.7.0 (#124)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.6.1 to 4.7.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](bd6b4b6205...61a6322f88)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-17 17:49:42 +01:00
Marcel Hoyer 2c1c880636
Add spec.revisionHistoryLimit config possibility for Deployment resource (#122)
* Add spec.revisionHistoryLimit config possibility for Deployment resource

Signed-off-by: Marcel Hoyer <mhoyer@pixelplastic.de>

* Fix order of values in README.md

Signed-off-by: Marcel Hoyer <mhoyer@pixelplastic.de>

---------

Signed-off-by: Marcel Hoyer <mhoyer@pixelplastic.de>
2023-07-11 10:54:30 +02:00
Juha Tiensyrjä 111933e163
fix: Add pod labels (#111)
Signed-off-by: Juha Tiensyrjä <juha.tiensyrja@gmail.com>
2023-07-04 10:20:34 +02:00
dependabot[bot] f809b37780
chore(deps): bump sigstore/cosign-installer from 3.0.5 to 3.1.1 (#121)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.5 to 3.1.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](dd6b2e2b61...6e04d228eb)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-03 21:54:47 +01:00
dependabot[bot] 114f2c2e8a
chore(deps): bump docker/login-action from 2.1.0 to 2.2.0 (#118)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](f4ef78c080...465a07811f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 22:22:37 +01:00
dependabot[bot] 0ebaa97251
chore(deps): bump actions/checkout from 3.5.2 to 3.5.3 (#117)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8e5e7e5ab8...c85c95e3d7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 22:22:24 +01:00
Max Nitze b06aba9ab1
Allow appConfig to be provided as a string (#115)
Signed-off-by: Max Nitze <max.nitze@gmx.de>
2023-06-09 13:26:47 +02:00
Tom Coufal b1d86d306a
fix(schema): all properties should be nested under `properties` key (#114)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-06-09 11:41:10 +02:00
Joel Damata d94c8a2da4
Add readiness/liveness probes (#101)
* Add readiness/liveness probes

Signed-off-by: damatj <joel.damata@pointclickcare.com>

* Bump chart yaml version

Signed-off-by: damatj <joel.damata@pointclickcare.com>

* Fix linting

Signed-off-by: damatj <joel.damata@pointclickcare.com>

* Fix linting

Signed-off-by: damatj <joel.damata@pointclickcare.com>

* Description in wrong location

Signed-off-by: damatj <joel.damata@pointclickcare.com>

* add ci file

Signed-off-by: damatj <joel.damata@pointclickcare.com>

* run precommit

Signed-off-by: damatj <joel.damata@pointclickcare.com>

---------

Signed-off-by: damatj <joel.damata@pointclickcare.com>
Co-authored-by: damatj <joel.damata@pointclickcare.com>
2023-05-31 15:30:07 +02:00
dependabot[bot] 55e0195a6e
chore(deps): bump actions/setup-python from 4.6.0 to 4.6.1 (#108)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](57ded4d7d5...bd6b4b6205)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-30 20:30:42 +01:00
dependabot[bot] ad059cd8d6
chore(deps): bump helm/kind-action from 1.5.0 to 1.7.0 (#106)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.5.0 to 1.7.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](d8ccf8fb62...fa81e57adf)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-22 17:36:23 +01:00
dependabot[bot] d1aaf2e836
chore(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5 (#107)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.3 to 3.0.5.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](204a51a57a...dd6b2e2b61)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-22 17:02:26 +01:00
Tom Coufal 22f7902fda
feat: upgrade dependencies `bitnami/*` (#105)
BREAKING CHANGE: bitnami/postgres updates default PostgreSQL image 14->15

Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-05-19 17:06:10 +02:00
Tom Coufal f286412c62
chore: fix artifacthub badge (#104)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-05-15 20:48:20 +02:00
Tom Coufal 0d63acc92a
chore: verify ArtifactHub ownership as OCI artifact (#102)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-05-15 20:38:00 +02:00
dependabot[bot] 1d5bd60119
chore(deps): bump actions/setup-go from 4.0.0 to 4.0.1 (#103)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4d34df0c23...fac708d667)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-15 18:09:24 +02:00
Vamsi Gamidi 0074d5bae3
change extraEnvVarsSecrets items to string (#97)
Signed-off-by: Vamsi Gamidi <vamsi.gamidi@jobvite-inc.com>
2023-05-05 19:27:11 +02:00
Tom Coufal 4927da73e9
chore: set required kubeVersion because of Ingress resource (#94)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-05-05 14:06:34 +02:00
Tom Coufal bbd151cdb6
chore: add disclaimer about Backstage customization (#93)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-05-05 00:06:13 +02:00
Tom Coufal d83cda63ce
feat: add json schema for the chart (#92)
* feat: add json schema for the chart

Signed-off-by: Tomas Coufal <tcoufal@redhat.com>

* chore: enrich Chart.yaml with additional metadata

Signed-off-by: Tomas Coufal <tcoufal@redhat.com>

---------

Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-05-04 18:52:31 +02:00
dependabot[bot] 5ea59d3b51
chore(deps): bump sigstore/cosign-installer from 3.0.2 to 3.0.3 (#90)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](9e9de2292d...204a51a57a)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-02 11:24:48 +01:00
Tom Coufal 2c056d7190
fix: render resources specified via extraDeploy (#89) 2023-04-28 10:48:33 +02:00
dependabot[bot] 30ae55f9a7
chore(deps): bump actions/setup-python from 4.5.0 to 4.6.0 (#88)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](d27e3f3d7c...57ded4d7d5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-25 23:19:49 +01:00
dependabot[bot] d00602cd87
chore(deps): bump actions/checkout from 3.5.0 to 3.5.2 (#87) 2023-04-17 18:32:36 +01:00
dependabot[bot] e550034c23
chore(deps): bump sigstore/cosign-installer from 3.0.1 to 3.0.2 (#86)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](c3667d9942...9e9de2292d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 17:02:37 +01:00
Tom Coufal 77f0aedb85
feat: add additional annotations to Deployment (#78) 2023-04-04 13:13:18 +02:00
dependabot[bot] 13a408cc07
chore(deps): bump helm/chart-testing-action from 2.3.1 to 2.4.0 (#75)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-28 15:22:27 +02:00
dependabot[bot] c0b7eb8533
chore(deps): bump actions/checkout from 3.4.0 to 3.5.0 (#74)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-28 15:22:17 +02:00
enmuro 709fe4d5ea
add nodeSelector to deployment template (#73)
Co-authored-by: Tom Coufal <7453394+tumido@users.noreply.github.com>
Co-authored-by: Enoe Mugnaschi <enoe.mugnaschi@edreamsodigeo.com>
2023-03-25 11:03:14 +01:00
dependabot[bot] 27389d9897
chore(deps): bump actions/setup-go from 3.5.0 to 4.0.0 (#70)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.5.0 to 4.0.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](6edd4406fa...4d34df0c23)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-21 10:25:06 +01:00
dependabot[bot] 9e100c769c
chore(deps): bump actions/checkout from 3.3.0 to 3.4.0 (#69)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-20 22:21:32 +01:00
Alex Eftimie e48b18fee1
feat: allow setting Deployment replicas count via values (#66) 2023-03-20 14:35:10 +01:00
Tom Coufal 76135577d8
feat: Change Service port name from hardcoded to a value (#63) 2023-03-13 14:58:10 +01:00
Tom Coufal bfec87bf4f
chore(ci): Fix cosign confirmation prompts (#65) 2023-03-13 14:57:43 +01:00
Max Nitze 6126db3f21
bugfix: Render globally configured image pull secrets in deployment template (#64)
Co-authored-by: Max Nitze <Max.Nitze@mgm-tp.com>
2023-03-13 11:53:54 +01:00
dependabot[bot] d3fc1b8509
chore(deps): bump sigstore/cosign-installer from 2.8.1 to 3.0.1 (#61)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 2.8.1 to 3.0.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](9becc61764...c3667d9942)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 14:52:58 +01:00
Nikolai Røed Kristiansen 37b9b3009d
feat: Add ServiceMonitor for Prometheus operator (#58)
* feat: Add ServiceMonitor for Prometheus operator

Backstage instances with the Prometheus /metrics endpoint configured [1]
can set `serviceMonitor.enabled` to allow prometheus to scrape it's metrics

Disabled by default.

[1] https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/prometheus-metrics.md

Signed-off-by: Nikolai R Kristiansen <nikolai.kristiansen@remarkable.no>

* chore: Adress review feedback

- Move to `metrics.serviceMonitor
- Document prometheus-operator and /metrics endpoint requirements
- Remove namespaceSelector config option
- Add commonLabels and commonAnnotations

Signed-off-by: Nikolai R Kristiansen <nikolai.kristiansen@remarkable.no>

* chore: Roll chart version

Signed-off-by: Nikolai R Kristiansen <nikolai.kristiansen@remarkable.no>

* chore: Link to latest master version of /metrics tutorial

Co-authored-by: Vincenzo Scamporlino <me@vinzscam.dev>
Signed-off-by: Nikolai R Kristiansen <nikolai.kristiansen@remarkable.no>

* fix: allow templating for labels and annotations

Signed-off-by: Nikolai R Kristiansen <nikolai.kristiansen@remarkable.no>

---------

Signed-off-by: Nikolai R Kristiansen <nikolai.kristiansen@remarkable.no>
Co-authored-by: Vincenzo Scamporlino <me@vinzscam.dev>
2023-02-22 22:49:55 +01:00
Andrew Block 965b79a662
Fix issues with resources and args (#34) 2023-02-09 16:45:23 +01:00
Patrik Fuhrmann 8f188f5bcd
Fix containerSecurityContext (#57)
* Fix containerSecurityContext

Apply actually `containerSecurityContext` instead of `podSecurityContext` (I assume this a bug introduced in #20).

Signed-off-by: Patrik Fuhrmann <github@pinglf.com>

* Bump the chart version

Signed-off-by: Patrik Fuhrmann <github@pinglf.com>

* Fix README

Signed-off-by: Patrik Fuhrmann <github@pinglf.com>

* Bump only patch version instead of minor

Signed-off-by: Patrik Fuhrmann <github@pinglf.com>

---------

Signed-off-by: Patrik Fuhrmann <github@pinglf.com>
2023-02-06 15:07:57 +01:00
Alex Eftimie 1c02855d61
fix: declare both appConfig and resources (#56) 2023-01-27 14:20:54 +01:00
Alex Eftimie 75f152057b
feat: allow setting podAnnotations (#54) 2023-01-27 12:38:50 +01:00
Chris A. Qvigstad 52a9c3ae77
Tolerations option (#47) 2023-01-18 15:18:06 +01:00
dependabot[bot] e09a705607
chore(deps): bump actions/setup-python from 4.4.0 to 4.5.0 (#52)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](5ccb29d877...d27e3f3d7c)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 17:36:37 +01:00
Nikolai Røed Kristiansen 9b2769b248
chore: Generate release notes (#50)
Resolves https://github.com/backstage/charts/issues/24
2023-01-11 13:28:24 +01:00
Sylvain Pasche 5fe6c3720b
feat: allow using existing serviceAccount (#42) 2023-01-11 11:23:17 +01:00
dependabot[bot] f2855cd538
chore(deps): bump actions/checkout from 3.2.0 to 3.3.0 (#48)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-09 16:46:25 +01:00
dependabot[bot] cc92de621d
chore(deps): bump helm/chart-releaser-action from 1.4.1 to 1.5.0 (#49)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-09 16:46:18 +01:00
Nikolai Røed Kristiansen a0321174ab
feat: Annotate deployment with app config checksum (#46) 2023-01-09 16:45:31 +01:00
Andrew Block e53c183419
feat: enable the ability to specify the service target port (#44)
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-01-07 00:39:59 +00:00
Tom Coufal c7089a88d4
docs: Fix value descriptions for helm docs (#30)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2023-01-06 20:48:01 +00:00
dependabot[bot] 29ca4d30fe
chore(deps): bump actions/checkout from 3.1.0 to 3.2.0 (#36)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](93ea575cb5...755da8c3cf)
---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-30 16:20:35 +00:00
dependabot[bot] e96bc17425
chore(deps): bump actions/setup-go from 3.4.0 to 3.5.0 (#38)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](d0a58c1c4d...6edd4406fa)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-29 18:50:15 -06:00
dependabot[bot] 78d2b6b5c6
chore(deps): bump azure/setup-helm from 3.4 to 3.5 (#39)
Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 3.4 to 3.5.
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Commits](f382f75448...5119fcb908)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-28 15:03:49 -06:00
dependabot[bot] 689e045d6e
chore(deps): bump helm/kind-action from 1.4.0 to 1.5.0 (#40)
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](9e8295d178...d8ccf8fb62)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-27 12:24:35 -06:00
dependabot[bot] 930f1cec06
chore(deps): bump actions/setup-python from 4.3.0 to 4.4.0 (#45)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.3.0...5ccb29d8773c3f3f653e1705f474dfaa8a06a912)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-27 10:01:40 -06:00
Francisco Robles Martín ff60712fb9
feat: define extra app config which generates ConfigMap (#23)
* feat: define extra app config which generates ConfigMap

* change appConfig from multiline string to dict

* docs: document the usage of appConfig key to generate ConfigMap automatically

* chore: load ConfigMap with tplvalues from Bitnami common instead of just toYaml

* tests: appConfig and extraVolumes

* docs: warn about appConfig vs extraAppConfig priority

* docs: reference section with MarkDown link

Co-authored-by: Tom Coufal <7453394+tumido@users.noreply.github.com>

* docs: reference Backstage config docs and template to clarify config priority

* docs: typo

Co-authored-by: Tom Coufal <7453394+tumido@users.noreply.github.com>

* fix: run helm-docs

* fix: do not use specific drivers on CI tests

* chore: bump minor version

Co-authored-by: Tom Coufal <7453394+tumido@users.noreply.github.com>
2022-12-16 20:42:01 +01:00
Andrew Block 3f3a618d37
Added support for extraContainers and initContainers (#28)
Signed-off-by: Andrew Block <andy.block@gmail.com>

Signed-off-by: Andrew Block <andy.block@gmail.com>
2022-12-16 19:45:38 +01:00
Andrew Block 2ec8b04ae0
Migrate toYaml to partial (#29) 2022-12-16 14:52:20 +01:00
Joshua Jackson be5b46d4c8
Feature: Resource Limits for backstage container (#27) 2022-12-15 16:20:12 +01:00
Anderson Soares bb73b4d4f2
Adding release_name to the instructions The release_name was missing in the instructions (#32) 2022-12-15 12:32:29 +01:00
Chris Burns f89147ad91
feat: adds securityContexts (pod & container) (#20)
Closes undefined
2022-12-14 14:35:29 +01:00
Tom Coufal 047a74df91
docs: Use helm-docs with a proper template (#18) 2022-12-13 08:38:18 +01:00
dependabot[bot] 72df1c7397
chore(deps): bump actions/setup-python from 4.3.0 to 4.3.1 (#25)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](13ae5bb136...2c3dd9e7e2)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-12 17:46:39 +01:00
Tom Coufal bde918b8b6
chore: Add license (#7) 2022-12-12 15:35:36 +01:00
Joshua Jackson 1648c10220
Bugfix: Fix ingress error causing spec and Rules to be on single line (#22)
* [Bugfix] Fix ingress issue defined in issue 21

Why do we need this change?
=======================
Introduced recently in the TLS section is the {{- end -}} where we suppress the newline. This causes the rules to end up on the same line as the previous section and would break the schema and get something like spec:rules: which is invalid

What effects does this change have?
=======================
Changes the {{- end -}} for the TLS section of the ingress to not suppress the newline

* Bump version of the chart as needed
2022-12-10 07:35:45 +01:00
Tom Coufal 29d69af468
fix: Ingress annotations format (#13) 2022-12-08 21:09:14 +01:00
Chris Burns 737ba4f70a
feat: Adds TLS for Ingress (#17)
Closes https://github.com/backstage/charts/issues/2
2022-12-08 20:33:32 +01:00
Andrew Block e027b5a50f
Fix release process to capture digest (#19) 2022-12-08 20:31:37 +01:00
Tom Coufal a088f1055d
Default to upstream image (#15)
Resolves https://github.com/backstage/charts/issues/12
2022-12-08 17:19:25 +01:00
dependabot[bot] 55e12fdb4a
Bump azure/setup-helm from 3.3 to 3.4 (#9)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-07 10:12:36 +01:00
Andrew Block e6acb6055b
Added cosign signing (#11) 2022-12-07 10:11:01 +01:00
Tom Coufal 842dd272dd
chore: Add CI tests (#8)
Signed-off-by: Tomas Coufal <tcoufal@redhat.com>

Signed-off-by: Tomas Coufal <tcoufal@redhat.com>
2022-12-06 15:16:22 -06:00
55 changed files with 10366 additions and 377 deletions

2
.codespellrc Normal file
View File

@ -0,0 +1,2 @@
[codespell]
ignore-words-list = NotIn,notin

6
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

28
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,28 @@
<!--
Thank you for your contribution! Complete the following fields to provide insight into the changes being requested as well as steps that you can take to ensure it meets all of the requirements
Please remember to:
- mention any issue(s) that this PR closes using a closing keyword as well as the issue number, such as "Closes #XYZ" or "Resolves backstage/repo-name#XYZ", cf.
[documentation](https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
- ensure there are no merge commits!
-->
## Description of the change
<!-- Describe the change being requested. -->
## Existing or Associated Issue(s)
<!-- List any related issues. -->
## Additional Information
<!-- Provide as much information that you feel would be helpful for those reviewing the proposed changes. -->
## Checklist
- [ ] Chart version bumped in `Chart.yaml` according to [semver](http://semver.org/).
- [ ] Variables are documented in the `values.yaml` and added to the README.md. The [helm-docs](https://github.com/norwoodj/helm-docs) utility can be used to generate the necessary content. Use `helm-docs --dry-run` to preview the content.
- [ ] JSON Schema generated.
- [ ] List tests pass for Chart using the [Chart Testing](https://github.com/helm/chart-testing) tool and the `ct lint` command.

37
.github/workflows/automate_stale.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Automate staleness
on:
workflow_dispatch:
schedule:
- cron: "0 6 * * *"
permissions:
contents: read
jobs:
stale:
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
runs-on: ubuntu-latest
steps:
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
id: stale
with:
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
days-before-issue-stale: 60
days-before-issue-close: 7
exempt-issue-labels: after-vacations,will-fix
stale-issue-label: stale
stale-pr-message: >
This PR has been automatically marked as stale because it has not had
recent activity from the author. It will be closed if no further activity occurs.
If the PR was closed and you want it re-opened, let us know
and we'll re-open the PR so that you can continue the contribution!
days-before-pr-stale: 7
days-before-pr-close: 5
exempt-pr-labels: after-vacations,will-fix
stale-pr-label: stale
operations-per-run: 100

27
.github/workflows/lint.yaml vendored Normal file
View File

@ -0,0 +1,27 @@
name: Lint Charts
on:
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # pin@v4
with:
python-version: 3.12
- uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # pin@v3
with:
go-version: ^1
- name: Setup helm-docs
run: go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest
- name: Run pre-commit
uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # pin@v3.0.1

View File

@ -4,13 +4,21 @@ on:
push:
branches:
- main
paths:
- "charts/**"
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3
with:
fetch-depth: 0
@ -18,10 +26,37 @@ jobs:
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Add dependencies
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.4.0
uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # pin@v1.7.0
with:
config: cr.yaml
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 #pin@v3.4.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install Cosign
uses: sigstore/cosign-installer@398d4b0eeef1380460a10c8013a76f728fb906ac #pin@v3.9.1
- name: Install Oras
uses: oras-project/setup-oras@8d34698a59f5ffe24821f0b48ab62a3de8b64b20 # v1.2.3
- name: Publish and Sign OCI Charts
run: |
for chart in `find .cr-release-packages -name '*.tgz' -print`; do
helm push ${chart} oci://ghcr.io/${GITHUB_REPOSITORY} |& tee helm-push-output.log
file_name=${chart##*/}
chart_name=${file_name%-*}
digest=$(awk -F "[, ]+" '/Digest/{print $NF}' < helm-push-output.log)
cosign sign -y "ghcr.io/${GITHUB_REPOSITORY}/${chart_name}@${digest}"
oras push "ghcr.io/${GITHUB_REPOSITORY}/${chart_name}:artifacthub.io" "./charts/${chart_name}/artifacthub-repo.yml:application/vnd.cncf.artifacthub.repository-metadata.layer.v1.yaml"
done
env:
COSIGN_EXPERIMENTAL: 1

18
.github/workflows/spellcheck.yaml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Codespell
on:
pull_request:
jobs:
codespell:
name: Codespell
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Codespell
uses: codespell-project/actions-codespell@v2
with:
skip: .git
check_filenames: true
check_hidden: true

42
.github/workflows/test.yml vendored Normal file
View File

@ -0,0 +1,42 @@
name: Test Charts
on:
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # pin@v4.3.0
with:
version: v3.10.0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # pin@v4
with:
python-version: 3.12
- name: Set up chart-testing
uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # pin@v2.3.0
- name: "Add NGINX Ingress and Bitnami Repository"
run: |
helm repo add ingress-nginx "https://kubernetes.github.io/ingress-nginx"
helm repo update
- name: Run chart-testing (lint)
run: ct lint --config ct.yaml
- name: Create KIND Cluster
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # pin@v1.12.0
- name: Install Ingress Controller
run: "helm install ingress-nginx/ingress-nginx --generate-name --set controller.service.type='NodePort' --set controller.admissionWebhooks.enabled=false"
- name: Run chart-testing (install)
run: ct install --config ct-install.yaml

9
.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
### macOS ###
.DS_Store
.AppleDouble
.LSOverride
.idea
# helm chart dependencies
charts/*/charts/
**/charts/*.tgz

View File

@ -21,3 +21,5 @@
.idea/
*.tmproj
.vscode/
values.schema.tmpl.json

25
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,25 @@
repos:
- repo: https://github.com/norwoodj/helm-docs
rev: v1.2.0
hooks:
- id: helm-docs
args:
# Make the tool search for charts only under the ``charts` directory
- --chart-search-root=charts
# The `./` makes it relative to the chart-search-root set above
- --template-files=./_templates.gotmpl
# A base filename makes it relative to each chart directory found
- --template-files=README.md.gotmpl
- repo: local
hooks:
- id: jsonschema-dereference
name: jsonschema-dereference
entry: python .pre-commit/jsonschema_dereference.py
additional_dependencies: [jsonref]
language: python
types_or: [yaml, json]
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
- id: codespell

View File

@ -0,0 +1,54 @@
"""
This Python module:
- Searches for JSON Schema templates with the name values.schema.tmpl.json
- Dereferences any $refs contained in those files
- Outputs the new Schema to a values.schema.json file in the same directory
"""
import sys
import json
from typing import List, Dict, Any
from pathlib import Path
# External library dependency
# Install with 'pip install jsonref'
import jsonref
# File to write the dereferenced JSON Schema to
JSONSCHEMA_NAME = "values.schema.json"
# File that contains the JSON Schema that needs dereferencing
JSONSCHEMA_TEMPLATE_NAME = "values.schema.tmpl.json"
def load_template_schema(schema_dir: Path) -> Dict[str, Any]:
"""Load the schema template values.schema.tmpl.json"""
with open(schema_dir / JSONSCHEMA_TEMPLATE_NAME, "r", encoding="utf-8") as f:
return json.loads(f.read())
def save(schema_dir: Path, schema_data: Any):
"""Save the dereferenced schema to values.schema.json"""
with open(schema_dir / JSONSCHEMA_NAME, "w", encoding="utf-8") as f:
json.dump(schema_data, f, indent=4, sort_keys=True)
if __name__ == '__main__':
# Search for all values.schema.tmpl.json files
schema_templates = [p.parent for p in Path(".").rglob(JSONSCHEMA_TEMPLATE_NAME)]
# Create a list to hold any exceptions
errors: List[BaseException] = []
# Iterate over the List of found schema templates
for schema_template in schema_templates:
try:
# Load the schema into a variable as JSON
st = load_template_schema(schema_template)
# Dereference all of the $refs
s = jsonref.replace_refs(st)
# Save the dereferenced JSON
save(schema_template, s)
except BaseException as e:
# Print any errors to the screen
print(f"Could not process schema for '{schema_template}': {e}")
# Append any exceptions to the errors List
errors.append(e)
if errors:
# Exit with status 1 if any exceptions were thrown
sys.exit(1)

8
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,8 @@
# Contributing to Backstage Charts
Before making a contribution to the [Backstage Helm Chart](https://github.com/backstage/charts) you will need to ensure the following steps have been done:
- [Sign your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)
- Run `helm template` on the changes you're making to ensure they are correctly rendered into Kubernetes manifests.
- Lint tests has been run for the Chart using the [Chart Testing](https://github.com/helm/chart-testing) tool and the `ct lint` command.
- Ensure variables are documented in `values.yaml` and the [pre-commit](https://pre-commit.com/) hook has been run with `pre-commit run --all-files` to generate the `README.md` documentation. To preview the content, use `helm-docs --dry-run`.
- If you are making changes to the Chart - remember to bump the Chart version following [SemVer](https://semver.org/). You will need to change the [Chart Version](https://github.com/backstage/charts/blob/main/charts/backstage/Chart.yaml#L41) and the [Chart Badge](https://github.com/backstage/charts/blob/main/charts/backstage/README.md?plain=1#L5) on the README.

201
LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2022 The Backstage Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

2
NOTICE Normal file
View File

@ -0,0 +1,2 @@
Backstage
Copyright 2022 The Backstage Authors

229
README.md
View File

@ -4,213 +4,52 @@
Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.
## TL;DR
> [!CAUTION]
> This Helm chart deploys a pre-packaged container image which contains a vanilla Backstage instance for demo purposes. This image is probably not suitable for use in production. For further customization of the Backstage instance (plugin installation, UI changes, etc.) please create your own custom instance and container image. For details please consult the [Backstage documentation](https://backstage.io/docs)
## Scope
This chart focuses on providing users the same experience and functionality no matter what flavor of Kubernetes they use. This chart will support only patterns that are either customary for all Kubernetes flavors, are commonly used in the Bitnami charts ecosystem, and recognized as Backstage official patterns.
We welcome other, more specialized, charts to use this canonical chart as a direct dependency, expanding the feature set further, beyond this scope.
A list of derived charts:
- OpenShift specialized chart: [Red Hat Developer Hub Helm chart](https://github.com/redhat-developer/rhdh-chart/tree/main/charts/backstage)
## Usage
> [!NOTE]
> Documentation for the Backstage chart can be found [here](charts/backstage)
Charts are 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 backstage https://backstage.github.io/charts
helm install my-release 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)
## Installing the Chart
To install the chart with the release name `my-backstage-release`:
Once the chart has been added, install one of the available charts:
```console
helm repo add backstage https://backstage.github.io/charts
helm install my-backstage-release backstage/backstage
helm upgrade -i <release_name> backstage/backstage
```
> **Tip**: List all releases using `helm list`
### Installing from an OCI Registry
## Uninstalling the Chart
Charts are also available in OCI format. The list of available charts can be found [here](https://github.com/orgs/backstage/packages?repo_name=charts).
To uninstall/delete the `my-backstage-release` deployment:
Install one of the available charts:
```console
helm delete my-backstage-release
```shell
helm upgrade -i <release_name> oci://ghcr.io/backstage/charts/backstage --version=<version>
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
## Backstage Chart
## Parameters
### Global parameters
| Name | Description | Value |
| ------------------------- | ----------------------------------------------- | ----- |
| `global.imageRegistry` | Global Docker image registry | `""` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
| `global.storageClass` | Global StorageClass for Persistent Volume(s) | `""` |
### Common parameters
| Name | Description | Value |
| ------------------------ | --------------------------------------------------------------------------------------- | --------------- |
| `kubeVersion` | Override Kubernetes version | `""` |
| `nameOverride` | String to partially override common.names.fullname | `""` |
| `fullnameOverride` | String to fully override common.names.fullname | `""` |
| `clusterDomain` | Default Kubernetes cluster domain | `cluster.local` |
| `commonLabels` | Labels to add to all deployed objects | `{}` |
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
| `diagnosticMode.enabled` | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | `false` |
| `diagnosticMode.command` | Command to override all containers in the statefulset | `["sleep"]` |
| `diagnosticMode.args` | Args to override all containers in the statefulset | `["infinity"]` |
### Backstage parameters
| Name | Description | Value |
| ------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| `backstage.image.registry` | Backstage image registry | `""` |
| `backstage.image.repository` | Backstage image repository (required) | `""` |
| `backstage.image.tag` | Backstage image tag (required immutable tags are recommended) | `""` |
| `backstage.image.pullPolicy` | Backstage image pull policy | `IfNotPresent` |
| `backstage.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
| `backstage.command` | Override Backstage container command | `["node", "packages/backend"]` |
| `backstage.args` | Override Backstage container arguments | `["--config", "app-config.yaml", "--config", "app-config.production.yaml"]` |
| `backstage.extraEnvVars` | Extra environment variables to add to Backstage pods | `[]` |
| `backstage.extraAppConfig` | ConfigMap with extra environment variables | `[]` |
| `backstage.extraEnvVarsSecrets` | Array of existing secrets containing sensitive environment variables | `[]` |
### Traffic Exposure parameters
| Name | Description | Value |
| ---------------------------------- | ----------------------------------------------------------------- | ----------- |
| `ingress.enabled` | Enable ingress | `false` |
| `ingress.className` | Name of the IngressClass cluster resource (e.g nginx) | `""` |
| `ingress.annotations` | Additional annotations for the Ingress resource | `{}` |
| `ingress.host` | Hostname of the backstage application (e.g backstage.<IP>.nip.io) | `""` |
| `service.type` | Kubernetes Service type | `ClusterIP` |
| `service.ports.backend` | Port for client connections | `7007` |
| `service.nodePorts.backend` | Node port for client connections | `""` |
| `service.sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` |
| `service.clusterIP` | Backstage service Cluster IP | `""` |
| `service.loadBalancerIP` | Backstage service Load Balancer IP | `""` |
| `service.loadBalancerSourceRanges` | Backstage service Load Balancer sources | `[]` |
| `service.externalTrafficPolicy` | Backstage service external traffic policy | `Cluster` |
| `service.annotations` | Additional custom annotations for Backstage service | `{}` |
| `service.extraPorts` | Extra ports to expose in Backstage | `[]` |
## Configure your Backstage instance
The Backstage Chart makes it possible to configure your backstage instance by passing extra environment variables or static configuration files, without rebuilding the docker image.
### Environment variables
Use `backstage.extraEnvVars` to pass extra environment variables. **This is used for environment variables containing non sensitive information:**
```diff
backstage:
+ extraEnvVars:
+ - name: MY_PLUGIN_HOST
+ value: http://my-plugin-host
```
It is possible to override values defined in your `app-config.yaml` by appending the `APP_CONFIG` prefix to each environment variable, as described in the [official documentation](https://backstage.io/docs/conf/#supplying-configuration).
For example, to override the `backend.cache.store` property defined in your `app-config.yaml`, do:
```diff
backstage:
extraEnvVars:
+ - name: APP_CONFIG_backend_cache_store
+ value: memory
```
### Sensitive environment variables
In case your environment variables contain sensitive information, such as `BACKEND_SECRET` or `POSTGRES_PASSWORD` it is recommended store them in a [Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret/).
Create a new file named `my-backstage-secrets.yaml` containing the secrets you want to store:
```yaml
# my-backstage-secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: my-backstage-secrets
type: Opaque
data:
BACKEND_SECRET: YmFja3N0YWdl
POSTGRES_PASSWORD: aHVudGVyMg==
```
Make sure to customize the name of the secret by changing `metadata.name` properly.
Now create the new secret in your Kubernetes cluster by running the following command:
```bash
$ kubectl apply -f my-backstage-secrets.yaml`
```
Once the secret has been created, pass the secret's reference to your backstage instance by adding the following lines to your `values.yaml`:
```diff
backstage:
+ extraEnvVarsSecrets:
+ - my-backstage-secrets
```
The chart will make sure to pass the secrets to your Backstage instance.
### Pass extra configuration files
A generated Backstage docker image contains some static configuration files, such as `app-config.yaml` and `app-config.production.yaml`.
It is possible to pass extra configuration files by defining them as [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/), without rebuilding the Docker image.
To do so, run:
```bash
$ kubectl create configmap my-app-config --from-file=app-config.extra.yaml=./local/path/to/your/app-config.extra.yaml`
```
This command parses your local `app-config.extra.yaml` and creates a new ConfigMap called `my-app-config` which internally contains a file called `app-config.extra.yaml` with the content of the parsed file.
Now that the ConfigMap has been created on your Kubernetes cluster, you can reference the ConfigMap:
```diff
backstage:
+ extraAppConfig:
+ - filename: app-config.extra.yaml
+ configMapRef: my-app-config
```
The chart will mount the content of the ConfigMap as a new `app-config.extra.yaml` file and automatically pass the extra configuration to your instance.
### Configuring Chart PostgreSQL
With the Backstage Helm Chart, it offers - as a subchart - a Bitnami PostgreSQL database. This can be enabled by switching `postgresql.enabled` to true (it is `false` by default). If switched on, the Helm Chart, on deployment, will automatically deploy a PostgreSQL instance and configure it with the credentials you specify. There are multiple ways of doing this that will be detailed below.
#### Automatic Database Credential Creation
This is the easiest of the configuration options. Here, the credentials for both the Admin and Database users will be automatically generated and put into a Kubernetes secret. This will then be automatically used by Backstage. In order to use this method, ensure the following:
- Keep `postgresql.auth.existingSecret` & `postgresql.auth.password` empty.
#### Specifying Password for PostgreSQL to Use
Here, you can specify the password that you want PostgreSQL to use for its Database User (The user that Backstage will use to connect to the database). In order to use this method, ensure the following:
- Keep `postgresql.auth.existingSecret` empty.
- Set `postgresql.auth.password` to your desired User password value.
> **_NOTE:_** Be careful that you provide this value securely.
#### Specifying Existing Secret for PostgreSQL to Use
Here, you can specify an existing Kubernetes secret that you have created which contains the Password that you want PostgreSQL to use. The secret must be in the same namespace as where you are deploying the Helm Chart. In order to use this method, ensure the following:
- Create the Kubernetes secret with the Password inside.
- Set `postgresql.auth.existingSecret` to the name of the Secret
- PostgreSQL by default will look for the relevant Password keys that are set by default here `postgresql.auth.secretKeys`. So make sure that the Keys in the Secret match the default `secretKeys` values. More information [here](https://artifacthub.io/packages/helm/bitnami/postgresql)
- For example, if you want PostgreSQL to use an existing Secret called `my-user-secret` that has the User password that you want to use inside it: make sure that you create a Key inside that secret called `user-password` (this key can be found here `postgresql.auth.secretKeys.userPasswordKey`). i.e. `user-password=Password123`.
More information can be found by inspecting the [backstage chart](charts/backstage).

7
charts/_templates.gotmpl Normal file
View File

@ -0,0 +1,7 @@
{{ define "chart.valuesTable" }}
| Key | Description | Type | Default |
|-----|-------------|------|---------|
{{- range .Values }}
| {{ .Key }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} |
{{- end }}
{{ end }}

View File

@ -1,9 +1,9 @@
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.16.0
repository: oci://registry-1.docker.io/bitnamicharts
version: 2.10.0
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 11.6.6
digest: sha256:5f0f118ac2ae2be90edd9c6952da4bcb41feb815b39a575e23ec2a0a9244d9cd
generated: "2022-06-14T21:14:00.148159+01:00"
repository: oci://registry-1.docker.io/bitnamicharts
version: 12.10.0
digest: sha256:77630aa988cef5e3a9f64a9fc3427345f451534e973dbece805850be587cb59e
generated: "2024-05-11T14:39:32.274594+01:00"

View File

@ -1,29 +1,41 @@
annotations:
artifacthub.io/category: integration-delivery
artifacthub.io/license: Apache-2.0
artifacthub.io/links: |
- name: support
url: https://github.com/backstage/charts/issues
- name: Chart Source
url: https://github.com/backstage/charts
- name: Default Image Source
url: https://github.com/backstage/backstage
apiVersion: v2
name: backstage
description: A Helm chart for deploying a Backstage application
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
dependencies:
- name: common
repository: oci://registry-1.docker.io/bitnamicharts
tags:
- bitnami-common
version: 2.10.0
- condition: postgresql.enabled
name: postgresql
repository: oci://registry-1.docker.io/bitnamicharts
version: 12.10.0
home: https://backstage.io
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/backstage/icon/color/backstage-icon-color.svg
keywords:
- backstage
- idp
kubeVersion: ">= 1.19.0-0"
maintainers:
- name: Backstage
url: https://backstage.io
name: backstage
type: application
sources:
- https://github.com/backstage/charts
- https://github.com/backstage/backstage
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.5.1
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
tags:
- bitnami-common
version: 1.x.x
- condition: postgresql.enabled
name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 11.x.x
version: 2.6.0

352
charts/backstage/README.md Normal file
View File

@ -0,0 +1,352 @@
# Backstage Helm Chart
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/backstage)](https://artifacthub.io/packages/search?repo=backstage)
![Version: 2.6.0](https://img.shields.io/badge/Version-2.6.0-informational?style=flat-square)
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
A Helm chart for deploying a Backstage application
**Homepage:** <https://backstage.io>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| Backstage | | <https://backstage.io> |
## Source Code
* <https://github.com/backstage/charts>
* <https://github.com/backstage/backstage>
---
[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.
> Disclaimer: This Helm chart deploys a pre-packaged container image which contains a vanilla Backstage instance for demo purposes. This image is probably not suitable for use in production. For further customization of the Backstage instance (plugin installation, UI changes, etc.) please create your own custom instance and container image. For details please consult the [Backstage documentation](https://backstage.io/docs)
## TL;DR
```console
helm repo add backstage https://backstage.github.io/charts
helm install my-release backstage/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.25+
- Helm 3.10+ minimum, 3.14+ recommended
- PV provisioner support in the underlying infrastructure
- [Backstage container image](https://backstage.io/docs/deployment/docker)
## Scope
This chart focuses on providing users the same experience and functionality no matter what flavor of Kubernetes they use. This chart will support only patterns that are either customary for all Kubernetes flavors, are commonly used in the Bitnami charts ecosystem, and recognized as Backstage official patterns.
We welcome other, more specialized, charts to use this canonical chart as a direct dependency, expanding the feature set further, beyond this scope.
A list of derived charts:
- OpenShift specialized chart: [Janus Backstage Helm chart](https://github.com/janus-idp/helm-backstage/tree/main/charts/backstage)
## 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 backstage https://backstage.github.io/charts
```
Once the chart has been added, install one of the available charts:
```console
helm upgrade -i <release_name> backstage/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/backstage/charts/pkgs/container/charts%2Fbackstage).
Install one of the available versions:
```shell
helm upgrade -i oci://ghcr.io/backstage/charts/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.
## Requirements
Kubernetes: `>= 1.19.0-0`
| Repository | Name | Version |
|------------|------|---------|
| oci://registry-1.docker.io/bitnamicharts | common | 2.10.0 |
| oci://registry-1.docker.io/bitnamicharts | postgresql | 12.10.0 |
## Values
| Key | Description | Type | Default |
|-----|-------------|------|---------|
| backstage | Backstage parameters | object | See below |
| backstage.affinity | Affinity for pod assignment <br /> Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity | object | `{}` |
| backstage.annotations | Additional custom annotations for the `Deployment` resource | object | `{}` |
| backstage.appConfig | Generates ConfigMap and configures it in the Backstage pods | object | `{}` |
| backstage.args | Backstage container command arguments | list | `[]` |
| backstage.autoscaling | Autoscaling configuration. <br /> Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ | object | `{"enabled":false,"maxReplicas":100,"minReplicas":1,"targetCPUUtilizationPercentage":80}` |
| backstage.command | Backstage container command | list | `["node","packages/backend"]` |
| backstage.containerPorts | Container ports on the Deployment | object | `{"backend":7007}` |
| backstage.containerSecurityContext | Security settings for a Container. <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container | object | `{}` |
| backstage.extraAppConfig | Extra app configuration files to inline into command arguments | list | `[]` |
| backstage.extraContainers | Deployment sidecars | list | `[]` |
| backstage.extraEnvVars | Backstage container environment variables | list | `[]` |
| backstage.extraEnvVarsCM | Backstage container environment variables from existing ConfigMaps | list | `[]` |
| backstage.extraEnvVarsSecrets | Backstage container environment variables from existing Secrets | list | `[]` |
| backstage.extraPorts | Backstage container additional ports | list | `[]` |
| backstage.extraVolumeMounts | Backstage container additional volume mounts | list | `[]` |
| backstage.extraVolumes | Backstage container additional volumes | list | `[]` |
| backstage.hostAliases | Host Aliases for the pod <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ | list | `[]` |
| backstage.image.digest | Backstage image digest (digest takes precedence over image tag) | string | `""` |
| backstage.image.pullPolicy | Specify a imagePullPolicy. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' <br /> Ref: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy | string | `"Always"` |
| backstage.image.pullSecrets | Optionally specify an array of imagePullSecrets. Secrets must be manually created in the namespace. <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ <br /> E.g: `pullSecrets: [myRegistryKeySecretName]` | list | `[]` |
| backstage.image.registry | Backstage image registry | string | `"ghcr.io"` |
| backstage.image.repository | Backstage image repository | string | `"backstage/backstage"` |
| backstage.image.tag | Backstage image tag (immutable tags are recommended) | string | `"latest"` |
| backstage.initContainers | Backstage container init containers | list | `[]` |
| backstage.installDir | Directory containing the backstage installation | string | `"/app"` |
| backstage.livenessProbe | Liveness Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. livenessProbe: failureThreshold: 3 httpGet: path: /.backstage/health/v1/liveness port: 7007 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 2 | object | `{"httpGet":{"path":"/.backstage/health/v1/liveness","port":7007,"scheme":"HTTP"}}` |
| backstage.nodeSelector | Node labels for pod assignment <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector | object | `{}` |
| backstage.pdb | Pod Disruption Budget configuration ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ | object | `{"create":false,"maxUnavailable":"","minAvailable":""}` |
| backstage.podAnnotations | Annotations to add to the backend deployment pods | object | `{}` |
| backstage.podLabels | Labels to add to the backend deployment pods | object | `{}` |
| backstage.podSecurityContext | Security settings for a Pod. The security settings that you specify for a Pod apply to all Containers in the Pod. <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod | object | `{}` |
| backstage.readinessProbe | Readiness Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. readinessProbe: failureThreshold: 3 httpGet: path: /.backstage/health/v1/readiness port: 7007 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 2 timeoutSeconds: 2 | object | `{"httpGet":{"path":"/.backstage/health/v1/readiness","port":7007,"scheme":"HTTP"}}` |
| backstage.replicas | Number of deployment replicas | int | `1` |
| backstage.resources | Resource requests/limits <br /> Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container <!-- E.g. resources: limits: memory: 1Gi cpu: 1000m requests: memory: 250Mi cpu: 100m --> | object | `{}` |
| backstage.revisionHistoryLimit | Define the [count of deployment revisions](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy) to be kept. May be set to 0 in case of GitOps deployment approach. | int | `10` |
| backstage.startupProbe | Startup Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes <!-- E.g. startupProbe: failureThreshold: 3 httpGet: path: /.backstage/health/v1/liveness port: 7007 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 2 | object | `{"httpGet":{"path":"/.backstage/health/v1/liveness","port":7007,"scheme":"HTTP"}}` |
| backstage.tolerations | Node tolerations for server scheduling to nodes with taints <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ | list | `[]` |
| backstage.topologySpreadConstraints | Topology Spread Constraints for pod assignment <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#pod-topology-spread-constraints | list | `[]` |
| clusterDomain | Default Kubernetes cluster domain | string | `"cluster.local"` |
| commonAnnotations | Annotations to add to all deployed objects | object | `{}` |
| commonLabels | Labels to add to all deployed objects | object | `{}` |
| diagnosticMode | Enable diagnostic mode in the Deployment | object | `{"args":["infinity"],"command":["sleep"],"enabled":false}` |
| diagnosticMode.args | Args to override all containers in the Deployment | list | `["infinity"]` |
| diagnosticMode.command | Command to override all containers in the Deployment | list | `["sleep"]` |
| diagnosticMode.enabled | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | bool | `false` |
| extraDeploy | Array of extra objects to deploy with the release | list | `[]` |
| fullnameOverride | String to fully override common.names.fullname | string | `""` |
| global | Global parameters Global Docker image parameters Please, note that this will override the image parameters, including dependencies, configured to use the global value Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass | object | See below |
| global.imagePullSecrets | Global Docker registry secret names as an array </br> E.g. `imagePullSecrets: [myRegistryKeySecretName]` | list | `[]` |
| global.imageRegistry | Global Docker image registry | string | `""` |
| ingress | Ingress parameters | object | `{"annotations":{},"className":"","enabled":false,"extraHosts":[],"extraTls":[],"host":"","path":"/","tls":{"enabled":false,"secretName":""}}` |
| ingress.annotations | Additional annotations for the Ingress resource | object | `{}` |
| ingress.className | Name of the IngressClass cluster resource which defines which controller will implement the resource (e.g nginx) | string | `""` |
| ingress.enabled | Enable the creation of the ingress resource | bool | `false` |
| ingress.extraHosts | List of additional hostnames to be covered with this ingress record (e.g. a CNAME) <!-- E.g. extraHosts: - name: backstage.env.example.com path: / (Optional) pathType: Prefix (Optional) port: 7007 (Optional) --> | list | `[]` |
| ingress.extraTls | The TLS configuration for additional hostnames to be covered with this ingress record. <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls <!-- E.g. extraTls: - hosts: - backstage.env.example.com secretName: backstage-env --> | list | `[]` |
| ingress.host | Hostname to be used to expose the route to access the backstage application (e.g: backstage.IP.nip.io) | string | `""` |
| ingress.path | Path to be used to expose the full route to access the backstage application (e.g: IP.nip.io/backstage) | string | `"/"` |
| ingress.tls | Ingress TLS parameters | object | `{"enabled":false,"secretName":""}` |
| ingress.tls.enabled | Enable TLS configuration for the host defined at `ingress.host` parameter | bool | `false` |
| ingress.tls.secretName | The name to which the TLS Secret will be called | string | `""` |
| kubeVersion | Override Kubernetes version | string | `""` |
| metrics | Metrics configuration | object | `{"serviceMonitor":{"annotations":{},"enabled":false,"interval":null,"labels":{},"path":"/metrics","port":"http-backend"}}` |
| metrics.serviceMonitor | ServiceMonitor configuration <br /> Allows configuring your backstage instance as a scrape target for [Prometheus](https://github.com/prometheus/prometheus) using a ServiceMonitor custom resource that [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) can understand. | object | `{"annotations":{},"enabled":false,"interval":null,"labels":{},"path":"/metrics","port":"http-backend"}` |
| metrics.serviceMonitor.annotations | ServiceMonitor annotations | object | `{}` |
| metrics.serviceMonitor.enabled | If enabled, a ServiceMonitor resource for Prometheus Operator is created <br /> Prometheus Operator must be installed in your cluster prior to enabling. | bool | `false` |
| metrics.serviceMonitor.interval | ServiceMonitor scrape interval | string | `nil` |
| metrics.serviceMonitor.labels | Additional ServiceMonitor labels | object | `{}` |
| metrics.serviceMonitor.path | ServiceMonitor endpoint path <br /> Note that the /metrics endpoint is NOT present in a freshly scaffolded Backstage app. To setup, follow the [Prometheus metrics tutorial](https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/prometheus-metrics.md). | string | `"/metrics"` |
| metrics.serviceMonitor.port | ServiceMonitor endpoint port <br /> The port where the metrics are exposed. If using OpenTelemetry as [documented here](https://backstage.io/docs/tutorials/setup-opentelemetry/), then the port needs to be explicitly specified. OpenTelemetry's default port is 9464. | string | `"http-backend"` |
| nameOverride | String to partially override common.names.fullname | string | `""` |
| networkPolicy.egressRules.customRules | Additional custom egress rules | list | `[]` |
| networkPolicy.egressRules.denyConnectionsToExternal | Deny external connections. Should not be enabled when working with an external database. | bool | `false` |
| networkPolicy.enabled | Specifies whether a NetworkPolicy should be created | bool | `false` |
| networkPolicy.ingressRules.customRules | Additional custom ingress rules | list | `[]` |
| networkPolicy.ingressRules.namespaceSelector | Namespace selector label allowed to access the Backstage instance | object | `{}` |
| networkPolicy.ingressRules.podSelector | Pod selector label allowed to access the Backstage instance | object | `{}` |
| postgresql | PostgreSQL [chart configuration](https://github.com/bitnami/charts/blob/master/bitnami/postgresql/values.yaml) | object | See below |
| postgresql.architecture | PostgreSQL architecture (`standalone` or `replication`) | string | `"standalone"` |
| postgresql.auth | The authentication details of the Postgres database | object | `{"existingSecret":"","password":"","secretKeys":{"adminPasswordKey":"admin-password","replicationPasswordKey":"replication-password","userPasswordKey":"user-password"},"username":"bn_backstage"}` |
| postgresql.auth.existingSecret | Name of existing secret to use for PostgreSQL credentials | string | `""` |
| postgresql.auth.password | Password for the custom user to create | string | `""` |
| postgresql.auth.secretKeys | The secret keys Postgres will look for to retrieve the relevant password | object | `{"adminPasswordKey":"admin-password","replicationPasswordKey":"replication-password","userPasswordKey":"user-password"}` |
| postgresql.auth.secretKeys.adminPasswordKey | The key in which Postgres will look for, for the admin password, in the existing Secret | string | `"admin-password"` |
| postgresql.auth.secretKeys.replicationPasswordKey | The key in which Postgres will look for, for the replication password, in the existing Secret | string | `"replication-password"` |
| postgresql.auth.secretKeys.userPasswordKey | The key in which Postgres will look for, for the user password, in the existing Secret | string | `"user-password"` |
| postgresql.auth.username | Name for a custom user to create | string | `"bn_backstage"` |
| postgresql.enabled | Switch to enable or disable the PostgreSQL helm chart | bool | `false` |
| service | Service parameters | object | See below |
| service.annotations | Additional custom annotations for Backstage service | object | `{}` |
| service.clusterIP | Backstage service Cluster IP <br /> E.g `clusterIP: None` | string | `""` |
| service.externalTrafficPolicy | Backstage service external traffic policy Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip | string | `"Cluster"` |
| service.extraPorts | Extra ports to expose in the Backstage service (normally used with the `sidecar` value) | list | `[]` |
| service.ipFamilies | IP Families <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack | list | `[]` |
| service.ipFamilyPolicy | IP Family Policy <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack | string | `""` |
| service.loadBalancerIP | Backstage service Load Balancer IP <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer | string | `""` |
| service.loadBalancerSourceRanges | Load Balancer sources <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer <br /> E.g `loadBalancerSourceRanges: [10.10.10.0/24]` | list | `[]` |
| service.nodePorts | Node port for the Backstage client connections Choose port between `30000-32767` | object | `{"backend":""}` |
| service.ports | Backstage svc port for client connections | object | `{"backend":7007,"name":"http-backend","targetPort":"backend"}` |
| service.ports.name | Backstage svc port name | string | `"http-backend"` |
| service.ports.targetPort | Backstage svc target port referencing receiving pod container port | string | `"backend"` |
| service.sessionAffinity | Control where client requests go, to the same pod or round-robin (values: `ClientIP` or `None`) <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/service/#session-stickiness | string | `"None"` |
| service.type | Kubernetes Service type | string | `"ClusterIP"` |
| serviceAccount | Service Account Configuration | object | See below |
| serviceAccount.annotations | Additional custom annotations for the ServiceAccount. | object | `{}` |
| serviceAccount.automountServiceAccountToken | Auto-mount the service account token in the pod | bool | `true` |
| serviceAccount.create | Enable the creation of a ServiceAccount for Backstage pods | bool | `false` |
| serviceAccount.labels | Additional custom labels to the service ServiceAccount. | object | `{}` |
| serviceAccount.name | Name of the ServiceAccount to use If not set and `serviceAccount.create` is true, a name is generated | string | `""` |
## Configure your Backstage instance
The Backstage Chart makes it possible to configure your backstage instance by passing extra environment variables or static configuration files, without rebuilding the docker image.
### Environment variables
Use `backstage.extraEnvVars` to pass extra environment variables. **This is used for environment variables containing non sensitive information:**
```diff
backstage:
+ extraEnvVars:
+ - name: MY_PLUGIN_HOST
+ value: http://my-plugin-host
```
It is possible to override values defined in your `app-config.yaml` by appending the `APP_CONFIG` prefix to each environment variable, as described in the [official documentation](https://backstage.io/docs/conf/#supplying-configuration).
For example, to override the `backend.cache.store` property defined in your `app-config.yaml`, do:
```diff
backstage:
extraEnvVars:
+ - name: APP_CONFIG_backend_cache_store
+ value: memory
```
### Sensitive environment variables
In case your environment variables contain sensitive information, such as `BACKEND_SECRET` or `POSTGRES_PASSWORD` it is recommended store them in a [Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret/).
Create a new file named `my-backstage-secrets.yaml` containing the secrets you want to store:
```yaml
# my-backstage-secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: my-backstage-secrets
type: Opaque
data:
BACKEND_SECRET: YmFja3N0YWdl
POSTGRES_PASSWORD: aHVudGVyMg==
```
Make sure to customize the name of the secret by changing `metadata.name` properly.
Now create the new secret in your Kubernetes cluster by running the following command:
```bash
$ kubectl apply -f my-backstage-secrets.yaml`
```
Once the secret has been created, pass the secret's reference to your backstage instance by adding the following lines to your `values.yaml`:
```diff
backstage:
+ extraEnvVarsSecrets:
+ - my-backstage-secrets
```
The chart will make sure to pass the secrets to your Backstage instance.
### Pass extra configuration files
A generated Backstage docker image contains some static configuration files, such as `app-config.yaml` and `app-config.production.yaml`.
It is possible to pass extra configuration files by defining them as [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/), without rebuilding the Docker image.
To do so, run:
```bash
$ kubectl create configmap my-app-config --from-file=app-config.extra.yaml=./local/path/to/your/app-config.extra.yaml`
```
This command parses your local `app-config.extra.yaml` and creates a new ConfigMap called `my-app-config` which internally contains a file called `app-config.extra.yaml` with the content of the parsed file.
Now that the ConfigMap has been created on your Kubernetes cluster, you can reference the ConfigMap:
```diff
backstage:
+ extraAppConfig:
+ - filename: app-config.extra.yaml
+ configMapRef: my-app-config
```
The chart will mount the content of the ConfigMap as a new `app-config.extra.yaml` file and automatically pass the extra configuration to your instance.
### Pass configuration to be stored in a ConfigMap
> :warning: In case of using both appConfig and extraAppConfig, appConfig will have higher priority over extraAppConfig. For more information you can check the [Backstage docs](https://backstage.io/docs/conf/writing#configuration-files) and how this [Helm Chart configures the Backstage arguments](templates/backstage-deployment.yaml)
In addition to following the [previous step "Pass extra configuration files"](#pass-extra-configuration-files), you can get the Config Map automatically deployed with this Helm Chart by defining the key `appConfig`:
```diff
backstage:
+ appConfig:
+ app:
+ baseUrl: https://somedomain.tld
```
The chart will mount the content of the ConfigMap as a new `app-config-from-configmap.yaml` file and automatically pass the extra configuration to your instance.
### Configuring Chart PostgreSQL
With the Backstage Helm Chart, it offers - as a subchart - a Bitnami PostgreSQL database. This can be enabled by switching `postgresql.enabled` to true (it is `false` by default). If switched on, the Helm Chart, on deployment, will automatically deploy a PostgreSQL instance and configure it with the credentials you specify. There are multiple ways of doing this that will be detailed below.
#### Automatic Database Credential Creation
This is the easiest of the configuration options. Here, the credentials for both the Admin and Database users will be automatically generated and put into a Kubernetes secret. This will then be automatically used by Backstage. In order to use this method, ensure the following:
- Keep `postgresql.auth.existingSecret` & `postgresql.auth.password` empty.
#### Specifying Password for PostgreSQL to Use
Here, you can specify the password that you want PostgreSQL to use for its Database User (The user that Backstage will use to connect to the database). In order to use this method, ensure the following:
- Keep `postgresql.auth.existingSecret` empty.
- Set `postgresql.auth.password` to your desired User password value.
> **_NOTE:_** Be careful that you provide this value securely.
#### Specifying Existing Secret for PostgreSQL to Use
Here, you can specify an existing Kubernetes secret that you have created which contains the Password that you want PostgreSQL to use. The secret must be in the same namespace as where you are deploying the Helm Chart. In order to use this method, ensure the following:
- Create the Kubernetes secret with the Password inside.
- Set `postgresql.auth.existingSecret` to the name of the Secret
- PostgreSQL by default will look for the relevant Password keys that are set by default here `postgresql.auth.secretKeys`. So make sure that the Keys in the Secret match the default `secretKeys` values. More information [here](https://artifacthub.io/packages/helm/bitnami/postgresql)
- For example, if you want PostgreSQL to use an existing Secret called `my-user-secret` that has the User password that you want to use inside it: make sure that you create a Key inside that secret called `user-password` (this key can be found here `postgresql.auth.secretKeys.userPasswordKey`). i.e. `user-password=Password123`.

View File

@ -0,0 +1,226 @@
# Backstage Helm Chart
{{ template "chart.deprecationWarning" . }}
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/backstage)](https://artifacthub.io/packages/search?repo=backstage)
{{ template "chart.versionBadge" . }}
{{ template "chart.typeBadge" . }}
{{ template "chart.description" . }}
{{ template "chart.homepageLine" . }}
{{ template "chart.maintainersSection" . }}
{{ template "chart.sourcesSection" . }}
---
[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.
> Disclaimer: This Helm chart deploys a pre-packaged container image which contains a vanilla Backstage instance for demo purposes. This image is probably not suitable for use in production. For further customization of the Backstage instance (plugin installation, UI changes, etc.) please create your own custom instance and container image. For details please consult the [Backstage documentation](https://backstage.io/docs)
## TL;DR
```console
helm repo add backstage https://backstage.github.io/charts
helm install my-release backstage/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.25+
- Helm 3.10+ minimum, 3.14+ recommended
- PV provisioner support in the underlying infrastructure
- [Backstage container image](https://backstage.io/docs/deployment/docker)
## Scope
This chart focuses on providing users the same experience and functionality no matter what flavor of Kubernetes they use. This chart will support only patterns that are either customary for all Kubernetes flavors, are commonly used in the Bitnami charts ecosystem, and recognized as Backstage official patterns.
We welcome other, more specialized, charts to use this canonical chart as a direct dependency, expanding the feature set further, beyond this scope.
A list of derived charts:
- OpenShift specialized chart: [Janus Backstage Helm chart](https://github.com/janus-idp/helm-backstage/tree/main/charts/backstage)
## 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 backstage https://backstage.github.io/charts
```
Once the chart has been added, install one of the available charts:
```console
helm upgrade -i <release_name> backstage/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/backstage/charts/pkgs/container/charts%2Fbackstage).
Install one of the available versions:
```shell
helm upgrade -i oci://ghcr.io/backstage/charts/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" . }}
## Configure your Backstage instance
The Backstage Chart makes it possible to configure your backstage instance by passing extra environment variables or static configuration files, without rebuilding the docker image.
### Environment variables
Use `backstage.extraEnvVars` to pass extra environment variables. **This is used for environment variables containing non sensitive information:**
```diff
backstage:
+ extraEnvVars:
+ - name: MY_PLUGIN_HOST
+ value: http://my-plugin-host
```
It is possible to override values defined in your `app-config.yaml` by appending the `APP_CONFIG` prefix to each environment variable, as described in the [official documentation](https://backstage.io/docs/conf/#supplying-configuration).
For example, to override the `backend.cache.store` property defined in your `app-config.yaml`, do:
```diff
backstage:
extraEnvVars:
+ - name: APP_CONFIG_backend_cache_store
+ value: memory
```
### Sensitive environment variables
In case your environment variables contain sensitive information, such as `BACKEND_SECRET` or `POSTGRES_PASSWORD` it is recommended store them in a [Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret/).
Create a new file named `my-backstage-secrets.yaml` containing the secrets you want to store:
```yaml
# my-backstage-secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: my-backstage-secrets
type: Opaque
data:
BACKEND_SECRET: YmFja3N0YWdl
POSTGRES_PASSWORD: aHVudGVyMg==
```
Make sure to customize the name of the secret by changing `metadata.name` properly.
Now create the new secret in your Kubernetes cluster by running the following command:
```bash
$ kubectl apply -f my-backstage-secrets.yaml`
```
Once the secret has been created, pass the secret's reference to your backstage instance by adding the following lines to your `values.yaml`:
```diff
backstage:
+ extraEnvVarsSecrets:
+ - my-backstage-secrets
```
The chart will make sure to pass the secrets to your Backstage instance.
### Pass extra configuration files
A generated Backstage docker image contains some static configuration files, such as `app-config.yaml` and `app-config.production.yaml`.
It is possible to pass extra configuration files by defining them as [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/), without rebuilding the Docker image.
To do so, run:
```bash
$ kubectl create configmap my-app-config --from-file=app-config.extra.yaml=./local/path/to/your/app-config.extra.yaml`
```
This command parses your local `app-config.extra.yaml` and creates a new ConfigMap called `my-app-config` which internally contains a file called `app-config.extra.yaml` with the content of the parsed file.
Now that the ConfigMap has been created on your Kubernetes cluster, you can reference the ConfigMap:
```diff
backstage:
+ extraAppConfig:
+ - filename: app-config.extra.yaml
+ configMapRef: my-app-config
```
The chart will mount the content of the ConfigMap as a new `app-config.extra.yaml` file and automatically pass the extra configuration to your instance.
### Pass configuration to be stored in a ConfigMap
> :warning: In case of using both appConfig and extraAppConfig, appConfig will have higher priority over extraAppConfig. For more information you can check the [Backstage docs](https://backstage.io/docs/conf/writing#configuration-files) and how this [Helm Chart configures the Backstage arguments](templates/backstage-deployment.yaml)
In addition to following the [previous step "Pass extra configuration files"](#pass-extra-configuration-files), you can get the Config Map automatically deployed with this Helm Chart by defining the key `appConfig`:
```diff
backstage:
+ appConfig:
+ app:
+ baseUrl: https://somedomain.tld
```
The chart will mount the content of the ConfigMap as a new `app-config-from-configmap.yaml` file and automatically pass the extra configuration to your instance.
### Configuring Chart PostgreSQL
With the Backstage Helm Chart, it offers - as a subchart - a Bitnami PostgreSQL database. This can be enabled by switching `postgresql.enabled` to true (it is `false` by default). If switched on, the Helm Chart, on deployment, will automatically deploy a PostgreSQL instance and configure it with the credentials you specify. There are multiple ways of doing this that will be detailed below.
#### Automatic Database Credential Creation
This is the easiest of the configuration options. Here, the credentials for both the Admin and Database users will be automatically generated and put into a Kubernetes secret. This will then be automatically used by Backstage. In order to use this method, ensure the following:
- Keep `postgresql.auth.existingSecret` & `postgresql.auth.password` empty.
#### Specifying Password for PostgreSQL to Use
Here, you can specify the password that you want PostgreSQL to use for its Database User (The user that Backstage will use to connect to the database). In order to use this method, ensure the following:
- Keep `postgresql.auth.existingSecret` empty.
- Set `postgresql.auth.password` to your desired User password value.
> **_NOTE:_** Be careful that you provide this value securely.
#### Specifying Existing Secret for PostgreSQL to Use
Here, you can specify an existing Kubernetes secret that you have created which contains the Password that you want PostgreSQL to use. The secret must be in the same namespace as where you are deploying the Helm Chart. In order to use this method, ensure the following:
- Create the Kubernetes secret with the Password inside.
- Set `postgresql.auth.existingSecret` to the name of the Secret
- PostgreSQL by default will look for the relevant Password keys that are set by default here `postgresql.auth.secretKeys`. So make sure that the Keys in the Secret match the default `secretKeys` values. More information [here](https://artifacthub.io/packages/helm/bitnami/postgresql)
- For example, if you want PostgreSQL to use an existing Secret called `my-user-secret` that has the User password that you want to use inside it: make sure that you create a Key inside that secret called `user-password` (this key can be found here `postgresql.auth.secretKeys.userPasswordKey`). i.e. `user-password=Password123`.

View File

@ -0,0 +1,12 @@
# Artifact Hub repository metadata file
#
# Some settings like the verified publisher flag or the ignored packages won't
# be applied until the next time the repository is processed. Please keep in
# mind that the repository won't be processed if it has not changed since the
# last time it was processed. Depending on the repository kind, this is checked
# in a different way. For Helm http based repositories, we consider it has
# changed if the `index.yaml` file changes. For git based repositories, it does
# when the hash of the last commit in the branch you set up changes. This does
# NOT apply to ownership claim operations, which are processed immediately.
#
repositoryID: b17b52d1-dd33-4328-84bf-259d5ee7546b

View File

@ -0,0 +1,37 @@
name: str()
home: str(required=False)
version: str()
appVersion: any(str(), num(), required=False)
description: str(required=False)
keywords: list(str(), required=False)
sources: list(str(), required=False)
maintainers: list(include('maintainer'), required=False)
dependencies: list(include('dependency'), required=False)
icon: str(required=False)
engine: str(required=False)
condition: str(required=False)
tags: str(required=False)
deprecated: bool(required=False)
apiVersion: str()
kubeVersion: str(required=False)
type: str(required=False)
annotations: map(str(), str(), required=False)
---
maintainer:
name: str(required=False)
email: str(required=False)
url: str(required=False)
---
dependency:
name: str()
version: str()
repository: str()
condition: str(required=False)
tags: list(str(), required=False)
enabled: bool(required=False)
import-values: any(list(str()), list(include('import-value')), required=False)
alias: str(required=False)
---
import-value:
child: str()
parent: str()

View File

@ -0,0 +1,16 @@
backstage:
appConfig:
techdocs:
builder: "local"
app:
# Let's test that everything is fine with comments
title: The very best Backstage Helm Chart! :D
baseUrl: https://somedomain.tl
backend:
baseUrl: https://somedomain.tl
listen:
port: 12345
auth:
keys:
# Is just a random b64 string for test purposes
- secret: N4+P+zJrErWRUGm0ZbVVhX1ZC81aSP81

View File

@ -0,0 +1,7 @@
backstage:
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 75
targetMemoryUtilizationPercentage: 90

View File

View File

@ -0,0 +1,7 @@
extraDeploy:
- apiVersion: v1
kind: ConfigMap
metadata:
name: foo
data:
bar: baz

View File

@ -0,0 +1,9 @@
backstage:
extraVolumeMounts:
- name: test
mountPath: /somepath
readOnly: true
extraVolumes:
- name: test
emptyDir:
sizeLimit: 5Mi

View File

@ -0,0 +1,5 @@
backstage:
image:
registry: ghcr.io
repository: backstage/backstage
digest: "sha256:f9ffa809e2c3f351699129d57edd6e64ca9ea5a4d4dd6339fed1ec80a30bc042"

View File

@ -0,0 +1,12 @@
ingress:
enabled: true
host: backstage.example.com
tls:
enabled: true
secretName: "backstage-tls"
extraHosts:
- name: backstage.dev.example.com
extraTls:
- hosts:
- backstage.dev.example.com
secretName: "backstage-dev-tls"

View File

@ -0,0 +1,6 @@
ingress:
enabled: true
host: backstage.example.com
tls:
enabled: true
secretName: "backstage-tls"

View File

@ -0,0 +1,8 @@
postgresql:
enabled: true
# we enable postgres and allow the subchart to automatically generate the credentials
# that backstage will use
auth:
existingSecret: ""
password: ""

View File

@ -0,0 +1,8 @@
postgresql:
enabled: true
auth:
existingSecret: ""
# we provide a password for the subchart to use.
# this is just a password for purposes of CI tests
password: "mytestpassword"

View File

@ -0,0 +1,44 @@
backstage:
appConfig:
techdocs:
builder: "local"
app:
# Let's test that everything is fine with comments
title: The very best Backstage Helm Chart! :D
baseUrl: https://somedomain.tl
backend:
baseUrl: https://somedomain.tl
auth:
keys:
# Is just a random b64 string for test purposes
- secret: N4+P+zJrErWRUGm0ZbVVhX1ZC81aSP81
readinessProbe:
failureThreshold: 3
httpGet:
path: /.backstage/health/v1/readiness
port: 7007
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 2
timeoutSeconds: 2
livenessProbe:
failureThreshold: 3
httpGet:
path: /.backstage/health/v1/liveness
port: 7007
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
startupProbe:
failureThreshold: 3
httpGet:
path: /.backstage/health/v1/liveness
port: 7007
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2

View File

@ -0,0 +1,4 @@
service:
ipFamilyPolicy: PreferDualStack
ipFamilies:
- IPv4

View File

@ -0,0 +1,9 @@
metrics:
serviceMonitor:
enabled: true
annotations:
test: test
labels:
test: test
path: /metrics
port: http-backend

View File

@ -0,0 +1,10 @@
backstage:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/component: backstage
matchLabelKeys:
- pod-template-hash

View File

@ -5,6 +5,24 @@ Return the proper image name
{{ include "common.images.image" (dict "imageRoot" .Values.backstage.image "global" .Values.global) }}
{{- end -}}
{{/*
Return the proper Docker Image Registry Secret Names
*/}}
{{- define "backstage.renderImagePullSecrets" -}}
{{- include "common.images.renderPullSecrets" (dict "images" (list .Values.backstage.image) "context" $) -}}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "backstage.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "common.names.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
@ -28,7 +46,9 @@ Return the Postgres Database hostname
Return the Postgres Database Secret Name
*/}}
{{- define "backstage.postgresql.databaseSecretName" -}}
{{- if .Values.postgresql.auth.existingSecret }}
{{- if ((((.Values).global).postgresql).auth).existingSecret }}
{{- tpl .Values.global.postgresql.auth.existingSecret $ -}}
{{- else if .Values.postgresql.auth.existingSecret }}
{{- tpl .Values.postgresql.auth.existingSecret $ -}}
{{- else -}}
{{- default (include "backstage.postgresql.fullname" .) (tpl .Values.postgresql.auth.existingSecret $) -}}
@ -39,9 +59,16 @@ Return the Postgres Database Secret Name
Return the Postgres databaseSecret key to retrieve credentials for database
*/}}
{{- define "backstage.postgresql.databaseSecretKey" -}}
{{- if .Values.postgresql.auth.existingSecret -}}
{{- .Values.postgresql.auth.secretKeys.userPasswordKey -}}
{{- $defaultDatabaseSecretKey := "password" -}}
{{- if (or ((((.Values).global).postgresql).auth).existingSecret .Values.postgresql.auth.existingSecret) }}
{{- if (((((.Values).global).postgresql).auth).secretKeys).userPasswordKey -}}
{{- .Values.global.postgresql.auth.secretKeys.userPasswordKey -}}
{{- else if ((((.Values).postgresql).auth).secretKeys).userPasswordKey -}}
{{- .Values.postgresql.auth.secretKeys.userPasswordKey -}}
{{- else -}}
{{- print $defaultDatabaseSecretKey -}}
{{- end -}}
{{- else -}}
{{- print "password" -}}
{{- print $defaultDatabaseSecretKey -}}
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,10 @@
{{- if .Values.backstage.appConfig }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "common.names.fullname" . }}-app-config
namespace: {{ .Release.Namespace | quote }}
data:
app-config.yaml: |
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.appConfig "context" $) | nindent 4 }}
{{- end }}

View File

@ -1,5 +1,6 @@
{{- $imageRepository := .Values.backstage.image.repository | required "The repository name of the image is required (e.g. my-backstage:tag | docker.io/my-backstage:tag) !" -}}
{{- $imageTag := .Values.backstage.image.tag | required "The image tag is required (e.g my-backstage:tag | docker.io/my-backstage:tag) !" -}}
{{- $installDir := .Values.backstage.installDir -}}
---
apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
@ -15,8 +16,14 @@ metadata:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.backstage.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.annotations "context" $) | nindent 4 }}
{{- end }}
spec:
replicas: 1
{{- if not .Values.backstage.autoscaling.enabled }}
replicas: {{ .Values.backstage.replicas }}
{{- end }}
revisionHistoryLimit: {{ .Values.backstage.revisionHistoryLimit }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: backstage
@ -24,31 +31,69 @@ spec:
metadata:
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: backstage
{{- if .Values.backstage.podLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.podLabels "context" $ ) | nindent 8 }}
{{- end }}
annotations:
checksum/app-config: {{ include "common.tplvalues.render" ( dict "value" .Values.backstage.appConfig "context" $) | sha256sum }}
{{- if .Values.backstage.podAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.podAnnotations "context" $ ) | nindent 8 }}
{{- end }}
spec:
{{- if .Values.serviceAccount.create }}
serviceAccountName: {{ .Values.serviceAccount.name }}
{{- end }}
serviceAccountName: {{ include "backstage.serviceAccountName" . }}
{{- if .Values.backstage.podSecurityContext }}
securityContext:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.podSecurityContext "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.backstage.affinity }}
affinity:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.affinity "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.backstage.topologySpreadConstraints }}
topologySpreadConstraints:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.topologySpreadConstraints "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.backstage.nodeSelector }}
nodeSelector:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.backstage.tolerations }}
tolerations:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.tolerations "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.backstage.hostAliases }}
hostAliases:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.hostAliases "context" $) | nindent 8 }}
{{- end }}
volumes:
{{- if (or .Values.backstage.extraAppConfig (and .Values.backstage.extraVolumeMounts .Values.backstage.extraVolumes)) }}
{{- range .Values.backstage.extraAppConfig }}
- name: {{ .configMapRef }}
configMap:
name: {{ .configMapRef }}
{{- end }}
{{- end }}
{{- if .Values.backstage.extraVolumes }}
{{- toYaml .Values.backstage.extraVolumes | nindent 8 }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.extraVolumes "context" $ ) | nindent 8 }}
{{- end }}
{{- end }}
{{- if .Values.backstage.image.pullSecrets }}
imagePullSecrets:
{{- range .Values.backstage.image.pullSecrets }}
- name: {{ . }}
{{- end }}
{{- if .Values.backstage.appConfig }}
- name: backstage-app-config
configMap:
name: {{ include "common.names.fullname" . }}-app-config
{{- end }}
{{- include "backstage.renderImagePullSecrets" . | nindent 6 }}
{{- if .Values.backstage.initContainers }}
initContainers:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.initContainers "context" $) | nindent 8 }}
{{- end }}
containers:
- name: backstage-backend
image: {{ include "backstage.image" . }}
imagePullPolicy: {{ .Values.backstage.image.pullPolicy | quote -}}
{{- if .Values.backstage.containerSecurityContext }}
securityContext:
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.containerSecurityContext "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.diagnosticMode.enabled }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
{{- else if .Values.backstage.command }}
@ -65,12 +110,32 @@ spec:
{{- if .Values.backstage.extraAppConfig }}
{{- range .Values.backstage.extraAppConfig }}
- "--config"
- {{ .filename | quote }}
- "{{ $installDir }}/{{ .filename }}"
{{- end }}
{{- end }}
{{- if .Values.backstage.appConfig }}
- "--config"
- "{{ $installDir }}/app-config-from-configmap.yaml"
{{- end }}
{{- if .Values.backstage.extraEnvVarsSecrets }}
{{- end }}
{{- if .Values.backstage.resources }}
resources: {{- include "common.tplvalues.render" (dict "value" .Values.backstage.resources "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.backstage.readinessProbe }}
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.backstage.readinessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.backstage.livenessProbe }}
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.backstage.livenessProbe "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.backstage.startupProbe }}
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.backstage.startupProbe "context" $) | nindent 12 }}
{{- end }}
{{- if (or .Values.backstage.extraEnvVarsCM .Values.backstage.extraEnvVarsSecrets) }}
envFrom:
{{- range .Values.backstage.extraEnvVarsCM }}
- configMapRef:
name: {{ . }}
{{- end }}
{{- range .Values.backstage.extraEnvVarsSecrets }}
- secretRef:
name: {{ . }}
@ -84,7 +149,7 @@ spec:
value: {{ include "backstage.postgresql.host" . }}
- name: POSTGRES_PORT
value: "5432"
- name: POSTGRES_USER
- name: POSTGRES_USER
value: {{ .Values.postgresql.auth.username }}
- name: POSTGRES_PASSWORD
valueFrom:
@ -99,14 +164,25 @@ spec:
- name: backend
containerPort: {{ .Values.backstage.containerPorts.backend }}
protocol: TCP
{{- if (or .Values.backstage.extraAppConfig (and .Values.backstage.extraVolumeMounts .Values.backstage.extraVolumes)) }}
{{- if .Values.backstage.extraPorts }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.extraPorts "context" $) | nindent 12 }}
{{- end }}
{{- if (or .Values.backstage.extraAppConfig .Values.backstage.appConfig (and .Values.backstage.extraVolumeMounts .Values.backstage.extraVolumes)) }}
volumeMounts:
{{- range .Values.backstage.extraAppConfig }}
- name: {{ .configMapRef }}
mountPath: "/app/{{ .filename }}"
subPath: {{ .filename }}
mountPath: "{{ $installDir }}/{{ .filename }}"
subPath: {{ .filename }}
{{- end }}
{{- if .Values.backstage.appConfig }}
- name: backstage-app-config
mountPath: "{{ $installDir }}/app-config-from-configmap.yaml"
subPath: app-config.yaml
{{- end }}
{{- if .Values.backstage.extraVolumeMounts }}
{{- toYaml .Values.backstage.extraVolumeMounts | nindent 12 }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.extraVolumeMounts "context" $ ) | nindent 12 }}
{{- end }}
{{- end }}
{{- if .Values.backstage.extraContainers }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.extraContainers "context" $) | nindent 8 }}
{{- end }}

View File

@ -0,0 +1,4 @@
{{- range .Values.extraDeploy }}
---
{{ include "common.tplvalues.render" (dict "value" . "context" $) }}
{{- end }}

View File

@ -0,0 +1,43 @@
{{- if .Values.backstage.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "common.names.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: backstage
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.backstage.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.annotations "context" $) | nindent 4 }}
{{- end }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "common.names.fullname" . }}
minReplicas: {{ .Values.backstage.autoscaling.minReplicas }}
maxReplicas: {{ .Values.backstage.autoscaling.maxReplicas }}
metrics:
{{- if .Values.backstage.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.backstage.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.backstage.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.backstage.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}

View File

@ -11,7 +11,7 @@ metadata:
{{- end }}
annotations:
{{- if .Values.ingress.annotations }}
{{ include "common.tplvalues.render" ( dict "value" .Values.ingress.annotations "context" $) | nindent 4 }}
{{- include "common.tplvalues.render" ( dict "value" .Values.ingress.annotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
@ -20,15 +20,38 @@ spec:
{{- if .Values.ingress.className }}
ingressClassName: {{ .Values.ingress.className | quote }}
{{- end }}
{{- if or .Values.ingress.tls.enabled .Values.ingress.extraTls }}
tls:
{{- if .Values.ingress.tls.enabled }}
- hosts:
- {{ include "common.tplvalues.render" ( dict "value" .Values.ingress.host "context" $ ) }}
secretName: {{ include "common.tplvalues.render" ( dict "value" .Values.ingress.tls.secretName "context" $ ) }}
{{- end }}
{{- if .Values.ingress.extraTls }}
{{- include "common.tplvalues.render" ( dict "value" .Values.ingress.extraTls "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
rules:
- host: {{ .Values.ingress.host }}
- host: {{ include "common.tplvalues.render" ( dict "value" .Values.ingress.host "context" $ ) }}
http:
paths:
- path: /
- path: {{ .Values.ingress.path }}
pathType: Prefix
backend:
service:
name: {{ include "common.names.fullname" . }}
port:
number: {{ .Values.service.ports.backend }}
{{- end }}
{{- range .Values.ingress.extraHosts }}
- host: {{ .name | quote }}
http:
paths:
- path: {{ default $.Values.ingress.path .path }}
pathType: {{ default "Prefix" .pathType }}
backend:
service:
name: {{ include "common.names.fullname" $ }}
port:
number: {{ default $.Values.service.ports.backend .port }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,38 @@
{{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.egressRules.denyConnectionsToExternal .Values.networkPolicy.egressRules.customRules) }}
apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
kind: NetworkPolicy
metadata:
name: {{ printf "%s-egress" (include "common.names.fullname" .) }}
namespace: {{ .Release.Namespace | quote }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: backstage
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.backstage.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.annotations "context" $) | nindent 4 }}
{{- end }}
spec:
podSelector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: backstage
policyTypes:
- Egress
egress:
{{- if .Values.networkPolicy.egressRules.denyConnectionsToExternal }}
- ports:
- port: 53
protocol: UDP
- port: 53
protocol: TCP
- to:
- namespaceSelector: {}
{{- end }}
{{- if .Values.networkPolicy.egressRules.customRules }}
{{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.egressRules.customRules "context" $) | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,40 @@
{{- if and .Values.networkPolicy.enabled (or .Values.networkPolicy.ingressRules.namespaceSelector .Values.networkPolicy.ingressRules.podSelector .Values.networkPolicy.ingressRules.customRules) }}
apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
kind: NetworkPolicy
metadata:
name: {{ include "common.names.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: backstage
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.backstage.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.annotations "context" $) | nindent 4 }}
{{- end }}
spec:
podSelector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: backstage
ingress:
{{- if or .Values.networkPolicy.ingressRules.namespaceSelector .Values.networkPolicy.ingressRules.podSelector }}
- from:
{{- if .Values.networkPolicy.ingressRules.namespaceSelector }}
- namespaceSelector:
matchLabels: {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.namespaceSelector "context" $) | nindent 14 }}
{{- end }}
{{- if .Values.networkPolicy.ingressRules.podSelector }}
- podSelector:
matchLabels: {{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.podSelector "context" $) | nindent 14 }}
{{- end }}
ports:
- port: {{ .Values.backstage.containerPorts.backend }}
{{- end }}
{{- if .Values.networkPolicy.ingressRules.customRules }}
{{- include "common.tplvalues.render" (dict "value" .Values.networkPolicy.ingressRules.customRules "context" $) | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,29 @@
{{- if .Values.backstage.pdb.create }}
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ include "common.names.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: backstage
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.backstage.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.backstage.annotations "context" $) | nindent 4 }}
{{- end }}
spec:
{{- if .Values.backstage.pdb.minAvailable }}
minAvailable: {{ .Values.backstage.pdb.minAvailable }}
{{- end }}
{{- if or .Values.backstage.pdb.maxUnavailable ( not .Values.backstage.pdb.minAvailable ) }}
maxUnavailable: {{ .Values.backstage.pdb.maxUnavailable | default 1 }}
{{- end }}
selector:
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
app.kubernetes.io/component: backstage
{{- end }}

View File

@ -34,10 +34,17 @@ spec:
{{- if .Values.service.sessionAffinity }}
sessionAffinity: {{ .Values.service.sessionAffinity }}
{{- end }}
{{- if .Values.service.ipFamilyPolicy }}
ipFamilyPolicy: {{ .Values.service.ipFamilyPolicy }}
{{- end }}
{{- with .Values.service.ipFamilies }}
ipFamilies:
{{- toYaml . | nindent 4 }}
{{- end }}
ports:
- name: http-backend
- name: {{ .Values.service.ports.name }}
port: {{ .Values.service.ports.backend }}
targetPort: backend
targetPort: {{ .Values.service.ports.targetPort }}
protocol: TCP
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.backend)) }}
nodePort: {{ .Values.service.nodePorts.backend }}

View File

@ -2,17 +2,17 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.serviceAccount.name }}
name: {{ include "backstage.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/component: backstage
{{- with .Values.serviceAccount.labels }}
{{- toYaml . | trim | nindent 4 }}
{{- include "common.tplvalues.render" ( dict "value" . "context" $ ) | trim | nindent 4 }}
{{- end }}
{{- if .Values.serviceAccount.annotations }}
annotations:
{{- with .Values.serviceAccount.annotations }}
{{- toYaml . | trim | nindent 4 }}
{{- include "common.tplvalues.render" ( dict "value" . "context" $ ) | trim | nindent 4 }}
{{- end }}
{{- end }}
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}

View File

@ -0,0 +1,37 @@
{{- if .Values.metrics.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" $ }}
namespace: {{ .Release.Namespace | quote }}
{{- if or .Values.commonAnnotations .Values.metrics.serviceMonitor.annotations }}
annotations:
{{- if $.Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.annotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.annotations "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: backstage
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.labels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.labels "context" $) | nindent 4 }}
{{- end }}
spec:
namespaceSelector:
matchNames:
- {{ .Release.Namespace | quote }}
selector:
matchLabels: {{ include "common.labels.standard" . | nindent 6 }}
app.kubernetes.io/component: backstage
endpoints:
- port: {{ .Values.metrics.serviceMonitor.port | quote }}
path: {{ .Values.metrics.serviceMonitor.path }}
{{- with .Values.metrics.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- end -}}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,986 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"title": "Backstage chart schema",
"properties": {
"global": {
"title": "Global parameters.",
"type": "object",
"properties": {
"imageRegistry": {
"title": "Global Docker image registry",
"type": "string",
"default": ""
},
"imagePullSecrets": {
"title": "Global Docker registry secret names as an array",
"type": "array",
"default": [],
"items": {
"type": "string"
},
"uniqueItems": true,
"examples": [
[
"myRegistryKeySecretName"
]
]
}
}
},
"kubeVersion": {
"title": "Override Kubernetes version",
"type": "string",
"default": ""
},
"nameOverride": {
"title": "String to partially override common.names.fullname",
"type": "string",
"default": ""
},
"fullnameOverride": {
"title": "String to fully override common.names.fullname",
"type": "string",
"default": ""
},
"clusterDomain": {
"title": "Default Kubernetes cluster domain",
"type": "string",
"default": "cluster.local"
},
"commonLabels": {
"title": "Labels to add to all deployed objects",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"commonAnnotations": {
"title": "Annotations to add to all deployed objects",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"extraDeploy": {
"title": "Array of extra objects to deploy with the release",
"type": "array",
"default": [],
"items": {
"type": [
"string",
"object"
]
},
"uniqueItems": true
},
"diagnosticMode": {
"title": "Enable diagnostic mode in the Deployment",
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"title": "Enable diagnostic mode",
"description": "All probes will be disabled and the command will be overridden",
"type": "boolean",
"default": false
},
"command": {
"title": "Command to override all containers in the Deployment",
"type": "array",
"items": {
"type": "string"
},
"default": [
"sleep"
]
},
"args": {
"title": "Args to override all containers in the Deployment",
"type": "array",
"items": {
"type": "string"
},
"default": [
"infinity"
]
}
}
},
"ingress": {
"title": "Ingress parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"title": "Enable the creation of the ingress resource",
"type": "boolean",
"default": false
},
"className": {
"title": "Name of the IngressClass cluster resource which defines which controller will implement the resource.",
"type": "string",
"default": "",
"examples": [
"nginx"
]
},
"annotations": {
"title": "Additional annotations for the Ingress resource",
"type": "object",
"default": {},
"additionalProperties": {
"type": "string"
}
},
"host": {
"title": "Hostname to be used to expose the route to access the backstage application.",
"type": "string",
"default": "",
"examples": [
"backstage.10.0.0.1.nip.io"
]
},
"extraHosts": {
"title": "List of additional hostnames to be covered with this ingress record",
"type": "array",
"default": [],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"pathType": {
"type": "string"
},
"port": {
"type": "integer"
}
}
}
},
"path": {
"title": "Path to be used to expose the full route to access the backstage application.",
"type": "string",
"default": "/",
"examples": [
"/backstage"
]
},
"tls": {
"title": "Ingress TLS parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"title": "Enable TLS configuration",
"description": "TLS for the host defined at `ingress.host` parameter",
"type": "boolean",
"default": false
},
"secretName": {
"title": "The name to which the TLS Secret will be called",
"type": "string",
"default": ""
}
}
},
"extraTls": {
"title": "The TLS configuration for additional hostnames to be covered with this ingress record.",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.networking.v1.IngressTLS"
},
"default": []
}
}
},
"backstage": {
"title": "Backstage parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"replicas": {
"title": "Number of deployment replicas",
"type": "integer",
"minimum": 0,
"default": 1
},
"revisionHistoryLimit": {
"title": "The count of deployment revisions",
"type": "integer",
"minimum": 0,
"default": 10
},
"image": {
"title": "Image parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"digest": {
"default": "",
"description": "digest takes precedence over image tag",
"title": "Backstage image digest",
"type": "string"
},
"registry": {
"title": "Backstage image registry",
"type": "string",
"default": "ghcr.io",
"examples": [
"ghcr.io",
"quay.io",
"docker.io"
]
},
"repository": {
"title": "Backstage image repository",
"type": "string",
"default": "backstage/backstage"
},
"tag": {
"title": "Backstage image tag",
"description": "Immutable tags are recommended.",
"type": "string",
"default": "latest"
},
"pullPolicy": {
"title": "Specify a imagePullPolicy.",
"description": "Ref: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy",
"type": "string",
"default": "Always",
"enum": [
"Always",
"IfNotPresent"
]
},
"pullSecrets": {
"title": "Optionally specify an array of imagePullSecrets.",
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/",
"type": "array",
"items": {
"type": "string"
},
"default": [],
"examples": [
"myRegistryKeySecretName"
]
}
}
},
"autoscaling": {
"title": "Autoscaling parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"description": "Enable autoscaling",
"title": "Backstage Autoscaling",
"type": "boolean",
"default": false
},
"minReplicas": {
"title": "Minimum number of Backstage pod replicas that the autoscaler is allowed to scale down to",
"type": "integer",
"default": 1
},
"maxReplicas": {
"title": "Maximum number of Backstage pod replicas that the autoscaler is allowed to scale up to",
"type": "integer",
"default": 100
},
"targetCPUUtilizationPercentage": {
"title": "Percentage of CPU that each Backstage pod should be using on average before the autoscaler decides to scale",
"type": "integer",
"default": 80
},
"targetMemoryUtilizationPercentage": {
"title": "Percentage of memory that each Backstage pod should be using on average before the autoscaler decides to scale",
"type": "integer"
}
}
},
"pdb": {
"title": "PDB parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"create": {
"description": "Create a PDB",
"title": "Backstage PDB",
"type": "boolean",
"default": false
},
"minAvailable": {
"title": "Backstage PDB minAvailable",
"type": [
"string",
"integer"
],
"default": ""
},
"maxUnavailable": {
"title": "Backstage PDB maxUnavailable",
"type": [
"string",
"integer"
],
"default": ""
}
}
},
"containerPorts": {
"title": "Container ports on the Deployment",
"type": "object",
"additionalProperties": false,
"properties": {
"backend": {
"title": "Backstage backend port.",
"type": "integer",
"default": 7007
}
}
},
"command": {
"title": "Backstage container command",
"type": "array",
"items": {
"type": "string"
},
"default": [
"node",
"packages/backend"
]
},
"affinity": {
"default": {},
"description": "Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity",
"properties": {
"nodeAffinity": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.NodeAffinity",
"description": "Describes node affinity scheduling rules for the pod."
},
"podAffinity": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.PodAffinity",
"description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))."
},
"podAntiAffinity": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.PodAntiAffinity",
"description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))."
}
},
"title": "Affinity for pod assignment",
"type": "object"
},
"topologySpreadConstraints": {
"default": [],
"description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#pod-topology-spread-constraints",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint"
},
"title": "Topology Spread Constraint for pod assignment",
"type": "array"
},
"args": {
"title": "Backstage container command arguments",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"extraAppConfig": {
"title": "Extra app configuration files to inline into command arguments",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"filename": {
"type": "string"
},
"configMapRef": {
"type": "string"
}
}
},
"default": []
},
"extraContainers": {
"title": "Deployment sidecars.",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Container"
},
"default": []
},
"extraEnvVars": {
"title": "Backstage container environment variables",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.EnvVar"
},
"default": [],
"examples": [
[
{
"name": "APP_CONFIG_backend_cache_store",
"value": "memory"
}
]
]
},
"extraEnvVarsCM": {
"title": "Backstage container environment variables from existing ConfigMaps",
"type": "array",
"description": "Translates into array of `envFrom.[].configMapRef.name`",
"items": {
"type": "string"
},
"default": [],
"examples": [
[
"my-backstage-configmap"
]
]
},
"extraEnvVarsSecrets": {
"title": "Backstage container environment variables from existing Secrets",
"type": "array",
"description": "Translates into array of `envFrom.[].secretRef.name`",
"items": {
"type": "string"
},
"default": [],
"examples": [
[
"my-backstage-secrets"
]
]
},
"extraPorts": {
"title": "Extra ports to expose in the Backstage container",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.ContainerPort"
},
"default": []
},
"extraVolumeMounts": {
"title": "Backstage container additional volume mounts",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.VolumeMount"
},
"default": []
},
"extraVolumes": {
"title": "Backstage container additional volumes",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Volume"
},
"default": []
},
"initContainers": {
"title": "Backstage container init containers",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Container"
},
"default": []
},
"installDir": {
"title": "Directory containing the backstage installation",
"type": "string",
"default": "/app"
},
"resources": {
"title": "Resource requests/limits",
"description": "Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.ResourceRequirements",
"default": {},
"examples": [
{
"limits": {
"memory": "1Gi",
"cpu": "1000m"
},
"requests": {
"memory": "250Mi",
"cpu": "100m"
}
}
]
},
"readinessProbe": {
"title": "Readiness probe",
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Probe",
"default": {
"httpGet": {
"path": "/.backstage/health/v1/readiness",
"port": 7007,
"scheme": "HTTP"
}
},
"examples": [
{
"failureThreshold": 3,
"httpGet": {
"path": "/.backstage/health/v1/readiness",
"port": 7007,
"scheme": "HTTP"
},
"initialDelaySeconds": 30,
"periodSeconds": 10,
"successThreshold": 2,
"timeoutSeconds": 2
}
]
},
"livenessProbe": {
"title": "Liveness probe",
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Probe",
"default": {
"httpGet": {
"path": "/.backstage/health/v1/liveness",
"port": 7007,
"scheme": "HTTP"
}
},
"examples": [
{
"failureThreshold": 3,
"httpGet": {
"path": "/.backstage/health/v1/liveness",
"port": 7007,
"scheme": "HTTP"
},
"initialDelaySeconds": 60,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 2
}
]
},
"startupProbe": {
"title": "Startup probe",
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Probe",
"default": {
"httpGet": {
"path": "/.backstage/health/v1/liveness",
"port": 7007,
"scheme": "HTTP"
}
},
"examples": [
{
"failureThreshold": 3,
"httpGet": {
"path": "/.backstage/health/v1/liveness",
"port": 7007,
"scheme": "HTTP"
},
"initialDelaySeconds": 60,
"periodSeconds": 10,
"successThreshold": 1,
"timeoutSeconds": 2
}
]
},
"podSecurityContext": {
"title": "Security settings for a Pod.",
"description": "The security settings that you specify for a Pod apply to all Containers in the Pod. Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.SecurityContext",
"default": {}
},
"containerSecurityContext": {
"title": "Security settings for a Container.",
"description": "Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.SecurityContext",
"default": {}
},
"appConfig": {
"title": "Generates ConfigMap and configures it in the Backstage pods",
"type": [
"object",
"string"
],
"default": {},
"examples": [
{
"app": {
"baseUrl": "https://somedomain.tld"
}
}
]
},
"nodeSelector": {
"title": "Node labels for pod assignment",
"description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"tolerations": {
"title": "Node tolerations for server scheduling to nodes with taints",
"description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.Toleration"
},
"default": []
},
"hostAliases": {
"title": "Adding entries to a Pod's /etc/hosts file provides Pod-level override of hostname resolution when DNS and other options are not applicable",
"description": "Ref: https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/#adding-additional-entries-with-hostaliases",
"type": "array",
"items": {
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.api.core.v1.HostAlias"
},
"default": []
},
"podAnnotations": {
"title": "Annotations to add to the backend deployment pods",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"podLabels": {
"title": "Labels to add to the backend deployment pods",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"annotations": {
"title": "Additional custom annotations for the `Deployment` resource",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
}
}
},
"service": {
"title": "Service parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"title": "Kubernetes Service type",
"type": "string",
"default": "ClusterIP",
"enum": [
"ClusterIP",
"NodePort",
"LoadBalancer",
"ExternalName"
]
},
"ports": {
"title": "Backstage svc port for client connections",
"type": "object",
"additionalProperties": false,
"properties": {
"backend": {
"title": "Backstage svc port number",
"type": "integer",
"default": 7007
},
"name": {
"title": "Backstage svc port name",
"type": "string",
"default": "http-backend"
},
"targetPort": {
"title": "Backstage svc target port referencing receiving pod container port",
"type": "string",
"default": "backend"
}
}
},
"nodePorts": {
"title": "Node port for the Backstage client connections",
"type": "object",
"additionalProperties": false,
"properties": {
"backend": {
"title": "Node port for backend",
"type": [
"string",
"integer"
],
"default": "",
"minimum": 30000,
"maximum": 32767
}
}
},
"sessionAffinity": {
"title": "Control where client requests go, to the same pod or round-robin",
"description": "Ref: https://kubernetes.io/docs/concepts/services-networking/service/#session-stickiness",
"type": "string",
"default": "None",
"enum": [
"None",
"ClientIP"
]
},
"clusterIP": {
"title": "Backstage service Cluster IP",
"type": "string",
"default": ""
},
"loadBalancerIP": {
"title": "Backstage service Load Balancer IP",
"description": "Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer",
"type": "string",
"default": ""
},
"loadBalancerSourceRanges": {
"title": "Load Balancer sources",
"description": "Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer",
"type": "array",
"items": {
"type": "string"
},
"default": [],
"examples": [
"10.10.10.0/24"
]
},
"externalTrafficPolicy": {
"title": "Backstage service external traffic policy",
"description": "Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip",
"type": "string",
"default": "Cluster",
"enum": [
"Cluster",
"Local"
]
},
"annotations": {
"title": "Additional custom annotations for Backstage service",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"extraPorts": {
"title": "Extra ports to expose in the Backstage service",
"type": "array",
"items": {
"type": "object"
},
"default": []
},
"ipFamilyPolicy": {
"title": "Backstage service IP family policy",
"description": "Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services",
"type": "string",
"default": "",
"enum": [
"",
"SingleStack",
"PreferDualStack",
"RequireDualStack"
]
},
"ipFamilies": {
"title": "Backstage service IP families",
"description": "Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services",
"type": "array",
"items": {
"type": "string",
"enum": ["IPv4", "IPv6"]
},
"default": []
}
}
},
"networkPolicy": {
"title": "Network policies",
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"title": "Specifies whether a NetworkPolicy should be created",
"type": "boolean",
"default": false
},
"ingressRules": {
"title": "Custom egress rules for the network policy",
"type": "object",
"additionalProperties": false,
"properties": {
"customRules": {
"title": "",
"type": "array",
"items": {
"$ref": "https://kubernetesjsonschema.dev/v1.8.7/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule"
}
},
"namespaceSelector": {
"title": "Namespace Selector.",
"description": "Selects Namespaces using cluster scoped-labels.",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"default": {}
},
"podSelector": {
"title": "Pod Selector.",
"description": "Selects selects Pods in this namespace.",
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"default": {}
}
}
},
"egressRules": {
"title": "Custom egress rules for the network policy",
"type": "object",
"additionalProperties": false,
"properties": {
"customRules": {
"title": "",
"type": "array",
"items": {
"$ref": "https://kubernetesjsonschema.dev/v1.8.7/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule"
}
},
"denyConnectionsToExternal": {
"title": "Deny external connections. Should not be enabled when working with an external database.",
"type": "boolean",
"default": false
}
}
}
}
},
"postgresql": {
"title": "PostgreSQL chart configuration",
"description": "Ref. https://github.com/bitnami/charts/blob/master/bitnami/postgresql/values.yaml",
"$ref": "https://raw.githubusercontent.com/bitnami/charts/main/bitnami/postgresql/values.schema.json"
},
"serviceAccount": {
"title": "Service Account Configuration",
"type": "object",
"additionalProperties": false,
"properties": {
"create": {
"title": "Enable the creation of a ServiceAccount for Backstage pods",
"type": "boolean",
"default": false
},
"name": {
"title": "Name of the ServiceAccount to use",
"description": "If not set and `serviceAccount.create` is true, a name is generated",
"type": "string",
"default": ""
},
"labels": {
"title": "Additional custom labels to the service ServiceAccount.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"annotations": {
"title": "Additional custom annotations for the ServiceAccount.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"automountServiceAccountToken": {
"title": "Auto-mount the service account token in the pod",
"type": "boolean",
"default": true
}
}
},
"metrics": {
"title": "Metrics configuration",
"description": "Allows configuring your backstage instance as a scrape target for Prometheus. Ref: https://github.com/prometheus/prometheus",
"type": "object",
"additionalProperties": false,
"properties": {
"serviceMonitor": {
"title": "ServiceMonitor configuration",
"description": "A custom resource that is consumed by Prometheus Operator. Ref: https://github.com/prometheus-operator/prometheus-operator",
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"title": "If enabled, a ServiceMonitor resource for Prometheus Operator is created",
"description": "Prometheus Operator must be installed in your cluster prior to enabling.",
"type": "boolean",
"default": false
},
"annotations": {
"title": "ServiceMonitor annotations",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"labels": {
"title": "Additional ServiceMonitor labels",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {}
},
"interval": {
"title": "ServiceMonitor scrape interval",
"type": [
"string",
"null"
],
"default": null
},
"path": {
"title": "ServiceMonitor endpoint path",
"description": "ote that the /metrics endpoint is NOT present in a freshly scaffolded Backstage app. To setup, follow the Prometheus metrics tutorial. https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/prometheus-metrics.md",
"type": "string",
"default": "/metrics"
},
"port": {
"default": "http-backend",
"description": "The port where the metrics are exposed. If using OpenTelemetry as [documented here](https://backstage.io/docs/tutorials/setup-opentelemetry/), then the port needs to be explicitly specified. OpenTelemetry's default port is 9464.",
"title": "ServiceMonitor endpoint port",
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
}
}
}
}
}
}

View File

@ -2,192 +2,422 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
## @section Global parameters
## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
##
# -- Global parameters
# Global Docker image parameters
# Please, note that this will override the image parameters, including dependencies, configured to use the global value
# Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
# @default -- See below
global:
# -- Global Docker image registry
imageRegistry: ""
## E.g.
## imagePullSecrets:
## - myRegistryKeySecretName
##
# -- Global Docker registry secret names as an array
# </br> E.g. `imagePullSecrets: [myRegistryKeySecretName]`
imagePullSecrets: []
## @section Common parameters
# -- Common parameters
## @param kubeVersion Override Kubernetes version
##
# -- Override Kubernetes version
kubeVersion: ""
## @param nameOverride String to partially override common.names.fullname
##
# -- String to partially override common.names.fullname
nameOverride: ""
## @param fullnameOverride String to fully override common.names.fullname
##
# -- String to fully override common.names.fullname
fullnameOverride: ""
## @param clusterDomain Default Kubernetes cluster domain
##
# -- Default Kubernetes cluster domain
clusterDomain: cluster.local
## @param commonLabels Labels to add to all deployed objects
##
# -- Labels to add to all deployed objects
commonLabels: {}
## @param commonAnnotations Annotations to add to all deployed objects
##
# -- Annotations to add to all deployed objects
commonAnnotations: {}
## @param extraDeploy Array of extra objects to deploy with the release
##
# -- Array of extra objects to deploy with the release
extraDeploy: []
## Enable diagnostic mode in the statefulset
##
# -- Enable diagnostic mode in the Deployment
diagnosticMode:
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
##
# -- Enable diagnostic mode (all probes will be disabled and the command will be overridden)
enabled: false
## @param diagnosticMode.command Command to override all containers in the statefulset
##
# -- Command to override all containers in the Deployment
command:
- sleep
## @param diagnosticMode.args Args to override all containers in the statefulset
##
# -- Args to override all containers in the Deployment
args:
- infinity
## @section Ingress parameters
# -- Ingress parameters
ingress:
## @param ingress.enabled Enable the creation of the ingress resource
# -- Enable the creation of the ingress resource
enabled: false
## @param ingress.className Name of the IngressClass cluster resource which defines which controller will implement the resource (e.g nginx)
# -- Name of the IngressClass cluster resource which defines which controller will implement the resource (e.g nginx)
className: ""
## @param ingress.annotations Additional annotations for the Ingress resource
annotations: '{
"nginx.ingress.kubernetes.io/rewrite-target": "/",
"nginx.ingress.kubernetes.io/ssl-redirect": "false"
}'
# -- Additional annotations for the Ingress resource
annotations: {}
## @param host Hostname to be used to expose the route to access the backstage application (e.g: backstage.IP.nip.io)
# -- Hostname to be used to expose the route to access the backstage application (e.g: backstage.IP.nip.io)
host: ""
## @section Backstage parameters
# -- List of additional hostnames to be covered with this ingress record (e.g. a CNAME)
# <!-- E.g.
# extraHosts:
# - name: backstage.env.example.com
# path: / (Optional)
# pathType: Prefix (Optional)
# port: 7007 (Optional) -->
extraHosts: []
## Backstage image version
## @param image.registry Backstage image registry
## @param image.repository Backstage image repository
## @param image.tag Backstage image tag (immutable tags are recommended)
## @param image.pullPolicy Backstage image pull policy
## @param image.pullSecrets Specify docker-registry secret names as an array
## @param image.debug Specify if debug values should be set
##
# -- Path to be used to expose the full route to access the backstage application (e.g: IP.nip.io/backstage)
path: "/"
# -- Ingress TLS parameters
tls:
# -- Enable TLS configuration for the host defined at `ingress.host` parameter
enabled: false
# -- The name to which the TLS Secret will be called
secretName: ""
# -- The TLS configuration for additional hostnames to be covered with this ingress record.
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
# <!-- E.g.
# extraTls:
# - hosts:
# - backstage.env.example.com
# secretName: backstage-env -->
extraTls: []
# -- Backstage parameters
# @default -- See below
backstage:
# -- Number of deployment replicas
replicas: 1
# -- Define the [count of deployment revisions](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy) to be kept.
# May be set to 0 in case of GitOps deployment approach.
revisionHistoryLimit: 10
image:
registry: ""
repository: ""
tag: ""
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
# -- Backstage image registry
registry: ghcr.io
# -- Backstage image repository
repository: backstage/backstage
# -- Backstage image tag (immutable tags are recommended)
tag: latest
# -- Backstage image digest (digest takes precedence over image tag)
digest: ""
# -- Specify a imagePullPolicy.
# Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
# <br /> Ref: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy
pullPolicy: Always
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
## e.g:
## pullSecrets:
## - myRegistryKeySecretName
##
# -- Optionally specify an array of imagePullSecrets.
# Secrets must be manually created in the namespace.
# <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
# <br /> E.g: `pullSecrets: [myRegistryKeySecretName]`
pullSecrets: []
## Set to true if you would like to see extra information on logs
##
debug: false
# -- Pod Disruption Budget configuration
# ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
pdb:
create: false
minAvailable: ""
maxUnavailable: ""
# -- Autoscaling configuration.
# <br /> Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
# -- Container ports on the Deployment
containerPorts:
backend: 7007
# -- Backstage container command
command: ["node", "packages/backend"]
# -- Backstage container command arguments
args: []
# -- Extra app configuration files to inline into command arguments
extraAppConfig: []
# -- Deployment sidecars
extraContainers: []
# -- Backstage container environment variables
extraEnvVars: []
extraEnvVarsSecrets:
# -- Backstage container environment variables from existing ConfigMaps
extraEnvVarsCM: []
# -- Backstage container environment variables from existing Secrets
extraEnvVarsSecrets: []
# -- Backstage container additional ports
extraPorts: []
# -- Backstage container additional volume mounts
extraVolumeMounts: []
# -- Backstage container additional volumes
extraVolumes: []
# -- Backstage container init containers
initContainers: []
# -- Directory containing the backstage installation
installDir: /app
# -- Resource requests/limits
# <br /> Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container
# <!-- E.g.
# resources:
# limits:
# memory: 1Gi
# cpu: 1000m
# requests:
# memory: 250Mi
# cpu: 100m -->
resources: {}
# -- Readiness Probe
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
# <!-- E.g.
# readinessProbe:
# failureThreshold: 3
# httpGet:
# path: /.backstage/health/v1/readiness
# port: 7007
# scheme: HTTP
# initialDelaySeconds: 30
# periodSeconds: 10
# successThreshold: 2
# timeoutSeconds: 2
readinessProbe:
httpGet:
path: /.backstage/health/v1/readiness
port: 7007
scheme: HTTP
# -- Liveness Probe
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
# <!-- E.g.
# livenessProbe:
# failureThreshold: 3
# httpGet:
# path: /.backstage/health/v1/liveness
# port: 7007
# scheme: HTTP
# initialDelaySeconds: 60
# periodSeconds: 10
# successThreshold: 1
# timeoutSeconds: 2
livenessProbe:
httpGet:
path: /.backstage/health/v1/liveness
port: 7007
scheme: HTTP
# -- Startup Probe
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
# <!-- E.g.
# startupProbe:
# failureThreshold: 3
# httpGet:
# path: /.backstage/health/v1/liveness
# port: 7007
# scheme: HTTP
# initialDelaySeconds: 60
# periodSeconds: 10
# successThreshold: 1
# timeoutSeconds: 2
startupProbe:
httpGet:
path: /.backstage/health/v1/liveness
port: 7007
scheme: HTTP
# -- Security settings for a Pod.
# The security settings that you specify for a Pod apply to all Containers in the Pod.
# <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
podSecurityContext: {}
# -- Security settings for a Container.
# <br /> Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
containerSecurityContext: {}
# Allows to define the appConfig as a multiline string that generates a ConfigMap
# automatically, not requiring to have it pre provisioned as with the extraAppConfig key.
# DO NOT USE if you need to put sensitive data in the appConfig.
# E.g:
# appConfig:
# app:
# baseUrl: https://somedomain.tld
# -- Generates ConfigMap and configures it in the Backstage pods
appConfig: {}
# -- Affinity for pod assignment
# <br /> Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
affinity: {}
# -- Topology Spread Constraints for pod assignment
# <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#pod-topology-spread-constraints
topologySpreadConstraints: []
# -- Node labels for pod assignment
# <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
nodeSelector: {}
# -- Node tolerations for server scheduling to nodes with taints
# <br /> Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
tolerations: []
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule|NoExecute"
# -- Host Aliases for the pod
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
hostAliases: []
# -- Annotations to add to the backend deployment pods
podAnnotations: {}
# -- Labels to add to the backend deployment pods
podLabels: {}
# -- Additional custom annotations for the `Deployment` resource
annotations: {}
## @section Traffic Exposure parameters
## Service parameters
##
# -- Service parameters
# @default -- See below
service:
## @param service.type Kubernetes Service type
##
# -- Kubernetes Service type
type: ClusterIP
## @param service.ports.backend Backstage svc port for client connections
##
# -- Backstage svc port for client connections
ports:
backend: 7007
## @param service.nodePorts.backend Node port for the Backstage client connections
## NOTE: choose port between <30000-32767>
##
# -- Backstage svc port name
name: http-backend
# -- Backstage svc target port referencing receiving pod container port
targetPort: backend
# -- Node port for the Backstage client connections
# Choose port between `30000-32767`
nodePorts:
backend: ""
## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
## Values: ClientIP or None
## ref: https://kubernetes.io/docs/user-guide/services/
##
# -- Control where client requests go, to the same pod or round-robin
# (values: `ClientIP` or `None`)
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/service/#session-stickiness
sessionAffinity: None
## @param service.clusterIP Backstage service Cluster IP
## e.g.:
## clusterIP: None
##
# -- Backstage service Cluster IP
#
# <br /> E.g `clusterIP: None`
clusterIP: ""
## @param service.loadBalancerIP Backstage service Load Balancer IP
## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer
##
# -- Backstage service Load Balancer IP
#
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
loadBalancerIP: ""
## @param service.loadBalancerSourceRanges Backstage service Load Balancer sources
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
## e.g:
## loadBalancerSourceRanges:
## - 10.10.10.0/24
##
# -- Load Balancer sources
#
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
# <br /> E.g `loadBalancerSourceRanges: [10.10.10.0/24]`
loadBalancerSourceRanges: []
## @param service.externalTrafficPolicy Backstage service external traffic policy
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
# -- Backstage service external traffic policy
#
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
externalTrafficPolicy: Cluster
## @param service.annotations Additional custom annotations for Backstage service
##
# -- Additional custom annotations for Backstage service
annotations: {}
## @param service.extraPorts Extra ports to expose in the Backstage service (normally used with the `sidecar` value)
##
# -- Extra ports to expose in the Backstage service (normally used with the `sidecar` value)
extraPorts: []
## Network policies
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
# -- IP Family Policy
#
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack
ipFamilyPolicy: ""
# -- IP Families
#
# <br /> Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack
ipFamilies: []
## @section NetworkPolicy parameters
##
networkPolicy:
## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
##
# -- Specifies whether a NetworkPolicy should be created
enabled: false
externalAccess:
from: []
## @param networkPolicy.egressRules.customRules [object] Custom network policy rule
## Ingress Rules
##
ingressRules:
# -- Namespace selector label allowed to access the Backstage instance
namespaceSelector: {}
# -- Pod selector label allowed to access the Backstage instance
podSelector: {}
# -- Additional custom ingress rules
customRules: []
# - to:
# - namespaceSelector:
# matchLabels:
# label: example
## Egress Rules
##
egressRules:
## Additional custom egress rules
## e.g:
## customRules:
## - to:
## - namespaceSelector:
## matchLabels:
## label: example
# -- Deny external connections. Should not be enabled when working with an external database.
denyConnectionsToExternal: false
# -- Additional custom egress rules
customRules: []
# - to:
# - namespaceSelector:
# matchLabels:
# label: example
# -- PostgreSQL [chart configuration](https://github.com/bitnami/charts/blob/master/bitnami/postgresql/values.yaml)
# @default -- See below
postgresql:
# -- Switch to enable or disable the PostgreSQL helm chart
@ -216,17 +446,18 @@ postgresql:
# -- The key in which Postgres will look for, for the replication password, in the existing Secret
replicationPasswordKey: replication-password
# -- PostgreSQL architecture (`standalone` or `replication`)
architecture: standalone
# -- Service Account Configuration
# @default -- See below
serviceAccount:
# -- Enable the creation of a ServiceAccount for Backstage pods
create: false
# -- Name of the created ServiceAccount
# -- Name of the ServiceAccount to use
# If not set and `serviceAccount.create` is true, a name is generated
name: ""
@ -238,3 +469,31 @@ serviceAccount:
# -- Auto-mount the service account token in the pod
automountServiceAccountToken: true
# -- Metrics configuration
metrics:
# -- ServiceMonitor configuration
# <br /> Allows configuring your backstage instance as a scrape target for [Prometheus](https://github.com/prometheus/prometheus) using a ServiceMonitor custom resource that [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) can understand.
serviceMonitor:
# -- If enabled, a ServiceMonitor resource for Prometheus Operator is created
# <br /> Prometheus Operator must be installed in your cluster prior to enabling.
enabled: false
# -- ServiceMonitor annotations
annotations: {}
# -- Additional ServiceMonitor labels
labels: {}
# -- ServiceMonitor scrape interval
interval: null
# -- ServiceMonitor endpoint path
# <br /> Note that the /metrics endpoint is NOT present in a freshly scaffolded Backstage app. To setup, follow the [Prometheus metrics tutorial](https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/prometheus-metrics.md).
path: /metrics
# -- ServiceMonitor endpoint port
# <br /> The port where the metrics are exposed. If using OpenTelemetry as [documented here](https://backstage.io/docs/tutorials/setup-opentelemetry/), then the port needs to be explicitly specified. OpenTelemetry's default port is 9464.
port: http-backend

2
cr.yaml Normal file
View File

@ -0,0 +1,2 @@
generate-release-notes: true

5
ct-install.yaml Normal file
View File

@ -0,0 +1,5 @@
chart-dirs:
- charts
validate-maintainers: false
remote: origin
target-branch: main

5
ct.yaml Normal file
View File

@ -0,0 +1,5 @@
chart-dirs:
- charts
validate-maintainers: false
remote: origin
target-branch: main