68 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
22 changed files with 1172 additions and 706 deletions
+3 -4
View File
@@ -15,15 +15,14 @@ on:
jobs:
generate-parameters:
container:
image: docker.io/library/node:24.10.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.10.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.10.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
+1 -1
View File
@@ -1,6 +1,6 @@
{
"yaml.schemas": {
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v1.0.2/schema/helm-testsuite.json": [
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v1.1.1/schema/helm-testsuite.json": [
"/unittests/**/*.yaml"
]
},
+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=docker.io/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.10.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
+150 -20
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.3.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.3.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.3.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:
@@ -132,8 +230,8 @@ stakater's reloader.
```diff
deployment:
annotations:
reloader.stakater.com/auto: "true"
+ reloader.stakater.com/rollout-strategy: "restart"
secret.reloader.stakater.com/reload: "reposilite-tls"
```
#### Network policies
@@ -177,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
@@ -201,7 +307,7 @@ be set the credentials manually.
The following example enable Prometheus metrics with custom basic auth credentials:
```bash
CHART_VERSION=0.3.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' \
@@ -303,7 +409,7 @@ spec:
| `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` |
@@ -317,6 +423,30 @@ spec:
| `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 |
+192 -579
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"
}
}
+2 -32
View File
@@ -4,6 +4,7 @@
"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"
],
@@ -14,7 +15,7 @@
"^Chart\\.yaml$"
],
"matchStrings": [
"appVersion: \"(?<currentValue>.*?)\"\\s+"
"^appVersion: \"?(?<currentValue>.*)\"?"
],
"datasourceTemplate": "docker",
"depNameTemplate": "dzikoysk/reposilite",
@@ -33,40 +34,9 @@
"packageNameTemplate": "https://git.cryptic.systems/volker.raschek/reposilite-charts",
"datasourceTemplate": "git-tags",
"versioningTemplate": "semver"
},
{
"customType": "regex",
"datasourceTemplate": "github-releases",
"fileMatch": [
".vscode/settings\\.json$"
],
"matchStrings": [
"https:\\/\\/raw\\.githubusercontent\\.com\\/(?<depName>[^\\s]+?)\\/(?<currentValue>v[0-9.]+?)\\/schema\\/helm-testsuite\\.json"
]
}
],
"packageRules": [
{
"groupName": "Update docker.io/volkerraschek/helm",
"matchDepNames": [
"docker.io/volkerraschek/helm",
"volkerraschek/helm"
]
},
{
"automerge": true,
"groupName": "Update helm plugin 'unittest'",
"matchDepNames": [
"helm-unittest/helm-unittest"
],
"matchDatasources": [
"github-releases"
],
"matchUpdateTypes": [
"minor",
"patch"
]
},
{
"groupName": "Update docker.io/library/node",
"matchDepNames": [
+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 }}
@@ -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
+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
+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