Compare commits
1 Commits
gitea-acti
...
8f1c01bb78
Author | SHA1 | Date | |
---|---|---|---|
8f1c01bb78
|
@@ -1,66 +0,0 @@
|
|||||||
name: release-charts-gitea-actions
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- "charts/gitea-actions/**"
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
env:
|
|
||||||
WORKFLOW_DIR: "charts/gitea-actions"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Helm
|
|
||||||
uses: azure/setup-helm@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITEA_TOKEN }}
|
|
||||||
version: latest
|
|
||||||
|
|
||||||
- name: Package Helm Chart
|
|
||||||
run: |
|
|
||||||
cd $WORKFLOW_DIR
|
|
||||||
helm dependency build
|
|
||||||
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
|
|
||||||
|
|
||||||
- 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
|
|
||||||
|
|
||||||
- name: Extract Chart Metadata
|
|
||||||
run: |
|
|
||||||
cd $WORKFLOW_DIR
|
|
||||||
echo "CHART_VERSION=$(yq '.version' Chart.yaml)" >> $GITEA_ENV
|
|
||||||
echo "CHART_NAME=$(yq '.name' Chart.yaml)" >> $GITEA_ENV
|
|
||||||
|
|
||||||
- name: Release Helm Chart
|
|
||||||
uses: akkuman/gitea-release-action@v1
|
|
||||||
with:
|
|
||||||
name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
|
||||||
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
|
||||||
files: |-
|
|
||||||
${{ env.PACKAGE_PATH }}
|
|
||||||
|
|
||||||
- name: Actions Ntfy
|
|
||||||
run: |
|
|
||||||
curl \
|
|
||||||
-H "Authorization: Bearer ${{ secrets.NTFY_CRED }}" \
|
|
||||||
-H "Title: Chart Released: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}" \
|
|
||||||
-H "Content-Type: text/plain" \
|
|
||||||
-d $'Repo: ${{ gitea.repository }}\nCommit: ${{ gitea.sha }}\nRef: ${{ gitea.ref }}\nStatus: ${{ job.status}}' \
|
|
||||||
${{ secrets.NTFY_URL }}
|
|
@@ -1,30 +0,0 @@
|
|||||||
name: renovate
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "@daily"
|
|
||||||
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
renovate:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ghcr.io/renovatebot/renovate:40
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- run: renovate
|
|
||||||
env:
|
|
||||||
RENOVATE_PLATFORM: gitea
|
|
||||||
RENOVATE_AUTODISCOVER: true
|
|
||||||
RENOVATE_ONBOARDING: true
|
|
||||||
RENOVATE_ENDPOINT: http://gitea-http.gitea:3000
|
|
||||||
RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net>
|
|
||||||
LOG_LEVEL: debug
|
|
||||||
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
|
|
||||||
RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }}
|
|
||||||
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }}
|
|
||||||
RENOVATE_REDIS_URL: redis://gitea-renovate-valkey-primary.gitea:6379
|
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: generic-device-plugin
|
name: generic-device-plugin
|
||||||
version: 0.2.0
|
version: 0.1.10
|
||||||
description: Generic Device Plugin
|
description: Generic Device Plugin
|
||||||
keywords:
|
keywords:
|
||||||
- generic-device-plugin
|
- generic-device-plugin
|
||||||
@@ -13,6 +13,6 @@ maintainers:
|
|||||||
- name: alexlebens
|
- name: alexlebens
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: common
|
- name: common
|
||||||
repository: https://bjw-s-labs.github.io/helm-charts/
|
repository: https://bjw-s.github.io/helm-charts/
|
||||||
version: 4.0.1
|
version: 3.7.3
|
||||||
appVersion: 0.2.0
|
appVersion: 0.1.10
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# generic-device-plugin
|
# generic-device-plugin
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Generic Device Plugin
|
Generic Device Plugin
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ Generic Device Plugin
|
|||||||
|
|
||||||
| Repository | Name | Version |
|
| Repository | Name | Version |
|
||||||
|------------|------|---------|
|
|------------|------|---------|
|
||||||
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.0.1 |
|
| https://bjw-s.github.io/helm-charts/ | common | 3.7.3 |
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
|
@@ -1,15 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
name: gitea-actions
|
|
||||||
version: 0.1.1
|
|
||||||
description: Gitea Actions
|
|
||||||
keywords:
|
|
||||||
- cicd
|
|
||||||
- runner
|
|
||||||
- actions
|
|
||||||
sources:
|
|
||||||
- https://gitea.com/gitea/helm-actions
|
|
||||||
- https://gitea.com/gitea/act
|
|
||||||
maintainers:
|
|
||||||
- name: alexlebens
|
|
||||||
icon: https://avatars.githubusercontent.com/u/100373852?s=48&v=4
|
|
||||||
appVersion: 0.261.3
|
|
@@ -1,18 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2025 gitea
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
||||||
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
||||||
following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
||||||
portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
||||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
||||||
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,53 +0,0 @@
|
|||||||
# gitea-actions
|
|
||||||
|
|
||||||
 
|
|
||||||
|
|
||||||
Gitea Actions
|
|
||||||
|
|
||||||
## Maintainers
|
|
||||||
|
|
||||||
| Name | Email | Url |
|
|
||||||
| ---- | ------ | --- |
|
|
||||||
| alexlebens | | |
|
|
||||||
|
|
||||||
## Source Code
|
|
||||||
|
|
||||||
* <https://gitea.com/gitea/helm-actions>
|
|
||||||
* <https://gitea.com/gitea/act>
|
|
||||||
|
|
||||||
## Values
|
|
||||||
|
|
||||||
| Key | Type | Default | Description |
|
|
||||||
|-----|------|---------|-------------|
|
|
||||||
| enabled | bool | `false` | |
|
|
||||||
| existingSecret | string | `""` | |
|
|
||||||
| existingSecretKey | string | `""` | |
|
|
||||||
| giteaRootURL | string | `""` | |
|
|
||||||
| global.fullnameOverride | string | `""` | |
|
|
||||||
| global.imageRegistry | string | `""` | |
|
|
||||||
| global.nameOverride | string | `""` | |
|
|
||||||
| global.storageClass | string | `""` | |
|
|
||||||
| init.image.repository | string | `"busybox"` | |
|
|
||||||
| init.image.tag | string | `"1.37.0"` | |
|
|
||||||
| statefulset.actRunner.config | string | `"log:\n level: debug\ncache:\n enabled: false\n"` | |
|
|
||||||
| statefulset.actRunner.extraVolumeMounts | list | `[]` | |
|
|
||||||
| statefulset.actRunner.pullPolicy | string | `"IfNotPresent"` | |
|
|
||||||
| statefulset.actRunner.repository | string | `"gitea/act_runner"` | |
|
|
||||||
| statefulset.actRunner.tag | string | `"0.2.11"` | |
|
|
||||||
| statefulset.affinity | object | `{}` | |
|
|
||||||
| statefulset.annotations | object | `{}` | |
|
|
||||||
| statefulset.dind.extraEnvs | list | `[]` | |
|
|
||||||
| statefulset.dind.extraVolumeMounts | list | `[]` | |
|
|
||||||
| statefulset.dind.pullPolicy | string | `"IfNotPresent"` | |
|
|
||||||
| statefulset.dind.repository | string | `"docker"` | |
|
|
||||||
| statefulset.dind.tag | string | `"25.0.2-dind"` | |
|
|
||||||
| statefulset.extraVolumes | list | `[]` | |
|
|
||||||
| statefulset.labels | object | `{}` | |
|
|
||||||
| statefulset.nodeSelector | object | `{}` | |
|
|
||||||
| statefulset.persistence.size | string | `"1Gi"` | |
|
|
||||||
| statefulset.replicas | int | `1` | |
|
|
||||||
| statefulset.resources | object | `{}` | |
|
|
||||||
| statefulset.tolerations | list | `[]` | |
|
|
||||||
|
|
||||||
----------------------------------------------
|
|
||||||
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
|
|
@@ -1,125 +0,0 @@
|
|||||||
{{/* vim: set filetype=mustache: */}}
|
|
||||||
{{/*
|
|
||||||
Expand the name of the chart.
|
|
||||||
*/}}
|
|
||||||
|
|
||||||
{{- define "gitea.actions.name" -}}
|
|
||||||
{{- default .Chart.Name .Values.global.nameOverride | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
|
|
||||||
Create a default fully qualified app name.
|
|
||||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
|
||||||
If release name contains chart name it will be used as a full name.
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.fullname" -}}
|
|
||||||
{{- if .Values.global.fullnameOverride -}}
|
|
||||||
{{- .Values.global.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- $name := default .Chart.Name .Values.global.nameOverride -}}
|
|
||||||
{{- if contains $name .Release.Name -}}
|
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create chart name and version as used by the chart label.
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.chart" -}}
|
|
||||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create image name and tag used by the deployment.
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.image" -}}
|
|
||||||
{{- $fullOverride := .Values.image.fullOverride | default "" -}}
|
|
||||||
{{- $registry := .Values.global.imageRegistry | default .Values.image.registry -}}
|
|
||||||
{{- $repository := .Values.image.repository -}}
|
|
||||||
{{- $separator := ":" -}}
|
|
||||||
{{- $tag := .Values.image.tag | default .Chart.AppVersion | toString -}}
|
|
||||||
{{- $rootless := ternary "-rootless" "" (.Values.image.rootless) -}}
|
|
||||||
{{- $digest := "" -}}
|
|
||||||
{{- if .Values.image.digest }}
|
|
||||||
{{- $digest = (printf "@%s" (.Values.image.digest | toString)) -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- if $fullOverride }}
|
|
||||||
{{- printf "%s" $fullOverride -}}
|
|
||||||
{{- else if $registry }}
|
|
||||||
{{- printf "%s/%s%s%s%s%s" $registry $repository $separator $tag $rootless $digest -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s%s%s%s%s" $repository $separator $tag $rootless $digest -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Storage Class
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.persistence.storageClass" -}}
|
|
||||||
{{- $storageClass := (tpl ( default "" .Values.persistence.storageClass) .) | default (tpl ( default "" .Values.global.storageClass) .) }}
|
|
||||||
{{- if $storageClass }}
|
|
||||||
storageClassName: {{ $storageClass | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Common labels
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.labels" -}}
|
|
||||||
helm.sh/chart: {{ include "gitea.actions.chart" . }}
|
|
||||||
app: {{ include "gitea.actions.name" . }}
|
|
||||||
{{ include "gitea.actions.selectorLabels" . }}
|
|
||||||
app.kubernetes.io/version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
|
||||||
version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "gitea.actions.labels.actRunner" -}}
|
|
||||||
helm.sh/chart: {{ include "gitea.actions.chart" . }}
|
|
||||||
app: {{ include "gitea.actions.name" . }}-act-runner
|
|
||||||
{{ include "gitea.actions.selectorLabels.actRunner" . }}
|
|
||||||
app.kubernetes.io/version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
|
||||||
version: {{ .Values.image.tag | default .Chart.AppVersion | quote }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Selector labels
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.selectorLabels" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "gitea.actions.name" . }}
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "gitea.actions.selectorLabels.actRunner" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "gitea.actions.name" . }}-act-runner
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "gitea.actions.local_root_url" -}}
|
|
||||||
{{- .Values.giteaRootURL -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Parse the http url to hostname + port separated by space for the nc command
|
|
||||||
*/}}
|
|
||||||
{{- define "gitea.actions.nc" -}}
|
|
||||||
{{- $url := include "gitea.actions.local_root_url" . | urlParse -}}
|
|
||||||
{{- $host := get $url "host" -}}
|
|
||||||
{{- $scheme := get $url "scheme" -}}
|
|
||||||
{{- $port := "80" -}}
|
|
||||||
{{- if contains ":" $host -}}
|
|
||||||
{{- $hostAndPort := regexSplit ":" $host 2 -}}
|
|
||||||
{{- $host = index $hostAndPort 0 -}}
|
|
||||||
{{- $port = index $hostAndPort 1 -}}
|
|
||||||
{{- else if eq $scheme "https" -}}
|
|
||||||
{{- $port = "443" -}}
|
|
||||||
{{- else if eq $scheme "http" -}}
|
|
||||||
{{- $port = "80" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- printf "%s %s" $host $port -}}
|
|
||||||
{{- end -}}
|
|
@@ -1,15 +0,0 @@
|
|||||||
{{- if .Values.enabled }}
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "gitea.actions.fullname" . }}-act-runner-config
|
|
||||||
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
{{- include "gitea.actions.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
config.yaml: |
|
|
||||||
{{- with .Values.statefulset.actRunner.config -}}
|
|
||||||
{{ . | nindent 4}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end }}
|
|
@@ -1,127 +0,0 @@
|
|||||||
{{- if .Values.enabled }}
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
{{- include "gitea.actions.labels.actRunner" . | nindent 4 }}
|
|
||||||
{{- with .Values.statefulset.labels }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
annotations:
|
|
||||||
{{- with .Values.statefulset.annotations }}
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
name: {{ include "gitea.actions.fullname" . }}-act-runner
|
|
||||||
namespace: {{ .Values.namespace | default .Release.Namespace }}
|
|
||||||
spec:
|
|
||||||
replicas: {{ .Values.statefulset.replicas }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "gitea.actions.selectorLabels.actRunner" . | nindent 6 }}
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
{{- include "gitea.actions.labels.actRunner" . | nindent 8 }}
|
|
||||||
{{- with .Values.statefulset.labels }}
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
initContainers:
|
|
||||||
- name: init-gitea
|
|
||||||
image: "{{ .Values.init.image.repository }}:{{ .Values.init.image.tag }}"
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -c
|
|
||||||
- |
|
|
||||||
while ! nc -z {{ include "gitea.actions.nc" . }}; do
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
containers:
|
|
||||||
- name: act-runner
|
|
||||||
image: "{{ .Values.statefulset.actRunner.repository }}:{{ .Values.statefulset.actRunner.tag }}"
|
|
||||||
imagePullPolicy: {{ .Values.statefulset.actRunner.pullPolicy }}
|
|
||||||
workingDir: /data
|
|
||||||
env:
|
|
||||||
- name: DOCKER_HOST
|
|
||||||
value: tcp://127.0.0.1:2376
|
|
||||||
- name: DOCKER_TLS_VERIFY
|
|
||||||
value: "1"
|
|
||||||
- name: DOCKER_CERT_PATH
|
|
||||||
value: /certs/server
|
|
||||||
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: "{{ .Values.existingSecret | default "gitea-actions-token" }}"
|
|
||||||
key: "{{ .Values.existingSecretKey | default "token" }}"
|
|
||||||
- name: GITEA_INSTANCE_URL
|
|
||||||
value: {{ include "gitea.actions.local_root_url" . }}
|
|
||||||
- name: CONFIG_FILE
|
|
||||||
value: /actrunner/config.yaml
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.statefulset.resources | nindent 12 }}
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /actrunner/config.yaml
|
|
||||||
name: act-runner-config
|
|
||||||
subPath: config.yaml
|
|
||||||
- mountPath: /certs/server
|
|
||||||
name: docker-certs
|
|
||||||
- mountPath: /data
|
|
||||||
name: data-act-runner
|
|
||||||
{{- with .Values.statefulset.actRunner.extraVolumeMounts }}
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
- name: dind
|
|
||||||
image: "{{ .Values.statefulset.dind.repository }}:{{ .Values.statefulset.dind.tag }}"
|
|
||||||
imagePullPolicy: {{ .Values.statefulset.dind.pullPolicy }}
|
|
||||||
env:
|
|
||||||
- name: DOCKER_HOST
|
|
||||||
value: tcp://127.0.0.1:2376
|
|
||||||
- name: DOCKER_TLS_VERIFY
|
|
||||||
value: "1"
|
|
||||||
- name: DOCKER_CERT_PATH
|
|
||||||
value: /certs/server
|
|
||||||
{{- if .Values.statefulset.dind.extraEnvs }}
|
|
||||||
{{- toYaml .Values.statefulset.dind.extraEnvs | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
securityContext:
|
|
||||||
privileged: true
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.statefulset.resources | nindent 12 }}
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /certs/server
|
|
||||||
name: docker-certs
|
|
||||||
{{- with .Values.statefulset.dind.extraVolumeMounts }}
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- range $key, $value := .Values.statefulset.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{ $key }}: {{ $value | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.statefulset.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.statefulset.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
volumes:
|
|
||||||
- name: act-runner-config
|
|
||||||
configMap:
|
|
||||||
name: {{ include "gitea.actions.fullname" . }}-act-runner-config
|
|
||||||
- name: docker-certs
|
|
||||||
emptyDir: {}
|
|
||||||
{{- with .Values.statefulset.extraVolumes }}
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- metadata:
|
|
||||||
name: data-act-runner
|
|
||||||
spec:
|
|
||||||
accessModes: [ "ReadWriteOnce" ]
|
|
||||||
{{- include "gitea.actions.persistence.storageClass" . | nindent 8 }}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: {{ .Values.statefulset.persistence.size }}
|
|
||||||
{{- end }}
|
|
@@ -1,101 +0,0 @@
|
|||||||
# Configure Gitea Actions
|
|
||||||
# - must enable persistence if the job is enabled
|
|
||||||
## @section Gitea Actions
|
|
||||||
#
|
|
||||||
## @param enabled Create an act runner StatefulSet.
|
|
||||||
## @param init.image.repository The image used for the init containers
|
|
||||||
## @param init.image.tag The image tag used for the init containers
|
|
||||||
## @param statefulset.annotations Act runner annotations
|
|
||||||
## @param statefulset.labels Act runner labels
|
|
||||||
## @param statefulset.resources Act runner resources
|
|
||||||
## @param statefulset.nodeSelector NodeSelector for the statefulset
|
|
||||||
## @param statefulset.tolerations Tolerations for the statefulset
|
|
||||||
## @param statefulset.affinity Affinity for the statefulset
|
|
||||||
## @param statefulset.extraVolumes Extra volumes for the statefulset
|
|
||||||
## @param statefulset.actRunner.repository The Gitea act runner image
|
|
||||||
## @param statefulset.actRunner.tag The Gitea act runner tag
|
|
||||||
## @param statefulset.actRunner.pullPolicy The Gitea act runner pullPolicy
|
|
||||||
## @param statefulset.actRunner.extraVolumeMounts Allows mounting extra volumes in the act runner container
|
|
||||||
## @param statefulset.actRunner.config [default: Too complex. See values.yaml] Act runner custom configuration. See [Act Runner documentation](https://docs.gitea.com/usage/actions/act-runner#configuration) for details.
|
|
||||||
## @param statefulset.dind.repository The Docker-in-Docker image
|
|
||||||
## @param statefulset.dind.tag The Docker-in-Docker image tag
|
|
||||||
## @param statefulset.dind.pullPolicy The Docker-in-Docker pullPolicy
|
|
||||||
## @param statefulset.dind.extraVolumeMounts Allows mounting extra volumes in the Docker-in-Docker container
|
|
||||||
## @param statefulset.dind.extraEnvs Allows adding custom environment variables, such as `DOCKER_IPTABLES_LEGACY`
|
|
||||||
## @param statefulset.persistence.size Size for persistence to store act runner data
|
|
||||||
## @param provisioning.enabled Create a job that will create and save the token in a Kubernetes Secret
|
|
||||||
## @param provisioning.annotations Job's annotations
|
|
||||||
## @param provisioning.labels Job's labels
|
|
||||||
## @param provisioning.resources Job's resources
|
|
||||||
## @param provisioning.nodeSelector NodeSelector for the job
|
|
||||||
## @param provisioning.tolerations Tolerations for the job
|
|
||||||
## @param provisioning.affinity Affinity for the job
|
|
||||||
## @param provisioning.ttlSecondsAfterFinished ttl for the job after finished in order to allow helm to properly recognize that the job completed
|
|
||||||
## @param provisioning.publish.repository The image that can create the secret via kubectl
|
|
||||||
## @param provisioning.publish.tag The publish image tag that can create the secret
|
|
||||||
## @param provisioning.publish.pullPolicy The publish image pullPolicy that can create the secret
|
|
||||||
## @param existingSecret Secret that contains the token
|
|
||||||
## @param existingSecretKey Secret key
|
|
||||||
## @param giteaRootURL URL the act_runner registers and connect with
|
|
||||||
enabled: false
|
|
||||||
statefulset:
|
|
||||||
replicas: 1
|
|
||||||
annotations: {}
|
|
||||||
labels: {}
|
|
||||||
resources: {}
|
|
||||||
nodeSelector: {}
|
|
||||||
tolerations: []
|
|
||||||
affinity: {}
|
|
||||||
extraVolumes: []
|
|
||||||
|
|
||||||
actRunner:
|
|
||||||
repository: gitea/act_runner
|
|
||||||
tag: 0.2.11
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
extraVolumeMounts: []
|
|
||||||
|
|
||||||
# See full example here: https://gitea.com/gitea/act_runner/src/branch/main/internal/pkg/config/config.example.yaml
|
|
||||||
config: |
|
|
||||||
log:
|
|
||||||
level: debug
|
|
||||||
cache:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
dind:
|
|
||||||
repository: docker
|
|
||||||
tag: 25.0.2-dind
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
extraVolumeMounts: []
|
|
||||||
|
|
||||||
# If the container keeps crashing in your environment, you might have to add the `DOCKER_IPTABLES_LEGACY` environment variable.
|
|
||||||
# See https://github.com/docker-library/docker/issues/463#issuecomment-1881909456
|
|
||||||
extraEnvs:
|
|
||||||
[]
|
|
||||||
# - name: "DOCKER_IPTABLES_LEGACY"
|
|
||||||
# value: "1"
|
|
||||||
|
|
||||||
persistence:
|
|
||||||
size: 1Gi
|
|
||||||
|
|
||||||
init:
|
|
||||||
image:
|
|
||||||
repository: busybox
|
|
||||||
tag: "1.37.0"
|
|
||||||
|
|
||||||
## Specify an existing token secret
|
|
||||||
##
|
|
||||||
existingSecret: ""
|
|
||||||
existingSecretKey: ""
|
|
||||||
|
|
||||||
## Specify the root URL of the Gitea instance
|
|
||||||
giteaRootURL: ""
|
|
||||||
|
|
||||||
## @section Global
|
|
||||||
#
|
|
||||||
## @param global.imageRegistry global image registry override
|
|
||||||
## @param global.storageClass global storage class override
|
|
||||||
global:
|
|
||||||
imageRegistry: ""
|
|
||||||
storageClass: ""
|
|
||||||
nameOverride: ""
|
|
||||||
fullnameOverride: ""
|
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: postgres-cluster
|
name: postgres-cluster
|
||||||
version: 6.4.4
|
version: 6.0.9
|
||||||
description: Cloudnative-pg Cluster
|
description: Cloudnative-pg Cluster
|
||||||
keywords:
|
keywords:
|
||||||
- database
|
- database
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# postgres-cluster
|
# postgres-cluster
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Cloudnative-pg Cluster
|
Cloudnative-pg Cluster
|
||||||
|
|
||||||
@@ -19,11 +19,33 @@ Cloudnative-pg Cluster
|
|||||||
|
|
||||||
| Key | Type | Default | Description |
|
| Key | Type | Default | Description |
|
||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| backup | object | `{"enabled":false,"method":"objectStore","objectStore":[],"scheduledBackups":[]}` | Backup settings |
|
| backup | object | `{"enabled":false,"method":"objectStore","objectStore":[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","endpointCA":{"create":false,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","index":1,"isWALArchiver":true,"name":"external","retentionPolicy":"30d","wal":{"compression":"snappy","encryption":"","maxParallel":1}}],"scheduledBackups":[{"backupName":"external","backupOwnerReference":"self","name":"daily-backup","plugin":"barman-cloud.cloudnative-pg.io","schedule":"0 0 */3 * *","suspend":false}]}` | Backup settings |
|
||||||
| backup.enabled | bool | `false` | You need to configure backups manually, so backups are disabled by default. |
|
| backup.enabled | bool | `false` | You need to configure backups manually, so backups are disabled by default. |
|
||||||
| backup.method | string | `"objectStore"` | Method to create backups, options currently are only objectStore |
|
| backup.method | string | `"objectStore"` | Method to create backups, options currently are only objectStore |
|
||||||
| backup.objectStore | list | `[]` | Options for object store backups |
|
| backup.objectStore | list | `[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","endpointCA":{"create":false,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","index":1,"isWALArchiver":true,"name":"external","retentionPolicy":"30d","wal":{"compression":"snappy","encryption":"","maxParallel":1}}]` | Options for object store backups |
|
||||||
| backup.scheduledBackups | list | `[]` | List of scheduled backups |
|
| backup.objectStore[0].clusterName | string | `""` | Override the name of the backup cluster, defaults to "cluster.name" |
|
||||||
|
| backup.objectStore[0].data.compression | string | `"snappy"` | Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
||||||
|
| backup.objectStore[0].data.encryption | string | `""` | Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
||||||
|
| backup.objectStore[0].data.jobs | int | `1` | Number of data files to be archived or restored in parallel. |
|
||||||
|
| backup.objectStore[0].destinationPath | string | `""` | Overrides the provider specific default path. Defaults to: S3: s3://<bucket><path> Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path> Google: gs://<bucket><path> |
|
||||||
|
| backup.objectStore[0].endpointCA | object | `{"create":false,"enabled":false,"key":"","name":""}` | Specifies a CA bundle to validate a privately signed certificate. |
|
||||||
|
| backup.objectStore[0].endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. |
|
||||||
|
| backup.objectStore[0].endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY |
|
||||||
|
| backup.objectStore[0].endpointURL | string | `""` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3.<region>.amazonaws.com" |
|
||||||
|
| backup.objectStore[0].index | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }} |
|
||||||
|
| backup.objectStore[0].isWALArchiver | bool | `true` | Specificies if this backup will do WALs |
|
||||||
|
| backup.objectStore[0].name | string | `"external"` | Object store backup name |
|
||||||
|
| backup.objectStore[0].retentionPolicy | string | `"30d"` | Retention policy for backups |
|
||||||
|
| backup.objectStore[0].wal | object | `{"compression":"snappy","encryption":"","maxParallel":1}` | Storage |
|
||||||
|
| backup.objectStore[0].wal.compression | string | `"snappy"` | WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
||||||
|
| backup.objectStore[0].wal.encryption | string | `""` | Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
||||||
|
| backup.objectStore[0].wal.maxParallel | int | `1` | Number of WAL files to be archived or restored in parallel. |
|
||||||
|
| backup.scheduledBackups[0].backupName | string | `"external"` | Name of backup target |
|
||||||
|
| backup.scheduledBackups[0].backupOwnerReference | string | `"self"` | Backup owner reference |
|
||||||
|
| backup.scheduledBackups[0].name | string | `"daily-backup"` | Scheduled backup name |
|
||||||
|
| backup.scheduledBackups[0].plugin | string | `"barman-cloud.cloudnative-pg.io"` | Backup method, can be `barman-cloud.cloudnative-pg.io` (default) |
|
||||||
|
| backup.scheduledBackups[0].schedule | string | `"0 0 */3 * *"` | Schedule in cron format |
|
||||||
|
| backup.scheduledBackups[0].suspend | bool | `false` | Temporarily stop scheduled backups from running |
|
||||||
| 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.5-1-bullseye"},"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"initdb":{},"instances":3,"logLevel":"info","monitoring":{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":false,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":false,"excludeRules":[]}},"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":"17.5-1-bullseye"},"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"initdb":{},"instances":3,"logLevel":"info","monitoring":{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":false,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":false,"excludeRules":[]}},"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.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.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 |
|
||||||
@@ -63,7 +85,7 @@ Cloudnative-pg Cluster
|
|||||||
| nameOverride | string | `""` | Override the name of the cluster |
|
| nameOverride | string | `""` | Override the name of the cluster |
|
||||||
| namespaceOverride | string | `""` | Override the namespace of the chart |
|
| namespaceOverride | string | `""` | Override the namespace of the chart |
|
||||||
| poolers | list | `[]` | List of PgBouncer poolers |
|
| 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,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","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.backup.backupName | string | `""` | Name of the backup to recover from. |
|
| 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.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. |
|
| 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. |
|
||||||
@@ -88,10 +110,10 @@ Cloudnative-pg Cluster
|
|||||||
| recovery.objectStore.data.jobs | int | `1` | Number of data files to be archived or restored in parallel. |
|
| recovery.objectStore.data.jobs | int | `1` | Number of data files to be archived or restored in parallel. |
|
||||||
| recovery.objectStore.database | string | `"app"` | Name of the database used by the application. Default: `app`. |
|
| recovery.objectStore.database | string | `"app"` | Name of the database used by the application. Default: `app`. |
|
||||||
| recovery.objectStore.destinationPath | string | `""` | Overrides the provider specific default path. Defaults to: S3: s3://<bucket><path> Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path> Google: gs://<bucket><path> |
|
| recovery.objectStore.destinationPath | string | `""` | Overrides the provider specific default path. Defaults to: S3: s3://<bucket><path> Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path> Google: gs://<bucket><path> |
|
||||||
| recovery.objectStore.endpointCA | object | `{"create":false,"key":"","name":""}` | Specifies a CA bundle to validate a privately signed certificate. |
|
| recovery.objectStore.endpointCA | object | `{"create":false,"enabled":false,"key":"","name":""}` | Specifies a CA bundle to validate a privately signed certificate. |
|
||||||
| recovery.objectStore.endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. |
|
| recovery.objectStore.endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. |
|
||||||
| recovery.objectStore.endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY |
|
| recovery.objectStore.endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY |
|
||||||
| recovery.objectStore.endpointURL | string | `"https://nyc3.digitaloceanspaces.com"` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3.<region>.amazonaws.com" Leave empty if using the default S3 endpoint |
|
| recovery.objectStore.endpointURL | string | `""` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3.<region>.amazonaws.com" Leave empty if using the default S3 endpoint |
|
||||||
| recovery.objectStore.index | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }} |
|
| recovery.objectStore.index | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }} |
|
||||||
| recovery.objectStore.name | string | `"recovery"` | Object store backup name |
|
| recovery.objectStore.name | string | `"recovery"` | Object store backup name |
|
||||||
| recovery.objectStore.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.objectStore.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. |
|
||||||
|
@@ -131,8 +131,6 @@ externalClusters:
|
|||||||
- name: {{ include "cluster.recoveryServerName" . }}
|
- name: {{ include "cluster.recoveryServerName" . }}
|
||||||
plugin:
|
plugin:
|
||||||
name: barman-cloud.cloudnative-pg.io
|
name: barman-cloud.cloudnative-pg.io
|
||||||
enabled: true
|
|
||||||
isWALArchiver: false
|
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
||||||
serverName: {{ include "cluster.recoveryServerName" . }}
|
serverName: {{ include "cluster.recoveryServerName" . }}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
Expand the name of the chart.
|
Expand the name of the chart.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "cluster.name" -}}
|
{{- define "cluster.name" -}}
|
||||||
{{- if .Values.nameOverride }}
|
{{- if not (empty .Values.nameOverride ) }}
|
||||||
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}}
|
||||||
@@ -80,7 +80,7 @@ Generate recovery server name
|
|||||||
{{- if .Values.recovery.recoveryServerName -}}
|
{{- if .Values.recovery.recoveryServerName -}}
|
||||||
{{- .Values.recovery.recoveryServerName -}}
|
{{- .Values.recovery.recoveryServerName -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- printf "%s-backup-%s" (include "cluster.name" .) (toString .Values.recovery.objectStore.index) | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-backup-%s" (include "cluster.name" .) (toString .Values.recovery.recoveryIndex) | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@@ -94,10 +94,3 @@ Generate name for recovery object store credentials
|
|||||||
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate name for backup object store credentials
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.backupCredentials" -}}
|
|
||||||
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
|
@@ -19,28 +19,22 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
postgresUID: {{ include "cluster.postgresUID" . }}
|
postgresUID: {{ include "cluster.postgresUID" . }}
|
||||||
postgresGID: {{ include "cluster.postgresGID" . }}
|
postgresGID: {{ include "cluster.postgresGID" . }}
|
||||||
{{ if or (eq .Values.backup.method "objectStore") (eq .Values.recovery.method "objectStore") }}
|
{{ if or (and (.Values.backup.enabled) (eq .Values.backup.method "objectStore")) (eq .Values.recovery.method "objectStore") }}
|
||||||
plugins:
|
plugins:
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- range $objectStore := .Values.backup.objectStore }}
|
{{ if and (.Values.backup.enabled) (eq .Values.backup.method "objectStore") }}
|
||||||
|
{{ $context := . -}}
|
||||||
|
{{ range .Values.backup.objectStore -}}
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
enabled: true
|
isWALArchiver: {{ $context.isWALArchiver }}
|
||||||
isWALArchiver: {{ $objectStore.isWALArchiver | default true }}
|
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectName: "{{ include "cluster.name" $ }}-{{ $objectStore.name }}-backup"
|
barmanObjectName: "{{ include "cluster.name" . }}-{{ $context.name }}-backup"
|
||||||
{{- if $objectStore.clusterName }}
|
{{ end -}}
|
||||||
serverName: "{{ $objectStore.clusterName }}-backup-{{ $objectStore.index }}"
|
{{ end }}
|
||||||
{{- else }}
|
|
||||||
serverName: "{{ include "cluster.name" $ }}-backup-{{ $objectStore.index }}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{ if eq .Values.recovery.method "objectStore" }}
|
{{ if eq .Values.recovery.method "objectStore" }}
|
||||||
- name: barman-cloud.cloudnative-pg.io
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
enabled: true
|
|
||||||
isWALArchiver: false
|
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
||||||
serverName: {{ include "cluster.recoveryServerName" . }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
storage:
|
storage:
|
||||||
size: {{ .Values.cluster.storage.size }}
|
size: {{ .Values.cluster.storage.size }}
|
||||||
|
@@ -5,49 +5,50 @@
|
|||||||
apiVersion: barmancloud.cnpg.io/v1
|
apiVersion: barmancloud.cnpg.io/v1
|
||||||
kind: ObjectStore
|
kind: ObjectStore
|
||||||
metadata:
|
metadata:
|
||||||
name: "{{ include "cluster.name" $context }}-{{ .name }}-backup"
|
name: "{{ include "cluster.name" $context }}-{{ $context.name }}-backup"
|
||||||
namespace: {{ include "cluster.namespace" $context }}
|
namespace: {{ include "cluster.namespace" $context }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "cluster.labels" $context | nindent 4 }}
|
{{- include "cluster.labels" $context | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
retentionPolicy: {{ .retentionPolicy | default "30d" }}
|
retentionPolicy: {{ $context.retentionPolicy }}
|
||||||
configuration:
|
configuration:
|
||||||
destinationPath: {{ .destinationPath | required "Destination path is required" }}
|
destinationPath: {{ $context.destinationPath }}
|
||||||
endpointURL: {{ .endpointURL | default "https://nyc3.digitaloceanspaces.com" }}
|
endpointURL: {{ $context.endpointURL }}
|
||||||
{{- if .endpointCA }}
|
{{- if .endpointCA.enabled }}
|
||||||
endpointCA:
|
endpointCA:
|
||||||
name: {{ .endpointCA.name }}
|
name: {{ .endpointCA.name }}
|
||||||
key: {{ .endpointCA.key }}
|
key: {{ .endpointCA.key }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .wal }}
|
{{- if not (empty $context.clusterName) }}
|
||||||
wal:
|
serverName: "{{ $context.clusterName }}-backup-{{ $context.index }}"
|
||||||
compression: {{ .wal.compression | default "snappy" }}
|
{{- else }}
|
||||||
{{ with .wal.encryption }}
|
serverName: "{{ include "cluster.name" $context }}-backup-{{ $context.index }}"
|
||||||
encryption: {{ . }}
|
|
||||||
{{ end }}
|
|
||||||
maxParallel: {{ .wal.maxParallel | default "1" }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .wal }}
|
wal:
|
||||||
data:
|
compression: {{ $context.wal.compression }}
|
||||||
compression: {{ .data.compression | default "snappy" }}
|
{{- with $context.wal.encryption}}
|
||||||
{{- with .data.encryption }}
|
|
||||||
encryption: {{ . }}
|
encryption: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
jobs: {{ .data.jobs | default 1 }}
|
maxParallel: {{ $context.wal.maxParallel }}
|
||||||
{{- end }}
|
data:
|
||||||
|
compression: {{ $context.data.compression }}
|
||||||
|
{{- with $context.data.encryption }}
|
||||||
|
encryption: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
jobs: {{ $context.data.jobs }}
|
||||||
s3Credentials:
|
s3Credentials:
|
||||||
accessKeyId:
|
accessKeyId:
|
||||||
{{- if .endpointCredentials }}
|
{{- if not (empty $context.endpointCredentials) }}
|
||||||
name: {{ .endpointCredentials }}
|
name: {{ $context.endpointCredentials }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
name: {{ include "cluster.backupCredentials" $context }}
|
name: {{- printf "%s-backup-secret" (include "cluster.name" $context) | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
key: ACCESS_KEY_ID
|
key: ACCESS_KEY_ID
|
||||||
secretAccessKey:
|
secretAccessKey:
|
||||||
{{- if .endpointCredentials }}
|
{{- if not (empty $context.endpointCredentials) }}
|
||||||
name: {{ .endpointCredentials }}
|
name: {{ $context.endpointCredentials }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
name: {{ include "cluster.backupCredentials" $context }}
|
name: {{- printf "%s-backup-secret" (include "cluster.name" $context) | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
key: ACCESS_SECRET_KEY
|
key: ACCESS_SECRET_KEY
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
@@ -66,11 +67,12 @@ spec:
|
|||||||
configuration:
|
configuration:
|
||||||
destinationPath: {{ .Values.recovery.objectStore.destinationPath }}
|
destinationPath: {{ .Values.recovery.objectStore.destinationPath }}
|
||||||
endpointURL: {{ .Values.recovery.objectStore.endpointURL }}
|
endpointURL: {{ .Values.recovery.objectStore.endpointURL }}
|
||||||
{{- if .Values.recovery.objectStore.endpointCA.name }}
|
{{- if .Values.recovery.objectStore.endpointCA.enabled }}
|
||||||
endpointCA:
|
endpointCA:
|
||||||
name: {{ .Values.recovery.objectStore.endpointCA.name }}
|
name: {{ .Values.recovery.objectStore.endpointCA.name }}
|
||||||
key: {{ .Values.recovery.objectStore.endpointCA.key }}
|
key: {{ .Values.recovery.objectStore.endpointCA.key }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
serverName: {{ include "cluster.recoveryServerName" . }}
|
||||||
wal:
|
wal:
|
||||||
compression: {{ .Values.recovery.objectStore.wal.compression }}
|
compression: {{ .Values.recovery.objectStore.wal.compression }}
|
||||||
{{- with .Values.recovery.objectStore.wal.encryption}}
|
{{- with .Values.recovery.objectStore.wal.encryption}}
|
||||||
|
@@ -5,21 +5,21 @@
|
|||||||
apiVersion: postgresql.cnpg.io/v1
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
kind: ScheduledBackup
|
kind: ScheduledBackup
|
||||||
metadata:
|
metadata:
|
||||||
name: "{{ include "cluster.name" $context }}-{{ .name }}-scheduled-backup"
|
name: "{{ include "cluster.name" $context }}-{{ $context.name }}-scheduled-backup"
|
||||||
namespace: {{ include "cluster.namespace" $context }}
|
namespace: {{ include "cluster.namespace" $context }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "cluster.labels" $context | nindent 4 }}
|
{{- include "cluster.labels" $context | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
immediate: {{ .immediate | default true }}
|
immediate: true
|
||||||
suspend: {{ .suspend | default false }}
|
suspend: {{ $context.suspend }}
|
||||||
schedule: {{ .schedule | quote | required "Schedule is required" }}
|
schedule: {{ $context.schedule | quote }}
|
||||||
backupOwnerReference: {{ .backupOwnerReference | default "self" }}
|
backupOwnerReference: {{ $context.backupOwnerReference }}
|
||||||
cluster:
|
cluster:
|
||||||
name: {{ include "cluster.name" $context }}-cluster
|
name: {{ include "cluster.name" $context }}-cluster
|
||||||
method: plugin
|
method: plugin
|
||||||
pluginConfiguration:
|
pluginConfiguration:
|
||||||
name: {{ .plugin | default "barman-cloud.cloudnative-pg.io" }}
|
name: {{ $context.plugin }}
|
||||||
parameters:
|
parameters:
|
||||||
barmanObjectName: "{{ include "cluster.name" $context }}-{{ .backupName }}-backup"
|
barmanObjectName: "{{ include "cluster.name" $context }}-{{ $context.backupName }}-backup"
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -21,7 +21,7 @@ cluster:
|
|||||||
# -- Default image
|
# -- Default image
|
||||||
image:
|
image:
|
||||||
repository: ghcr.io/cloudnative-pg/postgresql
|
repository: ghcr.io/cloudnative-pg/postgresql
|
||||||
tag: "17.5-1-bullseye"
|
tag: "17.5-standard-bullseye"
|
||||||
|
|
||||||
# -- Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated.
|
# -- 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
|
# More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
|
||||||
@@ -271,10 +271,12 @@ recovery:
|
|||||||
# -- Overrides the provider specific default endpoint. Defaults to:
|
# -- Overrides the provider specific default endpoint. Defaults to:
|
||||||
# S3: https://s3.<region>.amazonaws.com"
|
# S3: https://s3.<region>.amazonaws.com"
|
||||||
# Leave empty if using the default S3 endpoint
|
# Leave empty if using the default S3 endpoint
|
||||||
endpointURL: "https://nyc3.digitaloceanspaces.com"
|
endpointURL: ""
|
||||||
|
|
||||||
# -- Specifies a CA bundle to validate a privately signed certificate.
|
# -- Specifies a CA bundle to validate a privately signed certificate.
|
||||||
endpointCA:
|
endpointCA:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
||||||
create: false
|
create: false
|
||||||
|
|
||||||
@@ -424,91 +426,87 @@ backup:
|
|||||||
method: objectStore
|
method: objectStore
|
||||||
|
|
||||||
# -- Options for object store backups
|
# -- Options for object store backups
|
||||||
objectStore: []
|
objectStore:
|
||||||
|
-
|
||||||
|
# -- Object store backup name
|
||||||
|
name: external
|
||||||
|
|
||||||
# -
|
# -- Overrides the provider specific default path. Defaults to:
|
||||||
# # -- Object store backup name
|
# S3: s3://<bucket><path>
|
||||||
# name: external
|
# Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path>
|
||||||
|
# Google: gs://<bucket><path>
|
||||||
|
destinationPath: ""
|
||||||
|
|
||||||
# # -- Overrides the provider specific default path. Defaults to:
|
# -- Overrides the provider specific default endpoint. Defaults to:
|
||||||
# # S3: s3://<bucket><path>
|
# S3: https://s3.<region>.amazonaws.com"
|
||||||
# # Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path>
|
endpointURL: "" # Leave empty if using the default S3 endpoint
|
||||||
# # Google: gs://<bucket><path>
|
|
||||||
# destinationPath: ""
|
|
||||||
|
|
||||||
# # -- Overrides the provider specific default endpoint. Defaults to:
|
# -- Specifies a CA bundle to validate a privately signed certificate.
|
||||||
# # https://nyc3.digitaloceanspaces.com
|
endpointCA:
|
||||||
# endpointURL: ""
|
enabled: false
|
||||||
|
|
||||||
# # -- Specifies a CA bundle to validate a privately signed certificate.
|
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
||||||
# endpointCA:
|
create: false
|
||||||
# # -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
|
||||||
# create: false
|
|
||||||
|
|
||||||
# name: ""
|
name: ""
|
||||||
# key: ""
|
key: ""
|
||||||
|
|
||||||
# # -- Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }}
|
# -- Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }}
|
||||||
# index: 1
|
index: 1
|
||||||
|
|
||||||
# # -- Override the name of the backup cluster, defaults to "cluster.name"
|
# -- Override the name of the backup cluster, defaults to "cluster.name"
|
||||||
# clusterName: ""
|
clusterName: ""
|
||||||
|
|
||||||
# # -- Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
# -- Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
||||||
# endpointCredentials: ""
|
endpointCredentials: ""
|
||||||
|
|
||||||
# # -- Retention policy for backups
|
# -- Retention policy for backups
|
||||||
# retentionPolicy: "30d"
|
retentionPolicy: "30d"
|
||||||
|
|
||||||
# # -- Specificies if this backup will do WALs
|
# -- Specificies if this backup will do WALs
|
||||||
# isWALArchiver: true
|
isWALArchiver: true
|
||||||
|
|
||||||
# # -- Storage
|
# -- Storage
|
||||||
# wal:
|
wal:
|
||||||
|
|
||||||
# # -- WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
# -- WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
||||||
# compression: snappy
|
compression: snappy
|
||||||
|
|
||||||
# # -- Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
# -- Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
||||||
# encryption: ""
|
encryption: ""
|
||||||
|
|
||||||
# # -- Number of WAL files to be archived or restored in parallel.
|
# -- Number of WAL files to be archived or restored in parallel.
|
||||||
# maxParallel: 1
|
maxParallel: 1
|
||||||
|
|
||||||
# data:
|
data:
|
||||||
# # -- Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
# -- Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
||||||
# compression: snappy
|
compression: snappy
|
||||||
|
|
||||||
# # -- Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
# -- Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
||||||
# encryption: ""
|
encryption: ""
|
||||||
|
|
||||||
# # -- Number of data files to be archived or restored in parallel.
|
# -- Number of data files to be archived or restored in parallel.
|
||||||
# jobs: 1
|
jobs: 1
|
||||||
|
|
||||||
# -- List of scheduled backups
|
scheduledBackups:
|
||||||
scheduledBackups: []
|
-
|
||||||
|
# -- Scheduled backup name
|
||||||
|
name: daily-backup
|
||||||
|
|
||||||
# -
|
# -- Schedule in cron format
|
||||||
# # -- Scheduled backup name
|
schedule: "0 0 */3 * *"
|
||||||
# name: daily-backup
|
|
||||||
|
|
||||||
# # -- Schedule in cron format
|
# -- Temporarily stop scheduled backups from running
|
||||||
# schedule: "0 0 0 * * *"
|
suspend: false
|
||||||
|
|
||||||
# # -- Start backup on deployment
|
# -- Backup owner reference
|
||||||
# immediate: false
|
backupOwnerReference: self
|
||||||
|
|
||||||
# # -- Temporarily stop scheduled backups from running
|
# -- Backup method, can be `barman-cloud.cloudnative-pg.io` (default)
|
||||||
# suspend: false
|
plugin: barman-cloud.cloudnative-pg.io
|
||||||
|
|
||||||
# # -- Backup owner reference
|
# -- Name of backup target
|
||||||
# backupOwnerReference: self
|
backupName: external
|
||||||
|
|
||||||
# # -- Backup method, can be `barman-cloud.cloudnative-pg.io` (default)
|
|
||||||
# plugin: barman-cloud.cloudnative-pg.io
|
|
||||||
|
|
||||||
# # -- Name of backup target
|
|
||||||
# backupName: external
|
|
||||||
|
|
||||||
# -- List of PgBouncer poolers
|
# -- List of PgBouncer poolers
|
||||||
poolers: []
|
poolers: []
|
||||||
|
Reference in New Issue
Block a user