Commit new App releases for TrueCharts

Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
TrueCharts-Bot 2021-09-11 19:47:14 +00:00
parent 4415f81941
commit f78554f3ef
34 changed files with 3385 additions and 0 deletions

View File

@ -0,0 +1,8 @@
<a name="nextcloud-4.0.5"></a>
### [nextcloud-4.0.5](https://github.com/truecharts/apps/compare/nextcloud-4.0.4...nextcloud-4.0.5) (2021-09-11)
#### Fix
* use correct appversion string

View File

@ -0,0 +1,8 @@
# Configuration Options
##### Connecting to other apps
If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide:
https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/
##### Available config options
In the future this page is going to contain an automated list of options available in the installation/edit UI.

View File

@ -0,0 +1,12 @@
dependencies:
- name: common
repository: https://truecharts.org/
version: 7.0.3
- name: postgresql
repository: https://truecharts.org/
version: 2.1.0
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 15.3.1
digest: sha256:3ba8c9eedb67f4111181bed8eceb74d9491eb65562376749a128423174f8d0ff
generated: "2021-09-11T19:45:58.839986614Z"

View File

@ -0,0 +1,36 @@
apiVersion: v2
appVersion: 22.1.1
dependencies:
- name: common
repository: https://truecharts.org/
version: 7.0.3
- condition: postgresql.enabled
name: postgresql
repository: https://truecharts.org/
version: 2.1.0
- condition: redis.enabled
name: redis
repository: https://charts.bitnami.com/bitnami
version: 15.3.1
deprecated: false
description: A private cloud server that puts the control and security of your own
data back into your hands.
home: https://nextcloud.com/
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Nextcloud_Logo.svg/1280px-Nextcloud_Logo.svg.png
keywords:
- nextcloud
- storage
- http
- web
- php
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: truecharts.org
name: nextcloud
sources:
- https://github.com/nextcloud/docker
- https://github.com/nextcloud/helm
type: application
version: 4.0.5

View File

@ -0,0 +1,40 @@
# Introduction
A private cloud server that puts the control and security of your own data back into your hands.
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
## Source Code
* <https://github.com/nextcloud/docker>
* <https://github.com/nextcloud/helm>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | redis | 15.3.1 |
| https://truecharts.org/ | common | 7.0.3 |
| https://truecharts.org/ | postgresql | 2.1.0 |
## Installing the Chart
To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/).
## Uninstalling the Chart
To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/).
## Support
- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first.
- See the [Wiki](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,3 @@
A private cloud server that puts the control and security of your own data back into your hands.
This App is supplied by TrueCharts, for more information please visit https://truecharts.org

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,87 @@
# Default Helm-Values
TrueCharts is primarily build to supply TrueNAS SCALE Apps.
However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file.
Most of our Apps also consume our "common" Helm Chart.
If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart.
You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document.
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| cronjob.annotations | object | `{}` | |
| cronjob.failedJobsHistoryLimit | int | `5` | |
| cronjob.schedule | string | `"*/5 * * * *"` | |
| cronjob.successfulJobsHistoryLimit | int | `2` | |
| env.NEXTCLOUD_ADMIN_PASSWORD | string | `"adminpass"` | |
| env.NEXTCLOUD_ADMIN_USER | string | `"admin"` | |
| env.TRUSTED_PROXIES | string | `"172.16.0.0/16"` | |
| envFrom[0].configMapRef.name | string | `"nextcloudconfig"` | |
| envTpl.POSTGRES_DB | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | |
| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | |
| envValueFrom.POSTGRES_HOST.secretKeyRef.key | string | `"host"` | |
| envValueFrom.POSTGRES_HOST.secretKeyRef.name | string | `"dbcreds"` | |
| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | |
| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | |
| envValueFrom.REDIS_HOST.secretKeyRef.key | string | `"masterhost"` | |
| envValueFrom.REDIS_HOST.secretKeyRef.name | string | `"rediscreds"` | |
| envValueFrom.REDIS_HOST_PASSWORD.secretKeyRef.key | string | `"redis-password"` | |
| envValueFrom.REDIS_HOST_PASSWORD.secretKeyRef.name | string | `"rediscreds"` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"docker.io/nextcloud"` | |
| image.tag | string | `"22.1.1@sha256:99d94124b2024c9f7f38dc12144a92bc0d68d110bcfd374169ebb7e8df0adf8e"` | |
| initContainers.init-postgresdb.command[0] | string | `"sh"` | |
| initContainers.init-postgresdb.command[1] | string | `"-c"` | |
| initContainers.init-postgresdb.command[2] | string | `"until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done"` | |
| initContainers.init-postgresdb.env[0].name | string | `"pghost"` | |
| initContainers.init-postgresdb.env[0].valueFrom.secretKeyRef.key | string | `"plainhost"` | |
| initContainers.init-postgresdb.env[0].valueFrom.secretKeyRef.name | string | `"dbcreds"` | |
| initContainers.init-postgresdb.image | string | `"{{ .Values.postgresqlImage.repository}}:{{ .Values.postgresqlImage.tag }}"` | |
| initContainers.init-postgresdb.imagePullPolicy | string | `"IfNotPresent"` | |
| persistence.data.accessMode | string | `"ReadWriteOnce"` | |
| persistence.data.enabled | bool | `true` | |
| persistence.data.mountPath | string | `"/var/www/html"` | |
| persistence.data.size | string | `"100Gi"` | |
| persistence.data.type | string | `"pvc"` | |
| persistence.redismaster.accessMode | string | `"ReadWriteOnce"` | |
| persistence.redismaster.enabled | bool | `true` | |
| persistence.redismaster.forceName | string | `"redismaster"` | |
| persistence.redismaster.noMount | bool | `true` | |
| persistence.redismaster.size | string | `"100Gi"` | |
| persistence.redismaster.type | string | `"pvc"` | |
| podSecurityContext.fsGroup | int | `33` | |
| podSecurityContext.fsGroupChangePolicy | string | `"OnRootMismatch"` | |
| podSecurityContext.runAsGroup | int | `0` | |
| podSecurityContext.runAsUser | int | `0` | |
| podSecurityContext.supplementalGroups | list | `[]` | |
| postgresql.enabled | bool | `true` | |
| postgresql.existingSecret | string | `"dbcreds"` | |
| postgresql.postgresqlDatabase | string | `"nextcloud"` | |
| postgresql.postgresqlUsername | string | `"nextcloud"` | |
| postgresqlImage.pullPolicy | string | `"IfNotPresent"` | |
| postgresqlImage.repository | string | `"bitnami/postgresql"` | |
| postgresqlImage.tag | string | `"13.4.0@sha256:7fff0f7e827cd8e1daa3adbf0ca3f19e21006023c0f6d1c2d835718961516a87"` | |
| probes | object | See below | Probe configuration -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) |
| probes.liveness | object | See below | Liveness probe configuration |
| probes.liveness.spec | object | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used |
| probes.readiness | object | See below | Redainess probe configuration |
| probes.readiness.spec | object | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used |
| probes.startup | object | See below | Startup probe configuration |
| probes.startup.spec | object | "/" | If a HTTP probe is used (default for HTTP/HTTPS services) this path is used |
| redis.architecture | string | `"standalone"` | |
| redis.auth.existingSecret | string | `"rediscreds"` | |
| redis.auth.existingSecretPasswordKey | string | `"redis-password"` | |
| redis.enabled | bool | `true` | |
| redis.master.persistence.enabled | bool | `false` | |
| redis.master.persistence.existingClaim | string | `"redismaster"` | |
| redis.replica.persistence.enabled | bool | `false` | |
| redis.replica.replicaCount | int | `0` | |
| redis.volumePermissions.enabled | bool | `true` | |
| service.hpb.enabled | bool | `true` | |
| service.hpb.ports.hpb.enabled | bool | `true` | |
| service.hpb.ports.hpb.port | int | `7867` | |
| service.main.ports.main.port | int | `80` | |
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,166 @@
##
# This file contains Values.yaml content that gets added to the output of questions.yaml
# It's ONLY meant for content that the user is NOT expected to change.
# Example: Everything under "image" is not included in questions.yaml but is included here.
##
image:
repository: docker.io/nextcloud
pullPolicy: IfNotPresent
tag: 22.1.1@sha256:99d94124b2024c9f7f38dc12144a92bc0d68d110bcfd374169ebb7e8df0adf8e
postgresqlImage:
repository: bitnami/postgresql
pullPolicy: IfNotPresent
tag: 13.4.0@sha256:7fff0f7e827cd8e1daa3adbf0ca3f19e21006023c0f6d1c2d835718961516a87
strategy:
type: Recreate
env: {}
envTpl:
POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}"
POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}"
envFrom:
- configMapRef:
name: nextcloudconfig
envValueFrom:
POSTGRES_PASSWORD:
secretKeyRef:
name: dbcreds
key: postgresql-password
POSTGRES_HOST:
secretKeyRef:
name: dbcreds
key: host
REDIS_HOST:
secretKeyRef:
name: rediscreds
key: masterhost
REDIS_HOST_PASSWORD:
secretKeyRef:
name: rediscreds
key: redis-password
initContainers:
init-postgresdb:
image: "{{ .Values.postgresqlImage.repository}}:{{ .Values.postgresqlImage.tag }}"
command:
- "sh"
- "-c"
- "until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done"
imagePullPolicy: IfNotPresent
env:
- name: pghost
valueFrom:
secretKeyRef:
name: dbcreds
key: plainhost
# -- Probe configuration
# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
# @default -- See below
probes:
# -- Liveness probe configuration
# @default -- See below
liveness:
custom: true
# -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used
# @default -- "/"
spec:
httpGet:
path: /status.php
port: 80
httpHeaders:
- name: Host
value: "test.fakedomain.dns"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 5
# -- Redainess probe configuration
# @default -- See below
readiness:
custom: true
# -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used
# @default -- "/"
spec:
httpGet:
path: /status.php
port: 80
httpHeaders:
- name: Host
value: "test.fakedomain.dns"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 5
# -- Startup probe configuration
# @default -- See below
startup:
custom: true
# -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used
# @default -- "/"
spec:
httpGet:
path: /status.php
port: 80
httpHeaders:
- name: Host
value: "test.fakedomain.dns"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 5
## Cronjob to execute Nextcloud background tasks
## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron
##
cronjob:
# Every 5 minutes
# Note: Setting this to any any other value than 5 minutes might
# cause issues with how nextcloud background jobs are executed
schedule: "*/5 * * * *"
annotations: {}
failedJobsHistoryLimit: 5
successfulJobsHistoryLimit: 2
# Enabled postgres
postgresql:
enabled: true
postgresqlUsername: nextcloud
postgresqlDatabase: nextcloud
existingSecret: dbcreds
persistence:
db:
storageClass: "SCALE-ZFS"
dbbackups:
storageClass: "SCALE-ZFS"
# Enabled redis
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis
redis:
architecture: standalone
enabled: true
auth:
existingSecret: rediscreds
existingSecretPasswordKey: redis-password
master:
persistence:
enabled: true
existingClaim: redismaster
replica:
replicaCount: 0
persistence:
enabled: false
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
{{/* Define the configmap */}}
{{- define "nextcloud.configmap" -}}
{{- $hosts := "" }}
{{- if .Values.ingress.main.enabled }}
{{- range .Values.ingress }}
{{- range $index, $host := .hosts }}
{{- if $index }}
{{ $hosts = ( printf "%v %v" $hosts $host.host ) }}
{{- else }}
{{ $hosts = ( printf "%s" $host.host ) }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nextcloudconfig
data:
NEXTCLOUD_TRUSTED_DOMAINS: {{ ( printf "%v %v %v %v %v" "test.fakedomain.dns" ( .Values.env.NODE_IP | default "localhost" ) ( printf "%v-%v" .Release.Name "nextcloud" ) ( printf "%v-%v" .Release.Name "nextcloud-hpb" ) $hosts ) | quote }}
{{- if .Values.ingress.main.enabled }}
APACHE_DISABLE_REWRITE_IP: "1"
{{- end }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: hpbconfig
data:
NEXTCLOUD_URL: {{ ( printf "%v-%v" .Release.Name "nextcloud" ) | quote }}
{{- end -}}

View File

@ -0,0 +1,51 @@
{{/* Define the cronjob */}}
{{- define "nextcloud.cronjob" -}}
{{- $jobName := include "common.names.fullname" . }}
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{ printf "%s-cronjob" $jobName }}
labels:
{{- include "common.labels" . | nindent 4 }}
spec:
schedule: "{{ .Values.cronjob.schedule }}"
concurrencyPolicy: Forbid
{{- with .Values.cronjob.failedJobsHistoryLimit }}
failedJobsHistoryLimit: {{ . }}
{{- end }}
{{- with .Values.cronjob.successfulJobsHistoryLimit }}
successfulJobsHistoryLimit: {{ . }}
{{- end }}
jobTemplate:
metadata:
spec:
template:
metadata:
spec:
restartPolicy: Never
{{- with (include "common.controller.volumes" . | trim) }}
volumes:
{{- nindent 12 . }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ default .Values.image.tag }}"
imagePullPolicy: {{ default .Values.image.pullPolicy }}
command: [ "php" ]
args:
- "-f"
- "/var/www/html/cron.php"
# Will mount configuration files as www-data (id: 33) by default for nextcloud
{{- with (include "common.controller.volumeMounts" . | trim) }}
volumeMounts:
{{ nindent 16 . }}
{{- end }}
securityContext:
runAsUser: 33
runAsGroup: 33
resources:
{{ toYaml .Values.resources | indent 16 }}
{{- end -}}

View File

@ -0,0 +1,50 @@
{{/* Define the secrets */}}
{{- define "nextcloud.secrets" -}}
---
apiVersion: v1
kind: Secret
metadata:
labels:
{{- include "common.labels" . | nindent 4 }}
name: dbcreds
{{- $previous := lookup "v1" "Secret" .Release.Namespace "dbcreds" }}
{{- $dbPass := "" }}
data:
{{- if $previous }}
{{- $dbPass = ( index $previous.data "postgresql-password" ) | b64dec }}
postgresql-password: {{ ( index $previous.data "postgresql-password" ) }}
postgresql-postgres-password: {{ ( index $previous.data "postgresql-postgres-password" ) }}
{{- else }}
{{- $dbPass = randAlphaNum 50 }}
postgresql-password: {{ $dbPass | b64enc | quote }}
postgresql-postgres-password: {{ randAlphaNum 50 | b64enc | quote }}
{{- end }}
url: {{ ( printf "%v%v:%v@%v-%v:%v/%v" "postgresql://" .Values.postgresql.postgresqlUsername $dbPass .Release.Name "postgresql" "5432" .Values.postgresql.postgresqlDatabase ) | b64enc | quote }}
host: {{ ( printf "%v-%v:5432" .Release.Name "postgresql" ) | b64enc | quote }}
plainhost: {{ ( printf "%v-%v" .Release.Name "postgresql" ) | b64enc | quote }}
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
labels:
{{- include "common.labels" . | nindent 4 }}
name: rediscreds
{{- $redisprevious := lookup "v1" "Secret" .Release.Namespace "rediscreds" }}
{{- $redisPass := "" }}
data:
{{- if $redisprevious }}
{{- $redisPass = ( index $redisprevious.data "redis-password" ) | b64dec }}
redis-password: {{ ( index $redisprevious.data "redis-password" ) }}
{{- else }}
{{- $redisPass = randAlphaNum 50 }}
redis-password: {{ $redisPass | b64enc | quote }}
{{- end }}
masterhost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }}
slavehost: {{ ( printf "%v-%v" .Release.Name "redis-master" ) | b64enc | quote }}
type: Opaque
{{- end -}}

View File

@ -0,0 +1,17 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.values.setup" . }}
{{/* Render configmap for nextcloud */}}
{{- include "nextcloud.configmap" . }}
{{/* Render secrets for nextcloud */}}
{{- include "nextcloud.secrets" . }}
{{- $newMiddlewares := append .Values.ingress.main.fixedMiddlewares "tc-nextcloud-chain" }}
{{- $_ := set .Values.ingress.main "fixedMiddlewares" $newMiddlewares -}}
{{/* Render cronjob for nextcloud */}}
{{- include "nextcloud.cronjob" . }}
{{/* Render the templates */}}
{{ include "common.all" . }}

View File

@ -0,0 +1,188 @@
# Default values for Bitwarden.
image:
repository: docker.io/nextcloud
pullPolicy: IfNotPresent
tag: 22.1.1@sha256:99d94124b2024c9f7f38dc12144a92bc0d68d110bcfd374169ebb7e8df0adf8e
podSecurityContext:
runAsUser: 0
runAsGroup: 0
fsGroup: 33
supplementalGroups: []
fsGroupChangePolicy: "OnRootMismatch"
postgresqlImage:
repository: bitnami/postgresql
pullPolicy: IfNotPresent
tag: 13.4.0@sha256:7fff0f7e827cd8e1daa3adbf0ca3f19e21006023c0f6d1c2d835718961516a87
service:
main:
ports:
main:
port: 80
hpb:
enabled: true
ports:
hpb:
enabled: true
port: 7867
env:
NEXTCLOUD_ADMIN_USER: "admin"
NEXTCLOUD_ADMIN_PASSWORD: "adminpass"
TRUSTED_PROXIES: "172.16.0.0/16"
envTpl:
POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}"
POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}"
envFrom:
- configMapRef:
name: nextcloudconfig
envValueFrom:
POSTGRES_PASSWORD:
secretKeyRef:
name: dbcreds
key: postgresql-password
POSTGRES_HOST:
secretKeyRef:
name: dbcreds
key: host
REDIS_HOST:
secretKeyRef:
name: rediscreds
key: masterhost
REDIS_HOST_PASSWORD:
secretKeyRef:
name: rediscreds
key: redis-password
persistence:
data:
enabled: true
mountPath: "/var/www/html"
type: pvc
accessMode: ReadWriteOnce
size: "100Gi"
redismaster:
noMount: true
forceName: "redismaster"
enabled: true
type: pvc
accessMode: ReadWriteOnce
size: "100Gi"
initContainers:
init-postgresdb:
image: "{{ .Values.postgresqlImage.repository}}:{{ .Values.postgresqlImage.tag }}"
command:
- "sh"
- "-c"
- "until pg_isready -U nextcloud -h ${pghost} ; do sleep 2 ; done"
imagePullPolicy: IfNotPresent
env:
- name: pghost
valueFrom:
secretKeyRef:
name: dbcreds
key: plainhost
# -- Probe configuration
# -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
# @default -- See below
probes:
# -- Liveness probe configuration
# @default -- See below
liveness:
custom: true
# -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used
# @default -- "/"
spec:
httpGet:
path: /status.php
port: 80
httpHeaders:
- name: Host
value: "test.fakedomain.dns"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 5
# -- Redainess probe configuration
# @default -- See below
readiness:
custom: true
# -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used
# @default -- "/"
spec:
httpGet:
path: /status.php
port: 80
httpHeaders:
- name: Host
value: "test.fakedomain.dns"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 5
# -- Startup probe configuration
# @default -- See below
startup:
custom: true
# -- If a HTTP probe is used (default for HTTP/HTTPS services) this path is used
# @default -- "/"
spec:
httpGet:
path: /status.php
port: 80
httpHeaders:
- name: Host
value: "test.fakedomain.dns"
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 5
## Cronjob to execute Nextcloud background tasks
## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron
##
cronjob:
# Every 5 minutes
# Note: Setting this to any any other value than 5 minutes might
# cause issues with how nextcloud background jobs are executed
schedule: "*/5 * * * *"
annotations: {}
failedJobsHistoryLimit: 5
successfulJobsHistoryLimit: 2
# Enabled postgres
postgresql:
enabled: true
postgresqlUsername: nextcloud
postgresqlDatabase: nextcloud
existingSecret: dbcreds
# Enabled redis
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis
redis:
volumePermissions:
enabled: true
architecture: standalone
enabled: true
auth:
existingSecret: rediscreds
existingSecretPasswordKey: redis-password
master:
persistence:
enabled: false
existingClaim: redismaster
replica:
replicaCount: 0
persistence:
enabled: false

View File

View File

@ -0,0 +1,8 @@
<a name="postgresql-2.1.1"></a>
### [postgresql-2.1.1](https://github.com/truecharts/apps/compare/postgresql-2.1.0...postgresql-2.1.1) (2021-09-11)
#### Fix
* use correct appversion string

View File

@ -0,0 +1,8 @@
# Configuration Options
##### Connecting to other apps
If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide:
https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/
##### Available config options
In the future this page is going to contain an automated list of options available in the installation/edit UI.

View File

@ -0,0 +1,6 @@
dependencies:
- name: common
repository: https://truecharts.org/
version: 7.0.2
digest: sha256:0fedec7df721ee22e53c87584f5ba740c93f0c2f5445056ed55412eb25ce47a2
generated: "2021-09-11T19:46:17.288421405Z"

View File

@ -0,0 +1,28 @@
apiVersion: v2
appVersion: 13.4.0
dependencies:
- name: common
repository: https://truecharts.org/
version: 7.0.2
deprecated: false
description: PostgresSQL
home: https://github.com/truecharts/apps/tree/master/stable/postgres
icon: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-postgres-logo.png
keywords:
- postgres
- postgressql
- dtabase
- sql
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: truecharts.org
- email: kjeld@schouten-lebbing.nl
name: Ornias1993
url: truecharts.org
name: postgresql
sources:
- https://www.postgresql.org/
type: application
version: 2.1.1

View File

@ -0,0 +1,37 @@
# Introduction
PostgresSQL
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
## Source Code
* <https://www.postgresql.org/>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://truecharts.org/ | common | 7.0.2 |
## Installing the Chart
To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/).
## Uninstalling the Chart
To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/).
## Support
- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first.
- See the [Wiki](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,3 @@
PostgresSQL
This App is supplied by TrueCharts, for more information please visit https://truecharts.org

Binary file not shown.

View File

@ -0,0 +1,66 @@
# Default Helm-Values
TrueCharts is primarily build to supply TrueNAS SCALE Apps.
However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file.
Most of our Apps also consume our "common" Helm Chart.
If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart.
You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document.
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| enableUpgradeBackup | bool | `false` | |
| envTpl.POSTGRES_DB | string | `"{{ .Values.postgresqlDatabase }}"` | |
| envTpl.POSTGRES_USER | string | `"{{ .Values.postgresqlUsername }}"` | |
| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | |
| envValueFrom.POSTGRES_PASSWORD.secretKeyRef.name | string | `"{{ ( tpl .Values.existingSecret $ ) | default ( include \"common.names.fullname\" . ) }}"` | |
| existingSecret | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"bitnami/postgresql"` | |
| image.tag | string | `"13.4.0@sha256:7fff0f7e827cd8e1daa3adbf0ca3f19e21006023c0f6d1c2d835718961516a87"` | |
| initContainers.migrate-db.command[0] | string | `"/bin/sh"` | |
| initContainers.migrate-db.command[1] | string | `"-cx"` | |
| initContainers.migrate-db.command[2] | string | `"echo 'trying to migrate old db to new location...'\nmkdir -p /bitnami/postgresql/data\nmv -f /bitnami/postgresql/old/* /bitnami/postgresql/data/ || true\nchown -R {{ .Values.podSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }} /bitnami/postgresql/data\nchmod 775 /bitnami/postgresql/data\n"` | |
| initContainers.migrate-db.image | string | `"{{ .Values.alpineImage.repository}}:{{ .Values.alpineImage.tag }}"` | |
| initContainers.migrate-db.imagePullPolicy | string | `"IfNotPresent"` | |
| initContainers.migrate-db.securityContext.allowPrivilegeEscalation | bool | `true` | |
| initContainers.migrate-db.securityContext.privileged | bool | `true` | |
| initContainers.migrate-db.securityContext.runAsNonRoot | bool | `false` | |
| initContainers.migrate-db.securityContext.runAsUser | int | `0` | |
| initContainers.migrate-db.volumeMounts[0].mountPath | string | `"/bitnami/postgresql/old"` | |
| initContainers.migrate-db.volumeMounts[0].name | string | `"db"` | |
| initContainers.migrate-db.volumeMounts[1].mountPath | string | `"/bitnami/postgresql"` | |
| initContainers.migrate-db.volumeMounts[1].name | string | `"data"` | |
| persistence.data.accessMode | string | `"ReadWriteOnce"` | |
| persistence.data.enabled | bool | `true` | |
| persistence.data.mountPath | string | `"/bitnami/postgresql"` | |
| persistence.data.size | string | `"999Gi"` | |
| persistence.data.type | string | `"pvc"` | |
| persistence.db.accessMode | string | `"ReadWriteOnce"` | |
| persistence.db.enabled | bool | `true` | |
| persistence.db.mountPath | string | `"/bitnami/postgresql/old"` | |
| persistence.db.size | string | `"999Gi"` | |
| persistence.db.type | string | `"pvc"` | |
| persistence.dbbackups.accessMode | string | `"ReadWriteOnce"` | |
| persistence.dbbackups.enabled | bool | `true` | |
| persistence.dbbackups.mountPath | string | `"/dbbackups"` | |
| persistence.dbbackups.size | string | `"999Gi"` | |
| persistence.dbbackups.type | string | `"pvc"` | |
| podSecurityContext.fsGroup | int | `568` | |
| podSecurityContext.fsGroupChangePolicy | string | `"OnRootMismatch"` | |
| podSecurityContext.runAsGroup | int | `0` | |
| podSecurityContext.runAsUser | int | `568` | |
| podSecurityContext.supplementalGroups | list | `[]` | |
| postgresqlDatabase | string | `"test"` | |
| postgresqlPassword | string | `"testpass"` | |
| postgresqlUsername | string | `"test"` | |
| securityContext.allowPrivilegeEscalation | bool | `true` | |
| securityContext.privileged | bool | `false` | |
| securityContext.readOnlyRootFilesystem | bool | `false` | |
| securityContext.runAsNonRoot | bool | `false` | |
| service.main.enabled | bool | `true` | |
| service.main.ports.main.port | int | `5432` | |
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,56 @@
##
# This file contains Values.yaml content that gets added to the output of questions.yaml
# It's ONLY meant for content that the user is NOT expected to change.
# Example: Everything under "image" is not included in questions.yaml but is included here.
##
image:
repository: bitnami/postgresql
pullPolicy: IfNotPresent
tag: 13.4.0@sha256:7fff0f7e827cd8e1daa3adbf0ca3f19e21006023c0f6d1c2d835718961516a87
initContainers:
migrate-db:
image: "{{ .Values.alpineImage.repository}}:{{ .Values.alpineImage.tag }}"
securityContext:
runAsUser: 0
privileged: true
allowPrivilegeEscalation: true
runAsNonRoot: false
command:
- /bin/sh
- -cx
- |
echo 'trying to migrate old db to new location...'
chown -R {{ .Values.podSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }} /bitnami/postgresql/data /bitnami/postgresql/old
chmod 775 /bitnami/postgresql/data/ bitnami/postgresql/data /bitnami/postgresql/old
mkdir -p /bitnami/postgresql/data
mkdir -p /bitnami/postgresql/conf
mv -f /bitnami/postgresql/old/* /bitnami/postgresql/data/ || true
mv -f /bitnami/postgresql/data/pg_hba.conf /bitnami/postgresql/conf/pg_hba.conf || true
chown -R {{ .Values.podSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }} /bitnami/postgresql/data
chmod 775 /bitnami/postgresql/data
imagePullPolicy: IfNotPresent
volumeMounts:
- name: db
mountPath: /bitnami/postgresql/old
- name: data
mountPath: /bitnami/postgresql
envValueFrom:
POSTGRES_PASSWORD:
secretKeyRef:
name: '{{ .Values.existingSecret | default ( include "common.names.fullname" . ) }}'
key: "postgresql-password"
envTpl:
POSTGRES_USER: "{{ .Values.postgresqlUsername }}"
POSTGRES_DB: "{{ .Values.postgresqlDatabase }}"
# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}"
# POSTGRESQL_PASSWORD: "{{ .Values.password }}"
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: "postgres-backup-hook-config-map"
annotations:
rollme: {{ randAlphaNum 5 | quote }}
data:
entrypoint.sh: |-
#!/bin/sh
cmd="/docker-entrypoint.sh postgres"
eval "${cmd}" & disown;
until pg_isready; do
sleep 5;
done;
pg_dump -U {{ .Values.postgresqlUser }} -d {{ .Values.postgresqlDatabase }} > /dbbackups/$BACKUP_NAME;

View File

@ -0,0 +1,2 @@
{{ include "common.all" . }}

View File

@ -0,0 +1,13 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
annotations:
{{- with .Values.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
type: Opaque
data:
postgresql-password: {{ ( .Values.postgresqlPassword | default "empty" ) | b64enc | quote }}

View File

@ -0,0 +1,56 @@
{{- if and ( .Values.enableUpgradeBackup ) ( .Values.ixChartContext ) -}}
{{- if .Values.ixChartContext.isUpgrade -}}
{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}}
{{ $values := (. | mustDeepCopy) }}
---
apiVersion: batch/v1
kind: Job
metadata:
name: "pre-upgrade-hook2"
annotations:
"helm.sh/hook": pre-upgrade
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": hook-succeeded
rollme: {{ randAlphaNum 5 | quote }}
spec:
template:
metadata:
name: "pre-upgrade-hook2"
spec:
restartPolicy: Never
containers:
- name: {{ .Chart.Name }}-postgres-backup
image: {{ printf "%v:%v" .Values.image.repository .Values.image.tag}}
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
- name: BACKUP_NAME
value: {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}}
- name: POSTGRES_USER
value: {{ .Values.postgresqlUsername | quote }}
- name: POSTGRES_DB
value: {{ .Values.postgresqlDatabase | quote }}
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ ( .Values.existingSecret | default ( include "common.names.fullname" . ) ) | quote }}
key: "postgresql-password"
command:
- "/bin/backup_entrypoint.sh"
volumeMounts:
- name: backup-script-configmap
mountPath: /bin/backup_entrypoint.sh
readOnly: true
subPath: entrypoint.sh
{{- with (include "common.controller.volumeMounts" . | trim) }}
{{ nindent 4 . }}
{{- end }}
volumes:
- name: backup-script-configmap
configMap:
defaultMode: 0700
name: "postgres-backup-hook-config-map"
{{- with (include "common.controller.volumes" . | trim) }}
{{- nindent 2 . }}
{{- end }}
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,91 @@
image:
repository: bitnami/postgresql
pullPolicy: IfNotPresent
tag: 13.4.0@sha256:7fff0f7e827cd8e1daa3adbf0ca3f19e21006023c0f6d1c2d835718961516a87
service:
main:
enabled: true
ports:
main:
port: 5432
## TODO: Fix the backup-on-upgrade system
enableUpgradeBackup: false
initContainers:
migrate-db:
image: "{{ .Values.alpineImage.repository}}:{{ .Values.alpineImage.tag }}"
securityContext:
runAsUser: 0
privileged: true
allowPrivilegeEscalation: true
runAsNonRoot: false
command:
- /bin/sh
- -cx
- |
echo 'trying to migrate old db to new location...'
mkdir -p /bitnami/postgresql/data
mv -f /bitnami/postgresql/old/* /bitnami/postgresql/data/ || true
chown -R {{ .Values.podSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }} /bitnami/postgresql/data
chmod 775 /bitnami/postgresql/data
imagePullPolicy: IfNotPresent
volumeMounts:
- name: db
mountPath: /bitnami/postgresql/old
- name: data
mountPath: /bitnami/postgresql
securityContext:
privileged: false
readOnlyRootFilesystem: false
allowPrivilegeEscalation: true
runAsNonRoot: false
podSecurityContext:
runAsUser: 568
runAsGroup: 0
fsGroup: 568
supplementalGroups: []
fsGroupChangePolicy: "OnRootMismatch"
persistence:
db:
enabled: true
mountPath: "/bitnami/postgresql/old"
type: pvc
accessMode: ReadWriteOnce
size: "999Gi"
data:
enabled: true
mountPath: "/bitnami/postgresql"
type: pvc
accessMode: ReadWriteOnce
size: "999Gi"
dbbackups:
enabled: true
mountPath: "/dbbackups"
type: pvc
accessMode: ReadWriteOnce
size: "999Gi"
postgresqlPassword: "testpass"
postgresqlUsername: "test"
postgresqlDatabase: "test"
existingSecret: ""
envValueFrom:
POSTGRES_PASSWORD:
secretKeyRef:
name: '{{ ( tpl .Values.existingSecret $ ) | default ( include "common.names.fullname" . ) }}'
key: "postgresql-password"
envTpl:
POSTGRES_USER: "{{ .Values.postgresqlUsername }}"
POSTGRES_DB: "{{ .Values.postgresqlDatabase }}"
# POSTGRESQL_POSTGRES_PASSWORD: "{{ .Values.postgrespassword }}"
# POSTGRESQL_PASSWORD: "{{ .Values.password }}"

View File