This commit is contained in:
2023-07-28 17:40:02 +02:00
parent c52091a2f3
commit 547d35ca5e
13 changed files with 212 additions and 108 deletions

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud-metrics name: nextcloud-metrics
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: metrics app.kubernetes.io/component: metrics

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud name: nextcloud
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: app app.kubernetes.io/component: app
@@ -31,7 +31,7 @@ spec:
spec: spec:
containers: containers:
- name: nextcloud - name: nextcloud
image: nextcloud:27.0.0-apache image: nextcloud:27.0.1-apache
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
env: env:
- name: POSTGRES_HOST - name: POSTGRES_HOST

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud name: nextcloud
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: app app.kubernetes.io/component: app

View File

@@ -28,6 +28,21 @@ locals {
var.apps.groupfolders?["run_as ./occ app:install groupfolders ||:"]:[], var.apps.groupfolders?["run_as ./occ app:install groupfolders ||:"]:[],
var.apps.notes?["run_as ./occ app:install notes ||:"]:[], var.apps.notes?["run_as ./occ app:install notes ||:"]:[],
var.apps.tasks?["run_as ./occ app:install tasks ||:"]:[], var.apps.tasks?["run_as ./occ app:install tasks ||:"]:[],
var.apps.collabora?[
"run_as ./occ app:install richdocuments ||:",
"run_as ./occ app:enable richdocuments ||:",
"run_as ./occ config:app:set richdocuments wopi_url --value=\"http://$${INSTANCE}-collabora/\"",
"run_as ./occ config:app:set richdocuments federation_use_trusted_domains --value=yes",
"run_as ./occ richdocuments:activate-config ||:",
]:["run_as ./occ app:disable richdocuments ||:"],
var.apps.onlyoffice?[
"run_as ./occ app:install onlyoffice ||:",
"run_as ./occ app:enable onlyoffice ||:",
"run_as ./occ --no-warnings config:system:set onlyoffice DocumentServerUrl --value=\"/ds-vpath/\"",
"run_as ./occ --no-warnings config:system:set onlyoffice DocumentServerInternalUrl --value=\"http://$${INSTANCE}-onlyoffice/\"",
"run_as ./occ --no-warnings config:system:set onlyoffice StorageUrl --value=\"http://nextcloud/\"",
"run_as ./occ --no-warnings config:system:set onlyoffice jwt_secret --value=\"$${ONLYOFFICE_JWT_SECRET}\"",
]:["run_as ./occ app:disable onlyoffice ||:"],
var.apps.spreed?["run_as ./occ app:install spreed ||:"]:[]) var.apps.spreed?["run_as ./occ app:install spreed ||:"]:[])
data-config-init = { data-config-init = {
"autostart.sh" = join("\n", concat([local.script-head],local.script-apps)) "autostart.sh" = join("\n", concat([local.script-head],local.script-apps))

View File

@@ -9,6 +9,9 @@ locals {
"app.kubernetes.io/name" = var.component "app.kubernetes.io/name" = var.component
"app.kubernetes.io/instance" = var.instance "app.kubernetes.io/instance" = var.instance
} }
nextcloud-labels = merge(local.common-labels, {
"app.kubernetes.io/component" = "nextcloud"
})
} }
data "kubernetes_secret_v1" "authentik" { data "kubernetes_secret_v1" "authentik" {
@@ -27,7 +30,7 @@ data "kubernetes_ingress_v1" "authentik" {
data "kustomization_overlay" "data" { data "kustomization_overlay" "data" {
namespace = var.namespace namespace = var.namespace
common_labels = local.common-labels common_labels = local.nextcloud-labels
resources = [for file in fileset(path.module, "*.yaml"): file if file != "index.yaml"] resources = [for file in fileset(path.module, "*.yaml"): file if file != "index.yaml"]
images { images {
name = "nextcloud" name = "nextcloud"
@@ -95,6 +98,18 @@ data "kustomization_overlay" "data" {
secretKeyRef: secretKeyRef:
name: "${var.component}-${var.instance}-secret" name: "${var.component}-${var.instance}-secret"
key: client-secret key: client-secret
- name: INSTANCE
value: "${var.instance}"
- name: ONLYOFFICE_JWT_SECRET
valueFrom:
secretKeyRef:
name: "${var.component}"
key: onlyoffice-jwt-secret
- name: COLLABORA_PASSWORD
valueFrom:
secretKeyRef:
name: "${var.component}"
key: collabora-password
resources: resources:
{} {}

View File

@@ -6,11 +6,101 @@ metadata:
name: nextcloud name: nextcloud
description: null description: null
options: options:
hpa:
default:
avg-cpu: 50
max-replicas: 5
min-replicas: 1
examples:
- avg-cpu: 50
max-replicas: 5
min-replicas: 1
properties:
avg-cpu:
default: 50
type: integer
max-replicas:
default: 5
type: integer
min-replicas:
default: 1
type: integer
type: object
admin:
default:
name: nextcloud_admin
examples:
- name: nextcloud_admin
properties:
name:
default: nextcloud_admin
type: string
type: object
sub-domain:
default: files
examples:
- files
type: string
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
apps:
default:
calendar: false
collabora: false
contacts: false
deck: false
groupfolders: true
notes: false
onlyoffice: false
spreed: false
tasks: false
examples:
- calendar: false
collabora: false
contacts: false
deck: false
groupfolders: true
notes: false
onlyoffice: false
spreed: false
tasks: false
properties:
calendar:
default: false
type: boolean
collabora:
default: false
type: boolean
contacts:
default: false
type: boolean
deck:
default: false
type: boolean
groupfolders:
default: true
type: boolean
notes:
default: false
type: boolean
onlyoffice:
default: false
type: boolean
spreed:
default: false
type: boolean
tasks:
default: false
type: boolean
type: object
redis: redis:
default: default:
exporter: exporter:
@@ -44,8 +134,28 @@ options:
default: 2Gi default: 2Gi
type: string type: string
type: object type: object
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
openid-name:
default: vynil
examples:
- vynil
type: string
images: images:
default: default:
collabora:
pullPolicy: IfNotPresent
registry: docker.io
repository: collabora/code
tag: 23.05.2.2.1
exporter: exporter:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
registry: docker.io registry: docker.io
@@ -61,8 +171,18 @@ options:
registry: docker.io registry: docker.io
repository: nginx repository: nginx
tag: alpine tag: alpine
onlyoffice:
pullPolicy: IfNotPresent
registry: docker.io
repository: onlyoffice/documentserver
tag: 7.4.0.1
examples: examples:
- exporter: - collabora:
pullPolicy: IfNotPresent
registry: docker.io
repository: collabora/code
tag: 23.05.2.2.1
exporter:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
registry: docker.io registry: docker.io
repository: xperimental/nextcloud-exporter repository: xperimental/nextcloud-exporter
@@ -77,7 +197,32 @@ options:
registry: docker.io registry: docker.io
repository: nginx repository: nginx
tag: alpine tag: alpine
onlyoffice:
pullPolicy: IfNotPresent
registry: docker.io
repository: onlyoffice/documentserver
tag: 7.4.0.1
properties: properties:
collabora:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: collabora/code
tag: 23.05.2.2.1
properties:
pullPolicy:
default: IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: collabora/code
type: string
tag:
default: 23.05.2.2.1
type: string
type: object
exporter: exporter:
default: default:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
@@ -146,6 +291,26 @@ options:
default: alpine default: alpine
type: string type: string
type: object type: object
onlyoffice:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: onlyoffice/documentserver
tag: 7.4.0.1
properties:
pullPolicy:
default: IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: onlyoffice/documentserver
type: string
tag:
default: 7.4.0.1
type: string
type: object
type: object type: object
postgres: postgres:
default: default:
@@ -167,41 +332,6 @@ options:
default: '14' default: '14'
type: string type: string
type: object type: object
sub-domain:
default: files
examples:
- files
type: string
admin:
default:
name: nextcloud_admin
examples:
- name: nextcloud_admin
properties:
name:
default: nextcloud_admin
type: string
type: object
ingress-class:
default: traefik
examples:
- traefik
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
openid-name:
default: vynil
examples:
- vynil
type: string
storage: storage:
default: default:
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
@@ -221,66 +351,6 @@ options:
default: 10Gi default: 10Gi
type: string type: string
type: object type: object
hpa:
default:
avg-cpu: 50
max-replicas: 5
min-replicas: 1
examples:
- avg-cpu: 50
max-replicas: 5
min-replicas: 1
properties:
avg-cpu:
default: 50
type: integer
max-replicas:
default: 5
type: integer
min-replicas:
default: 1
type: integer
type: object
apps:
default:
calendar: false
contacts: false
deck: false
groupfolders: true
notes: false
spreed: false
tasks: false
examples:
- calendar: false
contacts: false
deck: false
groupfolders: true
notes: false
spreed: false
tasks: false
properties:
calendar:
default: false
type: boolean
contacts:
default: false
type: boolean
deck:
default: false
type: boolean
groupfolders:
default: true
type: boolean
notes:
default: false
type: boolean
spreed:
default: false
type: boolean
tasks:
default: false
type: boolean
type: object
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -6,7 +6,7 @@ metadata:
namespace: "vynil-cloud" namespace: "vynil-cloud"
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: metrics app.kubernetes.io/component: metrics

View File

@@ -5,7 +5,7 @@ resource "kubectl_manifest" "prj_secret" {
apiVersion: "secretgenerator.mittwald.de/v1alpha1" apiVersion: "secretgenerator.mittwald.de/v1alpha1"
kind: "StringSecret" kind: "StringSecret"
metadata: metadata:
name: "nextcloud" name: "${var.component}"
namespace: "${var.namespace}" namespace: "${var.namespace}"
labels: ${jsonencode(local.common-labels)} labels: ${jsonencode(local.common-labels)}
spec: spec:
@@ -17,5 +17,9 @@ resource "kubectl_manifest" "prj_secret" {
length: "32" length: "32"
- fieldName: "nextcloud-token" - fieldName: "nextcloud-token"
length: "32" length: "32"
- fieldName: "collabora-password"
length: "32"
- fieldName: "onlyoffice-jwt-secret"
length: "64"
EOF EOF
} }

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud-config name: nextcloud-config
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
data: data:

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud-nginxconfig name: nextcloud-nginxconfig
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
data: data:

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud-nextcloud name: nextcloud-nextcloud
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: app app.kubernetes.io/component: app

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud-metrics name: nextcloud-metrics
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: metrics app.kubernetes.io/component: metrics

View File

@@ -5,7 +5,7 @@ metadata:
name: nextcloud name: nextcloud
labels: labels:
app.kubernetes.io/name: nextcloud app.kubernetes.io/name: nextcloud
helm.sh/chart: nextcloud-3.5.19 helm.sh/chart: nextcloud-3.5.20
app.kubernetes.io/instance: nextcloud app.kubernetes.io/instance: nextcloud
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: app app.kubernetes.io/component: app