Compare commits
18 Commits
postgres-c
...
rclone-buc
| Author | SHA1 | Date | |
|---|---|---|---|
| 5cb8e9d43e | |||
| 9b50e6b890 | |||
| 617b14b7aa | |||
| 47a93ddf40 | |||
| 9f3b66af07 | |||
| b69b96e97b | |||
|
178176fd4b
|
|||
| dbdf4b25a6 | |||
|
4fd08657a5
|
|||
| 1f1a9b14d9 | |||
|
96bcd95382
|
|||
| 50ac119e1a | |||
| 792a392d70 | |||
| d65e044655 | |||
| 10dffa04c1 | |||
|
1298004395
|
|||
| c989ddd7ed | |||
|
7a96a38471
|
128
.gitea/workflows/release-charts-rclone-bucket.yml
Normal file
128
.gitea/workflows/release-charts-rclone-bucket.yml
Normal file
@@ -0,0 +1,128 @@
|
||||
name: release-charts-rclone-bucket
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "charts/rclone-bucket/**"
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
WORKFLOW_DIR: "charts/rclone-bucket"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-js
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v5
|
||||
with:
|
||||
token: ${{ secrets.GITEA_TOKEN }}
|
||||
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}
|
||||
|
||||
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: |
|
||||
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: |
|
||||
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}
|
||||
|
||||
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
|
||||
|
||||
- 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: ntfy Success
|
||||
uses: niniyas/ntfy-action@master
|
||||
if: success()
|
||||
with:
|
||||
url: '${{ secrets.NTFY_URL }}'
|
||||
topic: '${{ secrets.NTFY_TOPIC }}'
|
||||
title: 'Release Success - ${{ env.CHART_NAME }}'
|
||||
priority: 3
|
||||
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
||||
tags: action,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
|
||||
uses: niniyas/ntfy-action@master
|
||||
if: failure()
|
||||
with:
|
||||
url: '${{ secrets.NTFY_URL }}'
|
||||
topic: '${{ secrets.NTFY_TOPIC }}'
|
||||
title: 'Release Failure - ${{ env.CHART_NAME }}'
|
||||
priority: 4
|
||||
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
|
||||
tags: action,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/helm-charts/actions?workflow=release-charts-rclone-bucket.yml", "clear": true}]'
|
||||
image: true
|
||||
@@ -1,12 +1,13 @@
|
||||
apiVersion: v2
|
||||
name: cloudflared
|
||||
version: 2.4.0
|
||||
version: 2.6.0
|
||||
description: Cloudflared Tunnel
|
||||
keywords:
|
||||
- cloudflare
|
||||
- tunnel
|
||||
sources:
|
||||
- https://github.com/cloudflare/cloudflared
|
||||
- https://hub.docker.com/r/cloudflare/cloudflared
|
||||
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/library/common
|
||||
maintainers:
|
||||
- name: alexlebens
|
||||
@@ -14,6 +15,6 @@ dependencies:
|
||||
- name: common
|
||||
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||
version: 4.6.2
|
||||
icon: https://avatars.githubusercontent.com/u/314135?s=48&v=4
|
||||
# renovate: datasource=github-releases depName=cloudflare/cloudflared
|
||||
appVersion: "2026.3.0"
|
||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/cloudflare.png
|
||||
# renovate: datasource=docker depName=cloudflare/cloudflared
|
||||
appVersion: 2026.3.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# cloudflared
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Cloudflared Tunnel
|
||||
|
||||
@@ -13,6 +13,7 @@ Cloudflared Tunnel
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/cloudflare/cloudflared>
|
||||
* <https://hub.docker.com/r/cloudflare/cloudflared>
|
||||
* <https://github.com/bjw-s-labs/helm-charts/tree/main/charts/library/common>
|
||||
|
||||
## Requirements
|
||||
@@ -25,14 +26,14 @@ Cloudflared Tunnel
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2026.3.0"}` | Default image |
|
||||
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2026.3.0@sha256:6b599ca3e974349ead3286d178da61d291961182ec3fe9c505e1dd02c8ac31b0"}` | Default image |
|
||||
| name | string | `""` | Name override of release |
|
||||
| resources | object | `{"requests":{"cpu":"10m","memory":"128Mi"}}` | Default resources |
|
||||
| secret | object | `{"existingSecret":{"key":"cf-tunnel-token","name":"cloudflared-secret"},"externalSecret":{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"vault","path":"/cloudflare/tunnels","property":"token"}}}` | Secret configuration |
|
||||
| resources | object | `{"requests":{"cpu":"1m","memory":"20Mi"}}` | Default resources |
|
||||
| secret | object | `{"existingSecret":{"key":"cf-tunnel-token","name":"cloudflared-secret"},"externalSecret":{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"openbao","path":"/cloudflare/tunnels","property":"token"}}}` | Secret configuration |
|
||||
| secret.existingSecret | object | `{"key":"cf-tunnel-token","name":"cloudflared-secret"}` | Name of existing secret that contains Cloudflare token |
|
||||
| secret.externalSecret | object | `{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"vault","path":"/cloudflare/tunnels","property":"token"}}` | External Secret configuration |
|
||||
| secret.externalSecret | object | `{"additionalLabels":{},"enabled":true,"nameOverride":"","store":{"name":"openbao","path":"/cloudflare/tunnels","property":"token"}}` | External Secret configuration |
|
||||
| secret.externalSecret.additionalLabels | object | `{}` | Add additional labels |
|
||||
| secret.externalSecret.store | object | `{"name":"vault","path":"/cloudflare/tunnels","property":"token"}` | Cluster store config |
|
||||
| secret.externalSecret.store | object | `{"name":"openbao","path":"/cloudflare/tunnels","property":"token"}` | Cluster store config |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
|
||||
|
||||
@@ -14,10 +14,6 @@ spec:
|
||||
data:
|
||||
- secretKey: {{ include "secret.key" . }}
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ include "secret.path" . }}
|
||||
metadataPolicy: None
|
||||
property: {{ .Values.secret.externalSecret.store.property | required "External Secret store property is required" }}
|
||||
|
||||
{{- end }}
|
||||
|
||||
@@ -11,7 +11,7 @@ secret:
|
||||
|
||||
# -- Cluster store config
|
||||
store:
|
||||
name: vault
|
||||
name: openbao
|
||||
path: /cloudflare/tunnels
|
||||
property: token
|
||||
|
||||
@@ -26,11 +26,11 @@ secret:
|
||||
# -- Default image
|
||||
image:
|
||||
repository: cloudflare/cloudflared
|
||||
tag: "2026.3.0"
|
||||
tag: 2026.3.0@sha256:6b599ca3e974349ead3286d178da61d291961182ec3fe9c505e1dd02c8ac31b0
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# -- Default resources
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
cpu: 1m
|
||||
memory: 20Mi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: generic-device-plugin
|
||||
version: 0.20.27
|
||||
version: 0.20.31
|
||||
description: Generic Device Plugin
|
||||
keywords:
|
||||
- generic-device-plugin
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# generic-device-plugin
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Generic Device Plugin
|
||||
|
||||
@@ -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:e85f9637ea93f0e9a8d477b0e136783cd6fb8f1a5426cf84ef05ab4c88661c8c"}` | Default image |
|
||||
| image | object | `{"pullPolicy":"Always","repository":"ghcr.io/squat/generic-device-plugin","tag":"latest@sha256:d9e098e33a20c32a561adb1ef8cace7d5912cd5ffb38f07dd9f83af4bdf38505"}` | 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 |
|
||||
|
||||
@@ -4,7 +4,7 @@ name: generic-device-plugin
|
||||
# -- Default image
|
||||
image:
|
||||
repository: ghcr.io/squat/generic-device-plugin
|
||||
tag: latest@sha256:e85f9637ea93f0e9a8d477b0e136783cd6fb8f1a5426cf84ef05ab4c88661c8c
|
||||
tag: latest@sha256:d9e098e33a20c32a561adb1ef8cace7d5912cd5ffb38f07dd9f83af4bdf38505
|
||||
pullPolicy: Always
|
||||
|
||||
# -- Domain used by devices for identifcation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: postgres-cluster
|
||||
version: 7.11.2
|
||||
version: 7.12.1
|
||||
description: Cloudnative-pg Cluster
|
||||
keywords:
|
||||
- database
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# postgres-cluster
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Cloudnative-pg Cluster
|
||||
|
||||
|
||||
@@ -16,28 +16,19 @@ metadata:
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
name: openbao
|
||||
data:
|
||||
- secretKey: ACCESS_REGION
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .externalSecretCredentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_REGION
|
||||
- secretKey: ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .externalSecretCredentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_KEY_ID
|
||||
- secretKey: ACCESS_SECRET_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .externalSecretCredentialPath| required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_SECRET_KEY
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
@@ -58,27 +49,18 @@ metadata:
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
name: openbao
|
||||
data:
|
||||
- secretKey: ACCESS_REGION
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_REGION
|
||||
- secretKey: ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_KEY_ID
|
||||
- secretKey: ACCESS_SECRET_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.recovery.objectStore.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_SECRET_KEY
|
||||
{{- end }}
|
||||
|
||||
6
charts/rclone-bucket/Chart.lock
Normal file
6
charts/rclone-bucket/Chart.lock
Normal file
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||
version: 4.6.2
|
||||
digest: sha256:35e8f4e5d15d878c246a04eb51de580291f31203fa10e9e4d2318f16026b2061
|
||||
generated: "2026-04-25T20:40:50.27544-05:00"
|
||||
20
charts/rclone-bucket/Chart.yaml
Normal file
20
charts/rclone-bucket/Chart.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: v2
|
||||
name: rclone-bucket
|
||||
version: 0.1.0
|
||||
description: Rclone CronJob to replicate buckets
|
||||
keywords:
|
||||
- rclone-bucket
|
||||
- rclone
|
||||
- storage
|
||||
sources:
|
||||
- https://github.com/rclone/rclone
|
||||
- https://hub.docker.com/r/rclone/rclone
|
||||
maintainers:
|
||||
- name: alexlebens
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||
version: 4.6.2
|
||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/rclone.png
|
||||
# renovate: datasource=github-releases depName=rclone/rclone
|
||||
appVersion: v1.73.5
|
||||
44
charts/rclone-bucket/README.md
Normal file
44
charts/rclone-bucket/README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# rclone-bucket
|
||||
|
||||
 
|
||||
|
||||
Rclone CronJob to replicate buckets
|
||||
|
||||
## Maintainers
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| alexlebens | | |
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/rclone/rclone>
|
||||
* <https://hub.docker.com/r/rclone/rclone>
|
||||
|
||||
## Requirements
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.6.2 |
|
||||
|
||||
## Values
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| additionalLabels | object | `{}` | Add additional labels |
|
||||
| cronJob | object | `{"backoffLimit":3,"parallelism":1,"schedule":"0 0 * * *","suspend":false,"timeZone":"America/Chicago"}` | CronJob configuration |
|
||||
| image | object | `{"pullPolicy":"IfNotPresent","repository":"rclone/rclone","tag":"1.73.5@sha256:1619a625f845e169c34b952cf40c483c0392965b821c5155cde8cbfd35254a96"}` | Default image |
|
||||
| nameOverride | string | `""` | Default pattern follows <pvcTarget>-backup |
|
||||
| prune | object | `{"ageToPrune":"90d","enabled":false}` | Enable prune job |
|
||||
| rclone | object | `{"destination":{"bucketName":"bucket","forcePathStyle":true,"providerType":"Other"},"providerType":"Other","source":{"bucketName":"bucket","forcePathStyle":true,"providerType":"Other"}}` | rclone configuration |
|
||||
| rclone.destination | object | `{"bucketName":"bucket","forcePathStyle":true,"providerType":"Other"}` | Destination configuration |
|
||||
| rclone.source | object | `{"bucketName":"bucket","forcePathStyle":true,"providerType":"Other"}` | Source configuration |
|
||||
| secret | object | `{"existingSecretDestination":{"name":"rclone-destination-secret"},"existingSecretSource":{"name":"rclone-source-secret"},"externalSecret":{"additionalLabels":{},"destination":{"config":{"endpointProperty":"ENDPOINT_REMOTE","path":"/config"},"credentials":{"keyIdProperty":"ACCESS_KEY_ID","path":"/credential","regionProperty":"ACCESS_REGION","secretKeyProperty":"ACCESS_SECRET_KEY"},"nameOverride":""},"enabled":true,"source":{"config":{"endpointProperty":"ENDPOINT_LOCAL","path":"/config"},"credentials":{"keyIdProperty":"ACCESS_KEY_ID","path":"/credential","regionProperty":"ACCESS_REGION","secretKeyProperty":"ACCESS_SECRET_KEY"},"nameOverride":""},"storeName":"openbao"}}` | Secret configuration |
|
||||
| secret.existingSecretSource | object | `{"name":"rclone-source-secret"}` | Name of existing secret that contains the configuration |
|
||||
| secret.externalSecret | object | `{"additionalLabels":{},"destination":{"config":{"endpointProperty":"ENDPOINT_REMOTE","path":"/config"},"credentials":{"keyIdProperty":"ACCESS_KEY_ID","path":"/credential","regionProperty":"ACCESS_REGION","secretKeyProperty":"ACCESS_SECRET_KEY"},"nameOverride":""},"enabled":true,"source":{"config":{"endpointProperty":"ENDPOINT_LOCAL","path":"/config"},"credentials":{"keyIdProperty":"ACCESS_KEY_ID","path":"/credential","regionProperty":"ACCESS_REGION","secretKeyProperty":"ACCESS_SECRET_KEY"},"nameOverride":""},"storeName":"openbao"}` | External Secret configuration |
|
||||
| secret.externalSecret.additionalLabels | object | `{}` | Add additional labels |
|
||||
| secret.externalSecret.destination | object | `{"config":{"endpointProperty":"ENDPOINT_REMOTE","path":"/config"},"credentials":{"keyIdProperty":"ACCESS_KEY_ID","path":"/credential","regionProperty":"ACCESS_REGION","secretKeyProperty":"ACCESS_SECRET_KEY"},"nameOverride":""}` | Destination configuration |
|
||||
| secret.externalSecret.source | object | `{"config":{"endpointProperty":"ENDPOINT_LOCAL","path":"/config"},"credentials":{"keyIdProperty":"ACCESS_KEY_ID","path":"/credential","regionProperty":"ACCESS_REGION","secretKeyProperty":"ACCESS_SECRET_KEY"},"nameOverride":""}` | Source configuration |
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
|
||||
90
charts/rclone-bucket/templates/_helpers.tpl
Normal file
90
charts/rclone-bucket/templates/_helpers.tpl
Normal file
@@ -0,0 +1,90 @@
|
||||
{{/*
|
||||
Generate the root name
|
||||
*/}}
|
||||
{{- define "rclone.name" -}}
|
||||
{{- if .Values.nameOverride }}
|
||||
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-rclone" .Values.rclone.source.bucketName | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Generate the secret name
|
||||
*/}}
|
||||
{{- define "rclone.sourceSecretName" -}}
|
||||
{{- if .Values.secret.externalSecret.enabled }}
|
||||
{{- if .Values.secret.externalSecret.source.nameOverride }}
|
||||
{{- .Values.secret.externalSecret.source.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-rclone-config" .Values.rclone.source.bucketName -}}
|
||||
{{- end }}
|
||||
{{- else if .Values.secret.existingSecretSource.name }}
|
||||
{{- printf "%s" .Values.secret.existingSecretSource.name -}}
|
||||
{{- else }}
|
||||
{{ fail "No Secret Name Found!" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "rclone.destinationSecretName" -}}
|
||||
{{- if .Values.secret.externalSecret.enabled }}
|
||||
{{- if .Values.secret.externalSecret.destination.nameOverride }}
|
||||
{{- .Values.secret.externalSecret.destination.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-rclone-config" .Values.rclone.destination.bucketName -}}
|
||||
{{- end }}
|
||||
{{- else if .Values.secret.existingSecretDestination.name }}
|
||||
{{- printf "%s" .Values.secret.existingSecretDestination.name -}}
|
||||
{{- else }}
|
||||
{{ fail "No Secret Name Found!" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common env names
|
||||
*/}}
|
||||
{{- define "secret.envAccessKey" -}}
|
||||
ACCESS_KEY_ID
|
||||
{{- end }}
|
||||
{{- define "secret.envSecretKey" -}}
|
||||
ACCESS_SECRET_KEY
|
||||
{{- end }}
|
||||
{{- define "secret.envRegion" -}}
|
||||
ACCESS_REGION
|
||||
{{- end }}
|
||||
{{- define "secret.envSrcEndpoint" -}}
|
||||
SRC_ENDPOINT
|
||||
{{- end }}
|
||||
{{- define "secret.envDestEndpoint" -}}
|
||||
DEST_ENDPOINT
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "secret.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "secret.labels" -}}
|
||||
helm.sh/chart: {{ include "secret.chart" $ }}
|
||||
{{ include "secret.selectorLabels" $ }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.Version | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- with .Values.secret.externalSecret.additionalLabels }}
|
||||
{{ toYaml . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "secret.selectorLabels" -}}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
131
charts/rclone-bucket/templates/common.yaml
Normal file
131
charts/rclone-bucket/templates/common.yaml
Normal file
@@ -0,0 +1,131 @@
|
||||
{{- include "bjw-s.common.loader.init" . }}
|
||||
|
||||
{{- define "rclone.hardcodedValues" -}}
|
||||
global:
|
||||
nameOverride: {{ include "rclone.name" . }}
|
||||
fullNameOverride: {{ include "rclone.name" . }}
|
||||
controllers:
|
||||
main:
|
||||
type: cronjob
|
||||
{{- with .Values.cronJob }}
|
||||
cronjob:
|
||||
{{- toYaml . | nindent 6 }}
|
||||
{{ end }}
|
||||
containers:
|
||||
sync:
|
||||
image:
|
||||
repository: {{ .Values.image.repository }}
|
||||
tag: {{ .Values.image.tag }}
|
||||
pullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- sync
|
||||
- src:{{ .Values.rclone.source.bucketName }}
|
||||
- dest:{{ .Values.rclone.destination.bucketName }}
|
||||
- --s3-no-check-bucket
|
||||
- --verbose
|
||||
env:
|
||||
- name: RCLONE_S3_PROVIDER
|
||||
value: {{ .Values.rclone.providerType }}
|
||||
- name: RCLONE_CONFIG_SRC_TYPE
|
||||
value: s3
|
||||
- name: RCLONE_CONFIG_SRC_PROVIDER
|
||||
value: {{ .Values.rclone.source.providerType }}
|
||||
- name: RCLONE_CONFIG_SRC_ENV_AUTH
|
||||
value: false
|
||||
- name: RCLONE_CONFIG_SRC_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envAccessKey" . }}
|
||||
- name: RCLONE_CONFIG_SRC_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envSecretKey" . }}
|
||||
- name: RCLONE_CONFIG_SRC_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envRegion" . }}
|
||||
- name: RCLONE_CONFIG_SRC_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
key: {{ include "secret.envSrcEndpoint" . }}
|
||||
- name: RCLONE_CONFIG_SRC_S3_FORCE_PATH_STYLE
|
||||
value: {{ .Values.rclone.source.forcePathStyle }}
|
||||
- name: RCLONE_CONFIG_DEST_TYPE
|
||||
value: s3
|
||||
- name: RCLONE_CONFIG_DEST_PROVIDER
|
||||
value: {{ .Values.rclone.destination.providerType }}
|
||||
- name: RCLONE_CONFIG_DEST_ENV_AUTH
|
||||
value: false
|
||||
- name: RCLONE_CONFIG_DEST_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envAccessKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envSecretKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envRegion" . }}
|
||||
- name: RCLONE_CONFIG_DEST_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envDestEndpoint" . }}
|
||||
- name: RCLONE_CONFIG_SRC_DEST_FORCE_PATH_STYLE
|
||||
value: {{ .Values.rclone.destination.forcePathStyle }}
|
||||
{{- if .Values.prune.enabled }}
|
||||
prune:
|
||||
image:
|
||||
repository: {{ .Values.image.repository }}
|
||||
tag: {{ .Values.image.tag }}
|
||||
pullPolicy: {{ .Values.image.pullPolicy }}
|
||||
args:
|
||||
- delete
|
||||
- dest:{{ .Values.rclone.destination.bucketName }}
|
||||
- --min-age
|
||||
- {{ .Values.prune.ageToPrune }}
|
||||
- --verbose
|
||||
env:
|
||||
- name: RCLONE_CONFIG_DEST_TYPE
|
||||
value: s3
|
||||
- name: RCLONE_CONFIG_DEST_PROVIDER
|
||||
value: {{ .Values.rclone.destination.providerType }}
|
||||
- name: RCLONE_CONFIG_DEST_ENV_AUTH
|
||||
value: false
|
||||
- name: RCLONE_CONFIG_DEST_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envAccessKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envSecretKey" . }}
|
||||
- name: RCLONE_CONFIG_DEST_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envRegion" . }}
|
||||
- name: RCLONE_CONFIG_DEST_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
key: {{ include "secret.envDestEndpoint" . }}
|
||||
- name: RCLONE_CONFIG_SRC_S3_FORCE_PATH_STYLE
|
||||
value: {{ .Values.rclone.destination.forcePathStyle }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- $_ := mergeOverwrite .Values (include "rclone.hardcodedValues" . | fromYaml) -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "bjw-s.common.loader.generate" . }}
|
||||
69
charts/rclone-bucket/templates/external-secret.yaml
Normal file
69
charts/rclone-bucket/templates/external-secret.yaml
Normal file
@@ -0,0 +1,69 @@
|
||||
{{- if .Values.secret.externalSecret.enabled }}
|
||||
---
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: {{ include "rclone.sourceSecretName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "secret.labels" . | nindent 4 }}
|
||||
app.kubernetes.io/name: {{ include "rclone.sourceSecretName" . }}
|
||||
{{- with .Values.additionalLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: {{ .Values.secret.externalSecret.storeName | required "External Secret store name is required" }}
|
||||
data:
|
||||
- secretKey: {{ include "secret.envAccessKey" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.source.credentials.path }}
|
||||
property: {{ .Values.secret.externalSecret.source.credentials.keyIdProperty }}
|
||||
- secretKey: {{ include "secret.envSecretKey" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.source.credentials.path }}
|
||||
property: {{ .Values.secret.externalSecret.source.credentials.secretKeyProperty }}
|
||||
- secretKey: {{ include "secret.envRegion" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.source.credentials.path }}
|
||||
property: {{ .Values.secret.externalSecret.source.credentials.regionProperty }}
|
||||
- secretKey: {{ include "secret.envSrcEndpoint" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.source.config.path }}
|
||||
property: {{ .Values.secret.externalSecret.source.config.endpointProperty }}
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: {{ include "rclone.destinationSecretName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "secret.labels" . | nindent 4 }}
|
||||
app.kubernetes.io/name: {{ include "rclone.destinationSecretName" . }}
|
||||
{{- with .Values.additionalLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: {{ .Values.secret.externalSecret.storeName | required "External Secret store name is required" }}
|
||||
data:
|
||||
- secretKey: {{ include "secret.envAccessKey" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.destination.credentials.path }}
|
||||
property: {{ .Values.secret.externalSecret.destination.credentials.keyIdProperty }}
|
||||
- secretKey: {{ include "secret.envSecretKey" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.destination.credentials.path }}
|
||||
property: {{ .Values.secret.externalSecret.destination.credentials.keyIdProperty }}
|
||||
- secretKey: {{ include "secret.envRegion" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.destination.credentials.path }}
|
||||
property: {{ .Values.secret.externalSecret.destination.credentials.keyIdProperty }}
|
||||
- secretKey: {{ include "secret.envDestEndpoint" . }}
|
||||
remoteRef:
|
||||
key: {{ .Values.secret.externalSecret.destination.config.path }}
|
||||
property: {{ .Values.secret.externalSecret.destination.config.endpointProperty }}
|
||||
{{- end }}
|
||||
82
charts/rclone-bucket/values.yaml
Normal file
82
charts/rclone-bucket/values.yaml
Normal file
@@ -0,0 +1,82 @@
|
||||
# -- Default pattern follows <pvcTarget>-backup
|
||||
nameOverride: ""
|
||||
|
||||
# -- Add additional labels
|
||||
additionalLabels: {}
|
||||
|
||||
# -- Default image
|
||||
image:
|
||||
repository: rclone/rclone
|
||||
tag: 1.73.5@sha256:1619a625f845e169c34b952cf40c483c0392965b821c5155cde8cbfd35254a96
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# -- CronJob configuration
|
||||
cronJob:
|
||||
suspend: false
|
||||
timeZone: America/Chicago
|
||||
schedule: 0 0 * * *
|
||||
backoffLimit: 3
|
||||
parallelism: 1
|
||||
|
||||
# -- rclone configuration
|
||||
rclone:
|
||||
providerType: Other
|
||||
|
||||
# -- Source configuration
|
||||
source:
|
||||
providerType: Other
|
||||
bucketName: bucket
|
||||
forcePathStyle: true
|
||||
|
||||
# -- Destination configuration
|
||||
destination:
|
||||
providerType: Other
|
||||
bucketName: bucket
|
||||
forcePathStyle: true
|
||||
|
||||
# -- Enable prune job
|
||||
prune:
|
||||
enabled: false
|
||||
ageToPrune: 90d
|
||||
|
||||
# -- Secret configuration
|
||||
secret:
|
||||
|
||||
# -- External Secret configuration
|
||||
externalSecret:
|
||||
enabled: true
|
||||
storeName: openbao
|
||||
|
||||
# -- Source configuration
|
||||
source:
|
||||
nameOverride: ""
|
||||
credentials:
|
||||
path: /credential
|
||||
keyIdProperty: ACCESS_KEY_ID
|
||||
secretKeyProperty: ACCESS_SECRET_KEY
|
||||
regionProperty: ACCESS_REGION
|
||||
config:
|
||||
path: /config
|
||||
endpointProperty: ENDPOINT_LOCAL
|
||||
|
||||
# -- Destination configuration
|
||||
destination:
|
||||
nameOverride: ""
|
||||
credentials:
|
||||
path: /credential
|
||||
keyIdProperty: ACCESS_KEY_ID
|
||||
secretKeyProperty: ACCESS_SECRET_KEY
|
||||
regionProperty: ACCESS_REGION
|
||||
config:
|
||||
path: /config
|
||||
endpointProperty: ENDPOINT_REMOTE
|
||||
|
||||
# -- Add additional labels
|
||||
additionalLabels: {}
|
||||
|
||||
# -- Name of existing secret that contains the configuration
|
||||
existingSecretSource:
|
||||
name: rclone-source-secret
|
||||
|
||||
existingSecretDestination:
|
||||
name: rclone-destination-secret
|
||||
@@ -1,6 +1,6 @@
|
||||
dependencies:
|
||||
- name: valkey
|
||||
repository: https://valkey.io/valkey-helm/
|
||||
version: 0.9.3
|
||||
digest: sha256:705fdaa1d456e55dd1a8aba698e17b2309a336f614cba8fd3cdb7e072b323b36
|
||||
generated: "2026-03-03T16:02:43.407652-06:00"
|
||||
version: 0.9.4
|
||||
digest: sha256:84e2e4a944be7f69b6819215a53c068a126fc9d62383a90e22b33751ec5d2810
|
||||
generated: "2026-04-13T00:01:51.952023667Z"
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
apiVersion: v2
|
||||
name: valkey
|
||||
version: 0.5.0
|
||||
version: 0.6.1
|
||||
description: Valkey chart with preconfigured settings
|
||||
keywords:
|
||||
- valkey
|
||||
- redis
|
||||
- storage
|
||||
- kubernetes
|
||||
- redis-compatible
|
||||
sources:
|
||||
- https://github.com/valkey-io/valkey
|
||||
- https://github.com/oliver006/redis_exporter
|
||||
- https://hub.docker.com/r/valkey/valkey
|
||||
- https://github.com/oliver006/redis_exporter/pkgs/container/redis_exporter
|
||||
- https://github.com/valkey-io/valkey-helm
|
||||
maintainers:
|
||||
- name: alexlebens
|
||||
dependencies:
|
||||
- name: valkey
|
||||
repository: https://valkey.io/valkey-helm/
|
||||
version: 0.9.3
|
||||
icon: https://dyltqmyl993wv.cloudfront.net/assets/stacks/valkey/img/valkey-stack-220x234.png
|
||||
version: 0.9.4
|
||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/valkey.png
|
||||
# renovate: datasource=github-releases depName=valkey-io/valkey
|
||||
appVersion: 9.0.3
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# valkey
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Valkey chart with preconfigured settings
|
||||
|
||||
@@ -13,13 +13,16 @@ Valkey chart with preconfigured settings
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/valkey-io/valkey>
|
||||
* <https://github.com/oliver006/redis_exporter>
|
||||
* <https://hub.docker.com/r/valkey/valkey>
|
||||
* <https://github.com/oliver006/redis_exporter/pkgs/container/redis_exporter>
|
||||
* <https://github.com/valkey-io/valkey-helm>
|
||||
|
||||
## Requirements
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://valkey.io/valkey-helm/ | valkey | 0.9.3 |
|
||||
| https://valkey.io/valkey-helm/ | valkey | 0.9.4 |
|
||||
|
||||
## Values
|
||||
|
||||
@@ -32,11 +35,11 @@ Valkey chart with preconfigured settings
|
||||
| valkey.dataStorage.requestedSize | string | `"1Gi"` | |
|
||||
| valkey.image.registry | string | `"docker.io"` | |
|
||||
| valkey.image.repository | string | `"valkey/valkey"` | |
|
||||
| valkey.image.tag | string | `"9.0.3"` | |
|
||||
| valkey.image.tag | string | `"9.0.3@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9"` | |
|
||||
| valkey.metrics.enabled | bool | `true` | |
|
||||
| valkey.metrics.exporter.image.registry | string | `"ghcr.io"` | |
|
||||
| valkey.metrics.exporter.image.repository | string | `"oliver006/redis_exporter"` | |
|
||||
| valkey.metrics.exporter.image.tag | string | `"v1.82.0"` | |
|
||||
| valkey.metrics.exporter.image.tag | string | `"v1.82.0@sha256:6a97d4dd743b533e1f950c677b87d880e44df363c61af3f406fc9e53ed65ee03"` | |
|
||||
| valkey.metrics.exporter.resources.requests.cpu | string | `"1m"` | |
|
||||
| valkey.metrics.exporter.resources.requests.memory | string | `"10M"` | |
|
||||
| valkey.metrics.podMonitor.enabled | bool | `true` | |
|
||||
|
||||
@@ -3,7 +3,7 @@ valkey:
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: valkey/valkey
|
||||
tag: 9.0.3
|
||||
tag: 9.0.3@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
serviceAccount:
|
||||
create: true
|
||||
resources:
|
||||
@@ -31,7 +31,7 @@ valkey:
|
||||
image:
|
||||
registry: ghcr.io
|
||||
repository: oliver006/redis_exporter
|
||||
tag: v1.82.0
|
||||
tag: v1.82.0@sha256:6a97d4dd743b533e1f950c677b87d880e44df363c61af3f406fc9e53ed65ee03
|
||||
resources:
|
||||
requests:
|
||||
cpu: 1m
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: volsync-target
|
||||
version: 0.8.0
|
||||
version: 1.0.0
|
||||
description: Volsync Replication set to target specific PVC with preconfigured settings
|
||||
keywords:
|
||||
- volsync-target
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# volsync-target
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Volsync Replication set to target specific PVC with preconfigured settings
|
||||
|
||||
@@ -20,21 +20,22 @@ Volsync Replication set to target specific PVC with preconfigured settings
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| additionalLabels | object | `{}` | Add additional labels |
|
||||
| external | object | `{"enabled":true,"externalSecret":{"credentialPath":"/digital-ocean/home-infra/volsync-backups","volsyncPath":"/volsync/restic/digital-ocean"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 9 * * *"}` | External backup configuration |
|
||||
| external.externalSecret | object | `{"credentialPath":"/digital-ocean/home-infra/volsync-backups","volsyncPath":"/volsync/restic/digital-ocean"}` | External Secret configuration |
|
||||
| external | object | `{"enabled":true,"externalSecret":{"bucketPath":"/digital-ocean/config","credentialPath":"/digital-ocean/home-infra/volsync-backups"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 9 * * *"}` | External backup configuration |
|
||||
| external.externalSecret | object | `{"bucketPath":"/digital-ocean/config","credentialPath":"/digital-ocean/home-infra/volsync-backups"}` | External Secret configuration |
|
||||
| external.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
|
||||
| external.schedule | string | `"0 9 * * *"` | 5 character cron schedule |
|
||||
| externalSecrets | object | `{"enabled":true}` | Use external secrets |
|
||||
| local | object | `{"enabled":false,"externalSecret":{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-local"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 8 * * *"}` | Local backup configuration |
|
||||
| local.externalSecret | object | `{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-local"}` | External Secret configuration |
|
||||
| kubernetesClusterName | string | `"cl01tl"` | Kubernetes cluster name |
|
||||
| local | object | `{"enabled":false,"externalSecret":{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 8 * * *"}` | Local backup configuration |
|
||||
| local.externalSecret | object | `{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"}` | External Secret configuration |
|
||||
| local.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
|
||||
| local.schedule | string | `"0 8 * * *"` | 5 character cron schedule |
|
||||
| moverSecurityContext | object | `{}` | Glocal security context for restic mover |
|
||||
| nameOverride | string | `""` | Default pattern follows <pvcTarget>-backup |
|
||||
| namespaceOverride | string | `""` | Override the namespace of the chart |
|
||||
| pvcTarget | string | `"data"` | Name of the PVC target |
|
||||
| remote | object | `{"enabled":false,"externalSecret":{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-remote"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 10 * * *"}` | Remote backup configuration |
|
||||
| remote.externalSecret | object | `{"credentialPath":"/garage/home-infra/volsync-backups","volsyncPath":"/volsync/restic/garage-remote"}` | External Secret configuration |
|
||||
| remote | object | `{"enabled":false,"externalSecret":{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"},"restic":{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"},"schedule":"0 10 * * *"}` | Remote backup configuration |
|
||||
| remote.externalSecret | object | `{"bucketPath":"/garage/config","credentialPath":"/garage/home-infra/volsync-backups"}` | External Secret configuration |
|
||||
| remote.restic | object | `{"cacheCapacity":"1Gi","copyMethod":"Snapshot","pruneIntervalDays":7,"repository":"","retain":{"daily":7,"hourly":0,"monthly":3,"weekly":4,"yearly":1},"storageClassName":"ceph-block","volumeSnapshotClassName":"ceph-blockpool-snapshot"}` | Backup configuration, inserted directly into the yaml |
|
||||
| remote.schedule | string | `"0 10 * * *"` | 5 character cron schedule |
|
||||
|
||||
|
||||
@@ -14,48 +14,37 @@ metadata:
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
name: openbao
|
||||
target:
|
||||
template:
|
||||
mergePolicy: Merge
|
||||
engineVersion: v2
|
||||
data:
|
||||
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
|
||||
RESTIC_REPOSITORY: "s3:{{ `{{ .ENDPOINT }}` }}/{{ `{{ .BUCKET }}` }}/{{ .Values.kubernetesClusterName }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
|
||||
data:
|
||||
- secretKey: BUCKET_ENDPOINT
|
||||
- secretKey: ENDPOINT
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: BUCKET_ENDPOINT
|
||||
key: {{ .Values.local.externalSecret.bucketPath | required "External Secret Volsync local path is required" }}
|
||||
property: ENDPOINT_LOCAL
|
||||
- secretKey: BUCKET
|
||||
remoteRef:
|
||||
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
|
||||
property: BUCKET
|
||||
- secretKey: RESTIC_PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.local.externalSecret.volsyncPath | required "External Secret Volsync local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: RESTIC_PASSWORD
|
||||
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
|
||||
property: RESTIC_PASSWORD_LOCAL
|
||||
- secretKey: AWS_DEFAULT_REGION
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_REGION
|
||||
- secretKey: AWS_ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_KEY_ID
|
||||
- secretKey: AWS_SECRET_ACCESS_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.local.externalSecret.credentialPath | required "External Secret Credential local path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_SECRET_KEY
|
||||
{{- end }}
|
||||
|
||||
@@ -75,48 +64,37 @@ metadata:
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
name: openbao
|
||||
target:
|
||||
template:
|
||||
mergePolicy: Merge
|
||||
engineVersion: v2
|
||||
data:
|
||||
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
|
||||
RESTIC_REPOSITORY: "s3:{{ `{{ .ENDPOINT }}` }}/{{ `{{ .BUCKET }}` }}/{{ .Values.kubernetesClusterName }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
|
||||
data:
|
||||
- secretKey: BUCKET_ENDPOINT
|
||||
- secretKey: ENDPOINT
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.remote.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }}
|
||||
metadataPolicy: None
|
||||
property: BUCKET_ENDPOINT
|
||||
key: {{ .Values.remote.externalSecret.bucketPath | required "External Secret Volsync local path is required" }}
|
||||
property: ENDPOINT_REMOTE
|
||||
- secretKey: BUCKET
|
||||
remoteRef:
|
||||
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
|
||||
property: BUCKET
|
||||
- secretKey: RESTIC_PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.remote.externalSecret.volsyncPath | required "External Secret Volsync remote path is required" }}
|
||||
metadataPolicy: None
|
||||
property: RESTIC_PASSWORD
|
||||
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
|
||||
property: RESTIC_PASSWORD_REMOTE
|
||||
- secretKey: AWS_DEFAULT_REGION
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_REGION
|
||||
- secretKey: AWS_ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_KEY_ID
|
||||
- secretKey: AWS_SECRET_ACCESS_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.remote.externalSecret.credentialPath | required "External Secret Credential remote path is required" }}
|
||||
metadataPolicy: None
|
||||
property: ACCESS_SECRET_KEY
|
||||
{{- end }}
|
||||
|
||||
@@ -136,47 +114,36 @@ metadata:
|
||||
spec:
|
||||
secretStoreRef:
|
||||
kind: ClusterSecretStore
|
||||
name: vault
|
||||
name: openbao
|
||||
target:
|
||||
template:
|
||||
mergePolicy: Merge
|
||||
engineVersion: v2
|
||||
data:
|
||||
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
|
||||
RESTIC_REPOSITORY: "s3:{{ `{{ .ENDPOINT }}` }}/{{ `{{ .BUCKET }}` }}/{{ .Values.kubernetesClusterName }}/{{ .Release.Namespace }}/{{ .Values.pvcTarget | required "PVC target is required" }}"
|
||||
data:
|
||||
- secretKey: BUCKET_ENDPOINT
|
||||
- secretKey: ENDPOINT
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.external.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }}
|
||||
metadataPolicy: None
|
||||
property: BUCKET_ENDPOINT
|
||||
key: {{ .Values.external.externalSecret.bucketPath | required "External Secret Volsync external path is required" }}
|
||||
property: ENDPOINT
|
||||
- secretKey: BUCKET
|
||||
remoteRef:
|
||||
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Volsync local path is required" }}
|
||||
property: BUCKET
|
||||
- secretKey: RESTIC_PASSWORD
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.external.externalSecret.volsyncPath | required "External Secret Volsync external path is required" }}
|
||||
metadataPolicy: None
|
||||
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Volsync external path is required" }}
|
||||
property: RESTIC_PASSWORD
|
||||
- secretKey: AWS_DEFAULT_REGION
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }}
|
||||
metadataPolicy: None
|
||||
property: AWS_DEFAULT_REGION
|
||||
property: AWS_REGION
|
||||
- secretKey: AWS_ACCESS_KEY_ID
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }}
|
||||
metadataPolicy: None
|
||||
property: AWS_ACCESS_KEY_ID
|
||||
- secretKey: AWS_SECRET_ACCESS_KEY
|
||||
remoteRef:
|
||||
conversionStrategy: Default
|
||||
decodingStrategy: None
|
||||
key: {{ .Values.external.externalSecret.credentialPath | required "External Secret Credential external path is required" }}
|
||||
metadataPolicy: None
|
||||
property: AWS_SECRET_ACCESS_KEY
|
||||
{{- end }}
|
||||
|
||||
@@ -4,6 +4,9 @@ nameOverride: ""
|
||||
# -- Override the namespace of the chart
|
||||
namespaceOverride: ""
|
||||
|
||||
# -- Kubernetes cluster name
|
||||
kubernetesClusterName: cl01tl
|
||||
|
||||
# -- Add additional labels
|
||||
additionalLabels: {}
|
||||
|
||||
@@ -41,9 +44,9 @@ local:
|
||||
|
||||
# -- External Secret configuration
|
||||
externalSecret:
|
||||
# This path must contain the BUCKET_ENDPOINT and RESTIC_PASSWORD
|
||||
volsyncPath: /volsync/restic/garage-local
|
||||
# This path must contain the AWS/S3 credentials
|
||||
# This path must contain the BUCKET_ENDPOINT
|
||||
bucketPath: /garage/config
|
||||
# This path must contain the AWS/S3 credentials and RESTIC_PASSWORD
|
||||
credentialPath: /garage/home-infra/volsync-backups
|
||||
|
||||
# -- Remote backup configuration
|
||||
@@ -70,9 +73,9 @@ remote:
|
||||
|
||||
# -- External Secret configuration
|
||||
externalSecret:
|
||||
# This path must contain the BUCKET_ENDPOINT and RESTIC_PASSWORD
|
||||
volsyncPath: /volsync/restic/garage-remote
|
||||
# This path must contain the AWS/S3 credentials
|
||||
# This path must contain the BUCKET_ENDPOINT
|
||||
bucketPath: /garage/config
|
||||
# This path must contain the AWS/S3 credentials and RESTIC_PASSWORD
|
||||
credentialPath: /garage/home-infra/volsync-backups
|
||||
|
||||
# -- External backup configuration
|
||||
@@ -99,7 +102,7 @@ external:
|
||||
|
||||
# -- External Secret configuration
|
||||
externalSecret:
|
||||
# This path must contain the BUCKET_ENDPOINT and RESTIC_PASSWORD
|
||||
volsyncPath: /volsync/restic/digital-ocean
|
||||
# This path must contain the AWS/S3 credentials
|
||||
# This path must contain the ENDPOINT
|
||||
bucketPath: /digital-ocean/config
|
||||
# This path must contain the AWS/S3 credentials and RESTIC_PASSWORD
|
||||
credentialPath: /digital-ocean/home-infra/volsync-backups
|
||||
|
||||
Reference in New Issue
Block a user