Compare commits

...

76 Commits

Author SHA1 Message Date
e49f293690 default to monitor on
All checks were successful
renovate / renovate (push) Successful in 41s
lint-and-test / lint-helm (push) Successful in 14s
lint-and-test / chart-testing (push) Successful in 29s
release-charts-generic-device-plugin / release (push) Successful in 23s
release-charts-postgres-cluster / release (push) Successful in 20s
2025-12-14 22:23:36 -06:00
98b01ba2a4 major version upgrade 2025-12-14 22:23:36 -06:00
fdc027a298 add database management 2025-12-14 22:23:36 -06:00
74577ae63d refactor external clusters to a helper 2025-12-14 22:23:36 -06:00
1e52cebbd3 organize 2025-12-14 22:23:36 -06:00
5bc8c7286c add default values 2025-12-14 22:23:36 -06:00
7c8145f741 Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to aa0571c' (#152) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
All checks were successful
lint-and-test / lint-helm (push) Successful in 25s
lint-and-test / chart-testing (push) Successful in 41s
release-charts-generic-device-plugin / release (push) Successful in 55s
renovate / renovate (push) Successful in 51s
2025-12-15 00:05:37 +00:00
c2ef2a6e0b Update ghcr.io/squat/generic-device-plugin:latest Docker digest to aa0571c
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
lint-and-test / lint-helm (pull_request) Failing after 1m8s
lint-and-test / chart-testing (pull_request) Successful in 1m34s
2025-12-15 00:05:14 +00:00
0fda9c9db4 fix import
All checks were successful
release-charts-postgres-cluster / release (push) Successful in 17s
release-charts-generic-device-plugin / release (push) Successful in 26s
lint-and-test / lint-helm (push) Successful in 9s
lint-and-test / chart-testing (push) Successful in 48s
renovate / renovate (push) Successful in 1m51s
2025-12-12 16:43:45 -06:00
0765ad2336 disable set for default for ssl 2025-12-12 16:43:45 -06:00
fb667e69bd Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to d64b1c8' (#151) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
All checks were successful
lint-and-test / lint-helm (push) Successful in 19s
renovate / renovate (push) Successful in 41s
release-charts-generic-device-plugin / release (push) Successful in 24s
lint-and-test / chart-testing (push) Successful in 2m53s
2025-12-12 00:01:34 +00:00
577d6d9288 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to d64b1c8
Some checks failed
lint-and-test / lint-helm (pull_request) Failing after 37s
lint-and-test / chart-testing (pull_request) Successful in 1m6s
renovate/stability-days Updates have not met minimum release age requirement
2025-12-12 00:01:20 +00:00
83f23d6f4a handle conditions better
All checks were successful
renovate / renovate (push) Successful in 1m11s
2025-12-07 16:47:30 -06:00
ef6c469f6c fix paths
All checks were successful
renovate / renovate (push) Successful in 32s
2025-12-06 21:14:18 -06:00
28e6783d73 fix version
All checks were successful
renovate / renovate (push) Successful in 53s
2025-12-06 21:02:23 -06:00
f7b6037ffc Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to a848216' (#150) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
Some checks failed
renovate / renovate (push) Successful in 29s
release-charts-generic-device-plugin / release (push) Successful in 8m34s
lint-and-test / chart-testing (push) Failing after 9s
lint-and-test / lint-helm (push) Successful in 11s
2025-12-07 01:57:24 +00:00
3941d174a8 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to a848216
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
lint-and-test / lint-helm (pull_request) Failing after 2m36s
lint-and-test / chart-testing (pull_request) Failing after 9m59s
2025-12-07 01:57:13 +00:00
f693b7f16f use separate jobs
All checks were successful
renovate / renovate (push) Successful in 1m56s
2025-12-04 19:56:00 -06:00
1ac412eafe readd chart testing
All checks were successful
renovate / renovate (push) Successful in 36s
2025-12-04 19:52:28 -06:00
15458b55cb fix
All checks were successful
renovate / renovate (push) Successful in 31s
2025-12-04 19:23:22 -06:00
60288e9ab6 use helm lint instead
All checks were successful
renovate / renovate (push) Successful in 39s
2025-12-04 19:21:19 -06:00
b35dbccfd2 add cache
All checks were successful
renovate / renovate (push) Successful in 35s
2025-12-04 18:57:35 -06:00
c69733c6bb change install uv
All checks were successful
renovate / renovate (push) Successful in 30s
2025-12-04 18:52:41 -06:00
6a2dbcaf85 change node version
All checks were successful
renovate / renovate (push) Successful in 34s
2025-12-04 18:38:16 -06:00
47799c0d0d setup node
All checks were successful
renovate / renovate (push) Successful in 37s
2025-12-04 18:34:30 -06:00
4c0cb5fe18 update testing
All checks were successful
renovate / renovate (push) Successful in 32s
2025-12-04 18:31:25 -06:00
857c53799a update workflows
All checks were successful
renovate / renovate (push) Successful in 2m15s
2025-12-04 18:25:01 -06:00
2f09ce9dc0 update workflows
All checks were successful
renovate / renovate (push) Successful in 2m19s
2025-12-04 18:21:28 -06:00
64d4c731c7 update common chart
Some checks failed
release-charts-cloudflared / release (push) Failing after 10s
release-charts-generic-device-plugin / release (push) Failing after 9s
renovate / renovate (push) Successful in 43s
2025-12-04 18:10:18 -06:00
80a4a3fa39 update common chart 2025-12-04 18:10:05 -06:00
d9ce69b996 update configuration 2025-12-04 18:09:45 -06:00
0767066fc5 update gitignore to only ignore chart binary folders 2025-12-04 18:09:20 -06:00
749f62a791 add debug logging
All checks were successful
renovate / renovate (push) Successful in 1m10s
2025-12-01 18:28:35 -06:00
a429797e5e pin 2025-12-01 18:26:22 -06:00
52078fa459 update docs
Some checks failed
renovate / renovate (push) Successful in 58s
release-charts-postgres-cluster / release (push) Failing after 13s
release-charts-cloudflared / release (push) Failing after 15s
2025-12-01 18:12:03 -06:00
ed0cf6155f update chart
Some checks failed
release-charts-cloudflared / release (push) Failing after 10s
release-charts-generic-device-plugin / release (push) Failing after 11s
release-charts-postgres-cluster / release (push) Failing after 13s
renovate / renovate (push) Successful in 35s
2025-12-01 18:09:15 -06:00
965b3006e9 Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to 4896ffd' (#146) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
Some checks failed
renovate / renovate (push) Successful in 40s
release-charts-generic-device-plugin / release (push) Failing after 14s
2025-12-02 00:01:18 +00:00
9b77893478 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to 4896ffd
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
lint-and-test / lint-test (pull_request) Successful in 1m1s
2025-12-02 00:01:03 +00:00
dfea3a92b1 Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to ef5deb0' (#145) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
All checks were successful
release-charts-generic-device-plugin / release (push) Successful in 57s
renovate / renovate (push) Successful in 1m11s
2025-11-25 00:01:24 +00:00
803933f7c6 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to ef5deb0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
lint-and-test / lint-test (pull_request) Successful in 54s
2025-11-25 00:01:12 +00:00
7506af9663 Merge pull request 'Update actions/checkout action to v6' (#144) from renovate/actions-checkout-6.x into main
All checks were successful
renovate / renovate (push) Successful in 1m15s
Reviewed-on: #144
2025-11-22 20:53:50 +00:00
7b35bd6005 Update actions/checkout action to v6
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 49s
2025-11-21 00:03:13 +00:00
36a7ecb017 Merge pull request 'Update ghcr.io/cloudnative-pg/postgresql Docker tag to v17.7' (#143) from renovate/ghcr.io-cloudnative-pg-postgresql-17.x into main
All checks were successful
release-charts-postgres-cluster / release (push) Successful in 20s
renovate / renovate (push) Successful in 49s
Reviewed-on: #143
2025-11-18 04:28:21 +00:00
4ae815cb5c Update ghcr.io/cloudnative-pg/postgresql Docker tag to v17.7
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 21s
2025-11-18 00:02:16 +00:00
7e41a17ab6 downgrade priority
All checks were successful
renovate / renovate (push) Successful in 52s
2025-11-10 23:29:26 -06:00
9c62b02f02 fix auto merge rule
All checks were successful
renovate / renovate (push) Successful in 29s
2025-11-10 23:27:57 -06:00
529bb9cd1f fix link
All checks were successful
renovate / renovate (push) Successful in 40s
2025-11-10 23:09:19 -06:00
7c0d740d51 improve messaging
All checks were successful
renovate / renovate (push) Successful in 59s
2025-11-10 23:02:36 -06:00
a440911a57 add pin
All checks were successful
renovate / renovate (push) Successful in 30s
2025-11-10 17:38:41 -06:00
1923aa9eba Merge pull request 'Update cloudflare/cloudflared Docker tag to v2025.11.1' (#137) from renovate/cloudflare-cloudflared-2025.x into main
All checks were successful
release-charts-cloudflared / release (push) Successful in 16s
renovate / renovate (push) Successful in 47s
Reviewed-on: #137
2025-11-10 23:36:16 +00:00
57e80cb889 Update cloudflare/cloudflared Docker tag to v2025.11.1
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 17s
2025-11-10 23:34:37 +00:00
7ca61d22a9 downgrade
All checks were successful
renovate / renovate (push) Successful in 54s
2025-11-10 17:34:13 -06:00
1f5bbe4536 pin
All checks were successful
renovate / renovate (push) Successful in 41s
2025-11-10 17:31:06 -06:00
db7b019e7f update version
All checks were successful
renovate / renovate (push) Successful in 33s
2025-11-10 17:23:58 -06:00
c1229130a9 pin yamale version
All checks were successful
renovate / renovate (push) Successful in 32s
2025-11-10 17:22:12 -06:00
2e4547d89f downgrade python
All checks were successful
renovate / renovate (push) Successful in 1m21s
2025-11-10 17:15:43 -06:00
ec1d4b6734 Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to e812d2d' (#139) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
All checks were successful
release-charts-generic-device-plugin / release (push) Successful in 27s
renovate / renovate (push) Successful in 1m8s
Reviewed-on: #139
2025-11-10 23:12:12 +00:00
1849703994 Merge pull request 'Update dependency python to 3.14' (#130) from renovate/python-3.x into main
Some checks failed
renovate / renovate (push) Has been cancelled
Reviewed-on: #130
2025-11-10 23:11:46 +00:00
ed71bb33f3 Merge pull request 'Update actions/setup-python action to v6' (#115) from renovate/actions-setup-python-6.x into main
Some checks failed
renovate / renovate (push) Has been cancelled
Reviewed-on: #115
2025-11-10 23:10:57 +00:00
9f784fd928 Merge pull request 'Update actions/checkout action to v5' (#112) from renovate/actions-checkout-5.x into main
Some checks failed
renovate / renovate (push) Has been cancelled
Reviewed-on: #112
2025-11-10 23:10:46 +00:00
dd664b21b9 Update actions/setup-python action to v6
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 1m47s
2025-11-10 22:46:36 +00:00
b14a7cb43a Update actions/checkout action to v5
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 1m30s
2025-11-10 22:46:29 +00:00
fa58dfc323 Update dependency python to 3.14
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 1m32s
2025-11-10 22:46:05 +00:00
951950b3a0 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to e812d2d
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 1m39s
2025-11-10 22:45:51 +00:00
711e21eb42 change to js
All checks were successful
renovate / renovate (push) Successful in 1m23s
2025-11-10 16:44:09 -06:00
59d266bddf Merge pull request 'Update ghcr.io/renovatebot/renovate Docker tag to v42' (#136) from renovate/ghcr.io-renovatebot-renovate-42.x into main
All checks were successful
renovate / renovate (push) Successful in 40s
Reviewed-on: #136
2025-11-10 04:19:48 +00:00
3aa36a4686 Update ghcr.io/renovatebot/renovate Docker tag to v42
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 1m12s
2025-11-10 04:16:46 +00:00
83c3614377 Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to 3785079' (#138) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
All checks were successful
release-charts-generic-device-plugin / release (push) Successful in 20s
renovate / renovate (push) Successful in 57s
Reviewed-on: #138
2025-11-10 04:15:57 +00:00
6310d16882 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to 3785079
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 1m37s
2025-11-10 00:02:05 +00:00
dd556ed042 use ubunutu latest
All checks were successful
renovate / renovate (push) Successful in 35s
2025-11-04 16:56:34 -06:00
3e45ada5ee add automerge for digest
All checks were successful
renovate / renovate (push) Successful in 1m55s
2025-11-04 16:29:27 -06:00
dfc1c004f7 Merge pull request 'Update ghcr.io/squat/generic-device-plugin:latest Docker digest to 0cf725e' (#134) from renovate/ghcr.io-squat-generic-device-plugin-latest into main
All checks were successful
renovate / renovate (push) Successful in 1m5s
release-charts-generic-device-plugin / release (push) Successful in 2m2s
Reviewed-on: #134
2025-11-04 22:25:16 +00:00
e356a1f5e4 Update ghcr.io/squat/generic-device-plugin:latest Docker digest to 0cf725e
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 3m10s
2025-11-04 18:23:58 +00:00
eeb862334c use 24 image
All checks were successful
renovate / renovate (push) Successful in 2m25s
2025-11-04 12:22:00 -06:00
564ac85500 Merge pull request 'Update cloudflare/cloudflared Docker tag to v2025.10.1' (#133) from renovate/cloudflare-cloudflared-2025.x into main
All checks were successful
release-charts-cloudflared / release (push) Successful in 24s
renovate / renovate (push) Successful in 41s
Reviewed-on: #133
2025-10-31 19:44:46 +00:00
9022faf339 Update cloudflare/cloudflared Docker tag to v2025.10.1
All checks were successful
lint-and-test / lint-test (pull_request) Successful in 55s
2025-10-31 00:00:52 +00:00
25 changed files with 642 additions and 172 deletions

View File

@@ -2,29 +2,49 @@ name: lint-and-test
on:
pull_request:
branches:
- main
paths:
- 'charts/**'
push:
branches:
- main
paths:
- 'charts/**'
env:
BASE_BRANCH: "origin/${{ gitea.base_ref }}"
jobs:
lint-test:
runs-on: ubuntu-latest
chart-testing:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: latest
token: ${{ secrets.GITEA_TOKEN }}
version: v3.19.2
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.13"
check-latest: true
python-version: '3.14'
- name: Set up Chart Testing
uses: helm/chart-testing-action@v2.7.0
with:
yamale_version: "6.0.0"
- name: Run Chart Testing (list-changed)
id: list-changed
@@ -37,3 +57,170 @@ jobs:
- name: Run Chart Testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --validate-maintainers=false --target-branch ${{ gitea.event.repository.default_branch }}
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Test Failure - Helm Charts'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Tests have failed for Helm Charts'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=lint-test.yaml", "clear": true}]'
image: true
lint-helm:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Check Branch Exists
id: check-branch-exists
if: github.event_name == 'pull_request'
uses: GuillaumeFalourd/branch-exists@v1.1
with:
branch: ${{ gitea.base_ref }}
- name: Report Branch Exists
id: branch-exists
if: github.event_name == 'push' || steps.check-branch-exists.outputs.exists == 'true' && github.event_name == 'pull_request'
run: |
if [ ${{ github.event_name == 'push' }} ]; then
echo ">> Action is from a push event, will continue with linting"
else
echo ">> Branch ${{ gitea.base_ref }} exists, will continue with linting"
fi
echo "----"
echo "exists=true" >> $GITEA_OUTPUT
- name: Set up Helm
uses: azure/setup-helm@v4
if: steps.branch-exists.outputs.exists == 'true'
with:
token: ${{ secrets.GITEA_TOKEN }}
version: v3
- name: Check Directories for Changes
id: check-dir-changes
if: steps.branch-exists.outputs.exists == 'true'
run: |
CHANGED_CHARTS=()
echo ">> Target branch for diff is: ${BASE_BRANCH}"
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo ""
echo ">> Checking for changes in a pull request ..."
GIT_DIFF=$(git diff --name-only "${BASE_BRANCH}" | xargs -I {} dirname {} | sort -u | grep -E "charts/")
else
echo ""
echo ">> Checking for changes from a push ..."
GIT_DIFF=$(git diff --name-only ${{ gitea.event.before }}..HEAD | xargs -I {} dirname {} | sort -u | grep -E "charts/")
fi
if [ -n "${GIT_DIFF}" ]; then
echo ""
echo ">> Changes detected:"
echo "$GIT_DIFF"
for path in $GIT_DIFF; do
CHANGED_CHARTS+=$(echo "$path" | awk -F '/' '{print $2}')
CHANGED_CHARTS+=$(echo " ")
done
else
echo ""
echo ">> No changes detected"
fi
if [ -n "${CHANGED_CHARTS}" ]; then
echo ""
echo ">> Chart to Lint:"
echo "$(echo "${CHANGED_CHARTS}" | sort -u)"
echo "----"
echo "changes-detected=true" >> $GITEA_OUTPUT
echo "chart-dir<<EOF" >> $GITEA_OUTPUT
echo "$(echo "${CHANGED_CHARTS}" | sort -u)" >> $GITEA_OUTPUT
echo "EOF" >> $GITEA_OUTPUT
else
echo "changes-detected=false" >> $GITEA_OUTPUT
fi
- name: Add Repositories
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
CHANGED_CHARTS: ${{ steps.check-dir-changes.outputs.chart-dir }}
run: |
echo ">> Adding repositories for chart dependencies ..."
for dir in ${CHANGED_CHARTS}; do
helm dependency list --max-col-width 120 charts/$dir 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
done
if helm repo list | tail +2 | read -r; then
echo ""
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Lint Helm Chart
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
CHANGED_CHARTS: ${{ steps.check-dir-changes.outputs.chart-dir }}
run: |
echo ">> Running linting on changed charts ..."
for dir in ${CHANGED_CHARTS}; do
chart_path=charts/$dir
chart_name=$(basename "$chart_path")
if [ -f "$chart_path/Chart.yaml" ]; then
cd $chart_path
echo ""
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh
echo ""
echo ">> Linting helm ..."
helm lint --namespace "$chart_name"
else
echo ""
echo ">> Directory $chart_path does not contain a Chart.yaml. Skipping ..."
echo ""
fi
done
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Test Failure - Helm Charts'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Tests have failed for Helm Charts'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=lint-test.yaml", "clear": true}]'
image: true

View File

@@ -14,37 +14,80 @@ env:
jobs:
release:
runs-on: ubuntu-latest
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
version: v3.19.2
- name: Add Repositories
run: |
cd ${WORKFLOW_DIR}
echo ">> Adding repositories for chart dependencies ..."
helm dependency list --max-col-width 120 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Package Helm Chart
run: |
cd $WORKFLOW_DIR
helm dependency build
cd ${WORKFLOW_DIR}
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh --debug
echo "----"
echo "PACKAGE_PATH=$(helm package . | awk '{print $NF}')" >> $GITEA_ENV
- name: Publish Helm Chart to Harbor
run: |
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }}
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts
echo ">> Logging into Harbor ..."
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }} --debug
echo ""
echo ">> Publishing chart to Harbor ..."
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts --debug
echo "----"
- name: Publish Helm Chart to Gitea
run: |
helm plugin install https://github.com/chartmuseum/helm-push
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts
echo ">> Installing Chart Museum plugin ..."
helm plugin install https://github.com/chartmuseum/helm-push --debug
echo ""
echo ">> Adding Gitea repository ..."
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm --debug
echo ""
echo ">> Pushing chart to gitea"
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts --debug
- name: Extract Chart Metadata
run: |
cd $WORKFLOW_DIR
cd ${WORKFLOW_DIR}
echo ">> Adding Chart metadata to workflow ENV ..."
echo ""
echo ">> Chart Version: $(yq '.version' Chart.yaml)"
echo ">> Chart Name: $(yq '.name' Chart.yaml)"
echo "----"
echo "CHART_VERSION=$(yq '.version' Chart.yaml)" >> $GITEA_ENV
echo "CHART_NAME=$(yq '.name' Chart.yaml)" >> $GITEA_ENV
@@ -62,11 +105,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Success - ${{ env.CHART_NAME }}'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Helm Chart for cloudflared release workflow has successfully completed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
@@ -75,11 +118,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Failure - ${{ env.CHART_NAME }}'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Helm Chart for cloudflared release workflow has failed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=release-charts-cloudflared.yml", "clear": true}]'
image: true

View File

@@ -14,37 +14,80 @@ env:
jobs:
release:
runs-on: ubuntu-latest
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
version: v3.19.2
- name: Add Repositories
run: |
cd ${WORKFLOW_DIR}
echo ">> Adding repositories for chart dependencies ..."
helm dependency list --max-col-width 120 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Package Helm Chart
run: |
cd $WORKFLOW_DIR
helm dependency build
cd ${WORKFLOW_DIR}
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh --debug
echo "----"
echo "PACKAGE_PATH=$(helm package . | awk '{print $NF}')" >> $GITEA_ENV
- name: Publish Helm Chart to Harbor
run: |
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }}
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts
echo ">> Logging into Harbor ..."
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }} --debug
echo ""
echo ">> Publishing chart to Harbor ..."
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts --debug
echo "----"
- name: Publish Helm Chart to Gitea
run: |
helm plugin install https://github.com/chartmuseum/helm-push
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts
echo ">> Installing Chart Museum plugin ..."
helm plugin install https://github.com/chartmuseum/helm-push --debug
echo ""
echo ">> Adding Gitea repository ..."
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm --debug
echo ""
echo ">> Pushing chart to gitea"
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts --debug
- name: Extract Chart Metadata
run: |
cd $WORKFLOW_DIR
cd ${WORKFLOW_DIR}
echo ">> Adding Chart metadata to workflow ENV ..."
echo ""
echo ">> Chart Version: $(yq '.version' Chart.yaml)"
echo ">> Chart Name: $(yq '.name' Chart.yaml)"
echo "----"
echo "CHART_VERSION=$(yq '.version' Chart.yaml)" >> $GITEA_ENV
echo "CHART_NAME=$(yq '.name' Chart.yaml)" >> $GITEA_ENV
@@ -62,11 +105,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Success - ${{ env.CHART_NAME }}'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Helm Chart for generic-device-plugin release workflow has successfully completed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
@@ -75,11 +118,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Failure - ${{ env.CHART_NAME }}'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Helm Chart for generic-device-plugin release workflow has failed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=release-charts-generic-device-plugin.yml", "clear": true}]'
image: true

View File

@@ -14,37 +14,80 @@ env:
jobs:
release:
runs-on: ubuntu-latest
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
version: v3.19.2
- name: Add Repositories
run: |
cd ${WORKFLOW_DIR}
echo ">> Adding repositories for chart dependencies ..."
helm dependency list --max-col-width 120 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Package Helm Chart
run: |
cd $WORKFLOW_DIR
helm dependency build
cd ${WORKFLOW_DIR}
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh --debug
echo "----"
echo "PACKAGE_PATH=$(helm package . | awk '{print $NF}')" >> $GITEA_ENV
- name: Publish Helm Chart to Harbor
run: |
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }}
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts
echo ">> Logging into Harbor ..."
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }} --debug
echo ""
echo ">> Publishing chart to Harbor ..."
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts --debug
echo "----"
- name: Publish Helm Chart to Gitea
run: |
helm plugin install https://github.com/chartmuseum/helm-push
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts
echo ">> Installing Chart Museum plugin ..."
helm plugin install https://github.com/chartmuseum/helm-push --debug
echo ""
echo ">> Adding Gitea repository ..."
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm --debug
echo ""
echo ">> Pushing chart to gitea"
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts --debug
- name: Extract Chart Metadata
run: |
cd $WORKFLOW_DIR
cd ${WORKFLOW_DIR}
echo ">> Adding Chart metadata to workflow ENV ..."
echo ""
echo ">> Chart Version: $(yq '.version' Chart.yaml)"
echo ">> Chart Name: $(yq '.name' Chart.yaml)"
echo "----"
echo "CHART_VERSION=$(yq '.version' Chart.yaml)" >> $GITEA_ENV
echo "CHART_NAME=$(yq '.name' Chart.yaml)" >> $GITEA_ENV
@@ -62,11 +105,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Success - ${{ env.CHART_NAME }}'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Helm Chart for gitea-actions release workflow has successfully completed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
@@ -75,11 +118,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Failure - ${{ env.CHART_NAME }}'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Helm Chart for gitea-actions release workflow has failed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=release-charts-gitea-actions.yml", "clear": true}]'
image: true

View File

@@ -14,37 +14,80 @@ env:
jobs:
release:
runs-on: ubuntu-latest
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
version: v3.19.2
- name: Add Repositories
run: |
cd ${WORKFLOW_DIR}
echo ">> Adding repositories for chart dependencies ..."
helm dependency list --max-col-width 120 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Package Helm Chart
run: |
cd $WORKFLOW_DIR
helm dependency build
cd ${WORKFLOW_DIR}
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh --debug
echo "----"
echo "PACKAGE_PATH=$(helm package . | awk '{print $NF}')" >> $GITEA_ENV
- name: Publish Helm Chart to Harbor
run: |
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }}
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts
echo ">> Logging into Harbor ..."
helm registry login ${{ vars.REGISTRY_HOST }} -u ${{ vars.REGISTRY_USER }} -p ${{ secrets.REGISTRY_SECRET }} --debug
echo ""
echo ">> Publishing chart to Harbor ..."
helm push ${{ env.PACKAGE_PATH }} oci://${{ vars.REGISTRY_HOST }}/helm-charts --debug
echo "----"
- name: Publish Helm Chart to Gitea
run: |
helm plugin install https://github.com/chartmuseum/helm-push
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts
echo ">> Installing Chart Museum plugin ..."
helm plugin install https://github.com/chartmuseum/helm-push --debug
echo ""
echo ">> Adding Gitea repository ..."
helm repo add --username ${{ gitea.actor }} --password ${{ secrets.REPOSITORY_TOKEN }} helm-charts https://${{ vars.REPOSITORY_HOST }}/api/packages/alexlebens/helm --debug
echo ""
echo ">> Pushing chart to gitea"
helm cm-push ${{ env.PACKAGE_PATH }} helm-charts --debug
- name: Extract Chart Metadata
run: |
cd $WORKFLOW_DIR
cd ${WORKFLOW_DIR}
echo ">> Adding Chart metadata to workflow ENV ..."
echo ""
echo ">> Chart Version: $(yq '.version' Chart.yaml)"
echo ">> Chart Name: $(yq '.name' Chart.yaml)"
echo "----"
echo "CHART_VERSION=$(yq '.version' Chart.yaml)" >> $GITEA_ENV
echo "CHART_NAME=$(yq '.name' Chart.yaml)" >> $GITEA_ENV
@@ -62,11 +105,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Success - ${{ env.CHART_NAME }}'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Helm Chart for postgres-cluster release workflow has successfully completed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
@@ -75,11 +118,11 @@ jobs:
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Gitea Action'
title: 'Release Failure - ${{ env.CHART_NAME }}'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Helm Chart for postgres-cluster release workflow has failed!'
details: 'Helm Chart ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }} has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/helm-charts/actions?workflow=release-charts-postgres-cluster.yml", "clear": true}]'
image: true

View File

@@ -13,10 +13,10 @@ on:
jobs:
renovate:
runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:41
container: ghcr.io/renovatebot/renovate:42
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Renovate
run: renovate

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

10
.gitignore vendored
View File

@@ -1,12 +1,2 @@
# Archived
charts/**/archive
# Compiled Helm chart dependencies
charts/**/Chart.lock
charts/**/charts/
# Testing
__snapshot__/
# Docs
_site/

View File

@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
digest: sha256:cd050e107fbec6769024a6d316c3f43701295a55cddf53a9fc304b52ea879560
generated: "2025-12-04T18:06:50.235715-06:00"

View File

@@ -1,6 +1,6 @@
apiVersion: v2
name: cloudflared
version: 1.22.1
version: 1.23.2
description: Cloudflared Tunnel
keywords:
- cloudflare
@@ -13,6 +13,6 @@ maintainers:
dependencies:
- name: common
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
version: 4.5.0
icon: https://avatars.githubusercontent.com/u/314135?s=48&v=4
appVersion: "2025.10.0"
appVersion: "2025.11.1"

View File

@@ -1,6 +1,6 @@
# cloudflared
![Version: 1.22.1](https://img.shields.io/badge/Version-1.22.1-informational?style=flat-square) ![AppVersion: 2025.10.0](https://img.shields.io/badge/AppVersion-2025.10.0-informational?style=flat-square)
![Version: 1.23.2](https://img.shields.io/badge/Version-1.23.2-informational?style=flat-square) ![AppVersion: 2025.11.1](https://img.shields.io/badge/AppVersion-2025.11.1-informational?style=flat-square)
Cloudflared Tunnel
@@ -19,7 +19,7 @@ Cloudflared Tunnel
| Repository | Name | Version |
|------------|------|---------|
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.4.0 |
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.5.0 |
## Values
@@ -27,7 +27,7 @@ Cloudflared Tunnel
|-----|------|---------|-------------|
| existingSecretKey | string | `"cf-tunnel-token"` | Name of key that contains the token in the existingSecret |
| existingSecretName | string | `"cloudflared-secret"` | Name of existing secret that contains Cloudflare token |
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2025.10.0"}` | Default image |
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2025.11.1"}` | Default image |
| name | string | `"cloudflared"` | Name override of release |
| resources | object | `{"requests":{"cpu":"10m","memory":"128Mi"}}` | Default resources |

View File

@@ -10,7 +10,7 @@ existingSecretKey: cf-tunnel-token
# -- Default image
image:
repository: cloudflare/cloudflared
tag: "2025.10.0"
tag: "2025.11.1"
pullPolicy: IfNotPresent
# -- Default resources

View File

@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.5.0
digest: sha256:cd050e107fbec6769024a6d316c3f43701295a55cddf53a9fc304b52ea879560
generated: "2025-12-04T18:08:17.823318-06:00"

View File

@@ -1,6 +1,6 @@
apiVersion: v2
name: generic-device-plugin
version: 0.17.0
version: 0.20.7
description: Generic Device Plugin
keywords:
- generic-device-plugin
@@ -14,5 +14,5 @@ maintainers:
dependencies:
- name: common
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
appVersion: 0.15.0
version: 4.5.0
appVersion: 0.20.4

View File

@@ -1,6 +1,6 @@
# generic-device-plugin
![Version: 0.16.0](https://img.shields.io/badge/Version-0.16.0-informational?style=flat-square) ![AppVersion: 0.15.0](https://img.shields.io/badge/AppVersion-0.15.0-informational?style=flat-square)
![Version: 0.20.6](https://img.shields.io/badge/Version-0.20.6-informational?style=flat-square) ![AppVersion: 0.20.4](https://img.shields.io/badge/AppVersion-0.20.4-informational?style=flat-square)
Generic Device Plugin
@@ -19,7 +19,7 @@ Generic Device Plugin
| Repository | Name | Version |
|------------|------|---------|
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.4.0 |
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.5.0 |
## Values
@@ -28,7 +28,7 @@ Generic Device Plugin
| config | object | `{"data":"devices:\n - name: serial\n groups:\n - paths:\n - path: /dev/ttyUSB*\n - paths:\n - path: /dev/ttyACM*\n - paths:\n - path: /dev/tty.usb*\n - paths:\n - path: /dev/cu.*\n - paths:\n - path: /dev/cuaU*\n - paths:\n - path: /dev/rfcomm*\n - name: video\n groups:\n - paths:\n - path: /dev/video0\n - name: fuse\n groups:\n - count: 10\n paths:\n - path: /dev/fuse\n - name: audio\n groups:\n - count: 10\n paths:\n - path: /dev/snd\n - name: capture\n groups:\n - paths:\n - path: /dev/snd/controlC0\n - path: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC1\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC1D0c\n mountPath: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC2\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC2D0c\n mountPath: /dev/snd/pcmC0D0c\n - paths:\n - path: /dev/snd/controlC3\n mountPath: /dev/snd/controlC0\n - path: /dev/snd/pcmC3D0c\n mountPath: /dev/snd/pcmC0D0c\n","enabled":true}` | Config map |
| config.data | string | See [values.yaml](./values.yaml) | generic-device-plugin config file [[ref]](https://github.com/squat/generic-device-plugin#usage) |
| deviceDomain | string | `"devic.es"` | Domain used by devices for identifcation |
| image | object | `{"pullPolicy":"Always","repository":"ghcr.io/squat/generic-device-plugin","tag":"latest@sha256:62dda74362cc607b00d1ade291c192ea894d8bdc53a969ed5328b866b2988597"}` | Default image |
| image | object | `{"pullPolicy":"Always","repository":"ghcr.io/squat/generic-device-plugin","tag":"latest@sha256:d64b1c851b534de348bcd3189555a22d3966e6592fc79d2a78abfff4f6c1a2e1"}` | Default image |
| name | string | `"generic-device-plugin"` | Name override of release |
| resources | object | `{"requests":{"cpu":"50m","memory":"10Mi"}}` | Default resources |
| service | object | `{"listenPort":8080}` | Service port |

View File

@@ -4,7 +4,7 @@ name: generic-device-plugin
# -- Default image
image:
repository: ghcr.io/squat/generic-device-plugin
tag: latest@sha256:eebecd9172b4c2a61e4b3149c943a4ef2c293d7ceb89b69fec5ce5092eb7cf16
tag: latest@sha256:aa0571c7f461fb99747ada00f2de69eb856dcbbc0e87965fffe37a15f7bc006f
pullPolicy: Always
# -- Domain used by devices for identifcation

View File

@@ -1,6 +1,6 @@
apiVersion: v2
name: postgres-cluster
version: 6.15.0
version: 7.1.0
description: Cloudnative-pg Cluster
keywords:
- database
@@ -11,4 +11,4 @@ sources:
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/100373852?s=48&v=4
appVersion: v1.27.0
appVersion: v1.28.0

View File

@@ -1,6 +1,6 @@
# postgres-cluster
![Version: 6.15.0](https://img.shields.io/badge/Version-6.15.0-informational?style=flat-square) ![AppVersion: v1.27.0](https://img.shields.io/badge/AppVersion-v1.27.0-informational?style=flat-square)
![Version: 7.1.0](https://img.shields.io/badge/Version-7.1.0-informational?style=flat-square) ![AppVersion: v1.28.0](https://img.shields.io/badge/AppVersion-v1.28.0-informational?style=flat-square)
Cloudnative-pg Cluster
@@ -23,25 +23,25 @@ Cloudnative-pg Cluster
| backup.method | string | `"objectStore"` | Method to create backups, options currently are only objectStore |
| backup.objectStore | list | `[]` | Options for object store backups |
| backup.scheduledBackups | list | `[]` | List of scheduled backups |
| cluster | object | `{"additionalLabels":{},"affinity":{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"},"annotations":{},"certificates":{},"enablePDB":true,"enableSuperuserAccess":false,"image":{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"17.6-standard-trixie"},"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"initdb":{},"instances":3,"logLevel":"info","monitoring":{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":false,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":false,"excludeRules":["CNPGClusterLastFailedArchiveTimeWarning"]}},"postgresGID":-1,"postgresUID":-1,"postgresql":{"ldap":{},"parameters":{"hot_standby_feedback":"on","max_slot_wal_keep_size":"2000MB","shared_buffers":"128MB"},"pg_hba":[],"pg_ident":[],"shared_preload_libraries":[],"synchronous":{}},"primaryUpdateMethod":"switchover","primaryUpdateStrategy":"unsupervised","priorityClassName":"","resources":{"limits":{"hugepages-2Mi":"256Mi"},"requests":{"cpu":"100m","memory":"256Mi"}},"roles":[],"serviceAccountTemplate":{},"services":{},"storage":{"size":"10Gi","storageClass":""},"superuserSecret":"","walStorage":{"enabled":true,"size":"2Gi","storageClass":""}}` | Cluster settings |
| cluster | object | `{"additionalLabels":{},"affinity":{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"},"annotations":{},"certificates":{},"enablePDB":true,"enableSuperuserAccess":false,"image":{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"18.1-standard-trixie"},"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"initdb":{"database":"app","owner":"app"},"instances":3,"logLevel":"info","monitoring":{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":true,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":true,"excludeRules":["CNPGClusterLastFailedArchiveTimeWarning"]}},"postgresGID":-1,"postgresUID":-1,"postgresql":{"ldap":{},"parameters":{"hot_standby_feedback":"on","max_slot_wal_keep_size":"2000MB","shared_buffers":"128MB"},"pg_hba":[],"pg_ident":[],"shared_preload_libraries":[],"synchronous":{}},"primaryUpdateMethod":"switchover","primaryUpdateStrategy":"unsupervised","priorityClassName":"","resources":{"limits":{"hugepages-2Mi":"256Mi"},"requests":{"cpu":"100m","memory":"256Mi"}},"roles":[],"serviceAccountTemplate":{},"services":{},"storage":{"size":"10Gi","storageClass":""},"superuserSecret":"","walStorage":{"enabled":true,"size":"2Gi","storageClass":""}}` | Cluster settings |
| cluster.affinity | object | `{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"}` | Affinity/Anti-affinity rules for Pods. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-AffinityConfiguration |
| cluster.certificates | object | `{}` | The configuration for the CA and related certificates. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-CertificatesConfiguration |
| cluster.enablePDB | bool | `true` | Allow to disable PDB, mainly useful for upgrade of single-instance clusters or development purposes See: https://cloudnative-pg.io/documentation/current/kubernetes_upgrade/#pod-disruption-budgets |
| cluster.enableSuperuserAccess | bool | `false` | When this option is enabled, the operator will use the SuperuserSecret to update the postgres user password. If the secret is not present, the operator will automatically create one. When this option is disabled, the operator will ignore the SuperuserSecret content, delete it when automatically created, and then blank the password of the postgres user by setting it to NULL. |
| cluster.image | object | `{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"17.6-standard-trixie"}` | Default image |
| cluster.image | object | `{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"18.1-standard-trixie"}` | Default image |
| cluster.imagePullPolicy | string | `"IfNotPresent"` | Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images |
| cluster.imagePullSecrets | list | `[]` | The list of pull secrets to be used to pull the images. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-LocalObjectReference |
| cluster.initdb | object | `{}` | Bootstrap is the configuration of the bootstrap process when initdb is used. See: https://cloudnative-pg.io/documentation/current/bootstrap/ See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb |
| cluster.initdb | object | `{"database":"app","owner":"app"}` | Bootstrap is the configuration of the bootstrap process when initdb is used. See: https://cloudnative-pg.io/documentation/current/bootstrap/ See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb |
| cluster.logLevel | string | `"info"` | The instances' log level, one of the following values: error, warning, info (default), debug, trace |
| cluster.monitoring | object | `{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":false,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":false,"excludeRules":["CNPGClusterLastFailedArchiveTimeWarning"]}}` | Enable default monitoring and alert rules |
| cluster.monitoring | object | `{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":true,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":true,"excludeRules":["CNPGClusterLastFailedArchiveTimeWarning"]}}` | Enable default monitoring and alert rules |
| cluster.monitoring.customQueries | list | `[]` | Custom Prometheus metrics Will be stored in the ConfigMap |
| cluster.monitoring.customQueriesSecret | list | `[]` | The list of secrets containing the custom queries |
| cluster.monitoring.disableDefaultQueries | bool | `false` | Whether the default queries should be injected. Set it to true if you don't want to inject default queries into the cluster. |
| cluster.monitoring.enabled | bool | `false` | Whether to enable monitoring |
| cluster.monitoring.enabled | bool | `true` | Whether to enable monitoring |
| cluster.monitoring.podMonitor.enabled | bool | `true` | Whether to enable the PodMonitor |
| cluster.monitoring.podMonitor.metricRelabelings | list | `[]` | The list of metric relabelings for the PodMonitor. Applied to samples before ingestion. |
| cluster.monitoring.podMonitor.relabelings | list | `[]` | The list of relabelings for the PodMonitor. Applied to samples before scraping. |
| cluster.monitoring.prometheusRule.enabled | bool | `false` | Whether to enable the PrometheusRule automated alerts |
| cluster.monitoring.prometheusRule.enabled | bool | `true` | Whether to enable the PrometheusRule automated alerts |
| cluster.monitoring.prometheusRule.excludeRules | list | `["CNPGClusterLastFailedArchiveTimeWarning"]` | Exclude specified rules |
| cluster.postgresUID | int | `-1` | The UID and GID of the postgres user inside the image, defaults to 26 |
| cluster.postgresql | object | `{"ldap":{},"parameters":{"hot_standby_feedback":"on","max_slot_wal_keep_size":"2000MB","shared_buffers":"128MB"},"pg_hba":[],"pg_ident":[],"shared_preload_libraries":[],"synchronous":{}}` | Parameters to be set for the database itself See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-PostgresConfiguration |
@@ -58,11 +58,12 @@ Cloudnative-pg Cluster
| cluster.serviceAccountTemplate | object | `{}` | Configure the metadata of the generated service account |
| cluster.services | object | `{}` | Customization of service definitions. Please refer to https://cloudnative-pg.io/documentation/current/service_management/ |
| cluster.storage | object | `{"size":"10Gi","storageClass":""}` | Default storage size |
| databases | list | `[]` | Database management configuration |
| mode | string | `"standalone"` | Cluster mode of operation. Available modes: * `standalone` - Default mode. Creates new or updates an existing CNPG cluster. * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup |
| nameOverride | string | `""` | Override the name of the cluster |
| namespaceOverride | string | `""` | Override the namespace of the chart |
| poolers | list | `[]` | List of PgBouncer poolers |
| recovery | object | `{"backup":{"backupName":"","database":"app","owner":"","pitrTarget":{"time":""}},"import":{"databases":[],"pgDumpExtraOptions":[],"pgRestoreExtraOptions":[],"postImportApplicationSQL":[],"roles":[],"schemaOnly":false,"source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":"app"},"type":"microservice"},"method":"backup","objectStore":{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"database":"app","destinationPath":"","endpointCA":{"create":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"https://nyc3.digitaloceanspaces.com","index":1,"name":"recovery","owner":"","pitrTarget":{"time":""},"wal":{"compression":"snappy","encryption":"","maxParallel":1}},"pgBaseBackup":{"database":"app","owner":"","secret":"","source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":""}}}` | Recovery settings when booting cluster from external cluster |
| recovery | object | `{"backup":{"backupName":"","database":"app","owner":"","pitrTarget":{"time":""}},"import":{"databases":[],"pgDumpExtraOptions":[],"pgRestoreExtraOptions":[],"postImportApplicationSQL":[],"roles":[],"schemaOnly":false,"source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":"app"},"type":"microservice"},"method":"backup","objectStore":{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"database":"app","destinationPath":"","endpointCA":{"create":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"https://nyc3.digitaloceanspaces.com","index":1,"name":"recovery","owner":"","pitrTarget":{"time":""},"wal":{"compression":"snappy","encryption":"","maxParallel":1}},"pgBaseBackup":{"database":"app","owner":"","secret":"","source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"disable","sslRootCertSecret":{"key":"","name":""},"username":""}}}` | Recovery settings when booting cluster from external cluster |
| recovery.backup.backupName | string | `""` | Name of the backup to recover from. |
| recovery.backup.database | string | `"app"` | Name of the database used by the application. Default: `app`. |
| recovery.backup.owner | string | `""` | Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key. |
@@ -103,7 +104,7 @@ Cloudnative-pg Cluster
| recovery.pgBaseBackup.database | string | `"app"` | Name of the database used by the application. Default: `app`. |
| recovery.pgBaseBackup.owner | string | `""` | Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key. |
| recovery.pgBaseBackup.secret | string | `""` | Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch |
| recovery.pgBaseBackup.source | object | `{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":""}` | Configuration for the source database |
| recovery.pgBaseBackup.source | object | `{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"disable","sslRootCertSecret":{"key":"","name":""},"username":""}` | Configuration for the source database |
| recovery.pgBaseBackup.source.passwordSecret.create | bool | `false` | Whether to create a secret for the password |
| recovery.pgBaseBackup.source.passwordSecret.key | string | `"password"` | The key in the secret containing the password |
| recovery.pgBaseBackup.source.passwordSecret.name | string | `""` | Name of the secret containing the password |

View File

@@ -23,7 +23,7 @@ bootstrap:
{{- else if eq .Values.mode "recovery" -}}
bootstrap:
{{- if eq .Values.recovery.method "pgBaseBackup" }}
{{- if eq .Values.recovery.method "pgBaseBackup" }}
pg_basebackup:
source: pgBaseBackupSource
{{ with .Values.recovery.pgBaseBackup.database }}
@@ -36,10 +36,8 @@ bootstrap:
secret:
{{- toYaml . | nindent 6 }}
{{- end }}
externalClusters:
{{- include "cluster.externalSourceCluster" (list "pgBaseBackupSource" .Values.recovery.pgBaseBackup.source) | nindent 2 }}
{{- else if eq .Values.recovery.method "import" }}
{{- else if eq .Values.recovery.method "import" }}
initdb:
{{- with .Values.cluster.initdb }}
{{- with (omit . "owner" "import" "postInitApplicationSQL") }}
@@ -63,7 +61,7 @@ externalClusters:
{{- end }}
{{- if eq .Values.recovery.import.type "monolith" }}
roles:
{{- with .Values.replica.importRoles }}
{{- with .Values.recovery.import.roles }}
{{- . | toYaml | nindent 8 }}
{{- end }}
{{- end }}
@@ -82,10 +80,8 @@ externalClusters:
pgRestoreExtraOptions:
{{- . | toYaml | nindent 8 }}
{{- end }}
externalClusters:
{{- include "cluster.externalSourceCluster" (list "importSource" .Values.recovery.import.source) | nindent 2 }}
{{- else if eq .Values.recovery.method "backup" }}
{{- else if eq .Values.recovery.method "backup" }}
recovery:
{{- with .Values.recovery.backup.pitrTarget.time }}
recoveryTarget:
@@ -100,7 +96,7 @@ externalClusters:
backup:
name: {{ .Values.recovery.backup.backupName }}
{{- else if eq .Values.recovery.method "objectStore" }}
{{- else if eq .Values.recovery.method "objectStore" }}
recovery:
{{- with .Values.recovery.objectStore.pitrTarget.time }}
recoveryTarget:
@@ -114,19 +110,9 @@ externalClusters:
{{- end }}
source: {{ include "cluster.recoveryServerName" . }}
externalClusters:
- name: {{ include "cluster.recoveryServerName" . }}
plugin:
name: barman-cloud.cloudnative-pg.io
enabled: true
isWALArchiver: false
parameters:
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
serverName: {{ include "cluster.recoveryServerName" . }}
{{- else }}
{{ fail "Invalid recovery mode!" }}
{{- end }}
{{- else }}
{{ fail "Invalid recovery mode!" }}
{{- end }}
{{- else }}
{{ fail "Invalid cluster mode!" }}

View File

@@ -0,0 +1,24 @@
{{- define "cluster.externalClusters" -}}
externalClusters:
{{- if eq .Values.mode "standalone" }}
{{- else if eq .Values.mode "recovery" }}
{{- if eq .Values.recovery.method "pgBaseBackup" }}
- name: pgBaseBackupSource
{{- include "cluster.externalSourceCluster" .Values.recovery.pgBaseBackup.source | nindent 4 }}
{{- else if eq .Values.recovery.method "import" }}
- name: importSource
{{- include "cluster.externalSourceCluster" .Values.recovery.import.source | nindent 4 }}
{{- else if eq .Values.recovery.method "objectStore" }}
- name: {{ include "cluster.recoveryServerName" . }}
plugin:
name: barman-cloud.cloudnative-pg.io
enabled: true
isWALArchiver: false
barmanObjectStore:
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
serverName: {{ include "cluster.recoveryServerName" . }}
{{- end }}
{{- else }}
{{ fail "Invalid cluster mode!" }}
{{- end }}
{{ end }}

View File

@@ -19,32 +19,6 @@ spec:
{{- end }}
postgresUID: {{ include "cluster.postgresUID" . }}
postgresGID: {{ include "cluster.postgresGID" . }}
plugins:
{{- range $objectStore := .Values.backup.objectStore }}
- name: barman-cloud.cloudnative-pg.io
enabled: true
{{- if $objectStore.isWALArchiver }}
isWALArchiver: true
{{- else }}
isWALArchiver: false
{{- end }}
parameters:
barmanObjectName: "{{ include "cluster.name" $ }}-{{ $objectStore.name }}-backup"
{{- if $objectStore.clusterName }}
serverName: "{{ $objectStore.clusterName }}-backup-{{ $objectStore.index }}"
{{- else }}
serverName: "{{ include "cluster.name" $ }}-backup-{{ $objectStore.index }}"
{{- end }}
{{- end }}
{{ if (eq .Values.recovery.method "objectStore") }}
externalClusters:
- name: recovery
plugin:
name: barman-cloud.cloudnative-pg.io
parameters:
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
serverName: {{ include "cluster.recoveryServerName" . }}
{{ end }}
storage:
size: {{ .Values.cluster.storage.size }}
{{- if not (empty .Values.cluster.storage.storageClass) }}
@@ -155,4 +129,23 @@ spec:
{{ end }}
{{- end }}
plugins:
{{- range $objectStore := .Values.backup.objectStore }}
- name: barman-cloud.cloudnative-pg.io
enabled: true
{{- if $objectStore.isWALArchiver }}
isWALArchiver: true
{{- else }}
isWALArchiver: false
{{- end }}
parameters:
barmanObjectName: "{{ include "cluster.name" $ }}-{{ $objectStore.name }}-backup"
{{- if $objectStore.clusterName }}
serverName: "{{ $objectStore.clusterName }}-backup-{{ $objectStore.index }}"
{{- else }}
serverName: "{{ include "cluster.name" $ }}-backup-{{ $objectStore.index }}"
{{- end }}
{{- end }}
{{ include "cluster.bootstrap" . | nindent 2 }}
{{ include "cluster.externalClusters" . | nindent 2 }}

View File

@@ -0,0 +1,76 @@
{{- range .Values.databases }}
---
apiVersion: postgresql.cnpg.io/v1
kind: Database
metadata:
name: {{ include "cluster.name" $ }}-database-{{ .name | replace "_" "-" }}
namespace: {{ include "cluster.namespace" $ }}
labels:
{{- include "cluster.labels" $ | nindent 4 }}
spec:
name: {{ .name }}
cluster:
name: {{ include "cluster.name" $ }}
ensure: {{ .ensure | default "present" }}
owner: {{ .owner }}
template: {{ .template | default "template1" }}
encoding: {{ .encoding | default "UTF8" }}
databaseReclaimPolicy: {{ .databaseReclaimPolicy | default "retain" }}
{{- with .isTemplate }}
isTemplate: {{ . }}
{{- end }}
{{- with .allowConnections }}
allowConnections: {{ . }}
{{- end }}
{{- with .connectionLimit }}
connectionLimit: {{ . }}
{{- end }}
{{- with .tablespace }}
tablespace: {{ . }}
{{- end }}
{{- with .locale }}
locale: {{ . }}
{{- end }}
{{- with .localeProvider }}
localeProvider: {{ . }}
{{- end }}
{{- with .localeCollate }}
localeCollate: {{ . }}
{{- end }}
{{- with .localeCType }}
localeCType: {{ . }}
{{- end }}
{{- with .icuLocale }}
icuLocale: {{ . }}
{{- end }}
{{- with .icuRules }}
icuRules: {{ . }}
{{- end }}
{{- with .builtinLocale }}
builtinLocale: {{ . }}
{{- end }}
{{- with .collationVersion }}
collationVersion: {{ . | quote }}
{{- end }}
{{- with .schemas }}
schemas:
{{- range . }}
- name: {{ .name }}
owner: {{ .owner }}
ensure: {{ .ensure | default "present" }}
{{- end }}
{{- end }}
{{- with .extensions }}
extensions:
{{- range . }}
- name: {{ .name }}
{{- with .version }}
version: {{ . }}
{{- end }}
{{- with .schema }}
schema: {{ . }}
{{- end }}
ensure: {{ .ensure | default "present" }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -3,7 +3,7 @@
apiVersion: postgresql.cnpg.io/v1
kind: Pooler
metadata:
name: {{ include "cluster.name" $ }}-pooler-{{ .name }}
name: {{ include "cluster.name" $ }}-pooler-{{ .name }}
namespace: {{ include "cluster.namespace" $ }}
labels:
{{- include "cluster.labels" $ | nindent 4 }}

View File

@@ -20,7 +20,7 @@ cluster:
# -- Default image
image:
repository: ghcr.io/cloudnative-pg/postgresql
tag: 17.6-standard-trixie
tag: 18.1-standard-trixie
# -- Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated.
# More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
@@ -109,7 +109,7 @@ cluster:
monitoring:
# -- Whether to enable monitoring
enabled: false
enabled: true
podMonitor:
@@ -127,7 +127,7 @@ cluster:
prometheusRule:
# -- Whether to enable the PrometheusRule automated alerts
enabled: false
enabled: true
# -- Exclude specified rules
excludeRules:
@@ -197,9 +197,9 @@ cluster:
# -- Bootstrap is the configuration of the bootstrap process when initdb is used.
# See: https://cloudnative-pg.io/documentation/current/bootstrap/
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb
initdb: {}
# database: app
# owner: "" # Defaults to the database name
initdb:
database: app
owner: app
# secret:
# name: "" # Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch
# options: []
@@ -330,7 +330,7 @@ recovery:
port: 5432
username: ""
database: "app"
sslMode: "verify-full"
sslMode: "disable"
passwordSecret:
# -- Whether to create a secret for the password
@@ -507,6 +507,35 @@ backup:
# # -- Name of backup target
# backupName: external
# -- Database management configuration
databases: []
# - name: app # -- Name of the database to be created.
# ensure: present # -- Ensure the PostgreSQL database is present or absent - defaults to "present".
# owner: app # -- Owner of the database, defaults to the value of the `name` key.
# template: template1 # -- Maps to the TEMPLATE parameter.
# encoding: UTF8 # -- Maps to the ENCODING parameter.
# connectionLimit: -1 # -- Maps to the CONNECTION LIMIT parameter. -1 (the default) means no limit.
# tablespace: "" # -- Maps to the TABLESPACE parameter and ALTER DATABASE.
# databaseReclaimPolicy: retain # -- One of: retain / delete (retain by default).
# schemas: [] # -- List of schemas to be created in the database.
# # - name: myschema
# # owner: app # -- Owner of the schema, defaults to the database owner.
# # ensure: present # -- Ensure the PostgreSQL schema is present or absent - defaults to "present".
# extensions: [] # -- List of extensions to be created in the database.
# # - name: pg_search
# # ensure: present # -- Ensure the PostgreSQL extension is present or absent - defaults to "present".
# # version: "0.15.21" # -- Version of the extension to be installed, if not specified the latest version will be used.
# # schema: "" # -- Schema where the extension will be installed, if not specified the extensions or current default object creation schema will be used.
# isTemplate: false # -- Maps to the IS_TEMPLATE parameter. If true, the database is considered a template for new databases.
# locale: "" # -- Maps to the LC_COLLATE and LC_CTYPE parameters
# localeProvider: "" # -- Maps to the LOCALE_PROVIDER parameter. Available from PostgreSQL 16.
# localeCollate: "" # -- Maps to the LC_COLLATE parameter
# localeCType: "" # -- Maps to the LC_CTYPE parameter
# icuLocale: "" # -- Maps to the ICU_LOCALE parameter. Available from PostgreSQL 15.
# icuRules: "" # -- Maps to the ICU_RULES parameter. Available from PostgreSQL 16.
# builtinLocale: "" # -- Maps to the BUILTIN_LOCALE parameter. Available from PostgreSQL 17.
# collationVersion: "" # -- Maps to the COLLATION_VERSION parameter.
# -- List of PgBouncer poolers
poolers: []
# -

View File

@@ -6,7 +6,6 @@
":rebaseStalePrs"
],
"timezone": "US/Central",
"schedule": ["* */1 * * *"],
"labels": [],
"prHourlyLimit": 0,
"prConcurrentLimit": 0,
@@ -38,17 +37,18 @@
]
},
{
"description": "CNPG image",
"matchDepNames": ["ghcr.io/cloudnative-pg/postgresql"],
"description": "Automerge generic-device-plugin image on digest",
"matchDatasources": ["docker"],
"addLabels": ["image"],
"matchUpdateTypes": ["major", "minor"],
"automerge": false,
"matchDepNames": ["ghcr.io/squat/generic-device-plugin"],
"matchUpdateTypes": ["digest"],
"addLabels": ["image", "automerge"],
"automerge": true,
"minimumReleaseAge": "1 days",
"bumpVersions": [
{
"filePatterns": ["{{packageFileDir}}/Chart.{yaml,yml}"],
"matchStrings": ["version:\\s(?<version>[^\\s]+)"],
"bumpType": "{{#if isPatch}}patch{{else}}minor{{/if}}"
"bumpType": "patch"
}
]
}