Commit new App releases for TrueCharts

Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
TrueCharts-Bot 2021-09-10 14:00:42 +00:00
parent d44603d1d3
commit e728434210
18 changed files with 1750 additions and 0 deletions

View File

@ -0,0 +1,8 @@
<a name="nextcloud-4.0.3"></a>
### [nextcloud-4.0.3](https://github.com/truecharts/apps/compare/nextcloud-4.0.2...nextcloud-4.0.3) (2021-09-10)
#### Fix
* repair wrong initcontainer format on nextcloud

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.1
- name: postgresql
repository: https://truecharts.org/
version: 2.0.0
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 15.3.1
digest: sha256:320cbb0899807dcdf8b513a3ac10c6e50cc4526c00585de53cc286a18ddac1c7
generated: "2021-09-10T13:59:45.430620128Z"

View File

@ -0,0 +1,36 @@
apiVersion: v2
appVersion: 22.1.1
dependencies:
- name: common
repository: https://truecharts.org/
version: 7.0.1
- condition: postgresql.enabled
name: postgresql
repository: https://truecharts.org/
version: 2.0.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.3

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.1 |
| https://truecharts.org/ | postgresql | 2.0.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,81 @@
# 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 | `"nextcloud"` | |
| image.tag | string | `"22.1.1"` | |
| 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 | `"postgres:13.1"` | |
| 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` | |
| postgresql.enabled | bool | `true` | |
| postgresql.existingSecret | string | `"dbcreds"` | |
| postgresql.postgresqlDatabase | string | `"nextcloud"` | |
| postgresql.postgresqlUsername | string | `"nextcloud"` | |
| 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` | |
| strategy.type | string | `"Recreate"` | |
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,162 @@
##
# 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: nextcloud
pullPolicy: IfNotPresent
tag: 22.1.1
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: postgres:13.1
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,184 @@
# Default values for Bitwarden.
image:
repository: nextcloud
pullPolicy: IfNotPresent
tag: 22.1.1
strategy:
type: Recreate
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: postgres:13.1
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
podSecurityContext:
fsGroup: 33
# -- 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