diff --git a/charts/backstage/Chart.lock b/charts/backstage/Chart.lock
index 5aa770c1..ee81abab 100644
--- a/charts/backstage/Chart.lock
+++ b/charts/backstage/Chart.lock
@@ -4,6 +4,6 @@ dependencies:
version: 2.40.0
- name: backstage
repository: file://./vendor/backstage/charts/backstage/
- version: 2.8.0
-digest: sha256:3a285e9b4bb569e1138a09ca0d894f1d09ec053d27901913dbed5a151c591fab
-generated: "2026-06-01T04:30:43.114289007Z"
+ version: 2.9.0
+digest: sha256:6ff41521a7e3a8d73a84e24217e8978c7bb1cee5e68e02989c0060cae99d5358
+generated: "2026-08-03T08:18:52.08013529Z"
diff --git a/charts/backstage/Chart.yaml b/charts/backstage/Chart.yaml
index 588db207..34a9c2ec 100644
--- a/charts/backstage/Chart.yaml
+++ b/charts/backstage/Chart.yaml
@@ -25,7 +25,7 @@ dependencies:
version: "2.40.0"
- name: backstage
repository: "file://./vendor/backstage/charts/backstage/"
- version: "2.8.0"
+ version: "2.9.0"
alias: upstream
home: https://red.ht/rhdh
icon: data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjE5MS44OCIKICAgaGVpZ2h0PSIxOTEuODgiCiAgIHZpZXdCb3g9IjAgMCAxOTEuODggMTkxLjg4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcyNCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMjgiIC8+CiAgPGcKICAgICBpZD0idXVpZC03OTAxZjg3OC1jZTAwLTQ0MWYtYWMyNi1kZGQzNjU0ZDRmNzkiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNS4zMywwLDAsNS4zMywtNS4zMjk5OTc2LC01LjMyOTk5NzYpIj4KICAgIDxyZWN0CiAgICAgICB4PSIxIgogICAgICAgeT0iMSIKICAgICAgIHdpZHRoPSIzNiIKICAgICAgIGhlaWdodD0iMzYiCiAgICAgICByeD0iOSIKICAgICAgIHJ5PSI5IgogICAgICAgc3Ryb2tlLXdpZHRoPSIwIgogICAgICAgaWQ9InJlY3QyIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMjgsMi4yNSBjIDQuMjczMzYsMCA3Ljc1LDMuNDc2NjQgNy43NSw3Ljc1IHYgMTggYyAwLDQuMjczMzYgLTMuNDc2NjQsNy43NSAtNy43NSw3Ljc1IEggMTAgQyA1LjcyNjY0LDM1Ljc1IDIuMjUsMzIuMjczMzYgMi4yNSwyOCBWIDEwIEMgMi4yNSw1LjcyNjY0IDUuNzI2NjQsMi4yNSAxMCwyLjI1IEggMjggTSAyOCwxIEggMTAgQyA1LjAyOTQ0LDEgMSw1LjAyOTQzIDEsMTAgdiAxOCBjIDAsNC45NzA1NyA0LjAyOTQ0LDkgOSw5IGggMTggYyA0Ljk3MDU2LDAgOSwtNC4wMjk0MyA5LC05IFYgMTAgQyAzNyw1LjAyOTQzIDMyLjk3MDU2LDEgMjgsMSBaIgogICAgICAgZmlsbD0iIzRkNGQ0ZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoNCIgLz4KICA8L2c+CiAgPGcKICAgICBpZD0idXVpZC1jM2NhNjg5MS02ZTE4LTQyY2ItODUyYi0zZGVkZDZjMzFlNjgiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNS4zMywwLDAsNS4zMywtNS4zMjk5OTc2LC01LjMyOTk5NzYpIj4KICAgIDxwYXRoCiAgICAgICBkPSJtIDI2LjQ0MjM4LDI1LjU1ODExIC0zLjc3Mzc0LC0zLjc3Mzc0IGMgMC41OTE0MywtMC43NzcwNCAwLjk1NjM2LC0xLjczNDggMC45NTYzNiwtMi43ODQzNiAwLC0yLjU1MDI5IC0yLjA3NTIsLTQuNjI1IC00LjYyNSwtNC42MjUgLTIuNTUwMjksMCAtNC42MjUsMi4wNzQ3MSAtNC42MjUsNC42MjUgMCwyLjU1MDI5IDIuMDc0NzEsNC42MjUgNC42MjUsNC42MjUgMS4wNDk0NCwwIDIuMDA3MjYsLTAuMzY0OTMgMi43ODQzNiwtMC45NTYzNiBsIDMuNzczMjUsMy43NzMyNSBjIDAuMTIyMDcsMC4xMjIwNyAwLjI4MjIzLDAuMTgzMTEgMC40NDIzOCwwLjE4MzExIDAuMTYwMTUsMCAwLjMyMDMxLC0wLjA2MTA0IDAuNDQyMzgsLTAuMTgzMTEgMC4yNDMxNiwtMC4yNDQxNCAwLjI0MzE2LC0wLjYzOTY1IDAsLTAuODgzNzkgeiBNIDE1LjYyNSwxOSBjIDAsLTEuODYwODQgMS41MTQxNiwtMy4zNzUgMy4zNzUsLTMuMzc1IDEuODYxMzMsMCAzLjM3NSwxLjUxNDE2IDMuMzc1LDMuMzc1IDAsMS44NjA4NCAtMS41MTM2NywzLjM3NSAtMy4zNzUsMy4zNzUgLTEuODYwODQsMCAtMy4zNzUsLTEuNTE0MTYgLTMuMzc1LC0zLjM3NSB6IgogICAgICAgZmlsbD0iI2VlMDAwMCIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoNyIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDI3LDEzLjYyNSBjIDEuNDQ3MjcsMCAyLjYyNSwtMS4xNzc3MyAyLjYyNSwtMi42MjUgMCwtMS40NDcyNyAtMS4xNzc3MywtMi42MjUgLTIuNjI1LC0yLjYyNSAtMS40NDcyNywwIC0yLjYyNSwxLjE3NzczIC0yLjYyNSwyLjYyNSAwLDAuNDk2NyAwLjE0NjYxLDAuOTU2NTQgMC4zODcyNywxLjM1MzAzIGwgLTEuMjA0NjUsMS4yMDUwOCBjIC0wLjI0NDE0LDAuMjQ0MTQgLTAuMjQzMTYsMC42Mzk2NSA5LjhlLTQsMC44ODM3OSAwLjEyMTA5LDAuMTIyMDcgMC4yODEyNSwwLjE4MzExIDAuNDQxNDEsMC4xODMxMSAwLjE2MDE2LDAgMC4zMjAzMSwtMC4wNjEwNCAwLjQ0MjM4LC0wLjE4MzExIGwgMS4yMDQxLC0xLjIwNDQ3IGMgMC4zOTY2MSwwLjI0MDkxIDAuODU2NjMsMC4zODc1NyAxLjM1MzUyLDAuMzg3NTcgeiBtIDAsLTQgYyAwLjc1NzgxLDAgMS4zNzUsMC42MTY3IDEuMzc1LDEuMzc1IDAsMC43NTgzIC0wLjYxNzE5LDEuMzc1IC0xLjM3NSwxLjM3NSAtMC4zNzgxMSwwIC0wLjcyMTA3LC0wLjE1MzY5IC0wLjk2OTk3LC0wLjQwMTczIC03LjNlLTQsLTcuM2UtNCAtOS44ZS00LC0wLjAwMTggLTAuMDAxNywtMC4wMDI2IC02LjFlLTQsLTYuMWUtNCAtMC4wMDE1LC03LjllLTQgLTAuMDAyMSwtMC4wMDE0IC0wLjI0NzYyLC0wLjI0ODc4IC0wLjQwMTE4LC0wLjU5MTM3IC0wLjQwMTE4LC0wLjk2OTMgMCwtMC43NTgzIDAuNjE3MTksLTEuMzc1IDEuMzc1LC0xLjM3NSB6IgogICAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoOSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDE5LDguMzc1IGMgLTEuMTcxODgsMCAtMi4xMjUsMC45NTMxMiAtMi4xMjUsMi4xMjUgMCwxLjE3MTg4IDAuOTUzMTIsMi4xMjUgMi4xMjUsMi4xMjUgMS4xNzE4OCwwIDIuMTI1LC0wLjk1MzEyIDIuMTI1LC0yLjEyNSAwLC0xLjE3MTg4IC0wLjk1MzEyLC0yLjEyNSAtMi4xMjUsLTIuMTI1IHogbSAwLDMgYyAtMC40ODI0MiwwIC0wLjg3NSwtMC4zOTI1OCAtMC44NzUsLTAuODc1IDAsLTAuNDgyNDIgMC4zOTI1OCwtMC44NzUgMC44NzUsLTAuODc1IDAuNDgyNDIsMCAwLjg3NSwwLjM5MjU4IDAuODc1LDAuODc1IDAsMC40ODI0MiAtMC4zOTI1OCwwLjg3NSAtMC44NzUsMC44NzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDExIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTksMjUuMzc1IGMgLTEuMTcxODgsMCAtMi4xMjUsMC45NTMxMiAtMi4xMjUsMi4xMjUgMCwxLjE3MTg4IDAuOTUzMTIsMi4xMjUgMi4xMjUsMi4xMjUgMS4xNzE4OCwwIDIuMTI1LC0wLjk1MzEyIDIuMTI1LC0yLjEyNSAwLC0xLjE3MTg4IC0wLjk1MzEyLC0yLjEyNSAtMi4xMjUsLTIuMTI1IHogbSAwLDMgYyAtMC40ODI0MiwwIC0wLjg3NSwtMC4zOTI1OCAtMC44NzUsLTAuODc1IDAsLTAuNDgyNDIgMC4zOTI1OCwtMC44NzUgMC44NzUsLTAuODc1IDAuNDgyNDIsMCAwLjg3NSwwLjM5MjU4IDAuODc1LDAuODc1IDAsMC40ODI0MiAtMC4zOTI1OCwwLjg3NSAtMC44NzUsMC44NzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDEzIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMjcuNSwxNi44NzUgYyAtMS4xNzE4OCwwIC0yLjEyNSwwLjk1MzEyIC0yLjEyNSwyLjEyNSAwLDEuMTcxODggMC45NTMxMiwyLjEyNSAyLjEyNSwyLjEyNSAxLjE3MTg4LDAgMi4xMjUsLTAuOTUzMTIgMi4xMjUsLTIuMTI1IDAsLTEuMTcxODggLTAuOTUzMTIsLTIuMTI1IC0yLjEyNSwtMi4xMjUgeiBtIDAsMyBjIC0wLjQ4MjQyLDAgLTAuODc1LC0wLjM5MjU4IC0wLjg3NSwtMC44NzUgMCwtMC40ODI0MiAwLjM5MjU4LC0wLjg3NSAwLjg3NSwtMC44NzUgMC40ODI0MiwwIDAuODc1LDAuMzkyNTggMC44NzUsMC44NzUgMCwwLjQ4MjQyIC0wLjM5MjU4LDAuODc1IC0wLjg3NSwwLjg3NSB6IgogICAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoMTUiIC8+CiAgICA8cGF0aAogICAgICAgZD0ibSAxMi42MjUsMTkgYyAwLC0xLjE3MTg4IC0wLjk1MzEyLC0yLjEyNSAtMi4xMjUsLTIuMTI1IC0xLjE3MTg4LDAgLTIuMTI1LDAuOTUzMTIgLTIuMTI1LDIuMTI1IDAsMS4xNzE4OCAwLjk1MzEyLDIuMTI1IDIuMTI1LDIuMTI1IDEuMTcxODgsMCAyLjEyNSwtMC45NTMxMiAyLjEyNSwtMi4xMjUgeiBtIC0zLDAgYyAwLC0wLjQ4MjQyIDAuMzkyNTgsLTAuODc1IDAuODc1LC0wLjg3NSAwLjQ4MjQyLDAgMC44NzUsMC4zOTI1OCAwLjg3NSwwLjg3NSAwLDAuNDgyNDIgLTAuMzkyNTgsMC44NzUgLTAuODc1LDAuODc1IC0wLjQ4MjQyLDAgLTAuODc1LC0wLjM5MjU4IC0wLjg3NSwtMC44NzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDE3IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuMjM3NDMsMTIuMzUzNjQgQyAxMy40NzgzNCwxMS45NTcwMyAxMy42MjUsMTEuNDk2ODkgMTMuNjI1LDExIDEzLjYyNSw5LjU1MjczIDEyLjQ0NzI3LDguMzc1IDExLDguMzc1IDkuNTUyNzMsOC4zNzUgOC4zNzUsOS41NTI3MyA4LjM3NSwxMSBjIDAsMS40NDcyNyAxLjE3NzczLDIuNjI1IDIuNjI1LDIuNjI1IDAuNDk2ODksMCAwLjk1NzAzLC0wLjE0NjY3IDEuMzUzNjQsLTAuMzg3NTcgbCAxLjIwNDQ3LDEuMjA0NDcgYyAwLjEyMjA3LDAuMTIyMDcgMC4yODE3NCwwLjE4MzExIDAuNDQxODksMC4xODMxMSAwLjE2MDE1LDAgMC4zMTk4MiwtMC4wNjEwNCAwLjQ0MTg5LC0wLjE4MzExIDAuMjQ0MTQsLTAuMjQ0MTQgMC4yNDQxNCwtMC42Mzk2NSAwLC0wLjg4Mzc5IEwgMTMuMjM3NDIsMTIuMzUzNjQgWiBNIDkuNjI1LDExIGMgMCwtMC43NTgzIDAuNjE2NywtMS4zNzUgMS4zNzUsLTEuMzc1IDAuNzU4MywwIDEuMzc1LDAuNjE2NyAxLjM3NSwxLjM3NSAwLDAuMzc3OTkgLTAuMTUzNSwwLjcyMDU4IC0wLjQwMTEyLDAuOTY5MzYgLTcuOWUtNCw3LjllLTQgLTAuMDAxOSwxMGUtNCAtMC4wMDI3LDAuMDAxOCAtOGUtNCw3LjllLTQgLTAuMDAxLDAuMDAxOSAtMC4wMDE4LDAuMDAyNyBDIDExLjcyMDU4LDEyLjIyMTUgMTEuMzc3OTksMTIuMzc1IDExLDEyLjM3NSAxMC4yNDE3LDEyLjM3NSA5LjYyNSwxMS43NTgzIDkuNjI1LDExIFoiCiAgICAgICBmaWxsPSIjZmZmZmZmIgogICAgICAgc3Ryb2tlLXdpZHRoPSIwIgogICAgICAgaWQ9InBhdGgxOSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDEzLjU1ODExLDIzLjU1ODExIC0xLjIwNDQ3LDEuMjA0NDcgQyAxMS45NTcwMywyNC41MjE2NyAxMS40OTY4OSwyNC4zNzUwMSAxMSwyNC4zNzUwMSBjIC0xLjQ0NzI3LDAgLTIuNjI1LDEuMTc3NzMgLTIuNjI1LDIuNjI1IDAsMS40NDcyNyAxLjE3NzczLDIuNjI1IDIuNjI1LDIuNjI1IDEuNDQ3MjcsMCAyLjYyNSwtMS4xNzc3MyAyLjYyNSwtMi42MjUgMCwtMC40OTY4OSAtMC4xNDY2NywtMC45NTcwMyAtMC4zODc1NywtMS4zNTM2NCBMIDE0LjQ0MTksMjQuNDQxOSBjIDAuMjQ0MTQsLTAuMjQ0MTQgMC4yNDQxNCwtMC42Mzk2NSAwLC0wLjg4Mzc5IC0wLjI0NDE0LC0wLjI0NDE0IC0wLjYzOTY1LC0wLjI0NDE0IC0wLjg4Mzc5LDAgeiBNIDExLDI4LjM3NSBjIC0wLjc1ODMsMCAtMS4zNzUsLTAuNjE2NyAtMS4zNzUsLTEuMzc1IDAsLTAuNzU4MyAwLjYxNjcsLTEuMzc1IDEuMzc1LC0xLjM3NSAwLjM3ODg1LDAgMC43MjIyOSwwLjE1Mzk5IDAuOTcxMTksMC40MDI1OSAyLjRlLTQsMi40ZS00IDIuNGUtNCw0LjllLTQgNC45ZS00LDcuM2UtNCAyLjVlLTQsMi40ZS00IDQuOWUtNCwyLjRlLTQgNy4zZS00LDQuOWUtNCAwLjI0ODYsMC4yNDg5IDAuNDAyNTksMC41OTIzNSAwLjQwMjU5LDAuOTcxMTkgMCwwLjc1ODMgLTAuNjE2NywxLjM3NSAtMS4zNzUsMS4zNzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDIxIiAvPgogIDwvZz4KPC9zdmc+Cg==
diff --git a/charts/backstage/vendor/backstage/.github/workflows/automate_stale.yml b/charts/backstage/vendor/backstage/.github/workflows/automate_stale.yml
index 96190958..eba737cb 100644
--- a/charts/backstage/vendor/backstage/.github/workflows/automate_stale.yml
+++ b/charts/backstage/vendor/backstage/.github/workflows/automate_stale.yml
@@ -14,7 +14,7 @@ jobs:
pull-requests: write # for actions/stale to close stale PRs
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
+ - uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 # v10.4.0
id: stale
with:
stale-issue-message: >
diff --git a/charts/backstage/vendor/backstage/.github/workflows/lint.yaml b/charts/backstage/vendor/backstage/.github/workflows/lint.yaml
index b6bb58a2..6da31359 100644
--- a/charts/backstage/vendor/backstage/.github/workflows/lint.yaml
+++ b/charts/backstage/vendor/backstage/.github/workflows/lint.yaml
@@ -14,11 +14,11 @@ jobs:
GO111MODULE: on
steps:
- name: Checkout
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pin@v4
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # pin@v4
with:
python-version: 3.12
diff --git a/charts/backstage/vendor/backstage/.github/workflows/pre-commit.yaml b/charts/backstage/vendor/backstage/.github/workflows/pre-commit.yaml
index b8144247..04db2b6a 100644
--- a/charts/backstage/vendor/backstage/.github/workflows/pre-commit.yaml
+++ b/charts/backstage/vendor/backstage/.github/workflows/pre-commit.yaml
@@ -15,21 +15,32 @@ jobs:
GO111MODULE: on
steps:
- name: Checkout
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pin@v4
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # pin@v4
with:
python-version: 3.12
- - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # pin@v3
+ - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # pin@v3
with:
go-version: ^1
- name: Setup helm-docs
run: go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest
+ - name: Set up Helm
+ uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # pin@v5.0.1
+ with:
+ version: v3.16.4
+
+ - name: Install helm-unittest plugin
+ run: helm plugin install https://github.com/helm-unittest/helm-unittest --version v1.0.3
+
+ - name: Build chart dependencies
+ run: helm dependency build charts/backstage
+
- name: Run pre-commit
uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # pin@v3.0.1
with:
diff --git a/charts/backstage/vendor/backstage/.github/workflows/release.yml b/charts/backstage/vendor/backstage/.github/workflows/release.yml
index 039875e7..e39a0626 100644
--- a/charts/backstage/vendor/backstage/.github/workflows/release.yml
+++ b/charts/backstage/vendor/backstage/.github/workflows/release.yml
@@ -18,7 +18,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
@@ -35,7 +35,7 @@ jobs:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- name: Login to GitHub Container Registry
- uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee #pin@v4.2.0
+ uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 #pin@v4.5.1
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -45,7 +45,7 @@ jobs:
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 #pin@v4.1.2
- name: Install Oras
- uses: oras-project/setup-oras@38de303aac69abb66f3e6255b7198bff35f323e3 # v2.0.0
+ uses: oras-project/setup-oras@1d808f7d7f6995cc68b7bf507bfe5c5446e1dc9d # v2.0.1
- name: Publish and Sign OCI Charts
run: |
diff --git a/charts/backstage/vendor/backstage/.github/workflows/spellcheck.yaml b/charts/backstage/vendor/backstage/.github/workflows/spellcheck.yaml
index d278095d..eb8f2212 100644
--- a/charts/backstage/vendor/backstage/.github/workflows/spellcheck.yaml
+++ b/charts/backstage/vendor/backstage/.github/workflows/spellcheck.yaml
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
- uses: actions/checkout@v6.0.2
+ uses: actions/checkout@v7.0.1
- name: Codespell
uses: codespell-project/actions-codespell@v2
with:
diff --git a/charts/backstage/vendor/backstage/.github/workflows/test.yml b/charts/backstage/vendor/backstage/.github/workflows/test.yml
index 0a4cba8e..065e0657 100644
--- a/charts/backstage/vendor/backstage/.github/workflows/test.yml
+++ b/charts/backstage/vendor/backstage/.github/workflows/test.yml
@@ -12,16 +12,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Set up Helm
- uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # pin@v4.3.1
+ uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # pin@v5.0.1
with:
version: v3.10.0
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pin@v4
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # pin@v4
with:
python-version: 3.12
diff --git a/charts/backstage/vendor/backstage/.pre-commit-config.yaml b/charts/backstage/vendor/backstage/.pre-commit-config.yaml
index 2133a137..69589ff1 100644
--- a/charts/backstage/vendor/backstage/.pre-commit-config.yaml
+++ b/charts/backstage/vendor/backstage/.pre-commit-config.yaml
@@ -19,6 +19,13 @@ repos:
language: python
types_or: [yaml, json]
+ - id: helm-unittest
+ name: helm-unittest
+ entry: helm unittest charts/backstage
+ language: system
+ files: ^charts/backstage/
+ pass_filenames: false
+
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
diff --git a/charts/backstage/vendor/backstage/charts/backstage/.helmignore b/charts/backstage/vendor/backstage/charts/backstage/.helmignore
new file mode 100644
index 00000000..95658e13
--- /dev/null
+++ b/charts/backstage/vendor/backstage/charts/backstage/.helmignore
@@ -0,0 +1,26 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
+
+# Unit tests are not shipped with the packaged chart
+tests/
diff --git a/charts/backstage/vendor/backstage/charts/backstage/Chart.yaml b/charts/backstage/vendor/backstage/charts/backstage/Chart.yaml
index 4640ed9d..a932bce7 100644
--- a/charts/backstage/vendor/backstage/charts/backstage/Chart.yaml
+++ b/charts/backstage/vendor/backstage/charts/backstage/Chart.yaml
@@ -38,4 +38,4 @@ sources:
# 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: 2.8.0
+version: 2.9.0
diff --git a/charts/backstage/vendor/backstage/charts/backstage/README.md b/charts/backstage/vendor/backstage/charts/backstage/README.md
index 8aae00b2..0d8a4db1 100644
--- a/charts/backstage/vendor/backstage/charts/backstage/README.md
+++ b/charts/backstage/vendor/backstage/charts/backstage/README.md
@@ -2,7 +2,7 @@
# Backstage Helm Chart
[](https://artifacthub.io/packages/search?repo=backstage)
-
+

A Helm chart for deploying a Backstage application
@@ -144,6 +144,7 @@ Kubernetes: `>= 1.19.0-0`
| 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.
Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod | object | `{}` |
+| backstage.priorityClassName | Priority class name for pod scheduling
Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/ | string | `""` |
| backstage.readinessProbe | Readiness Probe Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes | object | `{}` |
diff --git a/charts/backstage/vendor/backstage/charts/backstage/ci/priorityClassName-values.yaml b/charts/backstage/vendor/backstage/charts/backstage/ci/priorityClassName-values.yaml
new file mode 100644
index 00000000..36036e99
--- /dev/null
+++ b/charts/backstage/vendor/backstage/charts/backstage/ci/priorityClassName-values.yaml
@@ -0,0 +1,11 @@
+backstage:
+ priorityClassName: backstage-chart-test
+
+extraDeploy:
+ - apiVersion: scheduling.k8s.io/v1
+ kind: PriorityClass
+ metadata:
+ name: backstage-chart-test
+ value: 1000
+ globalDefault: false
+ description: Priority class used to test the Backstage chart
diff --git a/charts/backstage/vendor/backstage/charts/backstage/tests/configmap_test.yaml b/charts/backstage/vendor/backstage/charts/backstage/tests/configmap_test.yaml
new file mode 100644
index 00000000..a1ad4563
--- /dev/null
+++ b/charts/backstage/vendor/backstage/charts/backstage/tests/configmap_test.yaml
@@ -0,0 +1,46 @@
+# Pins the behaviour of the app-config ConfigMap: it must only exist when the
+# user supplies backstage.appConfig, and when it does the rendered config has to
+# land verbatim under the app-config.yaml data key (this is what the deployment
+# mounts and passes to --config).
+suite: app-config configmap
+templates:
+ - app-config-configmap.yaml
+release:
+ name: backstage
+ namespace: backstage-system
+tests:
+ - it: does not render when backstage.appConfig is empty
+ asserts:
+ - hasDocuments:
+ count: 0
+
+ - it: renders a single ConfigMap when backstage.appConfig is set
+ values:
+ - ../ci/appConfig-values.yaml
+ asserts:
+ - hasDocuments:
+ count: 1
+ - isKind:
+ of: ConfigMap
+ - equal:
+ path: metadata.name
+ value: backstage-app-config
+ - equal:
+ path: metadata.namespace
+ value: backstage-system
+
+ - it: embeds the supplied config under the app-config.yaml key
+ values:
+ - ../ci/appConfig-values.yaml
+ asserts:
+ - isNotEmpty:
+ path: data["app-config.yaml"]
+ - matchRegex:
+ path: data["app-config.yaml"]
+ pattern: "title: The very best Backstage Helm Chart"
+ - matchRegex:
+ path: data["app-config.yaml"]
+ pattern: "baseUrl: https://somedomain.tl"
+ - matchRegex:
+ path: data["app-config.yaml"]
+ pattern: "port: 12345"
diff --git a/charts/backstage/vendor/backstage/charts/backstage/tests/deployment_test.yaml b/charts/backstage/vendor/backstage/charts/backstage/tests/deployment_test.yaml
new file mode 100644
index 00000000..b53f89da
--- /dev/null
+++ b/charts/backstage/vendor/backstage/charts/backstage/tests/deployment_test.yaml
@@ -0,0 +1,21 @@
+# Pins the priority class behaviour: it is omitted by default and, when set,
+# maps to the Backstage pod specification.
+suite: backstage deployment
+templates:
+ - backstage-deployment.yaml
+release:
+ name: backstage
+ namespace: backstage-system
+tests:
+ - it: omits the priority class name by default
+ asserts:
+ - notExists:
+ path: spec.template.spec.priorityClassName
+
+ - it: configures the priority class name when set
+ values:
+ - ../ci/priorityClassName-values.yaml
+ asserts:
+ - equal:
+ path: spec.template.spec.priorityClassName
+ value: backstage-chart-test
diff --git a/charts/backstage/vendor/backstage/charts/backstage/tests/servicemonitor_test.yaml b/charts/backstage/vendor/backstage/charts/backstage/tests/servicemonitor_test.yaml
new file mode 100644
index 00000000..fee8d967
--- /dev/null
+++ b/charts/backstage/vendor/backstage/charts/backstage/tests/servicemonitor_test.yaml
@@ -0,0 +1,76 @@
+# Pins the ServiceMonitor behaviour: off by default, and when enabled it has to
+# render as a valid Prometheus Operator resource whose selector matches the
+# backstage Service and whose endpoint points at the configured port/path.
+suite: servicemonitor
+templates:
+ - servicemonitor.yaml
+release:
+ name: backstage
+ namespace: backstage-system
+tests:
+ - it: does not render when metrics.serviceMonitor is disabled
+ asserts:
+ - hasDocuments:
+ count: 0
+
+ - it: renders a ServiceMonitor when enabled
+ values:
+ - ../ci/service-monitor.yaml
+ asserts:
+ - hasDocuments:
+ count: 1
+ - isKind:
+ of: ServiceMonitor
+ - equal:
+ path: apiVersion
+ value: monitoring.coreos.com/v1
+ - equal:
+ path: metadata.name
+ value: backstage
+
+ - it: targets the configured endpoint port and path
+ values:
+ - ../ci/service-monitor.yaml
+ asserts:
+ - equal:
+ path: spec.endpoints[0].port
+ value: http-backend
+ - equal:
+ path: spec.endpoints[0].path
+ value: /metrics
+ - notExists:
+ path: spec.endpoints[0].interval
+
+ - it: selects the backstage component within the release namespace
+ values:
+ - ../ci/service-monitor.yaml
+ asserts:
+ - equal:
+ path: spec.selector.matchLabels["app.kubernetes.io/component"]
+ value: backstage
+ - equal:
+ path: spec.namespaceSelector.matchNames[0]
+ value: backstage-system
+
+ - it: carries the standard component label plus user-supplied labels and annotations
+ values:
+ - ../ci/service-monitor.yaml
+ asserts:
+ - equal:
+ path: metadata.labels["app.kubernetes.io/component"]
+ value: backstage
+ - equal:
+ path: metadata.labels.test
+ value: test
+ - equal:
+ path: metadata.annotations.test
+ value: test
+
+ - it: emits the scrape interval only when configured
+ set:
+ metrics.serviceMonitor.enabled: true
+ metrics.serviceMonitor.interval: 30s
+ asserts:
+ - equal:
+ path: spec.endpoints[0].interval
+ value: 30s
diff --git a/charts/backstage/vendor/backstage/charts/backstage/values.schema.json b/charts/backstage/vendor/backstage/charts/backstage/values.schema.json
index 9f7c66d3..695c4fab 100644
--- a/charts/backstage/vendor/backstage/charts/backstage/values.schema.json
+++ b/charts/backstage/vendor/backstage/charts/backstage/values.schema.json
@@ -5750,6 +5750,12 @@
},
"type": "object"
},
+ "priorityClassName": {
+ "default": "",
+ "description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/",
+ "title": "Priority class name for pod scheduling",
+ "type": "string"
+ },
"readinessProbe": {
"description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.",
"properties": {
diff --git a/charts/backstage/vendor/backstage/charts/backstage/values.schema.tmpl.json b/charts/backstage/vendor/backstage/charts/backstage/values.schema.tmpl.json
index 640926ae..f85f654e 100644
--- a/charts/backstage/vendor/backstage/charts/backstage/values.schema.tmpl.json
+++ b/charts/backstage/vendor/backstage/charts/backstage/values.schema.tmpl.json
@@ -856,6 +856,12 @@
"$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.33.4/_definitions.json#/definitions/io.k8s.api.core.v1.SecurityContext",
"default": {}
},
+ "priorityClassName": {
+ "title": "Priority class name for pod scheduling",
+ "description": "Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/",
+ "type": "string",
+ "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",
diff --git a/charts/backstage/vendor/backstage/charts/backstage/values.yaml b/charts/backstage/vendor/backstage/charts/backstage/values.yaml
index aac1f230..c0a7db09 100644
--- a/charts/backstage/vendor/backstage/charts/backstage/values.yaml
+++ b/charts/backstage/vendor/backstage/charts/backstage/values.yaml
@@ -299,6 +299,10 @@ backstage:
#
Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
podSecurityContext: {}
+ # -- Priority class name for pod scheduling
+ #
Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
+ priorityClassName: ""
+
# -- Security settings for a Container.
#
Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
containerSecurityContext: {}