Compare commits

..

37 Commits

Author SHA1 Message Date
volker.raschek 991d7d8138 fix(chart): add annotation artifacthub.io/signKey
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 17s
Release / publish-chart (push) Successful in 30s
2026-02-15 16:47:07 +01:00
volker.raschek 5265389f5b fix(vscode): set file association for Gitea workflows
Helm / helm-lint (push) Successful in 9s
Helm / helm-unittest (push) Successful in 17s
Release / publish-chart (push) Successful in 1m9s
2026-02-15 12:15:43 +01:00
volker.raschek 93b652bb15 feat(ci): sign helm chart 2026-02-15 12:13:17 +01:00
CSRBot 9ff09361eb Merge pull request 'chore(deps): update docker.io/library/node docker tag to v25.6.1' (#128) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Successful in 8s
Helm / helm-unittest (push) Successful in 8s
2026-02-12 17:10:43 +00:00
CSRBot 1aa3b86ecc chore(deps): update docker.io/library/node docker tag to v25.6.1
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (pull_request) Successful in 10s
Helm / helm-unittest (pull_request) Successful in 7s
2026-02-12 17:10:16 +00:00
CSRBot cb73c168f7 Merge pull request 'chore(deps): update prometheuscommunity/postgres-exporter docker tag to v0.19.0' (#126) from renovate/container-images into master
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 7s
2026-02-07 22:41:59 +00:00
CSRBot da43196b18 Merge pull request 'chore(deps): update dependency volker.raschek/prometheus-postgres-exporter to v0.5.6' (#125) from renovate/volker.raschek-prometheus-postgres-exporter-0.x into master
Helm / helm-lint (push) Has been cancelled
Helm / helm-unittest (push) Has been cancelled
Markdown linter / markdown-link-checker (push) Successful in 12s
Generate README / generate-parameters (push) Successful in 28s
Markdown linter / markdown-lint (push) Successful in 9s
2026-02-07 22:38:49 +00:00
CSRBot a8dab251b5 chore(deps): update prometheuscommunity/postgres-exporter docker tag to v0.19.0
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 10s
Helm / helm-lint (pull_request) Successful in 10s
Helm / helm-unittest (pull_request) Successful in 8s
2026-02-07 22:36:22 +00:00
CSRBot 4936091445 chore(deps): update dependency volker.raschek/prometheus-postgres-exporter to v0.5.6
Generate README / generate-parameters (push) Successful in 12s
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 9s
Generate README / generate-parameters (pull_request) Successful in 12s
Markdown linter / markdown-link-checker (push) Successful in 15s
Markdown linter / markdown-lint (push) Successful in 13s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 8s
Markdown linter / markdown-link-checker (pull_request) Successful in 13s
Markdown linter / markdown-lint (pull_request) Successful in 9s
2026-02-07 22:36:09 +00:00
volker.raschek c6fe40e32d fix(renovate): remove packageRule for volkerraschek/helm
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 17s
2026-02-07 22:26:50 +01:00
volker.raschek 2a396c1993 docs(README): add OCI registry
Helm / helm-lint (push) Successful in 9s
Generate README / generate-parameters (push) Successful in 12s
Markdown linter / markdown-link-checker (push) Successful in 12s
Helm / helm-unittest (push) Successful in 18s
Markdown linter / markdown-lint (push) Successful in 10s
Release / publish-chart (push) Successful in 1m0s
2026-02-07 22:09:04 +01:00
volker.raschek af9a2e7f2d fix(ci): rename step
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 17s
2026-02-07 21:52:57 +01:00
volker.raschek d65c48b880 fix(ci): upload metadata for artifacthub
Helm / helm-lint (push) Successful in 4s
Helm / helm-unittest (push) Successful in 8s
Generate README / generate-parameters (push) Successful in 27s
Markdown linter / markdown-link-checker (push) Successful in 13s
Markdown linter / markdown-lint (push) Successful in 29s
2026-02-07 21:49:25 +01:00
volker.raschek bec440645b feat: support OCI 2026-02-07 21:42:20 +01:00
volker.raschek 873b7d9a5e fix(scripts): support pre-releases 2026-02-07 19:26:20 +01:00
CSRBot 96c6b03827 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v25.6.0' (#124) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Successful in 10s
Helm / helm-unittest (push) Successful in 18s
2026-02-03 17:15:36 +00:00
CSRBot 89f7ae973c chore(deps): update docker.io/library/node docker tag to v25.6.0
Helm / helm-lint (push) Successful in 4s
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (pull_request) Successful in 8s
Helm / helm-unittest (pull_request) Successful in 8s
2026-02-03 17:15:05 +00:00
CSRBot 166ecce210 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v25.5.0' (#123) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 8s
2026-02-01 11:44:50 +00:00
CSRBot 814d2ef609 chore(deps): update docker.io/library/node docker tag to v25.5.0
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 10s
2026-02-01 11:11:37 +00:00
CSRBot b752824ebb Merge pull request 'chore(deps): update actions/checkout action to v6.0.2' (#122) from renovate/actions into master
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 8s
2026-01-22 17:51:19 +00:00
CSRBot d3a1b0f2b2 chore(deps): update actions/checkout action to v6.0.2
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (pull_request) Successful in 7s
Helm / helm-lint (push) Successful in 4s
Helm / helm-unittest (push) Successful in 7s
2026-01-22 17:13:39 +00:00
CSRBot 944d7ae72b Merge pull request 'chore(deps): update docker.io/library/node docker tag to v25.4.0' (#121) from renovate/update-docker.iolibrarynode into master
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (push) Successful in 9s
2026-01-20 17:12:13 +00:00
CSRBot 04213233a6 chore(deps): update docker.io/library/node docker tag to v25.4.0
Helm / helm-lint (push) Successful in 9s
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (pull_request) Successful in 10s
Helm / helm-unittest (pull_request) Successful in 7s
2026-01-20 17:11:39 +00:00
CSRBot 6e4bf9c2f1 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v25.3.0' (#120) from renovate/update-docker.iolibrarynode into master
Helm / helm-unittest (push) Successful in 8s
Helm / helm-lint (push) Successful in 10s
2026-01-14 20:11:48 +00:00
CSRBot 0db2f82524 chore(deps): update docker.io/library/node docker tag to v25.3.0
Helm / helm-lint (push) Successful in 5s
Helm / helm-lint (pull_request) Successful in 5s
Helm / helm-unittest (push) Successful in 17s
Helm / helm-unittest (pull_request) Successful in 7s
2026-01-14 20:11:17 +00:00
CSRBot f30ffa3054 Merge pull request 'chore(deps): update dependency markdownlint-cli to ^0.47.0' (#119) from renovate/markdownlint-cli-0.x into master
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (push) Successful in 11s
2025-12-11 08:11:38 +00:00
CSRBot 1871edd53f chore(deps): update dependency markdownlint-cli to ^0.47.0
Helm / helm-lint (push) Successful in 4s
Helm / helm-lint (pull_request) Successful in 4s
Helm / helm-unittest (pull_request) Successful in 7s
Helm / helm-unittest (push) Successful in 17s
2025-12-11 08:11:10 +00:00
CSRBot 654b6c400d Merge pull request 'chore(deps): update actions/checkout action to v6' (#117) from renovate/actions-checkout-6.x into master
Helm / helm-lint (push) Successful in 4s
Helm / helm-unittest (push) Successful in 7s
2025-12-02 21:46:21 +00:00
CSRBot a4bab39b93 chore(deps): update actions/checkout action to v6
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (pull_request) Successful in 3s
Helm / helm-unittest (pull_request) Successful in 7s
2025-12-02 21:13:23 +00:00
volker.raschek 4fc6c58575 chore(deps): rollback docker docker.io/volkerraschek/helm to 3.19.2
Helm / helm-unittest (push) Successful in 8s
Helm / helm-lint (push) Successful in 9s
2025-11-30 13:39:15 +01:00
volker.raschek 23931df4e2 Merge pull request 'chore(deps): update docker.io/volkerraschek/helm docker tag to v4' (#109) from renovate/major-update-docker.iovolkerraschekhelm into master
Helm / helm-lint (push) Successful in 4s
Helm / helm-unittest (push) Successful in 7s
Reviewed-on: #109
2025-11-30 11:24:55 +00:00
volker.raschek 0f427bc5b2 Merge pull request 'chore(deps): update dependency helm/helm to v4.0.1' (#115) from renovate/helm-helm-4.x into master
Helm / helm-lint (push) Has started running
Helm / helm-unittest (push) Has been cancelled
Reviewed-on: #115
2025-11-30 11:24:48 +00:00
volker.raschek 42c3ef84a4 Merge branch 'master' into renovate/major-update-docker.iovolkerraschekhelm
Helm / helm-lint (push) Successful in 5s
Helm / helm-lint (pull_request) Successful in 4s
Helm / helm-unittest (pull_request) Successful in 8s
Helm / helm-unittest (push) Successful in 18s
2025-11-30 11:24:27 +00:00
volker.raschek 8fa979a093 Merge branch 'master' into renovate/helm-helm-4.x
Helm / helm-lint (push) Successful in 4s
Helm / helm-lint (pull_request) Successful in 4s
Helm / helm-unittest (pull_request) Successful in 7s
Helm / helm-unittest (push) Successful in 17s
2025-11-30 11:24:13 +00:00
CSRBot 970581cc3d Merge pull request 'chore(deps): update azure/setup-helm action to v4.3.1' (#114) from renovate/actions into master
Helm / helm-unittest (push) Successful in 7s
Helm / helm-lint (push) Successful in 10s
2025-11-30 11:11:16 +00:00
CSRBot f34adfad97 chore(deps): update docker.io/volkerraschek/helm docker tag to v4
Generate README / generate-parameters (push) Successful in 10s
Helm / helm-lint (push) Successful in 10s
Helm / helm-unittest (push) Successful in 8s
Markdown linter / markdown-lint (push) Successful in 9s
Generate README / generate-parameters (pull_request) Successful in 9s
Markdown linter / markdown-link-checker (push) Successful in 30s
Helm / helm-lint (pull_request) Successful in 4s
Markdown linter / markdown-link-checker (pull_request) Successful in 10s
Helm / helm-unittest (pull_request) Successful in 18s
Markdown linter / markdown-lint (pull_request) Successful in 9s
2025-11-30 11:10:34 +00:00
CSRBot d809667060 chore(deps): update azure/setup-helm action to v4.3.1
Helm / helm-lint (pull_request) Successful in 4s
Helm / helm-lint (push) Successful in 5s
Helm / helm-unittest (push) Successful in 7s
Helm / helm-unittest (pull_request) Successful in 18s
2025-11-30 11:10:22 +00:00
14 changed files with 336 additions and 122 deletions
+56 -45
View File
@@ -1,61 +1,65 @@
#!/bin/bash
set -e
set -e -o pipefail
CHART_FILE="Chart.yaml"
if [ ! -f "${CHART_FILE}" ]; then
echo "ERROR: ${CHART_FILE} not found!" 1>&2
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)"
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}"
echo "Enter start tag [${default_old_tag}]:"
read -r 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}"
while [ -z "$(git tag --list "${old_tag}")" ]; do
echo "ERROR: Tag '${old_tag}' not found!" 1>&2
echo "Enter start tag [${default_old_tag}]:"
read -r 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
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}"
echo "Enter end tag [${default_new_tag}]:"
read -r 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}"
while [ -z "$(git tag --list "${new_tag}")" ]; do
echo "ERROR: Tag '${new_tag}' not found!" 1>&2
echo "Enter end tag [${default_new_tag}]:"
read -r new_tag
if [ -z "${new_tag}" ]; then
new_tag="${default_new_tag}"
fi
done
else
NEW_TAG=${2}
new_tag=${2}
if [ -z "$(git tag --list "${NEW_TAG}")" ]; then
echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&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}"
change_log_yaml=$(mktemp)
echo "[]" > "${change_log_yaml}"
function map_type_to_kind() {
case "${1}" in
@@ -80,35 +84,42 @@ function map_type_to_kind() {
esac
}
COMMIT_TITLES="$(git log --pretty=format:"%s" "${OLD_TAG}..${NEW_TAG}")"
commit_titles="$(git log --pretty=format:"%s" "${old_tag}..${new_tag}")"
echo "INFO: Generate change log entries from ${OLD_TAG} until ${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}")
type="${BASH_REMATCH[1]}"
kind=$(map_type_to_kind "${type}")
if [ "${KIND}" == "skip" ]; then
if [ "${kind}" == "skip" ]; then
continue
fi
DESC="${BASH_REMATCH[3]}"
desc="${BASH_REMATCH[3]}"
echo "- ${KIND}: ${DESC}"
echo "- ${kind}: ${desc}"
jq --arg kind "${KIND}" --arg description "${DESC}" '. += [ $ARGS.named ]' < "${CHANGE_LOG_YAML}" > "${CHANGE_LOG_YAML}.new"
mv "${CHANGE_LOG_YAML}.new" "${CHANGE_LOG_YAML}"
jq --arg kind "${kind}" --arg description "${desc}" '. += [ $ARGS.named ]' < "${change_log_yaml}" > "${change_log_yaml}.new"
mv "${change_log_yaml}.new" "${change_log_yaml}"
fi
done <<< "${COMMIT_TITLES}"
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}"
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
echo "ERROR: Changelog file is empty: ${change_log_yaml}" 1>&2
exit 1
fi
rm "${CHANGE_LOG_YAML}"
rm "${change_log_yaml}"
regexp=".*-alpha-[0-9]+(\.[0-9]+){,2}$"
if [[ "${new_tag}" =~ $regexp ]]; then
yq --inplace '.annotations."artifacthub.io/prerelease" = "true"' "${chart_file}"
else
yq --inplace '.annotations."artifacthub.io/prerelease" = "false"' "${chart_file}"
fi
@@ -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@v6.0.2
- uses: docker/login-action@v3.7.0
with:
registry: ${{ github.server_url }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
- uses: oras-project/setup-oras@v1.2.4
with:
version: 1.3.0 # 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
+2 -2
View File
@@ -15,14 +15,14 @@ on:
jobs:
generate-parameters:
container:
image: docker.io/library/node:25.2.1-alpine
image: docker.io/library/node:25.6.1-alpine
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git npm
- uses: actions/checkout@v5.0.1
- uses: actions/checkout@v6.0.2
- name: Generate parameter section in README
run: |
npm install
+6 -6
View File
@@ -14,10 +14,10 @@ jobs:
helm-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5.0.1
- uses: azure/setup-helm@v4.3.0
- uses: actions/checkout@v6.0.2
- uses: azure/setup-helm@v4.3.1
with:
version: v4.0.1 # renovate: datasource=github-releases depName=helm/helm
version: "v4.0.1" # renovate: datasource=github-tags depName=helm/helm
- name: Lint helm files
run: |
helm lint --values values.yaml .
@@ -25,10 +25,10 @@ jobs:
helm-unittest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5.0.1
- uses: azure/setup-helm@v4.3.0
- uses: actions/checkout@v6.0.2
- uses: azure/setup-helm@v4.3.1
with:
version: v4.0.1 # renovate: datasource=github-releases depName=helm/helm
version: "v4.0.1" # renovate: datasource=github-tags depName=helm/helm
- env:
HELM_UNITTEST_VERSION: v1.0.0 #renovate: datasource=github-releases depName=helm-unittest/helm-unittest
name: Install helm-unittest
+4 -4
View File
@@ -15,14 +15,14 @@ on:
jobs:
markdown-link-checker:
container:
image: docker.io/library/node:25.2.1-alpine
image: docker.io/library/node:25.6.1-alpine
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git npm
- uses: actions/checkout@v5.0.1
- uses: actions/checkout@v6.0.2
- name: Verify links in markdown files
run: |
npm install
@@ -30,14 +30,14 @@ jobs:
markdown-lint:
container:
image: docker.io/library/node:25.2.1-alpine
image: docker.io/library/node:25.6.1-alpine
runs-on: ubuntu-latest
steps:
- name: Install tooling
run: |
apk update
apk add git
- uses: actions/checkout@v5.0.1
- uses: actions/checkout@v6.0.2
- name: Lint markdown files
run: |
npm install
+112 -24
View File
@@ -1,5 +1,10 @@
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:
push:
tags:
@@ -7,16 +12,60 @@ on:
jobs:
publish-chart:
container:
image: docker.io/volkerraschek/helm:3.19.2
runs-on: ubuntu-latest
steps:
- name: Install packages via apk
run: |
apk update
apk add git npm jq yq
- uses: sigstore/cosign-installer@v4.0.0
with:
cosign-release: "v2.6.2" # renovate: datasource=github-tags depName=sigstore/cosign
- uses: actions/checkout@v5.0.1
- uses: azure/setup-helm@v4.3.1
with:
version: "v4.0.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.3.1" # renovate: datasource=github-tags depName=losisin/helm-values-schema-json extractVersion='^v(?<version>\d+\.\d+\.\d+)$'
HELM_UNITTEST_VERSION: "1.0.3" # 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@v6.0.2
with:
fetch-depth: 0
@@ -28,9 +77,10 @@ jobs:
- name: Extract meta information
run: |
echo "GITEA_SERVER_HOSTNAME=$(echo "${GITHUB_SERVER_URL}" | cut --delimiter '/' --fields 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
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
@@ -38,24 +88,62 @@ jobs:
- name: Package chart
run: |
helm dependency build
helm package --version "${PACKAGE_VERSION}" ./
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}" ./
- name: Upload Chart to ChartMuseum
- uses: docker/login-action@v3.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:
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: |
for package in "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz"*; do
curl \
--fail \
--show-error \
--request POST \
--user "${REPOSITORY_OWNER}:${GITEA_REGISTRY_TOKEN}" \
--upload-file "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz" \
https://git.cryptic.systems/api/packages/${REPOSITORY_OWNER}/helm/api/charts
done
- name: Upload Chart to Chartmuseum (Helm)
env:
CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }}
CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }}
CHARTMUSEUM_PASSWORD: ${{ secrets.CHARTMUSEUM_PASSWORD }}
CHARTMUSEUM_REPOSITORY: ${{ vars.CHARTMUSEUM_REPOSITORY }}
CHARTMUSEUM_USERNAME: ${{ secrets.CHARTMUSEUM_USERNAME }}
CHARTMUSEUM_HOSTNAME: ${{ vars.CHARTMUSEUM_HOSTNAME }}
run: |
helm repo add --username ${CHARTMUSEUM_USERNAME} --password ${CHARTMUSEUM_PASSWORD} chartmuseum https://${CHARTMUSEUM_HOSTNAME}/${CHARTMUSEUM_REPOSITORY}
helm cm-push ${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz chartmuseum
helm repo remove chartmuseum
curl \
--fail \
--show-error \
--request POST \
--user "${CHARTMUSEUM_USERNAME}:${CHARTMUSEUM_PASSWORD}" \
--upload-file "${REPOSITORY_NAME}-${PACKAGE_VERSION}.tgz" \
https://${CHARTMUSEUM_HOSTNAME}/api/${CHARTMUSEUM_REPOSITORY}/charts
- name: Upload Chart to Gitea
env:
GITEA_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
GITEA_SERVER_URL: ${{ github.server_url }}
run: |
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
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://${CHARTMUSEUM_HOSTNAME}/api/${CHARTMUSEUM_REPOSITORY}/prov
fi
+1
View File
@@ -1,4 +1,5 @@
charts
cosign*
node_modules
target
values2.yml
+4 -1
View File
@@ -1,8 +1,11 @@
{
"files.associations": {
".gitea/workflows/*.yaml": "github-actions-workflow"
},
"yaml.schemas": {
"https://raw.githubusercontent.com/helm-unittest/helm-unittest/v1.0.3/schema/helm-testsuite.json": [
"/unittests/**/*.yaml"
]
},
"yaml.schemaStore.enable": true
}
}
+18 -14
View File
@@ -1,24 +1,28 @@
annotations:
artifacthub.io/license: MIT
artifacthub.io/links: |
- name: Prometheus PostgreSQL exporter (binary)
url: https://github.com/prometheus-community/postgres_exporter
- name: support
url: https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter/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
name: prometheus-postgres-exporter
appVersion: "0.19.0"
description: Prometheus metric exporter for PostgreSQL
home: https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter
# icon: https://annotations.example.com/icon.png
keywords:
- prometheus
- prometheus-exporter
- postgres-postgres-exporter
- postgres-exporter
name: prometheus-postgres-exporter
sources:
- https://github.com/prometheus-community/postgres_exporter
- https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter
type: application
version: "0.1.0"
appVersion: "0.18.1"
# icon: https://annotations.example.com/icon.png
keywords:
- prometheus
- prometheus-exporter
- postgres-postgres-exporter
- postgres-exporter
sources:
- https://github.com/prometheus-community/postgres_exporter
- https://git.cryptic.systems/volker.raschek/prometheus-postgres-exporter
+21 -8
View File
@@ -23,7 +23,8 @@ separate [chapter](#argocd).
## 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
`--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.
@@ -34,9 +35,9 @@ separate [chapter](#argocd).
> time is not possible.
```bash
helm repo add prometheus-exporters https://charts.cryptic.systems/prometheus-exporters
helm repo add prometheus-postgres-exporters https://git.cryptic.systems/prometheus-exporters
helm repo update
CHART_VERSION=0.5.5
CHART_VERSION=0.5.6
helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \
@@ -45,13 +46,25 @@ helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheu
--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.6
helm install "oci://git.cryptic.systems/volker.raschek/prometheus-postgres-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.serviceMonitor.enabled=true'
```
Instead of passing all parameters via the *set* flag, it is also possible to define them as part of the `values.yaml`.
The following command downloads the `values.yaml` for a specific version of this chart. Please keep in mind, that the
version of the chart must be in sync with the `values.yaml`. Newer *minor* versions can have new features. New *major*
versions can break something!
```bash
CHART_VERSION=0.5.5
CHART_VERSION=0.5.6
helm show values --version "${CHART_VERSION}" prometheus-exporters/prometheus-postgres-exporter > values.yaml
```
@@ -89,7 +102,7 @@ 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.
```bash
CHART_VERSION=0.5.5
CHART_VERSION=0.5.6
helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \
@@ -111,7 +124,7 @@ certification will be skipped by Prometheus.
> `tls.key` and `tls.crt` of the secret can be mounted into the container filesystem for TLS authentication / encryption.
```bash
CHART_VERSION=0.5.5
CHART_VERSION=0.5.6
helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \
@@ -135,7 +148,7 @@ certificate for the metrics exporter - TLS certificate verification can be enabl
replaced:
```diff
CHART_VERSION=0.5.5
CHART_VERSION=0.5.6
helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \
@@ -189,7 +202,7 @@ the Grafana container file system so that it is subsequently available to the us
makes this possible.
```bash
CHART_VERSION=0.5.5
CHART_VERSION=0.5.6
helm install --version "${CHART_VERSION}" prometheus-postgres-exporter prometheus-exporters/prometheus-postgres-exporter \
--set 'config.database.secret.databaseUsername=postgres' \
--set 'config.database.secret.databasePassword=postgres' \
+1
View File
@@ -0,0 +1 @@
repositoryID: d4d5f778-e029-4401-81a3-29a0f689ee08
+69 -10
View File
@@ -9,7 +9,7 @@
"devDependencies": {
"@bitnami/readme-generator-for-helm": "^2.5.0",
"markdown-link-check": "^3.13.6",
"markdownlint-cli": "^0.46.0"
"markdownlint-cli": "^0.47.0"
},
"engines": {
"node": ">=16.0.0",
@@ -156,6 +156,19 @@
"node": ">= 14"
}
},
"node_modules/ansi-regex": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -637,6 +650,19 @@
"dev": true,
"license": "ISC"
},
"node_modules/get-east-asian-width": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz",
"integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/get-uri": {
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz",
@@ -1055,9 +1081,9 @@
}
},
"node_modules/markdownlint": {
"version": "0.39.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.39.0.tgz",
"integrity": "sha512-Xt/oY7bAiHwukL1iru2np5LIkhwD19Y7frlsiDILK62v3jucXCD6JXlZlwMG12HZOR+roHIVuJZrfCkOhp6k3g==",
"version": "0.40.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz",
"integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1068,7 +1094,8 @@
"micromark-extension-gfm-footnote": "2.1.0",
"micromark-extension-gfm-table": "2.1.1",
"micromark-extension-math": "3.1.0",
"micromark-util-types": "2.0.2"
"micromark-util-types": "2.0.2",
"string-width": "8.1.0"
},
"engines": {
"node": ">=20"
@@ -1078,9 +1105,9 @@
}
},
"node_modules/markdownlint-cli": {
"version": "0.46.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.46.0.tgz",
"integrity": "sha512-4gxTNzPjpLnY7ftrEZD4flPY0QBkQLiqezb6KURFSkV+vPHFOsYw8OMtY6fu82Yt8ghtSrWegpYdq1ix25VFLQ==",
"version": "0.47.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.47.0.tgz",
"integrity": "sha512-HOcxeKFAdDoldvoYDofd85vI8LgNWy8vmYpCwnlLV46PJcodmGzD7COSSBlhHwsfT4o9KrAStGodImVBus31Bg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1091,7 +1118,7 @@
"jsonc-parser": "~3.3.1",
"jsonpointer": "~5.0.1",
"markdown-it": "~14.1.0",
"markdownlint": "~0.39.0",
"markdownlint": "~0.40.0",
"minimatch": "~10.1.1",
"run-con": "~1.3.2",
"smol-toml": "~1.5.2",
@@ -1890,7 +1917,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@@ -2057,6 +2083,39 @@
"dev": true,
"license": "BSD-3-Clause"
},
"node_modules/string-width": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz",
"integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==",
"dev": true,
"license": "MIT",
"dependencies": {
"get-east-asian-width": "^1.3.0",
"strip-ansi": "^7.1.0"
},
"engines": {
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-ansi": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
"integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^6.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+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.46.0"
"markdownlint-cli": "^0.47.0"
}
}
-7
View File
@@ -44,13 +44,6 @@
}
],
"packageRules": [
{
"groupName": "Update docker.io/volkerraschek/helm",
"matchDepNames": [
"docker.io/volkerraschek/helm",
"volkerraschek/helm"
]
},
{
"automerge": true,
"groupName": "Update helm plugin 'unittest'",