- onlyoffice kubernetes resource limits and pvc
All checks were successful
/ continuous-deploy (push) Successful in 23s
All checks were successful
/ continuous-deploy (push) Successful in 23s
- continuous deploy revision - environments variables validation - vscode tasks for deploy - vscode testing some new plugins
This commit is contained in:
@@ -17,7 +17,6 @@
|
|||||||
"ms-kubernetes-tools.vscode-kubernetes-tools",
|
"ms-kubernetes-tools.vscode-kubernetes-tools",
|
||||||
"redhat.ansible",
|
"redhat.ansible",
|
||||||
"mtxr.sqltools-driver-mysql",
|
"mtxr.sqltools-driver-mysql",
|
||||||
"stateful.runme",
|
|
||||||
"yzhang.markdown-all-in-one",
|
"yzhang.markdown-all-in-one",
|
||||||
"davidanson.vscode-markdownlint",
|
"davidanson.vscode-markdownlint",
|
||||||
"eamodio.gitlens",
|
"eamodio.gitlens",
|
||||||
@@ -28,7 +27,10 @@
|
|||||||
"eamodio.gitlens",
|
"eamodio.gitlens",
|
||||||
"shd101wyy.markdown-preview-enhanced",
|
"shd101wyy.markdown-preview-enhanced",
|
||||||
"bierner.markdown-mermaid",
|
"bierner.markdown-mermaid",
|
||||||
"bierner.markdown-preview-github-styles"
|
"bierner.markdown-preview-github-styles",
|
||||||
|
"sycl.markdown-command-runner",
|
||||||
|
"jeepshen.vscode-markdown-code-runner",
|
||||||
|
"batyan-soft.fast-tasks"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ jobs:
|
|||||||
- name: Deploy
|
- name: Deploy
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
|
# used by kustomization requires env files
|
||||||
MARIADB_USER: ${{ secrets.MARIADB_USER }}
|
MARIADB_USER: ${{ secrets.MARIADB_USER }}
|
||||||
MARIADB_PASSWORD: ${{ secrets.MARIADB_PASSWORD }}
|
MARIADB_PASSWORD: ${{ secrets.MARIADB_PASSWORD }}
|
||||||
MARIADB_ROOT_PASSWORD: ${{ secrets.MARIADB_ROOT_PASSWORD }}
|
MARIADB_ROOT_PASSWORD: ${{ secrets.MARIADB_ROOT_PASSWORD }}
|
||||||
@@ -42,6 +43,8 @@ jobs:
|
|||||||
PBS_REPOSITORY: ${{ secrets.PBS_REPOSITORY }}
|
PBS_REPOSITORY: ${{ secrets.PBS_REPOSITORY }}
|
||||||
PBS_PASSWORD: ${{ secrets.PBS_PASSWORD }}
|
PBS_PASSWORD: ${{ secrets.PBS_PASSWORD }}
|
||||||
PBS_FINGERPRINT: ${{ secrets.PBS_FINGERPRINT }}
|
PBS_FINGERPRINT: ${{ secrets.PBS_FINGERPRINT }}
|
||||||
|
ONLYOFFICE_SECRET: ${{ secrets.ONLYOFFICE_SECRET }}
|
||||||
|
|
||||||
# used only on helm set values - only required as environment variables
|
# used only on helm set values - only required as environment variables
|
||||||
NEXTCLOUD_HOST: ${{ secrets.NEXTCLOUD_HOST }}
|
NEXTCLOUD_HOST: ${{ secrets.NEXTCLOUD_HOST }}
|
||||||
NEXTCLOUD_USERNAME: ${{ secrets.NEXTCLOUD_USERNAME }}
|
NEXTCLOUD_USERNAME: ${{ secrets.NEXTCLOUD_USERNAME }}
|
||||||
@@ -51,23 +54,27 @@ jobs:
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# ensure cleanup always runs
|
# ensure cleanup always runs
|
||||||
trap 'rm -f \
|
trap '
|
||||||
deploy/app/.env.d/*' EXIT
|
[ -d deploy/app/.env.d ] && rm -rf deploy/app/.env.d/*;
|
||||||
|
[ -d deploy/app/onlyoffice/.env.d ] && rm -rf deploy/app/onlyoffice/.env.d/*;
|
||||||
|
' EXIT
|
||||||
|
|
||||||
# setup secrets files
|
# setup secrets files
|
||||||
|
|
||||||
echo "MARIADB_USER=${MARIADB_USER}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
echo "MARIADB_USER=${MARIADB_USER:?Missing MARIADB_USER}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
||||||
echo "MARIADB_PASSWORD=${MARIADB_PASSWORD}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
echo "MARIADB_PASSWORD=${MARIADB_PASSWORD:?Missing MARIADB_PASSWORD}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
||||||
echo "MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
echo "MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:?Missing MARIADB_ROOT_PASSWORD}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
||||||
echo "MARIADB_DATABASE=${MARIADB_DATABASE}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
echo "MARIADB_DATABASE=${MARIADB_DATABASE:?Missing MARIADB_DATABASE}" >> deploy/app/.env.d/nextcloud-mariadb.env
|
||||||
|
|
||||||
echo "PBS_REPOSITORY=${PBS_REPOSITORY}" >> deploy/app/.env.d/pbs.env
|
echo "PBS_REPOSITORY=${PBS_REPOSITORY:?Missing PBS_REPOSITORY}" >> deploy/app/.env.d/pbs.env
|
||||||
echo "PBS_PASSWORD=${PBS_PASSWORD}" >> deploy/app/.env.d/pbs.env
|
echo "PBS_PASSWORD=${PBS_PASSWORD:?Missing PBS_PASSWORD}" >> deploy/app/.env.d/pbs.env
|
||||||
echo "PBS_FINGERPRINT=${PBS_FINGERPRINT}" >> deploy/app/.env.d/pbs.env
|
echo "PBS_FINGERPRINT=${PBS_FINGERPRINT:?Missing PBS_FINGERPRINT}" >> deploy/app/.env.d/pbs.env
|
||||||
|
|
||||||
|
echo "secret=${ONLYOFFICE_SECRET:?Missing ONLYOFFICE_SECRET}" >> deploy/app/onlyoffice/.env.d/onlyoffice.env
|
||||||
|
|
||||||
# enforce secrets files security
|
# enforce secrets files security
|
||||||
chmod 600 deploy/app/.env.d/*
|
chmod 600 deploy/app/.env.d/*
|
||||||
|
chmod 600 deploy/app/onlyoffice/.env.d/*
|
||||||
|
|
||||||
# invoke deploy script
|
# invoke deploy script
|
||||||
ops-scripts/apply-app.sh
|
ops-scripts/apply-app.sh
|
||||||
|
|||||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
"authentik",
|
"authentik",
|
||||||
|
"documentserver",
|
||||||
"onlyoffice"
|
"onlyoffice"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
19
.vscode/tasks.json
vendored
Normal file
19
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Apply Infra",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "./ops-scripts/apply-infra.sh",
|
||||||
|
"problemMatcher": [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Apply App",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "./ops-scripts/apply-app.sh",
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -117,7 +117,6 @@ su -s /bin/bash www-data -c "php occ files:scan-app-data"
|
|||||||
|
|
||||||
### Mimetype migrations available
|
### Mimetype migrations available
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Rebuild appdata and caches
|
# Rebuild appdata and caches
|
||||||
@@ -139,8 +138,12 @@ su -s /bin/bash www-data -c "php occ maintenance:repair --include-expensive"
|
|||||||
|
|
||||||
This script is intended to be executed only by low‑privilege deployment identities, such as the **continuous‑deploy** ServiceAccount or an application maintainer with equivalent permissions.
|
This script is intended to be executed only by low‑privilege deployment identities, such as the **continuous‑deploy** ServiceAccount or an application maintainer with equivalent permissions.
|
||||||
|
|
||||||
|
Can be executed in VS Code using the “Apply App” task.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
./ops-scripts/apply-app.sh
|
./ops-scripts/apply-app.sh
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Responsibilities:**
|
**Responsibilities:**
|
||||||
@@ -158,6 +161,7 @@ This script is intended to be executed only by low‑privilege deployment identi
|
|||||||
|
|
||||||
**Security context:**
|
**Security context:**
|
||||||
This script requires elevated cluster‑level permissions and must be executed only by platform maintainers, not by the continuous‑deploy identity.
|
This script requires elevated cluster‑level permissions and must be executed only by platform maintainers, not by the continuous‑deploy identity.
|
||||||
|
Can be executed in VS Code using the “Apply Infra” task.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./ops-scripts/apply-infra.sh
|
./ops-scripts/apply-infra.sh
|
||||||
@@ -178,6 +182,7 @@ This script requires elevated cluster‑level permissions and must be executed o
|
|||||||
kubectl exec -it nextcloud-mariadb-0 -- mariadb -u nextcloud -h nextcloud-mariadb.cloud-limbosolutions-com.svc.cluster.local -p
|
kubectl exec -it nextcloud-mariadb-0 -- mariadb -u nextcloud -h nextcloud-mariadb.cloud-limbosolutions-com.svc.cluster.local -p
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
**Restore database:**
|
**Restore database:**
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ resources:
|
|||||||
- ./storage-limbosolutions-com/pvc.yaml
|
- ./storage-limbosolutions-com/pvc.yaml
|
||||||
- ./mariadb-deploy.yaml
|
- ./mariadb-deploy.yaml
|
||||||
- ./backups/backup-pbs-cronjob.yaml
|
- ./backups/backup-pbs-cronjob.yaml
|
||||||
# - ./onlyoffice - enable to execute manually, required cicd revision to be enable by default
|
- ./onlyoffice
|
||||||
|
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
|
|||||||
@@ -26,3 +26,25 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: onlyoffice
|
name: onlyoffice
|
||||||
key: secret
|
key: secret
|
||||||
|
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "2048Mi"
|
||||||
|
cpu: "1000m"
|
||||||
|
requests:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "250m"
|
||||||
|
|
||||||
|
volumeMounts:
|
||||||
|
- name: onlyoffice-data
|
||||||
|
mountPath: /var/www/onlyoffice/Data
|
||||||
|
- name: onlyoffice-logs
|
||||||
|
mountPath: /var/log/onlyoffice
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: onlyoffice-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: onlyoffice-data
|
||||||
|
- name: onlyoffice-logs
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: onlyoffice-logs
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ secretGenerator:
|
|||||||
envs:
|
envs:
|
||||||
- ./.env.d/onlyoffice.env
|
- ./.env.d/onlyoffice.env
|
||||||
|
|
||||||
|
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
namespace: cloud-limbosolutions-com
|
namespace: cloud-limbosolutions-com
|
||||||
@@ -14,3 +13,4 @@ namespace: cloud-limbosolutions-com
|
|||||||
resources:
|
resources:
|
||||||
- ./deployment.yaml
|
- ./deployment.yaml
|
||||||
- ./service.yaml
|
- ./service.yaml
|
||||||
|
- ./pvc.yaml
|
||||||
|
|||||||
22
deploy/app/onlyoffice/pvc.yaml
Normal file
22
deploy/app/onlyoffice/pvc.yaml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: onlyoffice-data
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 8Gi
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: onlyoffice-logs
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
@@ -54,7 +54,7 @@ spec:
|
|||||||
middlewares:
|
middlewares:
|
||||||
# middleware managed by icarus
|
# middleware managed by icarus
|
||||||
- name: authentik-forward-auth
|
- name: authentik-forward-auth
|
||||||
namespace: kube-system
|
namespace: traefik-common
|
||||||
- name: nextcloud-security-headers
|
- name: nextcloud-security-headers
|
||||||
- name: rate-limit
|
- name: rate-limit
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
echo "Executing app deploy."
|
echo "Executing nextcloud app deploy."
|
||||||
|
|
||||||
kubectl kustomize deploy/app | kubectl apply -f -
|
kubectl kustomize deploy/app | kubectl apply -f -
|
||||||
|
|
||||||
@@ -22,14 +22,13 @@ helm repo add nextcloud https://nextcloud.github.io/helm/ --force-update
|
|||||||
load_env_file "deploy/app/.env.d/nextcloud-mariadb.env"
|
load_env_file "deploy/app/.env.d/nextcloud-mariadb.env"
|
||||||
load_env_file "deploy/app/.env.d/nextcloud-secrets.env"
|
load_env_file "deploy/app/.env.d/nextcloud-secrets.env"
|
||||||
|
|
||||||
|
|
||||||
helm upgrade --install nextcloud nextcloud/nextcloud \
|
helm upgrade --install nextcloud nextcloud/nextcloud \
|
||||||
--values ./deploy/app/helm-values.yaml \
|
--values ./deploy/app/helm-values.yaml \
|
||||||
--set externalDatabase.user=${MARIADB_USER} \
|
--set externalDatabase.user=${MARIADB_USER:?Missing MARIADB_USER} \
|
||||||
--set externalDatabase.password=${MARIADB_PASSWORD} \
|
--set externalDatabase.password=${MARIADB_PASSWORD:?Missing MARIADB_PASSWORD} \
|
||||||
--set externalDatabase.database=${MARIADB_DATABASE} \
|
--set externalDatabase.database=${MARIADB_DATABASE:?Missing MARIADB_DATABASE} \
|
||||||
--set nextcloud.host=${NEXTCLOUD_HOST} \
|
--set nextcloud.host=${NEXTCLOUD_HOST:?Missing NEXTCLOUD_HOST} \
|
||||||
--set nextcloud.username=${NEXTCLOUD_USERNAME} \
|
--set nextcloud.username=${NEXTCLOUD_USERNAME:?Missing NEXTCLOUD_USERNAME} \
|
||||||
--set nextcloud.password=${NEXTCLOUD_PASSWORD} \
|
--set nextcloud.password=${NEXTCLOUD_PASSWORD:?Missing NEXTCLOUD_PASSWORD} \
|
||||||
--namespace cloud-limbosolutions-com
|
--namespace cloud-limbosolutions-com
|
||||||
|
|
||||||
@@ -3,5 +3,3 @@ set -e
|
|||||||
echo "Executing infra deploy."
|
echo "Executing infra deploy."
|
||||||
|
|
||||||
kubectl kustomize deploy/infra | kubectl -n cloud-limbosolutions-com apply -f -
|
kubectl kustomize deploy/infra | kubectl -n cloud-limbosolutions-com apply -f -
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user