Compare commits
264
Commits
0.4.17
..
dcc8c2dce5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcc8c2dce5
|
||
|
|
cd0429aeeb | ||
|
|
b47e53583b
|
||
|
|
a0537bbf9b | ||
|
|
aed638dac1
|
||
|
|
2ae3a7e25a | ||
|
|
e13d699b65
|
||
|
|
68b96507f9 | ||
|
|
45a909fc49
|
||
|
|
8374854e8c | ||
|
|
90353ee526
|
||
|
|
9324612665 | ||
|
|
2db289dee1
|
||
|
|
ef02cffc04
|
||
|
|
58ab814b6f
|
||
|
|
001a9cb3de | ||
|
|
e06636ca15
|
||
|
|
406734f0fe | ||
|
|
77dd7ea327
|
||
|
|
9509d35de1 | ||
|
|
52e0b2f680
|
||
|
|
e0e9e0b698 | ||
|
|
b2b82dc45d
|
||
|
|
14ccb310e4 | ||
|
|
c2d50460e7
|
||
|
|
0a383e6165 | ||
|
|
d021f62e20
|
||
|
|
7b27fbd3b4 | ||
|
|
8c198dceda
|
||
|
|
58cb9e23de | ||
|
|
05acec4bfb
|
||
|
|
8258fb7718 | ||
|
|
d0aa599663 | ||
|
|
6a4739e3b1
|
||
|
|
bd463efd38
|
||
|
|
33ea06e335 | ||
|
|
ebc5d546a9 | ||
|
|
dd02d92a42
|
||
|
|
fe877006af
|
||
|
|
abec20d96a | ||
|
|
0d25bb1f5b
|
||
|
|
258677bb6d | ||
|
|
b05479787c
|
||
|
|
db7f2e5759 | ||
|
|
a256ebe820
|
||
|
|
abb6ae5c0f | ||
|
|
4f0250f170
|
||
|
|
e81c2162ef | ||
|
|
2184467b64
|
||
|
|
96531a544d | ||
|
|
24a414cb71
|
||
|
|
d0eb999ab2 | ||
|
|
6326937d58
|
||
|
|
50e77e20ba
|
||
|
|
3b0e100e01 | ||
|
|
6fefb4eea2
|
||
|
|
7ac8a96284 | ||
|
|
7338cdc328
|
||
|
|
9b8f0bf117 | ||
|
|
e61866b679
|
||
|
|
1a171b659e | ||
|
|
2ce390178c
|
||
|
|
bad728d722 | ||
|
|
b5f919e420
|
||
|
|
0aa7b74886 | ||
|
|
2d76bd4b2c
|
||
|
|
6df9951ca2 | ||
|
|
94b629160e
|
||
|
|
3e195faf87 | ||
|
|
a70d5930f7 | ||
|
|
a246c0af75
|
||
|
|
437932f6c7
|
||
|
|
48001e5f3d | ||
|
|
be35f091f7
|
||
|
|
2beff7f124 | ||
|
|
81938fca0d
|
||
|
|
1d0c1b38cf | ||
|
|
c2a0567b96
|
||
|
|
f24c136fb2 | ||
|
|
24d86abf20
|
||
|
|
c2c32a685b | ||
|
|
0772629a28
|
||
|
|
bba154cf22
|
||
|
|
00a78516ca | ||
|
|
ea4528e40f
|
||
|
|
e46017c188 | ||
|
|
717628f999
|
||
|
|
7daeb34d50 | ||
|
|
df29c16367
|
||
|
|
3970d62f2c | ||
|
|
d1bde22a95
|
||
|
|
6bc74308a9 | ||
|
|
a1d4cfe65c
|
||
|
|
336be2ab2c | ||
|
|
dae72eacc8
|
||
|
|
40bf4a73cc | ||
|
|
15c6f84a33
|
||
|
|
1a3a2a7486 | ||
|
|
217a3bc8b4
|
||
|
|
3e9fe1cb32 | ||
|
|
7a87b301d9
|
||
|
|
59b4863ae3 | ||
|
|
f608825d3a
|
||
|
|
79161e89bf | ||
|
|
48c6b9b937
|
||
|
|
c14eb7afed | ||
|
|
094c205fe8
|
||
|
|
44418fe6e0 | ||
|
|
5ba64e89be
|
||
|
|
db3527348d
|
||
|
|
d25f5379d0 | ||
|
|
3375d924df
|
||
|
|
a98cb78c3e | ||
|
|
a4f1074438
|
||
|
|
99b1e396fc
|
||
|
|
6e5acb82b7
|
||
|
|
d9a9b31080
|
||
|
|
c805ac12f0 | ||
|
|
b6bd66f99c | ||
|
|
b7e0176da9
|
||
|
|
efb36ee95d
|
||
|
|
10d446604b | ||
|
|
1c24b239fb
|
||
|
|
31c598a639 | ||
|
|
749c2457aa
|
||
|
|
cc3df4db97 | ||
|
|
b680948cac
|
||
|
|
9fb6785019
|
||
|
|
47b8677fd1 | ||
|
|
ec56c4d9d5 | ||
|
|
21c3355928 | ||
|
|
c7da61bfd8
|
||
|
|
2176067676
|
||
|
|
76f2c66cda
|
||
|
|
6705c5ce1b
|
||
|
|
02e264eac2
|
||
|
|
675376112a | ||
|
|
090e86def8
|
||
|
|
a6d7a55de3
|
||
|
|
4d12fed6cd
|
||
|
|
e084bac346
|
||
|
|
2f8ba9411b | ||
|
|
bc5ac1d3d7
|
||
|
|
f9a97ba2c1 | ||
|
|
5ab960ba4f
|
||
|
|
249b3ecb33 | ||
|
|
c68e93e7ea
|
||
|
|
3820a6fe82 | ||
|
|
a816572389
|
||
|
|
7b5e916b3b | ||
|
|
b178fa55c2
|
||
|
|
afa2ba1437 | ||
|
|
27a6f0eea4
|
||
|
|
c48d4775b8 | ||
|
|
3526f84a3a
|
||
|
|
b5001ed3f5 | ||
|
|
51f031dcad
|
||
|
|
53159abdb2 | ||
|
|
318f2b0e4c
|
||
|
|
07b8ecf055 | ||
|
|
1c491c77e6
|
||
|
|
37391cdb5e | ||
|
|
f57e60a8cb
|
||
|
|
d003ebc4ca | ||
|
|
09a36de49d
|
||
|
|
7f30808a01 | ||
|
|
2458ee0b0c
|
||
|
|
6043927f0d | ||
|
|
25b242fafb
|
||
|
|
8566417668
|
||
|
|
f9796bebb7 | ||
|
|
b2224c3562 | ||
|
|
660116a7b8 | ||
|
|
47ecb1a3d3
|
||
|
|
ba59c50fd7
|
||
|
|
49a68e8954
|
||
|
|
5cd3bf4a4e
|
||
|
|
65b31e5d67 | ||
|
|
e535b41847
|
||
|
|
540446e519 | ||
|
|
2ce51f8eca
|
||
|
|
6302f57ce4 | ||
|
|
a23dc6d606 | ||
|
|
ab2eddc6ab
|
||
|
|
abf545d70a
|
||
|
|
85c1395821 | ||
|
|
bc7a740e15
|
||
|
|
175ab5c922 | ||
|
|
64a463669a
|
||
|
|
4222881c17 | ||
|
|
e04fe60666
|
||
|
|
a8b05f3152 | ||
|
|
a6cec7dd82
|
||
|
|
adbb395869 | ||
|
|
8193ddd03e
|
||
|
|
6ab50d653b | ||
|
|
2e1da27690
|
||
|
|
c0a5c36010
|
||
|
|
731d6a2a63
|
||
|
|
87f1281751 | ||
|
|
838139cd79
|
||
|
|
542ee02b21
|
||
|
|
5cdb57fb2e | ||
|
|
f2a2978f51
|
||
|
|
a0b612c5f1 | ||
|
|
b4733d1332
|
||
|
|
bf8aae45c7
|
||
|
|
a0af25baaf
|
||
|
|
ac6702aec6 | ||
|
|
3d83e3a395 | ||
|
|
78c7a1bf9a
|
||
|
|
d2193b7f9e
|
||
|
|
f3a73f6fec | ||
|
|
7a565c491c | ||
|
|
bbe0123d17
|
||
|
|
e49fd13e9d
|
||
|
|
156d1a2c41 | ||
|
|
d4f9014d38
|
||
|
|
4b2f55d673
|
||
|
|
a8c20dcef1 | ||
|
|
42b6fbb166 | ||
|
|
e042629612
|
||
|
|
3e4d55f423
|
||
|
|
25cb3e0923 | ||
|
|
ad260746c3 | ||
|
|
7d8ea5851d
|
||
|
|
7530410537
|
||
|
|
90c3270eb8 | ||
|
|
417797e893 | ||
|
|
3e5751abad
|
||
|
|
f83ea9e153
|
||
|
|
2b537fd08a | ||
|
|
ad61e17558 | ||
|
|
d8882ddd1b
|
||
|
|
e5cc409025
|
||
|
|
e75cd5ccef | ||
|
|
cbc9fb4577
|
||
|
|
c85df1fb4a | ||
|
|
7c7f0818d8 | ||
|
|
b231966756
|
||
|
|
317df7187f
|
||
|
|
1dcfc3fbe7
|
||
|
|
a9324855df
|
||
|
|
90e3520510
|
||
|
|
62b0fe206e
|
||
|
|
23e52531bc
|
||
|
|
879264a4e9
|
||
|
|
cd91338a02
|
||
|
|
ccf1f1c3bb
|
||
|
|
f29b326c07
|
||
|
|
9fb2f2fa1b
|
||
|
|
4e948193c9
|
||
|
|
80673d104b
|
||
|
|
4731577534
|
||
|
|
e1ad6999c2
|
||
|
|
82f57cc993
|
||
|
|
ae9b59f0c0
|
||
|
|
9e519d1659
|
||
|
|
1938a56284
|
||
|
|
eefe3634ee
|
||
|
|
ea7b775501
|
||
|
|
ccc60e335c
|
||
|
|
02a9de23c0
|
||
|
|
0c0c0e5ea7
|
No files matched your search
@@ -1,114 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
CHART_FILE="Chart.yaml"
|
|
||||||
if [ ! -f "${CHART_FILE}" ]; then
|
|
||||||
echo "ERROR: ${CHART_FILE} not found!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DEFAULT_NEW_TAG="$(git tag --sort=-version:refname | head -n 1)"
|
|
||||||
DEFAULT_OLD_TAG="$(git tag --sort=-version:refname | head -n 2 | tail -n 1)"
|
|
||||||
|
|
||||||
if [ -z "${1}" ]; then
|
|
||||||
read -p "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG
|
|
||||||
if [ -z "${OLD_TAG}" ]; then
|
|
||||||
OLD_TAG="${DEFAULT_OLD_TAG}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [ -z "$(git tag --list "${OLD_TAG}")" ]; do
|
|
||||||
echo "ERROR: Tag '${OLD_TAG}' not found!" 1>&2
|
|
||||||
read -p "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG
|
|
||||||
if [ -z "${OLD_TAG}" ]; then
|
|
||||||
OLD_TAG="${DEFAULT_OLD_TAG}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
else
|
|
||||||
OLD_TAG=${1}
|
|
||||||
if [ -z "$(git tag --list "${OLD_TAG}")" ]; then
|
|
||||||
echo "ERROR: Tag '${OLD_TAG}' not found!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${2}" ]; then
|
|
||||||
read -p "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG
|
|
||||||
if [ -z "${NEW_TAG}" ]; then
|
|
||||||
NEW_TAG="${DEFAULT_NEW_TAG}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [ -z "$(git tag --list "${NEW_TAG}")" ]; do
|
|
||||||
echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&2
|
|
||||||
read -p "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG
|
|
||||||
if [ -z "${NEW_TAG}" ]; then
|
|
||||||
NEW_TAG="${DEFAULT_NEW_TAG}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
else
|
|
||||||
NEW_TAG=${2}
|
|
||||||
|
|
||||||
if [ -z "$(git tag --list "${NEW_TAG}")" ]; then
|
|
||||||
echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
CHANGE_LOG_YAML=$(mktemp)
|
|
||||||
echo "[]" > "${CHANGE_LOG_YAML}"
|
|
||||||
|
|
||||||
function map_type_to_kind() {
|
|
||||||
case "${1}" in
|
|
||||||
feat)
|
|
||||||
echo "added"
|
|
||||||
;;
|
|
||||||
fix)
|
|
||||||
echo "fixed"
|
|
||||||
;;
|
|
||||||
chore|style|test|ci|docs|refac)
|
|
||||||
echo "changed"
|
|
||||||
;;
|
|
||||||
revert)
|
|
||||||
echo "removed"
|
|
||||||
;;
|
|
||||||
sec)
|
|
||||||
echo "security"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "skip"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
COMMIT_TITLES="$(git log --pretty=format:"%s" "${OLD_TAG}..${NEW_TAG}")"
|
|
||||||
|
|
||||||
echo "INFO: Generate change log entries from ${OLD_TAG} until ${NEW_TAG}"
|
|
||||||
|
|
||||||
while IFS= read -r line; do
|
|
||||||
if [[ "${line}" =~ ^([a-zA-Z]+)(\([^\)]+\))?\:\ (.+)$ ]]; then
|
|
||||||
TYPE="${BASH_REMATCH[1]}"
|
|
||||||
KIND=$(map_type_to_kind "${TYPE}")
|
|
||||||
|
|
||||||
if [ "${KIND}" == "skip" ]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESC="${BASH_REMATCH[3]}"
|
|
||||||
|
|
||||||
echo "- ${KIND}: ${DESC}"
|
|
||||||
|
|
||||||
jq --arg kind changed --arg description "$DESC" '. += [ $ARGS.named ]' < ${CHANGE_LOG_YAML} > ${CHANGE_LOG_YAML}.new
|
|
||||||
mv ${CHANGE_LOG_YAML}.new ${CHANGE_LOG_YAML}
|
|
||||||
|
|
||||||
fi
|
|
||||||
done <<< "${COMMIT_TITLES}"
|
|
||||||
|
|
||||||
if [ -s "${CHANGE_LOG_YAML}" ]; then
|
|
||||||
yq --inplace --input-format json --output-format yml "${CHANGE_LOG_YAML}"
|
|
||||||
yq --no-colors --inplace ".annotations.\"artifacthub.io/changes\" |= loadstr(\"${CHANGE_LOG_YAML}\") | sort_keys(.)" "${CHART_FILE}"
|
|
||||||
else
|
|
||||||
echo "ERROR: Changelog file is empty: ${CHANGE_LOG_YAML}" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm "${CHANGE_LOG_YAML}"
|
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
name: Upload ArtifactHub Metadata
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 3 1 * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
upload-metadata:
|
||||||
|
name: "Upload artifacthub-repo.yml to OCI registry"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
- uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
|
||||||
|
with:
|
||||||
|
registry: ${{ github.server_url }}
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
||||||
|
- uses: oras-project/setup-oras@005458ad77f1c8facd38a094e4af2e69e5607ff4 # v2.0.2
|
||||||
|
with:
|
||||||
|
version: 1.3.6 # renovate: datasource=github-tags depName=oras-project/oras extractVersion='^v?(?<version>.*)$'
|
||||||
|
- name: Extract meta information
|
||||||
|
run: |
|
||||||
|
echo "GITEA_SERVER_HOSTNAME=$(echo "${GITHUB_SERVER_URL}" | cut -d '/' -f 3)" >> $GITHUB_ENV
|
||||||
|
echo "PACKAGE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||||||
|
echo "REPOSITORY_NAME=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 2 | sed --regexp-extended 's/-charts?//g')" >> $GITHUB_ENV
|
||||||
|
echo "REPOSITORY_OWNER=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 1)" >> $GITHUB_ENV
|
||||||
|
- name: Push artifacthub-repo.yml
|
||||||
|
run: |
|
||||||
|
oras push ${GITEA_SERVER_HOSTNAME}/${REPOSITORY_OWNER}/${REPOSITORY_NAME}:artifacthub.io \
|
||||||
|
--config /dev/null:application/vnd.cncf.artifacthub.config.v1+yaml \
|
||||||
|
artifacthub-repo.yml:application/vnd.cncf.artifacthub.repository-metadata.layer.v1.yaml
|
||||||
|
- name: Push public cosign key
|
||||||
|
env:
|
||||||
|
COSIGN_PUBLIC_KEY: ${{ vars.COSIGN_PUBLIC_KEY }}
|
||||||
|
run: |
|
||||||
|
echo "${COSIGN_PUBLIC_KEY}" > cosign.pub
|
||||||
|
oras push ${GITEA_SERVER_HOSTNAME}/${REPOSITORY_OWNER}/${REPOSITORY_NAME}:cosign.pub \
|
||||||
|
--artifact-type application/vnd.dev.cosign.public-key.v1 \
|
||||||
|
--annotation org.opencontainers.image.title=cosign.pub \
|
||||||
|
cosign.pub:application/vnd.dev.cosign.public-key.v1
|
||||||
@@ -15,15 +15,14 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
generate-parameters:
|
generate-parameters:
|
||||||
container:
|
container:
|
||||||
image: docker.io/library/node:24.1.0-alpine
|
image: docker.io/library/node:26.12.1-alpine
|
||||||
runs-on:
|
runs-on: ubuntu-latest
|
||||||
- ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install tooling
|
- name: Install tooling
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
apk add git npm
|
apk add git npm
|
||||||
- uses: actions/checkout@v4.2.2
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Generate parameter section in README
|
- name: Generate parameter section in README
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install
|
||||||
|
|||||||
+16
-21
@@ -12,31 +12,26 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
helm-lint:
|
helm-lint:
|
||||||
container:
|
runs-on: ubuntu-latest
|
||||||
image: docker.io/volkerraschek/helm:3.18.2
|
|
||||||
runs-on:
|
|
||||||
- ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install tooling
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
run: |
|
- uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
|
||||||
apk update
|
with:
|
||||||
apk add git npm
|
version: "v4.3.1" # renovate: datasource=github-tags depName=helm/helm
|
||||||
- uses: actions/checkout@v4.2.2
|
|
||||||
- name: Lint helm files
|
- name: Lint helm files
|
||||||
run: |
|
run: |
|
||||||
helm lint --values values.yaml .
|
helm lint --values values.yaml .
|
||||||
|
|
||||||
helm-unittest:
|
helm-unittest:
|
||||||
container:
|
runs-on: ubuntu-latest
|
||||||
image: docker.io/volkerraschek/helm:3.18.2
|
|
||||||
runs-on:
|
|
||||||
- ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install tooling
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
run: |
|
- uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
|
||||||
apk update
|
with:
|
||||||
apk add git npm
|
version: "v4.3.1" # renovate: datasource=github-tags depName=helm/helm
|
||||||
- uses: actions/checkout@v4.2.2
|
- env:
|
||||||
- name: Unittest
|
HELM_UNITTEST_VERSION: v1.0.0 #renovate: datasource=github-releases depName=helm-unittest/helm-unittest
|
||||||
run: |
|
name: Install helm-unittest
|
||||||
helm unittest --strict --file 'unittests/**/*.yaml' ./
|
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' .
|
||||||
@@ -15,15 +15,14 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
markdown-link-checker:
|
markdown-link-checker:
|
||||||
container:
|
container:
|
||||||
image: docker.io/library/node:24.1.0-alpine
|
image: docker.io/library/node:26.12.1-alpine
|
||||||
runs-on:
|
runs-on: ubuntu-latest
|
||||||
- ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install tooling
|
- name: Install tooling
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
apk add git npm
|
apk add git npm
|
||||||
- uses: actions/checkout@v4.2.2
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Verify links in markdown files
|
- name: Verify links in markdown files
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install
|
||||||
@@ -31,15 +30,14 @@ jobs:
|
|||||||
|
|
||||||
markdown-lint:
|
markdown-lint:
|
||||||
container:
|
container:
|
||||||
image: docker.io/library/node:24.1.0-alpine
|
image: docker.io/library/node:26.12.1-alpine
|
||||||
runs-on:
|
runs-on: ubuntu-latest
|
||||||
- ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install tooling
|
- name: Install tooling
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
apk add git
|
apk add git
|
||||||
- uses: actions/checkout@v4.2.2
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Lint markdown files
|
- name: Lint markdown files
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install
|
||||||
|
|||||||
+136
-31
@@ -1,5 +1,10 @@
|
|||||||
name: Release
|
name: Release
|
||||||
|
|
||||||
|
env:
|
||||||
|
GPG_PRIVATE_KEY_FILE: ${{ runner.temp }}/private.key
|
||||||
|
GPG_PRIVATE_KEY_FINGERPRINT: ${{ vars.GPG_PRIVATE_KEY_FINGERPRINT }}
|
||||||
|
GPG_PRIVATE_KEY_PASSPHRASE_FILE: ${{ runner.temp }}/passphrase.txt
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
@@ -7,48 +12,148 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish-chart:
|
publish-chart:
|
||||||
container:
|
|
||||||
image: docker.io/volkerraschek/helm:3.18.2
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install tooling
|
- uses: volker-raschek/cosign-installer@7643eed6736a199595ed2a31e9979ec353a88adb # v4.1.3-rc3
|
||||||
run: |
|
with:
|
||||||
apk update
|
cosign-release: "v3.1.4" # renovate: datasource=github-tags depName=sigstore/cosign
|
||||||
apk add git npm jq yq
|
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
|
||||||
|
with:
|
||||||
|
version: "v4.3.1" # renovate: datasource=github-tags depName=helm/helm
|
||||||
|
|
||||||
|
- name: Install helm plugins
|
||||||
|
env:
|
||||||
|
HELM_SIGSTORE_VERSION: "0.3.0" # renovate: datasource=github-tags depName=sigstore/helm-sigstore extractVersion='^v(?<version>\d+\.\d+\.\d+)$'
|
||||||
|
HELM_SCHEMA_VALUES_VERSION: "2.6.0" # renovate: datasource=github-tags depName=losisin/helm-values-schema-json extractVersion='^v(?<version>\d+\.\d+\.\d+)$'
|
||||||
|
HELM_UNITTEST_VERSION: "1.2.1" # renovate: datasource=github-tags depName=helm-unittest/helm-unittest extractVersion='^v(?<version>\d+\.\d+\.\d+)$'
|
||||||
|
run: |
|
||||||
|
helm plugin install --verify=false https://github.com/sigstore/helm-sigstore.git --version "${HELM_SIGSTORE_VERSION}" 1> /dev/null
|
||||||
|
helm plugin install --verify=false https://github.com/losisin/helm-values-schema-json.git --version "${HELM_SCHEMA_VALUES_VERSION}" 1> /dev/null
|
||||||
|
helm plugin install --verify=false https://github.com/helm-unittest/helm-unittest.git --version "${HELM_UNITTEST_VERSION}" 1> /dev/null
|
||||||
|
helm plugin list
|
||||||
|
|
||||||
|
- name: GPG configuration
|
||||||
|
env:
|
||||||
|
GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
|
||||||
|
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||||
|
run: |
|
||||||
|
# Configure GPG and GPG Agent
|
||||||
|
mkdir --parents "${HOME}/.gnupg"
|
||||||
|
chmod 0700 "${HOME}/.gnupg"
|
||||||
|
|
||||||
|
cat > "${HOME}/.gnupg/gpg.conf" <<EOF
|
||||||
|
use-agent
|
||||||
|
pinentry-mode loopback
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > "${HOME}/.gnupg/gpg-agent.conf" <<EOF
|
||||||
|
allow-loopback-pinentry
|
||||||
|
max-cache-ttl 86400
|
||||||
|
default-cache-ttl 86400
|
||||||
|
EOF
|
||||||
|
|
||||||
|
gpgconf --kill gpg-agent
|
||||||
|
gpgconf --launch gpg-agent
|
||||||
|
|
||||||
|
# Import GPG private key
|
||||||
|
cat 1> "${GPG_PRIVATE_KEY_PASSPHRASE_FILE}" <<< "${GPG_PRIVATE_KEY_PASSPHRASE}"
|
||||||
|
cat 1> "${GPG_PRIVATE_KEY_FILE}" <<< "${GPG_PRIVATE_KEY}"
|
||||||
|
gpg --batch --yes --passphrase-fd 0 --import "${GPG_PRIVATE_KEY_FILE}" <<< "${GPG_PRIVATE_KEY_PASSPHRASE}"
|
||||||
|
|
||||||
|
# Export GPG keyring
|
||||||
|
gpg --batch --yes --export "${GPG_PRIVATE_KEY_FINGERPRINT}" 1> "${HOME}/.gnupg/pubring.gpg"
|
||||||
|
gpg --batch --yes --passphrase-fd 0 --export-secret-keys "${GPG_PRIVATE_KEY_FINGERPRINT}" 1> "${HOME}/.gnupg/secring.gpg" <<< "${GPG_PRIVATE_KEY_PASSPHRASE}"
|
||||||
|
|
||||||
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Add Artifacthub.io annotations
|
- uses: volker-raschek/ah-annotations@5b4361f7865c1e71a9ce2263df1c780871e0fee8 # v0.2.4
|
||||||
|
|
||||||
|
- name: Extract meta information
|
||||||
run: |
|
run: |
|
||||||
NEW_TAG="$(git tag --sort=-version:refname | head --lines 1)"
|
echo "GITEA_SERVER_HOSTNAME=$(echo "${GITHUB_SERVER_URL}" | cut --delimiter '/' --fields 3)" >> $GITHUB_ENV
|
||||||
OLD_TAG="$(git tag --sort=-version:refname | head --lines 2 | tail --lines 1)"
|
echo "PACKAGE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||||||
.gitea/scripts/add-annotations.sh "${OLD_TAG}" "${NEW_TAG}"
|
echo "REPOSITORY_NAME=$(echo ${GITHUB_REPOSITORY} | cut --delimiter '/' --fields 2 | sed --regexp-extended 's/-charts?//g')" >> $GITHUB_ENV
|
||||||
|
echo "REPOSITORY_OWNER=$(echo ${GITHUB_REPOSITORY} | cut --delimiter '/' --fields 1)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Update Helm Chart version in README.md
|
||||||
|
run: sed -i -E "s/^CHART_VERSION=.*/CHART_VERSION=${PACKAGE_VERSION}/g" README.md
|
||||||
|
|
||||||
- name: Package chart
|
- name: Package chart
|
||||||
|
run: |
|
||||||
|
helm dependency build
|
||||||
|
helm package \
|
||||||
|
--sign \
|
||||||
|
--key "$(gpg --with-colons --list-keys "${GPG_PRIVATE_KEY_FINGERPRINT}" | grep uid | cut --delimiter ':' --fields 10)" \
|
||||||
|
--keyring "${HOME}/.gnupg/secring.gpg" \
|
||||||
|
--passphrase-file "${GPG_PRIVATE_KEY_PASSPHRASE_FILE}" \
|
||||||
|
--version "${PACKAGE_VERSION}" ./
|
||||||
|
|
||||||
|
- uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
|
||||||
|
with:
|
||||||
|
registry: ${{ github.server_url }}
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
|
- name: Upload Chart to Gitea (OCI)
|
||||||
env:
|
env:
|
||||||
|
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
|
||||||
|
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
|
||||||
|
run: |
|
||||||
|
helm push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz oci://${GITEA_SERVER_HOSTNAME}/${REPOSITORY_OWNER}
|
||||||
|
cosign sign --yes --upload=true --key=env://COSIGN_PRIVATE_KEY ${GITEA_SERVER_HOSTNAME}/${REPOSITORY_OWNER}/${REPOSITORY_NAME}:${PACKAGE_VERSION}
|
||||||
|
|
||||||
|
- name: Upload Chart to Gitea (Helm)
|
||||||
|
env:
|
||||||
|
GITEA_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
||||||
|
run: |
|
||||||
|
curl \
|
||||||
|
--fail \
|
||||||
|
--show-error \
|
||||||
|
--request POST \
|
||||||
|
--user "${REPOSITORY_OWNER}:${GITEA_REGISTRY_TOKEN}" \
|
||||||
|
--upload-file "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz" \
|
||||||
|
https://${GITEA_SERVER_HOSTNAME}/api/packages/${REPOSITORY_OWNER}/helm/api/charts
|
||||||
|
|
||||||
|
# NOTE:
|
||||||
|
# Gitea does currently not support uploading Helm chart provenance files, so we skip this step for now. Once
|
||||||
|
# Gitea supports this, we can simply uncomment the following lines to upload the provenance file as well.
|
||||||
|
#
|
||||||
|
# https://github.com/helm/helm/issues/31866
|
||||||
|
#
|
||||||
|
# if [ -f "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz.prov" ]; then
|
||||||
|
# curl \
|
||||||
|
# --fail \
|
||||||
|
# --show-error \
|
||||||
|
# --request POST \
|
||||||
|
# --user "${CHARTMUSEUM_USERNAME}:${CHARTMUSEUM_PASSWORD}" \
|
||||||
|
# --upload-file "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz.prov" \
|
||||||
|
# https://${GITEA_SERVER_HOSTNAME}/api/packages/${REPOSITORY_OWNER}/helm/api/prov
|
||||||
|
# fi
|
||||||
|
|
||||||
|
- name: Upload Chart to Chartmuseum (Helm)
|
||||||
|
env:
|
||||||
|
CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }}
|
||||||
|
CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }}
|
||||||
CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }}
|
CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }}
|
||||||
CHARTMUSEUM_REPOSITORY: ${{ vars.CHARTMUSEUM_REPOSITORY }}
|
CHARTMUSEUM_REPOSITORY: ${{ vars.CHARTMUSEUM_REPOSITORY }}
|
||||||
CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }}
|
|
||||||
CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }}
|
|
||||||
|
|
||||||
GITEA_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
|
||||||
GITEA_SERVER_URL: ${{ github.server_url }}
|
|
||||||
run: |
|
run: |
|
||||||
PACKAGE_VERSION=${GITHUB_REF#refs/tags/}
|
curl \
|
||||||
REPOSITORY_NAME=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 2 | sed --regexp-extended 's/-charts?//g')
|
--fail \
|
||||||
REPOSITORY_OWNER=$(echo ${GITHUB_REPOSITORY} | cut -d '/' -f 1)
|
--show-error \
|
||||||
|
--request POST \
|
||||||
|
--user "${CHARTMUSEUM_USERNAME}:${CHARTMUSEUM_PASSWORD}" \
|
||||||
|
--upload-file "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz" \
|
||||||
|
https://${CHARTMUSEUM_HOSTNAME}/api/${CHARTMUSEUM_REPOSITORY}/charts
|
||||||
|
|
||||||
helm dependency build
|
if [ -f "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz.prov" ]; then
|
||||||
helm package --version "${PACKAGE_VERSION}" ./
|
curl \
|
||||||
|
--fail \
|
||||||
# chart-museum
|
--show-error \
|
||||||
helm repo add --username ${CHARTMUSEUM_USERNAME} --password ${CHARTMUSEUM_PASSWORD} chartmuseum https://${CHARTMUSEUM_HOSTNAME}/${CHARTMUSEUM_REPOSITORY}
|
--request POST \
|
||||||
helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz chartmuseum
|
--user "${CHARTMUSEUM_USERNAME}:${CHARTMUSEUM_PASSWORD}" \
|
||||||
helm repo remove chartmuseum
|
--upload-file ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz.prov \
|
||||||
|
https://${CHARTMUSEUM_HOSTNAME}/api/${CHARTMUSEUM_REPOSITORY}/prov
|
||||||
# gitea
|
fi
|
||||||
helm repo add --username ${REPOSITORY_OWNER} --password ${GITEA_PACKAGE_REGISTRY_TOKEN} gitea ${GITEA_SERVER_URL}/api/packages/${REPOSITORY_OWNER}/helm
|
|
||||||
helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz gitea
|
|
||||||
helm repo remove gitea
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
charts
|
charts
|
||||||
|
cosign*
|
||||||
node_modules
|
node_modules
|
||||||
target
|
target
|
||||||
values2.yml
|
values2.yml
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ MD044:
|
|||||||
- kube-prometheus-stack
|
- kube-prometheus-stack
|
||||||
- Memcached
|
- Memcached
|
||||||
- Oracle
|
- Oracle
|
||||||
- ORBIS U
|
|
||||||
- PostgreSQL
|
- PostgreSQL
|
||||||
- Prometheus
|
- Prometheus
|
||||||
- prometheus-exporter
|
- prometheus-exporter
|
||||||
|
|||||||
Vendored
+5
-2
@@ -1,8 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
"files.associations": {
|
||||||
|
".gitea/workflows/*.yaml": "github-actions-workflow"
|
||||||
|
},
|
||||||
"yaml.schemas": {
|
"yaml.schemas": {
|
||||||
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.5.2/schema/helm-testsuite.json": [
|
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v1.2.1/schema/helm-testsuite.json": [
|
||||||
"/unittests/**/*.yaml"
|
"/unittests/**/*.yaml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"yaml.schemaStore.enable": true
|
"yaml.schemaStore.enable": true
|
||||||
}
|
}
|
||||||
+8
-1
@@ -1,12 +1,19 @@
|
|||||||
annotations:
|
annotations:
|
||||||
|
artifacthub.io/license: MIT
|
||||||
artifacthub.io/links: |
|
artifacthub.io/links: |
|
||||||
- name: Prometheus Fail2Ban exporter (binary)
|
- name: Prometheus Fail2Ban exporter (binary)
|
||||||
url: https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter
|
url: https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter
|
||||||
- name: support
|
- name: support
|
||||||
url: https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter-charts/issues
|
url: https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter-charts/issues
|
||||||
|
artifacthub.io/operator: "false"
|
||||||
|
artifacthub.io/prerelease: "false"
|
||||||
|
artifacthub.io/signKey: |
|
||||||
|
fingerprint: 3B0CE9853CAD76076260025383D342258456906E
|
||||||
|
url: https://keys.openpgp.org/vks/v1/by-fingerprint/3B0CE9853CAD76076260025383D342258456906E
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: "0.1.1"
|
appVersion: "0.4.25"
|
||||||
description: Prometheus metric exporter for Fail2Ban
|
description: Prometheus metric exporter for Fail2Ban
|
||||||
|
home: https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter-charts
|
||||||
# icon: https://annotations.example.com/icon.png
|
# icon: https://annotations.example.com/icon.png
|
||||||
keywords:
|
keywords:
|
||||||
- prometheus
|
- prometheus
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ CONTAINER_RUNTIME?=$(shell which podman)
|
|||||||
# HELM_IMAGE
|
# HELM_IMAGE
|
||||||
HELM_IMAGE_REGISTRY_HOST?=docker.io
|
HELM_IMAGE_REGISTRY_HOST?=docker.io
|
||||||
HELM_IMAGE_REPOSITORY?=volkerraschek/helm
|
HELM_IMAGE_REPOSITORY?=volkerraschek/helm
|
||||||
HELM_IMAGE_VERSION?=3.18.2 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm
|
HELM_IMAGE_VERSION?=4.3.1 # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/helm
|
||||||
HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION}
|
HELM_IMAGE_FULLY_QUALIFIED=${HELM_IMAGE_REGISTRY_HOST}/${HELM_IMAGE_REPOSITORY}:${HELM_IMAGE_VERSION}
|
||||||
|
|
||||||
# NODE_IMAGE
|
# NODE_IMAGE
|
||||||
NODE_IMAGE_REGISTRY_HOST?=docker.io
|
NODE_IMAGE_REGISTRY_HOST?=docker.io
|
||||||
NODE_IMAGE_REPOSITORY?=library/node
|
NODE_IMAGE_REPOSITORY?=library/node
|
||||||
NODE_IMAGE_VERSION?=24.1.0-alpine # renovate: datasource=docker registryUrl=https://docker.io depName=docker.io/library/node packageName=library/node
|
NODE_IMAGE_VERSION?=25.2.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}
|
NODE_IMAGE_FULLY_QUALIFIED=${NODE_IMAGE_REGISTRY_HOST}/${NODE_IMAGE_REPOSITORY}:${NODE_IMAGE_VERSION}
|
||||||
|
|
||||||
# MISSING DOT
|
# MISSING DOT
|
||||||
@@ -88,4 +88,4 @@ container-run/helm-lint:
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# Declare the contents of the PHONY variable as phony. We keep that information
|
# Declare the contents of the PHONY variable as phony. We keep that information
|
||||||
# in a variable so we can use it in if_changed.
|
# in a variable so we can use it in if_changed.
|
||||||
.PHONY: ${PHONY}
|
.PHONY: ${PHONY}
|
||||||
@@ -14,11 +14,15 @@ Chapter [configuration and installation](#helm-configuration-and-installation) d
|
|||||||
and use it to deploy the exporter. It also contains further configuration examples.
|
and use it to deploy the exporter. It also contains further configuration examples.
|
||||||
|
|
||||||
Furthermore, this helm chart contains unit tests to detect regressions and stabilize the deployment. Additionally, this
|
Furthermore, this helm chart contains unit tests to detect regressions and stabilize the deployment. Additionally, this
|
||||||
helm chart is tested for deployment scenarios with **ArgoCD**.
|
helm chart is tested for deployment scenarios with **ArgoCD**, but please keep in mind, that this chart supports the
|
||||||
|
*[Automatically Roll Deployment](https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments)*
|
||||||
|
concept of Helm, which can trigger unexpected rolling releases. Further configuration instructions are described in a
|
||||||
|
separate [chapter](#argocd).
|
||||||
|
|
||||||
## Helm: configuration and installation
|
## Helm: configuration and installation
|
||||||
|
|
||||||
1. A helm chart repository must be configured, to pull the helm charts from.
|
1. A helm chart repository must be configured, to pull the helm charts from. The helm charts can either be pulled from
|
||||||
|
the classic helm chart repository or OCI registry.
|
||||||
2. All available [parameters](#parameters) are documented in detail below. The parameters can be defined via the helm
|
2. All available [parameters](#parameters) are documented in detail below. The parameters can be defined via the helm
|
||||||
`--set` flag or directly as part of a `values.yaml` file. The following example defines the `prometheus-exporter`
|
`--set` flag or directly as part of a `values.yaml` file. The following example defines the `prometheus-exporter`
|
||||||
repository and use the `--set` flag for a basic deployment.
|
repository and use the `--set` flag for a basic deployment.
|
||||||
@@ -31,7 +35,20 @@ helm chart is tested for deployment scenarios with **ArgoCD**.
|
|||||||
```bash
|
```bash
|
||||||
helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters
|
helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters
|
||||||
helm repo update
|
helm repo update
|
||||||
helm install prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2ban-exporter \
|
CHART_VERSION=0.4.25
|
||||||
|
helm install --version "${CHART_VERSION}" prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2ban-exporter \
|
||||||
|
--set 'prometheus.metrics.enabled=true' \
|
||||||
|
--set 'prometheus.metrics.serviceMonitor.enabled=true'
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, the deployment of the helm charts can also be done via an OCI registry:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
CHART_VERSION=0.5.9
|
||||||
|
helm install "oci://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:${CHART_VERSION}" \
|
||||||
|
--set 'config.database.secret.databaseUsername=postgres' \
|
||||||
|
--set 'config.database.secret.databasePassword=postgres' \
|
||||||
|
--set 'config.database.secret.databaseConnectionUrl="postgres.example.local:5432/postgres?ssl=disable"' \
|
||||||
--set 'prometheus.metrics.enabled=true' \
|
--set 'prometheus.metrics.enabled=true' \
|
||||||
--set 'prometheus.metrics.serviceMonitor.enabled=true'
|
--set 'prometheus.metrics.serviceMonitor.enabled=true'
|
||||||
```
|
```
|
||||||
@@ -42,8 +59,8 @@ version of the chart must be in sync with the `values.yaml`. Newer *minor* versi
|
|||||||
versions can break something!
|
versions can break something!
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
CHART_VERSION=0.4.16
|
CHART_VERSION=0.4.25
|
||||||
helm show values prometheus-exporters/prometheus-fail2ban-exporter --version "${CHART_VERSION}" > values.yaml
|
helm show values --version "${CHART_VERSION}" prometheus-exporters/prometheus-fail2ban-exporter > values.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
A complete list of available helm chart versions can be displayed via the following command:
|
A complete list of available helm chart versions can be displayed via the following command:
|
||||||
@@ -80,7 +97,8 @@ Further information about this topic can be found in one of Kanishk's blog
|
|||||||
> Please take care the a CPU limit < `1000m` can also lead to CPU throttling. Please read the linked documentation carefully.
|
> Please take care the a CPU limit < `1000m` can also lead to CPU throttling. Please read the linked documentation carefully.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm install prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2ban-exporter \
|
CHART_VERSION=0.4.25
|
||||||
|
helm install --version "${CHART_VERSION}" prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2ban-exporter \
|
||||||
--set 'prometheus.metrics.enabled=true' \
|
--set 'prometheus.metrics.enabled=true' \
|
||||||
--set 'prometheus.metrics.serviceMonitor.enabled=true' \
|
--set 'prometheus.metrics.serviceMonitor.enabled=true' \
|
||||||
--set 'daemonSet.fail2banExporter.env.name=GOMAXPROCS' \
|
--set 'daemonSet.fail2banExporter.env.name=GOMAXPROCS' \
|
||||||
@@ -88,53 +106,6 @@ helm install prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2b
|
|||||||
--set 'daemonSet.fail2banExporter.resources.limits.cpu=1000m'
|
--set 'daemonSet.fail2banExporter.resources.limits.cpu=1000m'
|
||||||
```
|
```
|
||||||
|
|
||||||
<!--
|
|
||||||
#### TLS authentication and encryption
|
|
||||||
|
|
||||||
The first example shows how to deploy the metric exporter with TLS encryption. The verification of the custom TLS
|
|
||||||
certification will be skipped by Prometheus.
|
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> The secret `Prometheus-fail2banql-exporter-http` containing the TLS certificate is already present. The keys `ca.crt`,
|
|
||||||
> `TLS.key` and `TLS.crt` of the secret can be mounted into the container filesystem for TLS authentication / encryption.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
helm install Prometheus-fail2ban-exporter Prometheus-exporters/Prometheus-fail2ban-exporter \
|
|
||||||
--set 'daemonSet.volumes[0].name=TLS' \
|
|
||||||
--set 'daemonSet.volumes[0].secret.secretName=Prometheus-fail2banql-exporter-http' \
|
|
||||||
--set 'daemonSet.fail2banExporter.volumeMounts[0].name=TLS' \
|
|
||||||
--set 'daemonSet.fail2banExporter.volumeMounts[0].mountPath=/etc/Prometheus-fail2ban-exporter/TLS' \
|
|
||||||
--set 'daemonSet.fail2banExporter.volumeMounts[0].readOnly=true' \
|
|
||||||
--set 'Prometheus.metrics.enabled=true' \
|
|
||||||
--set 'Prometheus.metrics.serviceMonitor.enabled=true' \
|
|
||||||
--set 'Prometheus.metrics.serviceMonitor.scheme=https' \
|
|
||||||
--set 'Prometheus.metrics.serviceMonitor.tlsConfig.insecureSkipVerify=true'
|
|
||||||
```
|
|
||||||
|
|
||||||
If the Prometheus pod has a TLS certificate mounted and is also signed by the private key of the CA which issued the TLS
|
|
||||||
certificate for the metrics exporter - TLS certificate verification can be enabled. The following flags must be
|
|
||||||
replaced:
|
|
||||||
|
|
||||||
```diff
|
|
||||||
helm install Prometheus-fail2ban-exporter Prometheus-exporters/Prometheus-fail2ban-exporter \
|
|
||||||
--set 'config.webConfig.secret.webConfig.cert_file=/etc/Prometheus-fail2ban-exporter/TLS/TLS.crt' \
|
|
||||||
--set 'config.webConfig.secret.webConfig.client_ca_file=/etc/Prometheus-fail2ban-exporter/TLS/ca.crt' \
|
|
||||||
--set 'config.webConfig.secret.webConfig.key_file=/etc/Prometheus-fail2ban-exporter/TLS/TLS.key'
|
|
||||||
--set 'daemonSet.volumes[0].name=TLS' \
|
|
||||||
--set 'daemonSet.volumes[0].secret.secretName=Prometheus-fail2banql-exporter-http' \
|
|
||||||
--set 'daemonSet.fail2banExporter.volumeMounts[0].name=TLS' \
|
|
||||||
--set 'daemonSet.fail2banExporter.volumeMounts[0].mountPath=/etc/Prometheus-fail2ban-exporter/TLS' \
|
|
||||||
--set 'daemonSet.fail2banExporter.volumeMounts[0].readOnly=true' \
|
|
||||||
--set 'Prometheus.metrics.enabled=true' \
|
|
||||||
--set 'Prometheus.metrics.serviceMonitor.enabled=true' \
|
|
||||||
--set 'Prometheus.metrics.serviceMonitor.scheme=https' \
|
|
||||||
- --set 'Prometheus.metrics.serviceMonitor.tlsConfig.insecureSkipVerify=true' \
|
|
||||||
+ --set 'Prometheus.metrics.serviceMonitor.tlsConfig.caFile=/etc/Prometheus/TLS/ca.crt' \
|
|
||||||
+ --set 'Prometheus.metrics.serviceMonitor.tlsConfig.certFile=/etc/Prometheus/TLS/TLS.crt' \
|
|
||||||
+ --set 'Prometheus.metrics.serviceMonitor.tlsConfig.keyFile=/etc/Prometheus/TLS/TLS.key'
|
|
||||||
```
|
|
||||||
-->
|
|
||||||
|
|
||||||
#### Grafana dashboard
|
#### Grafana dashboard
|
||||||
|
|
||||||
The helm chart includes Grafana dashboards. These can be deployed as a configMap by activating Grafana integration. It
|
The helm chart includes Grafana dashboards. These can be deployed as a configMap by activating Grafana integration. It
|
||||||
@@ -144,7 +115,8 @@ the Grafana container file system so that it is subsequently available to the us
|
|||||||
makes this possible.
|
makes this possible.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm install prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2ban-exporter \
|
CHART_VERSION=0.4.25
|
||||||
|
helm install --version "${CHART_VERSION}" prometheus-fail2ban-exporter prometheus-exporters/prometheus-fail2ban-exporter \
|
||||||
--set 'grafana.enabled=true'
|
--set 'grafana.enabled=true'
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -198,6 +170,35 @@ networkPolicies:
|
|||||||
protocol: TCP
|
protocol: TCP
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## ArgoCD
|
||||||
|
|
||||||
|
### Daily execution of rolling updates
|
||||||
|
|
||||||
|
The behavior whereby ArgoCD triggers a rolling update even though nothing appears to have changed often occurs in
|
||||||
|
connection with the helm concept `checksum/secret`, `checksum/configmap` or more generally, [Automatically Roll
|
||||||
|
Deployments](https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments).
|
||||||
|
|
||||||
|
The problem with combining this concept with ArgoCD is that ArgoCD re-renders the Helm chart every time. Even if the
|
||||||
|
content of the config map or secret has not changed, there may be minimal differences (e.g., whitespace, chart version,
|
||||||
|
Helm render order, different timestamps).
|
||||||
|
|
||||||
|
This changes the SHA256 hash, Argo sees a drift and trigger a rolling update of the deployment. Among other things, this
|
||||||
|
can lead to unnecessary notifications from ArgoCD.
|
||||||
|
|
||||||
|
To avoid this, the annotation with the shasum must be ignored. Below is a diff that adds the `Application` to ignore all
|
||||||
|
annotations with the prefix `checksum`.
|
||||||
|
|
||||||
|
```diff
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
spec:
|
||||||
|
+ ignoreDifferences:
|
||||||
|
+ - group: apps/v1
|
||||||
|
+ kind: Deployment
|
||||||
|
+ jqPathExpressions:
|
||||||
|
+ - '.spec.template.metadata.annotations | with_entries(select(.key | startswith("checksum")))'
|
||||||
|
```
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### Global
|
### Global
|
||||||
|
|||||||
Generated
+508
-725
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -16,6 +16,6 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@bitnami/readme-generator-for-helm": "^2.5.0",
|
"@bitnami/readme-generator-for-helm": "^2.5.0",
|
||||||
"markdown-link-check": "^3.13.6",
|
"markdown-link-check": "^3.13.6",
|
||||||
"markdownlint-cli": "^0.45.0"
|
"markdownlint-cli": "^0.50.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+12
-2
@@ -4,16 +4,18 @@
|
|||||||
"local>volker.raschek/renovate-config:default#master",
|
"local>volker.raschek/renovate-config:default#master",
|
||||||
"local>volker.raschek/renovate-config:container#master",
|
"local>volker.raschek/renovate-config:container#master",
|
||||||
"local>volker.raschek/renovate-config:actions#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:npm#master",
|
||||||
"local>volker.raschek/renovate-config:regexp#master"
|
"local>volker.raschek/renovate-config:regexp#master"
|
||||||
],
|
],
|
||||||
"customManagers": [
|
"customManagers": [
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": [
|
"fileMatch": [
|
||||||
"^Chart\\.yaml$"
|
"^Chart\\.yaml$"
|
||||||
],
|
],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"appVersion: \"(?<currentValue>.*?)\"\\s+"
|
"appVersion: \"?(?<currentValue>[^\"\\s]+)\"?\\s*"
|
||||||
],
|
],
|
||||||
"datasourceTemplate": "docker",
|
"datasourceTemplate": "docker",
|
||||||
"depNameTemplate": "volker.raschek/prometheus-fail2ban-exporter",
|
"depNameTemplate": "volker.raschek/prometheus-fail2ban-exporter",
|
||||||
@@ -21,9 +23,10 @@
|
|||||||
"versioningTemplate": "semver"
|
"versioningTemplate": "semver"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"customType": "regex",
|
||||||
"fileMatch": ["^README\\.md$"],
|
"fileMatch": ["^README\\.md$"],
|
||||||
"matchStrings": [
|
"matchStrings": [
|
||||||
"VERSION=(?<currentValue>.*)"
|
"CHART_VERSION=(?<currentValue>.*)"
|
||||||
],
|
],
|
||||||
"depNameTemplate": "volker.raschek/prometheus-fail2ban-exporter-charts",
|
"depNameTemplate": "volker.raschek/prometheus-fail2ban-exporter-charts",
|
||||||
"packageNameTemplate": "https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter-charts",
|
"packageNameTemplate": "https://git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter-charts",
|
||||||
@@ -32,6 +35,13 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"groupName": "Update docker.io/library/node",
|
||||||
|
"matchDepNames": [
|
||||||
|
"docker.io/library/node",
|
||||||
|
"library/node"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"addLabels": [
|
"addLabels": [
|
||||||
"renovate/automerge",
|
"renovate/automerge",
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -16,7 +16,7 @@
|
|||||||
{{- $secret := default (dict "data" (dict)) (lookup "v1" "Secret" .Release.Namespace .Values.config.webConfig.existingSecret.secretName ) }}
|
{{- $secret := default (dict "data" (dict)) (lookup "v1" "Secret" .Release.Namespace .Values.config.webConfig.existingSecret.secretName ) }}
|
||||||
checksum/secret-web-config: {{ print $secret.spec | sha256sum }}
|
checksum/secret-web-config: {{ print $secret.spec | sha256sum }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
checksum/secret-web-config: {{ include (print $.Template.BasePath "/prometheus-fail2ban-exporter/secretWebConfig.yaml") . | sha256sum }}
|
checksum/secret-web-config: {{ include (print $.Template.BasePath "/secretWebConfig.yaml") . | sha256sum }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/configMapGrafanaDashboardFail2BanExporter.yaml
|
- templates/configMapGrafanaDashboardFail2BanExporter.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Rendering fail2banExporter
|
- it: Rendering fail2banExporter
|
||||||
asserts:
|
asserts:
|
||||||
|
|||||||
@@ -6,23 +6,23 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
- templates/daemonSet.yaml
|
||||||
- templates/prometheus-fail2ban-exporter/secretWebConfig.yaml
|
- templates/secretWebConfig.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Rendering default
|
- it: Rendering default
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
count: 1
|
count: 1
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- containsDocument:
|
- containsDocument:
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: metadata.annotations
|
path: metadata.annotations
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
@@ -31,10 +31,10 @@ tests:
|
|||||||
app.kubernetes.io/name: prometheus-fail2ban-exporter
|
app.kubernetes.io/name: prometheus-fail2ban-exporter
|
||||||
app.kubernetes.io/version: 0.1.0
|
app.kubernetes.io/version: 0.1.0
|
||||||
helm.sh/chart: prometheus-fail2ban-exporter-0.1.0
|
helm.sh/chart: prometheus-fail2ban-exporter-0.1.0
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- exists:
|
- exists:
|
||||||
path: spec.template.metadata.annotations.checksum/secret-web-config
|
path: spec.template.metadata.annotations.checksum/secret-web-config
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.metadata.labels
|
path: spec.template.metadata.labels
|
||||||
value:
|
value:
|
||||||
@@ -43,19 +43,19 @@ tests:
|
|||||||
app.kubernetes.io/name: prometheus-fail2ban-exporter
|
app.kubernetes.io/name: prometheus-fail2ban-exporter
|
||||||
app.kubernetes.io/version: 0.1.0
|
app.kubernetes.io/version: 0.1.0
|
||||||
helm.sh/chart: prometheus-fail2ban-exporter-0.1.0
|
helm.sh/chart: prometheus-fail2ban-exporter-0.1.0
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.affinity
|
path: spec.template.spec.affinity
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.containers[0].envFrom
|
path: spec.template.spec.containers[0].envFrom
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].args
|
path: spec.template.spec.containers[0].args
|
||||||
value:
|
value:
|
||||||
# - --web.config.file=/etc/prometheus-fail2ban-exporter/config.d/webConfig.yaml
|
# - --web.config.file=/etc/prometheus-fail2ban-exporter/config.d/webConfig.yaml
|
||||||
- --web.listen-address=:9191
|
- --web.listen-address=:9191
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].volumeMounts
|
path: spec.template.spec.containers[0].volumeMounts
|
||||||
value:
|
value:
|
||||||
@@ -63,7 +63,7 @@ tests:
|
|||||||
name: socket
|
name: socket
|
||||||
- mountPath: /etc/prometheus-fail2ban-exporter/config.d
|
- mountPath: /etc/prometheus-fail2ban-exporter/config.d
|
||||||
name: config-d
|
name: config-d
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.volumes
|
path: spec.template.spec.volumes
|
||||||
value:
|
value:
|
||||||
@@ -74,59 +74,59 @@ tests:
|
|||||||
- name: config-d
|
- name: config-d
|
||||||
secret:
|
secret:
|
||||||
secretName: prometheus-fail2ban-exporter-unittest-web-config
|
secretName: prometheus-fail2ban-exporter-unittest-web-config
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].image
|
path: spec.template.spec.containers[0].image
|
||||||
value: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:0.1.0
|
value: git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter:0.1.0
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].imagePullPolicy
|
path: spec.template.spec.containers[0].imagePullPolicy
|
||||||
value: IfNotPresent
|
value: IfNotPresent
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.containers[0].resources
|
path: spec.template.spec.containers[0].resources
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.containers[0].securityContext
|
path: spec.template.spec.containers[0].securityContext
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.dnsConfig
|
path: spec.template.spec.dnsConfig
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.dnsPolicy
|
path: spec.template.spec.dnsPolicy
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.hostname
|
path: spec.template.spec.hostname
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.hostNetwork
|
path: spec.template.spec.hostNetwork
|
||||||
value: false
|
value: false
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.imagePullSecrets
|
path: spec.template.spec.imagePullSecrets
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.nodeSelector
|
path: spec.template.spec.nodeSelector
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.priorityClassName
|
path: spec.template.spec.priorityClassName
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.restartPolicy
|
path: spec.template.spec.restartPolicy
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.subdomain
|
path: spec.template.spec.subdomain
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.terminationGracePeriodSeconds
|
path: spec.template.spec.terminationGracePeriodSeconds
|
||||||
value: 60
|
value: 60
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.tolerations
|
path: spec.template.spec.tolerations
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- notExists:
|
- notExists:
|
||||||
path: spec.template.spec.topologySpreadConstraints
|
path: spec.template.spec.topologySpreadConstraints
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.updateStrategy
|
path: spec.updateStrategy
|
||||||
value:
|
value:
|
||||||
@@ -134,7 +134,7 @@ tests:
|
|||||||
maxSurge: 1
|
maxSurge: 1
|
||||||
maxUnavailable: 0
|
maxUnavailable: 0
|
||||||
type: "RollingUpdate"
|
type: "RollingUpdate"
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test custom affinity
|
- it: Test custom affinity
|
||||||
set:
|
set:
|
||||||
@@ -161,7 +161,7 @@ tests:
|
|||||||
values:
|
values:
|
||||||
- antarctica-east1
|
- antarctica-east1
|
||||||
- antarctica-west1
|
- antarctica-west1
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test additional arguments
|
- it: Test additional arguments
|
||||||
set:
|
set:
|
||||||
@@ -176,7 +176,7 @@ tests:
|
|||||||
- --web.listen-address=:9191
|
- --web.listen-address=:9191
|
||||||
- --foo=bar
|
- --foo=bar
|
||||||
- --bar=foo
|
- --bar=foo
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test custom imageRegistry and imageRepository
|
- it: Test custom imageRegistry and imageRepository
|
||||||
set:
|
set:
|
||||||
@@ -186,7 +186,7 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].image
|
path: spec.template.spec.containers[0].image
|
||||||
value: registry.example.local/path/special/prometheus-fail2ban-exporter:0.1.0
|
value: registry.example.local/path/special/prometheus-fail2ban-exporter:0.1.0
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test custom imagePullPolicy
|
- it: Test custom imagePullPolicy
|
||||||
set:
|
set:
|
||||||
@@ -195,7 +195,7 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].imagePullPolicy
|
path: spec.template.spec.containers[0].imagePullPolicy
|
||||||
value: Always
|
value: Always
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test config.webConfig.existingSecret
|
- it: Test config.webConfig.existingSecret
|
||||||
set:
|
set:
|
||||||
@@ -209,7 +209,7 @@ tests:
|
|||||||
name: socket
|
name: socket
|
||||||
- mountPath: /etc/prometheus-fail2ban-exporter/config.d
|
- mountPath: /etc/prometheus-fail2ban-exporter/config.d
|
||||||
name: config-d
|
name: config-d
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.volumes
|
path: spec.template.spec.volumes
|
||||||
value:
|
value:
|
||||||
@@ -220,7 +220,7 @@ tests:
|
|||||||
- name: config-d
|
- name: config-d
|
||||||
secret:
|
secret:
|
||||||
secretName: web-config-secret
|
secretName: web-config-secret
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test custom resource limits and requests
|
- it: Test custom resource limits and requests
|
||||||
set:
|
set:
|
||||||
@@ -240,7 +240,7 @@ tests:
|
|||||||
resourceFieldRef:
|
resourceFieldRef:
|
||||||
divisor: "1"
|
divisor: "1"
|
||||||
resource: limits.cpu
|
resource: limits.cpu
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].resources
|
path: spec.template.spec.containers[0].resources
|
||||||
value:
|
value:
|
||||||
@@ -250,7 +250,7 @@ tests:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 25m
|
cpu: 25m
|
||||||
memory: 100MB
|
memory: 100MB
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test custom securityContext
|
- it: Test custom securityContext
|
||||||
set:
|
set:
|
||||||
@@ -277,7 +277,7 @@ tests:
|
|||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test dnsConfig
|
- it: Test dnsConfig
|
||||||
set:
|
set:
|
||||||
@@ -292,7 +292,7 @@ tests:
|
|||||||
nameservers:
|
nameservers:
|
||||||
- "8.8.8.8"
|
- "8.8.8.8"
|
||||||
- "8.8.4.4"
|
- "8.8.4.4"
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test dnsPolicy
|
- it: Test dnsPolicy
|
||||||
set:
|
set:
|
||||||
@@ -301,7 +301,7 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.dnsPolicy
|
path: spec.template.spec.dnsPolicy
|
||||||
value: ClusterFirst
|
value: ClusterFirst
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test hostNetwork, hostname, subdomain
|
- it: Test hostNetwork, hostname, subdomain
|
||||||
set:
|
set:
|
||||||
@@ -312,15 +312,15 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.hostNetwork
|
path: spec.template.spec.hostNetwork
|
||||||
value: true
|
value: true
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.hostname
|
path: spec.template.spec.hostname
|
||||||
value: pg-exporter
|
value: pg-exporter
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.subdomain
|
path: spec.template.spec.subdomain
|
||||||
value: exporters.internal
|
value: exporters.internal
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test imagePullSecrets
|
- it: Test imagePullSecrets
|
||||||
set:
|
set:
|
||||||
@@ -333,7 +333,7 @@ tests:
|
|||||||
value:
|
value:
|
||||||
- name: my-pull-secret
|
- name: my-pull-secret
|
||||||
- name: my-special-secret
|
- name: my-special-secret
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test nodeSelector
|
- it: Test nodeSelector
|
||||||
set:
|
set:
|
||||||
@@ -344,7 +344,7 @@ tests:
|
|||||||
path: spec.template.spec.nodeSelector
|
path: spec.template.spec.nodeSelector
|
||||||
value:
|
value:
|
||||||
foo: bar
|
foo: bar
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test priorityClassName
|
- it: Test priorityClassName
|
||||||
set:
|
set:
|
||||||
@@ -353,7 +353,7 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.priorityClassName
|
path: spec.template.spec.priorityClassName
|
||||||
value: my-priority
|
value: my-priority
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test restartPolicy
|
- it: Test restartPolicy
|
||||||
set:
|
set:
|
||||||
@@ -362,7 +362,7 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.restartPolicy
|
path: spec.template.spec.restartPolicy
|
||||||
value: Always
|
value: Always
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test terminationGracePeriodSeconds
|
- it: Test terminationGracePeriodSeconds
|
||||||
set:
|
set:
|
||||||
@@ -371,7 +371,7 @@ tests:
|
|||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.terminationGracePeriodSeconds
|
path: spec.template.spec.terminationGracePeriodSeconds
|
||||||
value: 120
|
value: 120
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test tolerations
|
- it: Test tolerations
|
||||||
set:
|
set:
|
||||||
@@ -388,7 +388,7 @@ tests:
|
|||||||
operator: Equal
|
operator: Equal
|
||||||
value: fail2ban
|
value: fail2ban
|
||||||
effect: NoSchedule
|
effect: NoSchedule
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test topologySpreadConstraints
|
- it: Test topologySpreadConstraints
|
||||||
set:
|
set:
|
||||||
@@ -407,7 +407,7 @@ tests:
|
|||||||
labelSelector:
|
labelSelector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/instance: prometheus-fail2ban-exporter
|
app.kubernetes.io/instance: prometheus-fail2ban-exporter
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
|
|
||||||
- it: Test additional volumeMounts and volumes
|
- it: Test additional volumeMounts and volumes
|
||||||
set:
|
set:
|
||||||
@@ -426,7 +426,7 @@ tests:
|
|||||||
mountPath: /usr/lib/prometheus-fail2ban-exporter/data
|
mountPath: /usr/lib/prometheus-fail2ban-exporter/data
|
||||||
- name: config-d
|
- name: config-d
|
||||||
mountPath: /etc/prometheus-fail2ban-exporter/config.d
|
mountPath: /etc/prometheus-fail2ban-exporter/config.d
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.volumes
|
path: spec.template.spec.volumes
|
||||||
value:
|
value:
|
||||||
@@ -436,4 +436,4 @@ tests:
|
|||||||
- name: config-d
|
- name: config-d
|
||||||
secret:
|
secret:
|
||||||
secretName: prometheus-fail2ban-exporter-unittest-web-config
|
secretName: prometheus-fail2ban-exporter-unittest-web-config
|
||||||
template: templates/prometheus-fail2ban-exporter/daemonSet.yaml
|
template: templates/daemonSet.yaml
|
||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/ingress.yaml
|
- templates/ingress.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Skip ingress by default.
|
- it: Skip ingress by default.
|
||||||
asserts:
|
asserts:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/networkPolicies.yaml
|
- templates/networkPolicies.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Skip networkPolicies in general disabled.
|
- it: Skip networkPolicies in general disabled.
|
||||||
set:
|
set:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/podMonitor.yaml
|
- templates/podMonitor.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Skip podMonitor when metrics are disabled.
|
- it: Skip podMonitor when metrics are disabled.
|
||||||
set:
|
set:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/secretWebConfig.yaml
|
- templates/secretWebConfig.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Rendering default secret.
|
- it: Rendering default secret.
|
||||||
asserts:
|
asserts:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/serviceAccount.yaml
|
- templates/serviceAccount.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Skip rendering.
|
- it: Skip rendering.
|
||||||
set:
|
set:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/serviceMonitorHTTP.yaml
|
- templates/serviceMonitorHTTP.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Skip serviceMonitor when service is disabled.
|
- it: Skip serviceMonitor when service is disabled.
|
||||||
set:
|
set:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ release:
|
|||||||
name: prometheus-fail2ban-exporter-unittest
|
name: prometheus-fail2ban-exporter-unittest
|
||||||
namespace: testing
|
namespace: testing
|
||||||
templates:
|
templates:
|
||||||
- templates/prometheus-fail2ban-exporter/serviceHTTP.yaml
|
- templates/serviceHTTP.yaml
|
||||||
tests:
|
tests:
|
||||||
- it: Skip service when disabled.
|
- it: Skip service when disabled.
|
||||||
set:
|
set:
|
||||||
|
|||||||
Reference in new issue
Block a user