89 Commits

Author SHA1 Message Date
volker.raschek 1893741d78 Merge remote-tracking branch 'origin/master' into feat/support-gateway-api
Helm / helm-unittest (push) Successful in 25s
Generate README / generate-parameters (push) Successful in 44s
Markdown linter / markdown-lint (push) Successful in 17s
Helm / helm-lint (push) Successful in 10s
Markdown linter / markdown-link-checker (push) Successful in 39s
2026-06-07 17:31:19 +02:00
volker.raschek 000f65045e fix(renovate): use preset helm
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 21s
2026-06-07 17:30:50 +02:00
volker.raschek 556ef904b2 Merge remote-tracking branch 'origin/master' into feat/support-gateway-api 2026-06-07 17:05:41 +02:00
volker.raschek 322800e4af fix(Makefile): get rid of volkerraschek/helm
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 18s
2026-06-07 17:05:20 +02:00
volker.raschek 4a7c066777 fix(Makefile): get rid of volkerraschek/helm 2026-06-07 16:32:40 +02:00
CSRBot e5cca09d32 Merge pull request 'chore(deps): update dependency helm-unittest/helm-unittest to v1.1.1' (#17) from renovate/update-helm-plugin-'unittest' into master
Helm / helm-lint (push) Successful in 10s
Helm / helm-unittest (push) Successful in 15s
2026-06-06 00:22:43 +00:00
CSRBot e15cf6ee14 chore(deps): update dependency helm-unittest/helm-unittest to v1.1.1
Helm / helm-unittest (push) Successful in 16s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-lint (push) Successful in 30s
Helm / helm-unittest (pull_request) Successful in 13s
2026-06-06 00:22:39 +00:00
CSRBot 9c5544495e Merge pull request 'chore(deps): pin dependencies' (#15) from renovate/pin-dependencies into master
Helm / helm-unittest (push) Failing after 14m44s
Helm / helm-lint (push) Failing after 14m49s
2026-06-05 12:33:38 +00:00
CSRBot ef5168d379 chore(deps): pin dependencies
Helm / helm-lint (push) Successful in 14s
Helm / helm-unittest (push) Successful in 14s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 15s
2026-06-05 12:33:19 +00:00
CSRBot 6d08b8db8b Merge pull request 'chore(deps): update docker.io/library/node docker tag to v26.3.0' (#14) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 21s
2026-06-04 15:32:47 +00:00
CSRBot 8a568f7af7 chore(deps): update docker.io/library/node docker tag to v26.3.0
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 14s
Helm / helm-lint (pull_request) Successful in 8s
Helm / helm-unittest (pull_request) Successful in 21s
2026-06-04 15:31:45 +00:00
CSRBot c17634828f Merge pull request 'chore(deps): update actions/checkout action to v6.0.3' (#12) from renovate/actions-checkout-6.x into master
Helm / helm-lint (push) Successful in 9s
Helm / helm-unittest (push) Successful in 14s
2026-06-04 15:30:21 +00:00
CSRBot e9ea7792d8 chore(deps): update actions/checkout action to v6.0.3
Helm / helm-unittest (push) Successful in 16s
Helm / helm-lint (push) Successful in 5s
Helm / helm-lint (pull_request) Successful in 7s
Helm / helm-unittest (pull_request) Successful in 14s
2026-06-04 15:30:14 +00:00
volker.raschek c9322a9adc docs(README): add ingress and gateway API example 2026-05-30 13:51:11 +02:00
volker.raschek f8bfa9141e fix(gatewayAPI): to backendTLSPolicy 2026-05-30 12:12:39 +02:00
volker.raschek 28838d111f fix(ignore): ignore value files
Helm / helm-lint (push) Successful in 12s
Generate README / generate-parameters (push) Successful in 1m16s
Helm / helm-unittest (push) Failing after 1m9s
Markdown linter / markdown-link-checker (push) Successful in 43s
Markdown linter / markdown-lint (push) Successful in 1m32s
2026-05-30 12:03:07 +02:00
volker.raschek 81fcb3ebc6 fix(renovate): adapy custom regexp manager for appVersion 2026-05-30 12:02:44 +02:00
volker.raschek d461f5e0bc fix(gatewayAPI): adapt backendTLSPolicy 2026-05-30 12:02:44 +02:00
volker.raschek 6ed2f64dc0 docs(README): generate parameters 2026-05-30 12:02:44 +02:00
volker.raschek 1c0e43e94b docs(gatewayAPI): adapt indentation 2026-05-30 12:02:44 +02:00
volker.raschek f1606a3b29 fix(gatewayAPI): add clientSettingsPolicy 2026-05-30 12:02:44 +02:00
volker.raschek ad93efc510 fix(gatewayAPI): add backendTLSConfig 2026-05-30 12:02:44 +02:00
volker.raschek f5de20f34a fix(gatewayAPI): add httpRoute 2026-05-30 12:02:43 +02:00
CSRBot 20f522e437 chore(deps): update dependency helm/helm to v4.1.4
Helm / helm-lint (push) Successful in 11s
Helm / helm-unittest (push) Successful in 15s
2026-05-30 09:53:23 +00:00
CSRBot 5ed6454c18 chore(deps): update docker.io/library/node docker tag to v26
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 18s
Helm / helm-lint (push) Successful in 13s
Helm / helm-unittest (push) Successful in 16s
2026-05-09 09:17:45 +00:00
CSRBot c8843302bf Merge pull request 'chore(deps): update dependency helm-unittest/helm-unittest to v1.1.0' (#11) from renovate/update-helm-plugin-'unittest' into master
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 43s
2026-05-08 21:15:56 +00:00
CSRBot 2452152922 chore(deps): update dependency helm-unittest/helm-unittest to v1.1.0
Helm / helm-lint (push) Successful in 11s
Helm / helm-lint (pull_request) Successful in 13s
Helm / helm-unittest (push) Successful in 30s
Helm / helm-unittest (pull_request) Successful in 53s
2026-05-08 21:15:48 +00:00
CSRBot 12cc33c169 Merge pull request 'chore(deps): update azure/setup-helm action to v5' (#7) from renovate/azure-setup-helm-5.x into master
Helm / helm-lint (push) Successful in 12s
Helm / helm-unittest (push) Successful in 26s
2026-04-29 21:18:55 +00:00
CSRBot 2aa0a2aa36 chore(deps): update azure/setup-helm action to v5
Helm / helm-lint (push) Successful in 10s
Generate README / generate-parameters (push) Successful in 21s
Helm / helm-unittest (push) Successful in 27s
Markdown linter / markdown-link-checker (push) Successful in 29s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 14s
Markdown linter / markdown-lint (push) Successful in 32s
2026-04-29 18:24:46 +00:00
CSRBot 06136e6cf6 Merge pull request 'chore(deps): update docker.io/curlimages/curl docker tag to v8.20.0' (#10) from renovate/container-images into master
Generate README / generate-parameters (push) Successful in 16s
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 12s
Markdown linter / markdown-link-checker (push) Successful in 18s
Markdown linter / markdown-lint (push) Successful in 11s
2026-04-29 15:22:39 +00:00
CSRBot 5b67733bff chore(deps): update docker.io/curlimages/curl docker tag to v8.20.0
Helm / helm-lint (push) Successful in 7s
Helm / helm-unittest (push) Successful in 14s
Generate README / generate-parameters (push) Successful in 33s
Markdown linter / markdown-link-checker (push) Successful in 18s
Generate README / generate-parameters (pull_request) Successful in 18s
Markdown linter / markdown-lint (push) Successful in 31s
Helm / helm-lint (pull_request) Successful in 6s
Markdown linter / markdown-link-checker (pull_request) Successful in 19s
Helm / helm-unittest (pull_request) Successful in 23s
Markdown linter / markdown-lint (pull_request) Successful in 13s
2026-04-29 15:22:27 +00:00
CSRBot 2ce62a6ceb Merge pull request 'chore(deps): update actions/checkout action to v6' (#6) from renovate/actions-checkout-6.x into master
Helm / helm-lint (push) Successful in 9s
Helm / helm-unittest (push) Successful in 11s
2026-04-20 16:18:17 +00:00
CSRBot d819968ee5 chore(deps): update actions/checkout action to v6
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 12s
Helm / helm-lint (pull_request) Successful in 10s
Helm / helm-unittest (pull_request) Successful in 11s
2026-04-20 16:18:06 +00:00
CSRBot 684ba1b51b Merge pull request 'chore(deps): update docker.io/library/node docker tag to v24.15.0' (#5) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Has been cancelled
Helm / helm-unittest (push) Has been cancelled
2026-04-20 16:17:20 +00:00
CSRBot 03e08c3adc chore(deps): update docker.io/library/node docker tag to v24.15.0
Helm / helm-lint (push) Successful in 9s
Helm / helm-lint (pull_request) Successful in 9s
Helm / helm-unittest (push) Successful in 11s
Helm / helm-unittest (pull_request) Successful in 20s
2026-04-20 16:17:05 +00:00
CSRBot 1b69d01351 Merge pull request 'chore(deps): update dependency markdownlint-cli to ^0.48.0' (#4) from renovate/markdownlint-cli-0.x into master
Helm / helm-lint (push) Has been cancelled
Helm / helm-unittest (push) Has been cancelled
2026-04-20 16:16:43 +00:00
CSRBot 50ac909a96 chore(deps): update dependency markdownlint-cli to ^0.48.0
Helm / helm-lint (push) Successful in 9s
Helm / helm-unittest (push) Successful in 11s
Helm / helm-lint (pull_request) Successful in 11s
Helm / helm-unittest (pull_request) Successful in 10s
2026-04-20 16:16:35 +00:00
CSRBot 6aad4d9ad6 Merge pull request 'chore(deps): update container images' (#2) from renovate/container-images into master
Helm / helm-lint (push) Has been cancelled
Helm / helm-unittest (push) Has been cancelled
Generate README / generate-parameters (push) Successful in 15s
Markdown linter / markdown-link-checker (push) Successful in 16s
Markdown linter / markdown-lint (push) Successful in 29s
2026-04-20 16:15:50 +00:00
CSRBot d8b6121b97 chore(deps): update container images
Helm / helm-lint (push) Successful in 10s
Generate README / generate-parameters (push) Successful in 26s
Helm / helm-unittest (push) Successful in 19s
Markdown linter / markdown-link-checker (push) Successful in 16s
Generate README / generate-parameters (pull_request) Successful in 14s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 12s
Markdown linter / markdown-lint (push) Successful in 47s
Markdown linter / markdown-link-checker (pull_request) Successful in 15s
Markdown linter / markdown-lint (pull_request) Successful in 31s
2026-04-20 16:15:40 +00:00
CSRBot 4dff059be8 Merge pull request 'chore(deps): update dependency helm-unittest/helm-unittest to v1.0.3' (#1) from renovate/update-helm-plugin-'unittest' into master
Helm / helm-lint (push) Has been cancelled
Helm / helm-unittest (push) Has been cancelled
2026-04-20 16:15:27 +00:00
CSRBot c60afc60f2 chore(deps): update dependency helm-unittest/helm-unittest to v1.0.3
Helm / helm-lint (push) Successful in 4s
Helm / helm-lint (pull_request) Successful in 4s
Helm / helm-unittest (push) Successful in 20s
Helm / helm-unittest (pull_request) Successful in 11s
2026-04-20 16:15:20 +00:00
volker.raschek cac5f03084 chore(deps): rollback docker docker.io/volkerraschek/helm to 3.19.2
Helm / helm-unittest (push) Successful in 20s
Helm / helm-lint (push) Successful in 34s
2025-11-30 13:38:34 +01:00
volker.raschek 7614055979 Merge pull request 'chore(deps): update dependency helm/helm to v4.0.1' (#48) from renovate/helm-helm-4.x into master
Reviewed-on: #48
2025-11-30 11:23:22 +00:00
volker.raschek 302b348ea4 Merge branch 'master' into renovate/helm-helm-4.x 2025-11-30 11:22:58 +00:00
volker.raschek 722f1139cd Merge pull request 'chore(deps): update docker.io/volkerraschek/helm docker tag to v4' (#43) from renovate/major-update-docker.iovolkerraschekhelm into master
Reviewed-on: #43
2025-11-30 11:22:39 +00:00
CSRBot 9ad1ceacec Merge pull request 'chore(deps): update azure/setup-helm action to v4.3.1' (#47) from renovate/actions into master 2025-11-30 11:13:15 +00:00
CSRBot 7d6487b164 chore(deps): update docker.io/volkerraschek/helm docker tag to v4 2025-11-30 11:12:01 +00:00
CSRBot 55c3c9ca04 chore(deps): update dependency helm/helm to v4.0.1 2025-11-30 11:11:50 +00:00
CSRBot 94cc9a28fd chore(deps): update azure/setup-helm action to v4.3.1 2025-11-30 11:11:35 +00:00
volker.raschek e2366f316b fix(ci): replace volkerraschek/helm with native GitHub Actions 2025-11-30 11:17:29 +01:00
volker.raschek 3642b501d5 fix(ci): define runs-on as string 2025-11-30 10:46:34 +01:00
volker.raschek 96e604f79e docs(README): adapt stakaters reloader example 2025-11-30 10:46:28 +01:00
CSRBot c066cbfca7 Merge pull request 'chore(deps): update dependency markdown-link-check to v3.14.2' (#46) from renovate/markdown-link-check-3.x-lockfile into master 2025-11-19 17:12:16 +00:00
CSRBot 86b767f83c chore(deps): update dependency markdown-link-check to v3.14.2 2025-11-19 17:11:48 +00:00
CSRBot 0d440118c6 Merge pull request 'chore(deps): update dependency markdownlint-cli to ^0.46.0' (#45) from renovate/markdownlint-cli-0.x into master 2025-11-19 05:12:22 +00:00
CSRBot f2bdcf16c5 chore(deps): update dependency markdownlint-cli to ^0.46.0 2025-11-19 05:11:40 +00:00
CSRBot a015682128 Merge pull request 'chore(deps): update actions/checkout action to v5.0.1' (#44) from renovate/actions into master 2025-11-17 18:06:43 +00:00
CSRBot 7ef7293930 chore(deps): update actions/checkout action to v5.0.1 2025-11-17 17:16:13 +00:00
CSRBot 24799f602b Merge pull request 'chore(deps): update docker.io/volkerraschek/helm docker tag to v3.19.2' (#42) from renovate/update-docker.iovolkerraschekhelm into master 2025-11-12 21:22:51 +00:00
CSRBot 34f8a17689 chore(deps): update docker.io/volkerraschek/helm docker tag to v3.19.2 2025-11-12 21:21:34 +00:00
CSRBot 876cf24376 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v24.11.1' (#41) from renovate/update-docker.iolibrarynode into master 2025-11-12 20:12:33 +00:00
CSRBot 4ef9ba336f chore(deps): update docker.io/library/node docker tag to v24.11.1 2025-11-12 20:12:08 +00:00
CSRBot 7bcda8878c Merge pull request 'chore(deps): update docker.io/curlimages/curl docker tag to v8.17.0' (#40) from renovate/container-images into master 2025-11-05 14:11:07 +00:00
CSRBot a0d71677f6 chore(deps): update docker.io/curlimages/curl docker tag to v8.17.0 2025-11-05 14:10:02 +00:00
CSRBot d957d690d9 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v24.11.0' (#39) from renovate/update-docker.iolibrarynode into master 2025-10-29 02:12:00 +00:00
CSRBot 52696ae471 chore(deps): update docker.io/library/node docker tag to v24.11.0 2025-10-29 02:11:25 +00:00
CSRBot 16a7fa16a9 Merge pull request 'chore(deps): update dependency volker.raschek/reposilite-charts to v1' (#38) from renovate/volker.raschek-reposilite-charts-1.x into master 2025-10-22 16:24:49 +00:00
CSRBot 19dc6b4aef chore(deps): update dependency volker.raschek/reposilite-charts to v1 2025-10-22 16:23:39 +00:00
volker.raschek 0dd267a0df docs(README): add an ArgoCD application resource as an example
Release / publish-chart (push) Failing after 20s
2025-10-22 17:38:24 +02:00
volker.raschek d790cd3ec4 fix(secret): enforce basic auth credentials
This patch remove generation of a random string for the username and password of
the basic auth credentials.

The problem with the random generated basic auth credentials is, that this leads
to a new shasum of the secret. GitOps tools like ArgoCD detects a drift trigger
a rolling update.

To avoid this must now the basic auth credentials be defined to enable
prometheus metrics.
2025-10-22 17:14:53 +02:00
volker.raschek d2c329e1be docs(README): adapt jq expression to ignore reloader annotation 2025-10-21 22:32:23 +02:00
volker.raschek db5e38cef1 docs(README): adapt description of RespectIgnoreDifferences 2025-10-21 22:28:23 +02:00
volker.raschek 1fe7bc604e docs(README): adjust highlighted text 2025-10-21 22:26:15 +02:00
volker.raschek fa43188e03 docs(README): add tip how to ignore stakater's reloader annotations 2025-10-21 22:22:26 +02:00
volker.raschek 99ed88068a docs(README): add further jqPathExpressions if stakaters reloader is configured 2025-10-19 19:08:18 +02:00
volker.raschek 95fd713da6 fix(renovate): update packageRule for helm-unittest/helm-unittest 2025-10-16 22:01:54 +02:00
volker.raschek 671a635627 fix(renovate): update packageRule for helm-unittest/helm-unittest 2025-10-16 21:39:56 +02:00
volker.raschek 13fbb0ecc0 fix(vscode): add values.schema.json for helm unittest 2025-10-16 21:11:51 +02:00
CSRBot 8835a8cde1 Merge pull request 'chore(deps): update dependency markdown-link-check to v3.14.1' (#34) from renovate/markdown-link-check-3.x-lockfile into master 2025-10-11 19:15:37 +00:00
CSRBot 7d479fe629 chore(deps): update dependency markdown-link-check to v3.14.1 2025-10-11 19:15:03 +00:00
volker.raschek edacc04893 docs(README): ArgoCD configuration note on checksum annotations 2025-10-11 14:04:18 +02:00
CSRBot 3c64ebfef4 Merge pull request 'chore(deps): update dependency markdown-link-check to v3.14.0' (#33) from renovate/markdown-link-check-3.x-lockfile into master 2025-10-10 19:17:38 +00:00
CSRBot 15d2c31512 chore(deps): update dependency markdown-link-check to v3.14.0 2025-10-10 19:16:57 +00:00
CSRBot 93ef09b878 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v24.10.0' (#32) from renovate/update-docker.iolibrarynode into master 2025-10-09 16:19:16 +00:00
CSRBot b5368314d6 chore(deps): update docker.io/library/node docker tag to v24.10.0 2025-10-09 16:18:25 +00:00
volker.raschek 60643bdaf4 fix(renovate): group docker.io/volkerraschek/helm 2025-09-30 17:40:04 +02:00
volker.raschek e3880f5f00 fix(renovate): group node packages 2025-09-30 17:31:36 +02:00
CSRBot a20f370eaf Merge pull request 'chore(deps): update dependency volker.raschek/reposilite-charts to v0.3.0' (#31) from renovate/volker.raschek-reposilite-charts-0.x into master 2025-09-29 22:15:27 +00:00
CSRBot d6de6ce37a chore(deps): update dependency volker.raschek/reposilite-charts to v0.3.0 2025-09-29 22:14:24 +00:00
28 changed files with 1299 additions and 686 deletions
+3 -4
View File
@@ -15,15 +15,14 @@ on:
jobs:
generate-parameters:
container:
image: docker.io/library/node:24.9.0-alpine
runs-on:
- ubuntu-latest
image: docker.io/library/node:26.3.0-alpine
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git npm
- uses: actions/checkout@v5.0.0
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Generate parameter section in README
run: |
npm install
+16 -21
View File
@@ -12,31 +12,26 @@ on:
jobs:
helm-lint:
container:
image: docker.io/volkerraschek/helm:3.19.0
runs-on:
- ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git npm
- uses: actions/checkout@v5.0.0
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
with:
version: v4.1.4 # renovate: datasource=github-releases depName=helm/helm
- name: Lint helm files
run: |
helm lint --values values.yaml .
helm-unittest:
container:
image: docker.io/volkerraschek/helm:3.19.0
runs-on:
- ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git npm
- uses: actions/checkout@v5.0.0
- name: Unittest
run: |
helm unittest --strict --file 'unittests/**/*.yaml' ./
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
with:
version: v4.1.4 # renovate: datasource=github-releases depName=helm/helm
- env:
HELM_UNITTEST_VERSION: v1.0.0 #renovate: datasource=github-releases depName=helm-unittest/helm-unittest
name: Install helm-unittest
run: helm plugin install --verify=false --version "${HELM_UNITTEST_VERSION}" https://github.com/helm-unittest/helm-unittest
- name: Execute helm unittests
run: helm unittest --strict --file 'unittests/**/*.yaml' .
+6 -8
View File
@@ -15,15 +15,14 @@ on:
jobs:
markdown-link-checker:
container:
image: docker.io/library/node:24.9.0-alpine
runs-on:
- ubuntu-latest
image: docker.io/library/node:26.3.0-alpine
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git npm
- uses: actions/checkout@v5.0.0
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Verify links in markdown files
run: |
npm install
@@ -31,15 +30,14 @@ jobs:
markdown-lint:
container:
image: docker.io/library/node:24.9.0-alpine
runs-on:
- ubuntu-latest
image: docker.io/library/node:26.3.0-alpine
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git
- uses: actions/checkout@v5.0.0
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Lint markdown files
run: |
npm install
+2 -2
View File
@@ -8,7 +8,7 @@ on:
jobs:
publish-chart:
container:
image: docker.io/volkerraschek/helm:3.19.0
image: docker.io/volkerraschek/helm:3.19.2
runs-on: ubuntu-latest
steps:
- name: Install packages via apk
@@ -16,7 +16,7 @@ jobs:
apk update
apk add git npm jq yq
- uses: actions/checkout@v5.0.0
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
+4 -2
View File
@@ -1,6 +1,8 @@
charts
node_modules
target
values[0-9].yml
values[0-9].yaml
!values.yaml
!values.yml
values*.yaml
values*.yml
*.tgz
+8
View File
@@ -0,0 +1,8 @@
{
"yaml.schemas": {
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v1.1.1/schema/helm-testsuite.json": [
"/unittests/**/*.yaml"
]
},
"yaml.schemaStore.enable": true
}
+1 -1
View File
@@ -5,7 +5,7 @@ annotations:
- name: support
url: https://git.cryptic.systems/volker.raschek/reposilite-charts/issues
apiVersion: v2
appVersion: "3.5.26"
appVersion: "3.5.28"
description: |
Lightweight and easy-to-use repository management software
dedicated for the Maven based artifacts in the JVM ecosystem
+7 -33
View File
@@ -1,16 +1,10 @@
# CONTAINER_RUNTIME
CONTAINER_RUNTIME?=$(shell which podman)
# HELM_IMAGE
HELM_IMAGE_REGISTRY_HOST?=docker.io
HELM_IMAGE_REPOSITORY?=volkerraschek/helm
HELM_IMAGE_VERSION?=3.19.0 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm
HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION}
# NODE_IMAGE
NODE_IMAGE_REGISTRY_HOST?=docker.io
NODE_IMAGE_REPOSITORY?=library/node
NODE_IMAGE_VERSION?=24.9.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=docker.io/library/node packageName=library/node
NODE_IMAGE_VERSION?=24.11.1-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=docker.io/library/node packageName=library/node
NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION}
# MISSING DOT
@@ -31,6 +25,12 @@ readme/lint:
readme/parameters:
npm install && npm run readme:parameters
# HELM UNITTESTS
# ==============================================================================
PHONY+=helm/unittest
helm/unittest:
helm unittest --strict --file 'unittests/**/*.yaml' ./
# CONTAINER RUN - README
# ==============================================================================
PHONY+=container-run/readme
@@ -60,32 +60,6 @@ container-run/readme/parameters:
${NODE_IMAGE_FULLY_QUALIFIED} \
npm install && npm run readme:parameters
# CONTAINER RUN - HELM UNITTESTS
# ==============================================================================
PHONY+=container-run/helm-unittests
container-run/helm-unittests:
${CONTAINER_RUNTIME} run \
--env HELM_REPO_PASSWORD=${CHART_SERVER_PASSWORD} \
--env HELM_REPO_USERNAME=${CHART_SERVER_USERNAME} \
--rm \
--volume $(shell pwd):$(shell pwd) \
--workdir $(shell pwd) \
${HELM_IMAGE_FULLY_QUALIFIED} \
unittest --strict --file 'unittests/**/*.yaml' ./
# CONTAINER RUN - HELM UPDATE DEPENDENCIES
# ==============================================================================
PHONY+=container-run/helm-update-dependencies
container-run/helm-update-dependencies:
${CONTAINER_RUNTIME} run \
--env HELM_REPO_PASSWORD=${CHART_SERVER_PASSWORD} \
--env HELM_REPO_USERNAME=${CHART_SERVER_USERNAME} \
--rm \
--volume $(shell pwd):$(shell pwd) \
--workdir $(shell pwd) \
${HELM_IMAGE_FULLY_QUALIFIED} \
dependency update
# CONTAINER RUN - MARKDOWN-LINT
# ==============================================================================
PHONY+=container-run/helm-lint
+212 -19
View File
@@ -37,7 +37,7 @@ version of the chart must be in sync with the `values.yaml`. Newer *minor* versi
versions can break something!
```bash
CHART_VERSION=0.2.0
CHART_VERSION=1.0.0
helm show values volker.raschek/reposilite --version "${CHART_VERSION}" > values.yaml
```
@@ -51,7 +51,7 @@ The helm chart also contains a persistent volume claim definition. It persistent
Use the `--set` argument to persist your data.
```bash
CHART_VERSION=0.2.0
CHART_VERSION=1.0.0
helm install --version "${CHART_VERSION}" reposilite volker.raschek/reposilite \
persistentVolumeClaim.enabled=true
```
@@ -63,8 +63,9 @@ The following examples serve as individual configurations and as inspiration for
#### TLS encryption
The example describe how to deploy Reposilite with TLS encryption. If Reposilite is deployed behind reverse proxy, for
example an ingress nginx controller, please instruct the ingress to establish an TLS encrypted connection to avoid
connection problems.
example an ingress nginx controller or Gateway API, please instruct the reserve proxy to establish an TLS encrypted
connection to avoid connection problems. The documentation describe configuring [ingress NGINX](#ingress-nginx) as well
as [NGINX Gateway Fabric](#gatewayapi-nginx-fabric).
> [!WARNING]
> The secret `reposilite-tls` containing the TLS certificate is already present. The keys `ca.crt`, `tls.key` and
@@ -72,7 +73,7 @@ connection problems.
> error.
```bash
CHART_VERSION=0.2.0
CHART_VERSION=1.0.0
helm install --version "${CHART_VERSION}" reposilite volker.raschek/reposilite \
--set 'deployment.reposilite.env[1].name=REPOSILITE_LOCAL_SSLENABLED' \
--set 'deployment.reposilite.env[1].value="true"' \
@@ -94,27 +95,124 @@ helm install --version "${CHART_VERSION}" reposilite volker.raschek/reposilite \
--set 'service.port=8443'
```
##### Ingress NGINX
The following changes must be applied to enable TLS encryption and authentication on-top between the ingress and backend
service.
> [!IMPORTANT]
> The HTTP Version between the ingress nginx and backend must be set to `1.1`, as well as the TLS protocol must be set
> to `TLSv1.2`. Otherwise can't the nginx establish a TLS connection.
The secret `reposilite/ingress-nginx-controller-tls` contains TLS certificates for the nginx ingress controller. The TLS
certificate must be created manually, for example via [cert-manager](https://cert-manager.io/). It is used by the nginx
for TLS authentication.
```yaml
ingress:
enabled: true
className: "nginx"
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
nginx.ingress.kubernetes.io/proxy-ssl-secret: reposilite/ingress-nginx-controller-tls
nginx.ingress.kubernetes.io/proxy-ssl-protocols: TLSv1.2
nginx.ingress.kubernetes.io/proxy-ssl-name: reposilite
nginx.ingress.kubernetes.io/proxy-ssl-verify: "on"
```
##### GatewayAPI: NGINX Fabric
The following changes must be applied to enable TLS encryption and authentication on-top between the ingress and backend
service.
> [!IMPORTANT]
> The HTTP Version between the ingress nginx and backend must be set to `1.1`, as well as the TLS protocol must be set
> to `TLSv1.2`. Otherwise can't the nginx establish a TLS connection.
The `gatewayAPI.core.backendTLSPolicy.validation.caCertificateRefs` must contains at least one secret containing the
root or intermediate certificate of the issued TLS certificate used by reposilite to be able to validate the TLS certificate.
```yaml
gatewayAPI:
enabled: true
core:
backendTLSPolicy:
enabled: true
validation:
caCertificateRefs:
- group: ""
kind: Secret
name: "reposilite-ca"
hostname: "reposilite"
httpRoute:
hostnames:
- reposilite.example.local
parentRefs:
- name: nginx
kind: Gateway
group: gateway.networking.k8s.io
namespace: my-gateway-namespace
sectionName: reposilite-https
```
The Gateway resource is not part of the helm chart, but for illustrating the configuration example, here a GatewayAPI
resource with configured backend TLS certificate. The TLS certificates `gateway-frontend-tls` and `gateway-backend-tls`
must also be created manually, for example via [cert-manager](https://cert-manager.io/).
```yaml
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: nginx
namespace: my-gateway-namespace
spec:
gatewayClassName: nginx
listeners:
- allowedRoutes:
kinds:
- group: gateway.networking.k8s.io
kind: HTTPRoute
namespaces:
from: All
hostname: reposilite.example.local
name: https
port: 443
protocol: HTTPS
tls:
certificateRefs:
- group: ''
kind: Secret
name: gateway-frontend-tls
namespace: my-gateway-namespace
mode: Terminate
tls:
backend:
clientCertificateRef:
group: ''
kind: Secret
name: gateway-backend-tls
namespace: my-gateway-namespace
```
#### TLS certificate rotation
If Reposilite uses TLS certificates that are mounted as a secret in the container file system like the example
[above](#tls-encryption), Reposlite will not automatically apply them when the TLS certificates are rotated. Such a
[above](#tls-encryption), Reposilite will not automatically apply them when the TLS certificates are rotated. Such a
rotation can be for example triggered, when the [cert-manager](https://cert-manager.io/) issues new TLS certificates
before expiring.
Until Reposilite does not support rotating TLS certificate a workaround can be applied. For example stakater's
[reloader](https://github.com/stakater/Reloader) controller can be used to trigger a rolling update. The following
annotation must be added to instruct the reloader controller to trigger a rolling update, when the mounted configMaps
and secrets have been changed.
annotation must be added to instruct the reloader controller to trigger a rolling update, when the mounted secret has
been changed.
```yaml
deployment:
annotations:
reloader.stakater.com/auto: "true"
```
Instead of triggering a rolling update for configMap and secret resources, this action can also be defined for
individual items. For example, when the secret named `reposilite-tls` is mounted and the reloader controller should only
listen for changes of this secret:
> [!IMPORTANT]
> The Helm chart already adds annotations to trigger a rolling release. Helm describes this approach under
> [Automatically Roll Deployments](https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments).
> For this reason, **only external** configMaps or secrets need to be monitored by reloader.
```yaml
deployment:
@@ -122,6 +220,20 @@ deployment:
secret.reloader.stakater.com/reload: "reposilite-tls"
```
If the application is rolled out using ArgoCD, a rolling update from stakater's
[reloader](https://github.com/stakater/Reloader) can lead to a drift. ArgoCD will attempt to restore the original state
with a rolling update. To avoid this, instead of a rolling update triggered by the reloader, a restart of the pod can be
initiated. Further information are available in the official
[README](https://github.com/stakater/Reloader?tab=readme-ov-file#4-%EF%B8%8F-workload-specific-rollout-strategy) of
stakater's reloader.
```diff
deployment:
annotations:
+ reloader.stakater.com/rollout-strategy: "restart"
secret.reloader.stakater.com/reload: "reposilite-tls"
```
#### Network policies
Network policies can only take effect, when the used CNI plugin support network policies. The chart supports no custom
@@ -163,12 +275,20 @@ networkPolicies:
ingress:
- from:
# Ingress NGINX
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: ingress-nginx
podSelector:
matchLabels:
app.kubernetes.io/name: ingress-nginx
# NGINX GatewayAPI Fabric
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: gateway-nginx
podSelector:
matchLabels:
app.kubernetes.io/name: gateway-nginx
ports:
- port: http
protocol: TCP
@@ -187,13 +307,62 @@ be set the credentials manually.
The following example enable Prometheus metrics with custom basic auth credentials:
```bash
CHART_VERSION=0.2.0
CHART_VERSION=1.0.0
helm install --version "${CHART_VERSION}" reposilite volker.raschek/reposilite \
--set 'prometheus.metrics.enabled=true' \
--set 'prometheus.metrics.basicAuthUsername=my-username' \
--set 'prometheus.metrics.basicAuthUsername=my-password'
```
## ArgoCD
### Example Application
An application resource for the Helm chart is defined below. It serves as an example for your own deployment.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
destination:
server: https://kubernetes.default.svc
namespace: reposilite
ignoreDifferences:
- group: apps
kind: Deployment
jqPathExpressions:
# When HPA is enabled, ensure that a modification of the replicas does not lead to a
# drift.
- '.spec.replicas'
# Ensure that changes of the annotations or environment variables added or modified by
# stakater's reloader does not lead to a drift.
- '.spec.template.metadata.annotations | with_entries(select(.key | startswith("reloader")))'
- '.spec.template.spec.containers[].env[] | select(.name | startswith("STAKATER_"))'
sources:
- repoURL: https://charts.cryptic.systems/volker.raschek
chart: reposilite
targetRevision: '0.*'
helm:
valueFiles:
- $values/values.yaml
releaseName: reposilite
syncPolicy:
automated:
prune: true
selfHeal: true
managedNamespaceMetadata:
annotations: {}
labels: {}
syncOptions:
- ApplyOutOfSyncOnly=true
- CreateNamespace=true
- FailOnSharedResource=false
- Replace=false
- RespectIgnoreDifferences=false
- ServerSideApply=true
- Validate=true
```
## Parameters
### Global
@@ -240,7 +409,7 @@ helm install --version "${CHART_VERSION}" reposilite volker.raschek/reposilite \
| `deployment.pluginContainer.args` | Arguments passed to the plugin container. | `["--location","--fail","--max-time","60"]` |
| `deployment.pluginContainer.image.registry` | Image registry, eg. `docker.io`. | `docker.io` |
| `deployment.pluginContainer.image.repository` | Image repository, eg. `curlimages/curl`. | `curlimages/curl` |
| `deployment.pluginContainer.image.tag` | Custom image tag, eg. `0.1.0`. | `8.16.0` |
| `deployment.pluginContainer.image.tag` | Custom image tag, eg. `0.1.0`. | `8.20.0` |
| `deployment.pluginContainer.image.pullPolicy` | Image pull policy. | `IfNotPresent` |
| `deployment.priorityClassName` | PriorityClassName of the Reposilite deployment. | `""` |
| `deployment.replicas` | Number of replicas for the Reposilite deployment. | `1` |
@@ -254,6 +423,30 @@ helm install --version "${CHART_VERSION}" reposilite volker.raschek/reposilite \
| `deployment.topologySpreadConstraints` | TopologySpreadConstraints of the Reposilite deployment. | `[]` |
| `deployment.volumes` | Additional volumes to mount into the pods of the reposilite deployment. | `[]` |
### GatewayAPI
| Name | Description | Value |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `gatewayAPI.enabled` | Enable the Gateway API resources. Requires Kubernetes v1.19 or higher, the CRD's and a compatible gateway controller. | `false` |
| `gatewayAPI.core.backendTLSPolicy.enabled` | Enable the BackendTLSPolicy resource. Requires also `gatewayAPI.enabled` to be `true`. | `false` |
| `gatewayAPI.core.backendTLSPolicy.annotations` | Additional annotations for the BackendTLSPolicy. | `{}` |
| `gatewayAPI.core.backendTLSPolicy.labels` | Additional labels for the BackendTLSPolicy. | `{}` |
| `gatewayAPI.core.backendTLSPolicy.validation` | Validation configuration for the BackendTLSPolicy. For example, you can specify a trusted CA certificate to validate the TLS connection between the gateway and the Reposilite pod. | `{}` |
| `gatewayAPI.core.httpRoute.enabled` | Enable the HTTPRoute resource. Requires also `gatewayAPI.enabled` and `service.enabled` to be `true`. | `false` |
| `gatewayAPI.core.httpRoute.annotations` | Additional annotations for the HTTPRoute. | `{}` |
| `gatewayAPI.core.httpRoute.labels` | Additional labels for the HTTPRoute. | `{}` |
| `gatewayAPI.core.httpRoute.hostnames` | Hostnames for the HTTPRoute. | `[]` |
| `gatewayAPI.core.httpRoute.parentRefs` | ParentRefs for the HTTPRoute. You can specify parentRefs to bind the HTTPRoute to specific Gateway resources. | `[]` |
| `gatewayAPI.nginx.clientSettingsPolicy.enabled` | Enable the ClientSettingsPolicy resource. Requires also `gatewayAPI.enabled` to be `true`. | `false` |
| `gatewayAPI.nginx.clientSettingsPolicy.annotations` | Additional annotations for the ClientSettingsPolicy. | `{}` |
| `gatewayAPI.nginx.clientSettingsPolicy.labels` | Additional labels for the ClientSettingsPolicy. | `{}` |
| `gatewayAPI.nginx.clientSettingsPolicy.clientMaxBodySize` | ClientMaxBodySize sets the maximum allowed size of the client request body. If not specified, the default of the nginx gateway controller is used. | `""` |
| `gatewayAPI.nginx.clientSettingsPolicy.clientBodyTimeout` | ClientBodyTimeout sets the timeout for reading the client request body. If not specified, the default of the nginx gateway controller is used. | `""` |
| `gatewayAPI.nginx.clientSettingsPolicy.keepaliveRequests` | KeepaliveRequests sets the maximum number of requests that can be served through one keepalive connection. If not specified, the default of the nginx gateway controller is used. | `nil` |
| `gatewayAPI.nginx.clientSettingsPolicy.keepaliveTime` | KeepaliveTime sets the time a keepalive connection is kept open. If not specified, the default of the nginx gateway controller is used. | `""` |
| `gatewayAPI.nginx.clientSettingsPolicy.keepaliveTimeout` | KeepaliveTimeout sets the time a client has to wait for the response of a request until the connection is closed. If not specified, the default of the nginx gateway controller is used. | `""` |
| `gatewayAPI.nginx.clientSettingsPolicy.keepaliveMinTimeout` | KeepaliveMinTimeout sets the minimum time a client has to wait for the response of a request until the connection is closed. If not specified, the default of the nginx gateway controller is used. | `""` |
### Horizontal Pod Autoscaler (HPA)
| Name | Description | Value |
+199 -576
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -16,6 +16,6 @@
"devDependencies": {
"@bitnami/readme-generator-for-helm": "^2.5.0",
"markdown-link-check": "^3.13.6",
"markdownlint-cli": "^0.45.0"
"markdownlint-cli": "^0.48.0"
}
}
+14 -2
View File
@@ -4,16 +4,18 @@
"local>volker.raschek/renovate-config:default#master",
"local>volker.raschek/renovate-config:container#master",
"local>volker.raschek/renovate-config:actions#master",
"local>volker.raschek/renovate-config:helm#master",
"local>volker.raschek/renovate-config:npm#master",
"local>volker.raschek/renovate-config:regexp#master"
],
"customManagers": [
{
"customType": "regex",
"fileMatch": [
"^Chart\\.yaml$"
],
"matchStrings": [
"appVersion: \"(?<currentValue>.*?)\"\\s+"
"^appVersion: \"?(?<currentValue>.*)\"?"
],
"datasourceTemplate": "docker",
"depNameTemplate": "dzikoysk/reposilite",
@@ -21,7 +23,10 @@
"versioningTemplate": "semver"
},
{
"fileMatch": ["^README\\.md$"],
"customType": "regex",
"fileMatch": [
"^README\\.md$"
],
"matchStrings": [
"CHART_VERSION=(?<currentValue>.*)"
],
@@ -32,6 +37,13 @@
}
],
"packageRules": [
{
"groupName": "Update docker.io/library/node",
"matchDepNames": [
"docker.io/library/node",
"library/node"
]
},
{
"addLabels": [
"renovate/automerge",
+32
View File
@@ -0,0 +1,32 @@
{{/* vim: set filetype=mustache: */}}
{{/* annotations */}}
{{- define "reposilite.backendTLSPolicy.annotations" -}}
{{ include "reposilite.annotations" . }}
{{- if .Values.gatewayAPI.core.backendTLSPolicy.annotations }}
{{ toYaml .Values.gatewayAPI.core.backendTLSPolicy.annotations }}
{{- end }}
{{- end }}
{{/* enabled */}}
{{- define "reposilite.backendTLSPolicy.enabled" -}}
{{- if and .Values.gatewayAPI.enabled
.Values.gatewayAPI.core.backendTLSPolicy.enabled
.Values.service.enabled
-}}
true
{{- else -}}
false
{{- end -}}
{{- end }}
{{/* labels */}}
{{- define "reposilite.backendTLSPolicy.labels" -}}
{{ include "reposilite.labels" . }}
{{- if .Values.gatewayAPI.core.backendTLSPolicy.labels }}
{{ toYaml .Values.gatewayAPI.core.backendTLSPolicy.labels }}
{{- end }}
{{- end }}
+31
View File
@@ -0,0 +1,31 @@
{{/* vim: set filetype=mustache: */}}
{{/* annotations */}}
{{- define "reposilite.clientSettingsPolicy.annotations" -}}
{{ include "reposilite.annotations" . }}
{{- if .Values.gatewayAPI.nginx.clientSettingsPolicy.annotations }}
{{ toYaml .Values.gatewayAPI.nginx.clientSettingsPolicy.annotations }}
{{- end }}
{{- end }}
{{/* enabled */}}
{{- define "reposilite.clientSettingsPolicy.enabled" -}}
{{- if and (eq (include "reposilite.httpRoute.enabled" $) "true")
.Values.gatewayAPI.nginx.clientSettingsPolicy.enabled
-}}
true
{{- else -}}
false
{{- end -}}
{{- end }}
{{/* labels */}}
{{- define "reposilite.clientSettingsPolicy.labels" -}}
{{ include "reposilite.labels" . }}
{{- if .Values.gatewayAPI.nginx.clientSettingsPolicy.labels }}
{{ toYaml .Values.gatewayAPI.nginx.clientSettingsPolicy.labels }}
{{- end }}
{{- end }}
+32
View File
@@ -0,0 +1,32 @@
{{/* vim: set filetype=mustache: */}}
{{/* annotations */}}
{{- define "reposilite.httpRoute.annotations" -}}
{{ include "reposilite.annotations" . }}
{{- if .Values.gatewayAPI.core.httpRoute.annotations }}
{{ toYaml .Values.gatewayAPI.core.httpRoute.annotations }}
{{- end }}
{{- end }}
{{/* enabled */}}
{{- define "reposilite.httpRoute.enabled" -}}
{{- if and .Values.gatewayAPI.enabled
.Values.gatewayAPI.core.httpRoute.enabled
.Values.service.enabled
-}}
true
{{- else -}}
false
{{- end -}}
{{- end }}
{{/* labels */}}
{{- define "reposilite.httpRoute.labels" -}}
{{ include "reposilite.labels" . }}
{{- if .Values.gatewayAPI.core.httpRoute.labels }}
{{ toYaml .Values.gatewayAPI.core.httpRoute.labels }}
{{- end }}
{{- end }}
+25
View File
@@ -0,0 +1,25 @@
{{- if eq (include "reposilite.backendTLSPolicy.enabled" $) "true" }}
---
apiVersion: gateway.networking.k8s.io/v1
kind: BackendTLSPolicy
metadata:
{{- with (include "reposilite.backendTLSPolicy.annotations" . | fromYaml) }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with (include "reposilite.backendTLSPolicy.labels" . | fromYaml) }}
labels:
{{- toYaml . | nindent 4 }}
{{- end }}
name: {{ include "reposilite.fullname" . }}
namespace: {{ .Release.Namespace }}
spec:
targetRefs:
- group: ""
kind: Service
name: {{ include "reposilite.service.name" . }}
{{- with .Values.gatewayAPI.core.backendTLSPolicy.validation }}
validation:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end -}}
+50
View File
@@ -0,0 +1,50 @@
{{- if eq (include "reposilite.clientSettingsPolicy.enabled" $) "true" }}
apiVersion: gateway.nginx.org/v1alpha1
kind: ClientSettingsPolicy
metadata:
{{- with (include "reposilite.clientSettingsPolicy.annotations" . | fromYaml) }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with (include "reposilite.clientSettingsPolicy.labels" . | fromYaml) }}
labels:
{{- toYaml . | nindent 4 }}
{{- end }}
name: {{ include "reposilite.fullname" . }}
namespace: {{ .Release.Namespace }}
spec:
targetRef:
group: gateway.networking.k8s.io
kind: HTTPRoute
name: {{ include "reposilite.fullname" . }}
{{- if or .Values.gatewayAPI.nginx.clientSettingsPolicy.clientMaxBodySize
.Values.gatewayAPI.nginx.clientSettingsPolicy.clientBodyTimeout
}}
body:
{{- with .Values.gatewayAPI.nginx.clientSettingsPolicy.clientMaxBodySize }}
maxSize: {{ . }}
{{- end }}
{{- with .Values.gatewayAPI.nginx.clientSettingsPolicy.clientBodyTimeout }}
timeout: {{ . }}
{{- end }}
{{- end }}
{{- if or .Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveRequests
.Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveTime
.Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveTimeout
.Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveMinTimeout
}}
keepAlive:
{{- with .Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveRequests }}
requests: {{ . }}
{{- end }}
{{- with .Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveTime }}
time: {{ . }}
{{- end }}
{{- with .Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveTimeout }}
timeout: {{ . }}
{{- end }}
{{- with .Values.gatewayAPI.nginx.clientSettingsPolicy.keepaliveMinTimeout }}
minTimeout: {{ . }}
{{- end }}
{{- end }}
{{- end -}}
+36
View File
@@ -0,0 +1,36 @@
{{- if eq (include "reposilite.httpRoute.enabled" $) "true" }}
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
{{- with (include "reposilite.httpRoute.annotations" . | fromYaml) }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with (include "reposilite.httpRoute.labels" . | fromYaml) }}
labels:
{{- toYaml . | nindent 4 }}
{{- end }}
name: {{ include "reposilite.fullname" . }}
namespace: {{ .Release.Namespace }}
spec:
{{- with .Values.gatewayAPI.core.httpRoute.hostnames }}
hostnames:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.gatewayAPI.core.httpRoute.parentRefs }}
parentRefs:
{{- toYaml . | nindent 4 }}
{{- end }}
rules:
- backendRefs:
- kind: Service
name: {{ include "reposilite.service.name" . }}
namespace: {{ .Release.Namespace }}
port: {{ .Values.service.port }}
weight: 1
{{- with .Values.gatewayAPI.core.httpRoute.matches }}
matches:
{{- toYaml . | nindent 6 }}
{{- end }}
{{- end }}
+2 -2
View File
@@ -14,6 +14,6 @@ metadata:
name: {{ include "reposilite.secrets.prometheusBasicAuth.name" . }}
namespace: {{ .Release.Namespace }}
stringData:
password: {{ default (randAlphaNum 16) .Values.prometheus.metrics.secret.new.basicAuthPassword }}
username: {{ default (randAlphaNum 16) .Values.prometheus.metrics.secret.new.basicAuthUsername }}
password: {{ required "Password for basic auth is required!" .Values.prometheus.metrics.secret.new.basicAuthPassword }}
username: {{ required "Username for basic auth is required!" .Values.prometheus.metrics.secret.new.basicAuthUsername }}
{{- end }}
@@ -0,0 +1,130 @@
chart:
appVersion: 0.1.0
version: 0.1.0
suite: backendTLSPolicy template
release:
name: reposilite-unittest
namespace: testing
templates:
- templates/backendTLSPolicy.yaml
tests:
- it: Skip rendering when disabled 1/6
set:
gatewayAPI.enabled: false
gatewayAPI.core.backendTLSPolicy.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 2/6
set:
gatewayAPI.enabled: true
gatewayAPI.core.backendTLSPolicy.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 3/6
set:
gatewayAPI.enabled: false
gatewayAPI.core.backendTLSPolicy.enabled: true
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 4/6
set:
gatewayAPI.enabled: false
gatewayAPI.core.backendTLSPolicy.enabled: false
service.enabled: true
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 5/6
set:
gatewayAPI.enabled: true
gatewayAPI.core.backendTLSPolicy.enabled: false
service.enabled: true
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 6/6
set:
gatewayAPI.enabled: true
gatewayAPI.core.backendTLSPolicy.enabled: true
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Render default values
set:
gatewayAPI.enabled: true
gatewayAPI.core.backendTLSPolicy.enabled: true
service.enabled: true
asserts:
- hasDocuments:
count: 1
- containsDocument:
apiVersion: gateway.networking.k8s.io/v1
kind: BackendTLSPolicy
name: reposilite-unittest
namespace: testing
- contains:
path: spec.targetRefs
content:
group: ""
kind: Service
name: reposilite-unittest
- notExists:
path: spec.validation.caCertificateRefs
- it: Render with custom annotations and labels
set:
gatewayAPI.enabled: true
gatewayAPI.core.backendTLSPolicy:
enabled: true
annotations:
foo: bar
labels:
bar: foo
service.enabled: true
asserts:
- equal:
path: metadata.annotations
value:
foo: bar
- equal:
path: metadata.labels
value:
app.kubernetes.io/instance: reposilite-unittest
app.kubernetes.io/name: reposilite
app.kubernetes.io/version: 0.1.0
app.kubernetes.io/managed-by: Helm
helm.sh/chart: reposilite-0.1.0
bar: foo
- it: Render with custom validation
set:
gatewayAPI.enabled: true
gatewayAPI.core.backendTLSPolicy.enabled: true
gatewayAPI.core.backendTLSPolicy.validation:
caCertificateRefs:
- group: ""
kind: Secret
name: reposilite-ca
hostname: reposilite.svc.cluster.local
service.enabled: true
asserts:
- isSubset:
path: spec.validation
content:
caCertificateRefs:
- group: ""
kind: Secret
name: reposilite-ca
@@ -0,0 +1,190 @@
chart:
appVersion: 0.1.0
version: 0.1.0
suite: ClientSettingsPolicy template
release:
name: reposilite-unittest
namespace: testing
templates:
- templates/clientSettingsPolicy.yaml
tests:
- it: Skip rendering when disabled 1/8
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: false
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 2/8
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: false
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 3/8
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: true
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 4/8
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: false
gatewayAPI.nginx.clientSettingsPolicy.enabled: true
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 5/8
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: false
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
service.enabled: true
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 6/8
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 7/8
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: false
gatewayAPI.nginx.clientSettingsPolicy.enabled: true
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 8/8
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: false
gatewayAPI.nginx.clientSettingsPolicy.enabled: false
service.enabled: true
asserts:
- hasDocuments:
count: 0
- it: Render default values
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
gatewayAPI.nginx.clientSettingsPolicy.enabled: true
service.enabled: true
asserts:
- hasDocuments:
count: 1
- containsDocument:
apiVersion: gateway.nginx.org/v1alpha1
kind: ClientSettingsPolicy
name: reposilite-unittest
namespace: testing
- notExists:
path: metadata.annotations
- equal:
path: metadata.labels
value:
app.kubernetes.io/instance: reposilite-unittest
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: reposilite
app.kubernetes.io/version: 0.1.0
helm.sh/chart: reposilite-0.1.0
- isSubset:
path: spec.targetRef
content:
group: gateway.networking.k8s.io
kind: HTTPRoute
name: reposilite-unittest
- notExists:
path: spec.body
- notExists:
path: spec.keepAlive
- it: Render custom annotations and labels
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
gatewayAPI.nginx.clientSettingsPolicy:
enabled: true
annotations:
foo: "bar"
labels:
bar: "foo"
service.enabled: true
asserts:
- equal:
path: metadata.annotations
value:
foo: "bar"
- equal:
path: metadata.labels
value:
app.kubernetes.io/instance: reposilite-unittest
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: reposilite
app.kubernetes.io/version: 0.1.0
helm.sh/chart: reposilite-0.1.0
bar: "foo"
- it: Render with custom body settings
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
gatewayAPI.nginx.clientSettingsPolicy:
enabled: true
clientMaxBodySize: 10m
clientBodyTimeout: 30s
service.enabled: true
asserts:
- isSubset:
path: spec.body
content:
maxSize: 10m
timeout: 30s
- notExists:
path: spec.keepAlive
- it: Render with custom keepAlive settings
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
gatewayAPI.nginx.clientSettingsPolicy:
enabled: true
keepaliveRequests: 100
keepaliveTime: 60s
keepaliveTimeout: 60s
keepaliveMinTimeout: 10s
service.enabled: true
asserts:
- notExists:
path: spec.body
- isSubset:
path: spec.keepAlive
content:
requests: 100
time: 60s
timeout: 60s
minTimeout: 10s
@@ -13,6 +13,8 @@ tests:
set:
prometheus.metrics.enabled: true
prometheus.metrics.podMonitor.enabled: true
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
asserts:
- exists:
path: spec.template.metadata.annotations.checksum/secret-reposilite-unittest-basic-auth-credentials
@@ -13,6 +13,8 @@ tests:
set:
prometheus.metrics.enabled: true
prometheus.metrics.serviceMonitor.enabled: true
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
asserts:
- exists:
path: spec.template.metadata.annotations.checksum/secret-reposilite-unittest-basic-auth-credentials
+194
View File
@@ -0,0 +1,194 @@
chart:
appVersion: 0.1.0
version: 0.1.0
suite: HTTPRoute template
release:
name: reposilite-unittest
namespace: testing
templates:
- templates/httpRoute.yaml
tests:
- it: Skip rendering when disabled 1/6
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 2/6
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: false
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 3/6
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: true
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 4/6
set:
gatewayAPI.enabled: false
gatewayAPI.core.httpRoute.enabled: false
service.enabled: true
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 5/6
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: false
service.enabled: true
asserts:
- hasDocuments:
count: 0
- it: Skip rendering when disabled 6/6
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
service.enabled: false
asserts:
- hasDocuments:
count: 0
- it: Rendering default values
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
service.enabled: true
asserts:
- hasDocuments:
count: 1
- containsDocument:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
name: reposilite-unittest
namespace: testing
- notExists:
path: metadata.annotations
- equal:
path: metadata.labels
value:
app.kubernetes.io/instance: reposilite-unittest
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: reposilite
app.kubernetes.io/version: 0.1.0
helm.sh/chart: reposilite-0.1.0
- notExists:
path: spec.hostnames
- notExists:
path: spec.parentRefs
- contains:
path: spec.rules[0].backendRefs
content:
kind: Service
name: reposilite-unittest
namespace: testing
port: 8080
weight: 1
- contains:
path: spec.rules[0].matches
content:
path:
type: PathPrefix
value: /
- it: Rendering custom annotations and labels
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute:
enabled: true
annotations:
foo: bar
labels:
bar: foo
service.enabled: true
asserts:
- hasDocuments:
count: 1
- equal:
path: metadata.annotations
value:
foo: bar
- equal:
path: metadata.labels
value:
app.kubernetes.io/instance: reposilite-unittest
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: reposilite
app.kubernetes.io/version: 0.1.0
bar: foo
helm.sh/chart: reposilite-0.1.0
- it: Rendering custom service port
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute.enabled: true
service:
enabled: true
port: 9090
asserts:
- equal:
path: spec.rules[0].backendRefs[0].port
value: 9090
- it: Rendering custom matches
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute:
enabled: true
matches:
- path:
type: PathPrefix
value: /foo
service.enabled: true
asserts:
- contains:
path: spec.rules[0].matches
content:
path:
type: PathPrefix
value: /foo
- it: Rendering custom hostnames and parentRefs
set:
gatewayAPI.enabled: true
gatewayAPI.core.httpRoute:
enabled: true
hostnames:
- reposilite.example.local
parentRefs:
- name: gateway
namespace: testing
kind: Gateway
sectionName: reposilite-debug-gateway
service.enabled: true
asserts:
- lengthEqual:
path: spec.hostnames
count: 1
- contains:
path: spec.hostnames
content:
reposilite.example.local
- lengthEqual:
path: spec.parentRefs
count: 1
- contains:
path: spec.parentRefs
content:
name: gateway
namespace: testing
kind: Gateway
sectionName: reposilite-debug-gateway
+24 -4
View File
@@ -13,9 +13,29 @@ tests:
- hasDocuments:
count: 0
- it: Throw error for missing basic auth password
set:
prometheus.metrics.enabled: true
# prometheus.metrics.secret.new.basicAuthPassword: "my-password"
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
asserts:
- failedTemplate:
errorMessage: "Password for basic auth is required!"
- it: Throw error for missing basic auth username
set:
prometheus.metrics.enabled: true
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
# prometheus.metrics.secret.new.basicAuthUsername: "my-username"
asserts:
- failedTemplate:
errorMessage: "Username for basic auth is required!"
- it: Rendering secret with default values.
set:
prometheus.metrics.enabled: true
prometheus.metrics.secret.new.basicAuthPassword: "my-password"
prometheus.metrics.secret.new.basicAuthUsername: "my-username"
asserts:
- hasDocuments:
count: 1
@@ -51,13 +71,13 @@ tests:
asserts:
- hasDocuments:
count: 1
- exists:
- isSubset:
path: metadata.annotations
value:
content:
foo: bar
- exists:
- isSubset:
path: metadata.labels
value:
content:
bar: foo
- equal:
path: metadata.name
+4 -4
View File
@@ -53,13 +53,13 @@ tests:
asserts:
- hasDocuments:
count: 1
- exists:
- isSubset:
path: metadata.annotations
value:
content:
foo: bar
- exists:
- isSubset:
path: metadata.labels
value:
content:
bar: foo
- equal:
path: metadata.name
+5 -5
View File
@@ -78,35 +78,35 @@ tests:
service.internalTrafficPolicy: ""
asserts:
- failedTemplate:
errorMessage: No internal traffic policy defined!
errorMessage: No internal traffic policy defined!
- it: Require port.
set:
service.port: ""
asserts:
- failedTemplate:
errorMessage: No service port defined!
errorMessage: No service port defined!
- it: Require scheme.
set:
service.scheme: ""
asserts:
- failedTemplate:
errorMessage: No service scheme defined!
errorMessage: The scheme of the serviceMonitor is not defined!
- it: Require sessionAffinity.
set:
service.sessionAffinity: ""
asserts:
- failedTemplate:
errorMessage: No session affinity defined!
errorMessage: No session affinity defined!
- it: Require service type.
set:
service.type: ""
asserts:
- failedTemplate:
errorMessage: No service type defined!
errorMessage: No service type defined!
- it: Render service with custom annotations and labels.
set:
+66 -1
View File
@@ -175,7 +175,7 @@ deployment:
image:
registry: docker.io
repository: curlimages/curl
tag: "8.16.0"
tag: "8.20.0"
pullPolicy: IfNotPresent
## @param deployment.priorityClassName PriorityClassName of the Reposilite deployment.
@@ -229,6 +229,71 @@ deployment:
# secretName: my-secret
## @section GatewayAPI
gatewayAPI:
## @param gatewayAPI.enabled Enable the Gateway API resources. Requires Kubernetes v1.19 or higher, the CRD's and a compatible gateway controller.
enabled: false
core:
## @param gatewayAPI.core.backendTLSPolicy.enabled Enable the BackendTLSPolicy resource. Requires also `gatewayAPI.enabled` to be `true`.
## @param gatewayAPI.core.backendTLSPolicy.annotations Additional annotations for the BackendTLSPolicy.
## @param gatewayAPI.core.backendTLSPolicy.labels Additional labels for the BackendTLSPolicy.
## @param gatewayAPI.core.backendTLSPolicy.validation Validation configuration for the BackendTLSPolicy. For example, you can specify a trusted CA certificate to validate the TLS connection between the gateway and the Reposilite pod.
backendTLSPolicy:
enabled: false
annotations: {}
labels: {}
validation: {}
# caCertificateRefs:
# - group: ""
# kind: Secret
# name: "reposilite-ca"
# hostname: "reposilite"
## @param gatewayAPI.core.httpRoute.enabled Enable the HTTPRoute resource. Requires also `gatewayAPI.enabled` and `service.enabled` to be `true`.
## @param gatewayAPI.core.httpRoute.annotations Additional annotations for the HTTPRoute.
## @param gatewayAPI.core.httpRoute.labels Additional labels for the HTTPRoute.
## @param gatewayAPI.core.httpRoute.hostnames Hostnames for the HTTPRoute.
## @skip gatewayAPI.core.httpRoute.matches Match conditions for the HTTPRoute. You can specify path based match conditions to route traffic to the Reposilite service.
## @param gatewayAPI.core.httpRoute.parentRefs ParentRefs for the HTTPRoute. You can specify parentRefs to bind the HTTPRoute to specific Gateway resources.
httpRoute:
enabled: false
annotations: {}
labels: {}
hostnames: []
matches:
- path:
type: PathPrefix
value: /
parentRefs: []
# - name: gateway
# kind: Gateway
# group: gateway.networking.k8s.io
# namespace: default
# sectionName: reposilite-http
nginx:
## @param gatewayAPI.nginx.clientSettingsPolicy.enabled Enable the ClientSettingsPolicy resource. Requires also `gatewayAPI.enabled` to be `true`.
## @param gatewayAPI.nginx.clientSettingsPolicy.annotations Additional annotations for the ClientSettingsPolicy.
## @param gatewayAPI.nginx.clientSettingsPolicy.labels Additional labels for the ClientSettingsPolicy.
## @param gatewayAPI.nginx.clientSettingsPolicy.clientMaxBodySize ClientMaxBodySize sets the maximum allowed size of the client request body. If not specified, the default of the nginx gateway controller is used.
## @param gatewayAPI.nginx.clientSettingsPolicy.clientBodyTimeout ClientBodyTimeout sets the timeout for reading the client request body. If not specified, the default of the nginx gateway controller is used.
## @param gatewayAPI.nginx.clientSettingsPolicy.keepaliveRequests KeepaliveRequests sets the maximum number of requests that can be served through one keepalive connection. If not specified, the default of the nginx gateway controller is used.
## @param gatewayAPI.nginx.clientSettingsPolicy.keepaliveTime KeepaliveTime sets the time a keepalive connection is kept open. If not specified, the default of the nginx gateway controller is used.
## @param gatewayAPI.nginx.clientSettingsPolicy.keepaliveTimeout KeepaliveTimeout sets the time a client has to wait for the response of a request until the connection is closed. If not specified, the default of the nginx gateway controller is used.
## @param gatewayAPI.nginx.clientSettingsPolicy.keepaliveMinTimeout KeepaliveMinTimeout sets the minimum time a client has to wait for the response of a request until the connection is closed. If not specified, the default of the nginx gateway controller is used.
clientSettingsPolicy:
enabled: false
annotations: {}
labels: {}
clientMaxBodySize: ""
clientBodyTimeout: ""
keepaliveRequests:
keepaliveTime: ""
keepaliveTimeout: ""
keepaliveMinTimeout: ""
## @section Horizontal Pod Autoscaler (HPA)
# In order for the HPA to function successfully, a metric server is required, especially for resource consumption. The
# metric server enables the CPU and memory utilisation to be recorded. If such a metric server is not available, the HPA