From c4f4ed70b86edb66007ad9884e082775fdab3aa0 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Thu, 24 Nov 2022 14:50:18 +0100 Subject: [PATCH] =?UTF-8?q?A=C3=B1ado=20el=20directorio=20ownCloud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ownCloud/Readme.md | 13 ++++++ ownCloud/collabora-deployment.yaml | 43 +++++++++++++++++++ ownCloud/creaTodo.sh | 6 +++ ownCloud/docker-compose.yml | 8 ++++ ownCloud/entra.sh | 1 + ownCloud/kustomization.yaml | 13 ++++++ ownCloud/mysql-deployment.yaml | 68 ++++++++++++++++++++++++++++++ ownCloud/nextcloud-deployment.yaml | 48 +++++++++++++++++++++ ownCloud/oc-namespace.yaml | 4 ++ ownCloud/owncloud-deployment.yaml | 44 +++++++++++++++++++ ownCloud/owncloud-service.yaml | 22 ++++++++++ ownCloud/paraTodo.sh | 5 +++ ownCloud/php-deployment.yaml | 54 ++++++++++++++++++++++++ ownCloud/pv-local-mysql.yaml | 11 +++++ ownCloud/pv-local-owncloud.yaml | 11 +++++ ownCloud/pvc-owncloud.yaml | 13 ++++++ 16 files changed, 364 insertions(+) create mode 100644 ownCloud/Readme.md create mode 100755 ownCloud/collabora-deployment.yaml create mode 100755 ownCloud/creaTodo.sh create mode 100644 ownCloud/docker-compose.yml create mode 100755 ownCloud/entra.sh create mode 100644 ownCloud/kustomization.yaml create mode 100755 ownCloud/mysql-deployment.yaml create mode 100644 ownCloud/nextcloud-deployment.yaml create mode 100644 ownCloud/oc-namespace.yaml create mode 100644 ownCloud/owncloud-deployment.yaml create mode 100644 ownCloud/owncloud-service.yaml create mode 100755 ownCloud/paraTodo.sh create mode 100644 ownCloud/php-deployment.yaml create mode 100644 ownCloud/pv-local-mysql.yaml create mode 100644 ownCloud/pv-local-owncloud.yaml create mode 100644 ownCloud/pvc-owncloud.yaml diff --git a/ownCloud/Readme.md b/ownCloud/Readme.md new file mode 100644 index 00000000..18852b03 --- /dev/null +++ b/ownCloud/Readme.md @@ -0,0 +1,13 @@ +# Nextcloud + +para que funcione hay que dar permisos al directorio para www-data:www-data. + +El nombre del directorio está definido en + + nextcloud-deployment.yaml: subPath: server-data + +y este está alojado dentro del directorio definido en el volumen persistente. + +En micaso en + + pi@k8s-router:/media/discoexterno/owncloud/server-data $ diff --git a/ownCloud/collabora-deployment.yaml b/ownCloud/collabora-deployment.yaml new file mode 100755 index 00000000..ce14c4ce --- /dev/null +++ b/ownCloud/collabora-deployment.yaml @@ -0,0 +1,43 @@ +apiVersion: v1 +kind: Service +metadata: + name: code-server + namespace: nextcloud + labels: + app: code +spec: + selector: + pod-label: code-server-pod + type: NodePort + ports: + - port: 9980 + nodePort: 30389 + targetPort: code +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: code-server + namespace: nextcloud + labels: + app: code +spec: + replicas: 1 + selector: + matchLabels: + pod-label: code-server-pod + template: + metadata: + labels: + pod-label: code-server-pod + spec: + containers: + - name: code + image: collabora/code:6.4.10.10 + env: + - name: extra_params + value: --o:ssl.enable=false + ports: + - containerPort: 9980 + name: code + diff --git a/ownCloud/creaTodo.sh b/ownCloud/creaTodo.sh new file mode 100755 index 00000000..5248a688 --- /dev/null +++ b/ownCloud/creaTodo.sh @@ -0,0 +1,6 @@ +kubectl create -f oc-namespace.yaml +kubectl create -f pv-local-owncloud.yaml +kubectl create -f pvc-owncloud.yaml +kubectl create -f owncloud-service.yaml +kubectl create -f owncloud-deployment.yaml +watch kubectl get all -n owncloud diff --git a/ownCloud/docker-compose.yml b/ownCloud/docker-compose.yml new file mode 100644 index 00000000..907437b0 --- /dev/null +++ b/ownCloud/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.1' +services: + owncloud: + # use the latest version of owncloud + image: owncloud:latest + ports: + # bind ownCloud's port 80 to port 8080 + - 8080:80 diff --git a/ownCloud/entra.sh b/ownCloud/entra.sh new file mode 100755 index 00000000..68aa44e5 --- /dev/null +++ b/ownCloud/entra.sh @@ -0,0 +1 @@ +kubectl exec -ti deployment.apps/owncloud -n owncloud -- /bin/bash diff --git a/ownCloud/kustomization.yaml b/ownCloud/kustomization.yaml new file mode 100644 index 00000000..8691867c --- /dev/null +++ b/ownCloud/kustomization.yaml @@ -0,0 +1,13 @@ +secretGenerator: +- name: mysqlnc-pass + namespace: nextcloud + literals: + - password=Dsa-0213 + - db_user=root + - db_passwd=Dsa-0213 +resources: +- nc-namespace.yaml +- pvc-nextcloud.yaml +- mysql-deployment.yaml +- php-deployment.yaml +- nextcloud-deployment.yaml diff --git a/ownCloud/mysql-deployment.yaml b/ownCloud/mysql-deployment.yaml new file mode 100755 index 00000000..503ae41a --- /dev/null +++ b/ownCloud/mysql-deployment.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + name: nextcloud-mysql + namespace: nextcloud + labels: + app: nextcloud +spec: + ports: + - port: 3306 + selector: + app: nextcloud + tier: mysql + clusterIP: None +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-nc-pv-claim + namespace: nextcloud + labels: + app: nextcloud +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nextcloud-mysql + namespace: nextcloud + labels: + app: nextcloud +spec: + selector: + matchLabels: + app: nextcloud + tier: mysql + strategy: + type: Recreate + template: + metadata: + labels: + app: nextcloud + tier: mysql + spec: + containers: + - image: mariadb + name: mysql + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mysqlnc-pass + key: password + ports: + - containerPort: 3306 + name: mysql + volumeMounts: + - name: mysql-persistent-storage + mountPath: /var/lib/mysql + volumes: + - name: mysql-persistent-storage + persistentVolumeClaim: + claimName: mysql-nc-pv-claim diff --git a/ownCloud/nextcloud-deployment.yaml b/ownCloud/nextcloud-deployment.yaml new file mode 100644 index 00000000..e2f8b343 --- /dev/null +++ b/ownCloud/nextcloud-deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: v1 +kind: Service +metadata: + name: nextcloud-server + namespace: nextcloud + labels: + app: nextcloud +spec: + selector: + pod-label: nextcloud-server-pod + type: NodePort + ports: + - port: 80 + nodePort: 30289 + targetPort: nextcloud +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nextcloud-server + namespace: nextcloud + labels: + app: nextcloud +spec: + replicas: 1 + selector: + matchLabels: + pod-label: nextcloud-server-pod + template: + metadata: + labels: + pod-label: nextcloud-server-pod + spec: + containers: + - name: nextcloud + image: nextcloud + volumeMounts: + - name: server-storage + mountPath: /var/www/html + subPath: server-data + ports: + - containerPort: 80 + name: nextcloud + volumes: + - name: server-storage + persistentVolumeClaim: + claimName: dbnc-pv-claim + diff --git a/ownCloud/oc-namespace.yaml b/ownCloud/oc-namespace.yaml new file mode 100644 index 00000000..0405f178 --- /dev/null +++ b/ownCloud/oc-namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: owncloud diff --git a/ownCloud/owncloud-deployment.yaml b/ownCloud/owncloud-deployment.yaml new file mode 100644 index 00000000..3d806deb --- /dev/null +++ b/ownCloud/owncloud-deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert + kompose.version: 1.21.0 (992df58d8) + creationTimestamp: null + labels: + io.kompose.service: owncloud + name: owncloud + namespace: owncloud +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: owncloud + strategy: {} + template: + metadata: + annotations: + kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert + kompose.version: 1.21.0 (992df58d8) + creationTimestamp: null + labels: + io.kompose.service: owncloud + spec: + containers: + - image: owncloud:latest + imagePullPolicy: "" + name: owncloud + volumeMounts: + - name: server-storage + mountPath: /var/www/html/data + ports: + - containerPort: 80 + resources: {} + restartPolicy: Always + serviceAccountName: "" + volumes: + - name: server-storage + persistentVolumeClaim: + claimName: dboc-pv-claim + +status: {} diff --git a/ownCloud/owncloud-service.yaml b/ownCloud/owncloud-service.yaml new file mode 100644 index 00000000..234ec9d0 --- /dev/null +++ b/ownCloud/owncloud-service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: /snap/kompose/19/kompose-linux-amd64 convert + kompose.version: 1.21.0 (992df58d8) + creationTimestamp: null + labels: + io.kompose.service: owncloud + name: owncloud + namespace: owncloud +spec: + type: NodePort + ports: + - name: "8080" + port: 8080 + nodePort: 30289 + targetPort: 80 + selector: + io.kompose.service: owncloud +status: + loadBalancer: {} diff --git a/ownCloud/paraTodo.sh b/ownCloud/paraTodo.sh new file mode 100755 index 00000000..a0c0130a --- /dev/null +++ b/ownCloud/paraTodo.sh @@ -0,0 +1,5 @@ +kubectl delete -f owncloud-deployment.yaml +kubectl delete -f owncloud-service.yaml +kubectl delete -f pvc-owncloud.yaml +kubectl delete -f pv-local-owncloud.yaml +kubectl delete -f oc-namespace.yaml diff --git a/ownCloud/php-deployment.yaml b/ownCloud/php-deployment.yaml new file mode 100644 index 00000000..01f0a4f3 --- /dev/null +++ b/ownCloud/php-deployment.yaml @@ -0,0 +1,54 @@ +apiVersion: v1 +kind: Service +metadata: + name: phpmyadmin-nextcloud + namespace: nextcloud + labels: + app: nextcloud +spec: + selector: + app: nextcloud + tier: phpmyadmin + type: NodePort + ports: + - name: phpadmin + port: 80 + nodePort: 30480 + targetPort: phpmyadm +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: phpmyadmin-nextcloud + namespace: nextcloud + labels: + app: nextcloud +spec: + selector: + matchLabels: + app: nextcloud + tier: phpmyadmin + strategy: + type: Recreate + template: + metadata: + labels: + app: nextcloud + tier: phpmyadmin + spec: + containers: + - name: phpmyadmin + image: phpmyadmin + ports: + - containerPort: 80 + name: phpmyadm + env: + - name: PMA_HOST + value: nextcloud-mysql + - name: PMA_PORT + value: "3306" + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mysqlnc-pass + key: password diff --git a/ownCloud/pv-local-mysql.yaml b/ownCloud/pv-local-mysql.yaml new file mode 100644 index 00000000..7fcb16c3 --- /dev/null +++ b/ownCloud/pv-local-mysql.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nc-data +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/cluster/nextcloud/nextcloud-db" diff --git a/ownCloud/pv-local-owncloud.yaml b/ownCloud/pv-local-owncloud.yaml new file mode 100644 index 00000000..4514fca2 --- /dev/null +++ b/ownCloud/pv-local-owncloud.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: owncloud +spec: + capacity: + storage: 50Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/cluster/owncloud" diff --git a/ownCloud/pvc-owncloud.yaml b/ownCloud/pvc-owncloud.yaml new file mode 100644 index 00000000..28a33fc8 --- /dev/null +++ b/ownCloud/pvc-owncloud.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: dboc-pv-claim + namespace: owncloud + labels: + app: owncloud +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 50Gi