From 9c9cd9dffec3b23078d29f0c11235237a7003c56 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Tue, 15 Nov 2022 08:51:14 +0100 Subject: [PATCH] Cambios en Nextcloud para usar mysql. Pruebas https --- Https/borra.sh | 4 ++ Https/configmap.yaml | 16 ++++++++ Https/crea.sh | 6 +++ Https/deployment.yaml | 33 +++++++++++++++ Https/ejemplo.yaml | 52 +++++++++++++++++++++++ Https/ingress.yaml | 17 ++++++++ Https/service.yaml | 12 ++++++ NextCloud/creaTodo.sh | 1 + NextCloud/entra | 1 - NextCloud/entra.sh | 1 + NextCloud/kustomization.yaml | 8 ++-- NextCloud/mysql-deployment.yaml | 68 +++++++++++++++++++++++++++++++ NextCloud/paraTodo.sh | 1 + NextCloud/php-deployment.yaml | 54 ++++++++++++++++++++++++ NextCloud/pv-local-mysql.yaml | 11 +++++ Nginx/creaTodo.sh | 2 +- Nginx/entra.sh | 1 + Nginx/miweb-deployment.yaml | 6 ++- Nginx/miweb-https-deployment.yaml | 63 ++++++++++++++++++++++++++++ Nginx/paraTodo.sh | 2 +- 20 files changed, 351 insertions(+), 8 deletions(-) create mode 100644 Https/borra.sh create mode 100644 Https/configmap.yaml create mode 100644 Https/crea.sh create mode 100644 Https/deployment.yaml create mode 100644 Https/ejemplo.yaml create mode 100644 Https/ingress.yaml create mode 100644 Https/service.yaml delete mode 100755 NextCloud/entra create mode 100755 NextCloud/entra.sh create mode 100755 NextCloud/mysql-deployment.yaml create mode 100644 NextCloud/php-deployment.yaml create mode 100644 NextCloud/pv-local-mysql.yaml create mode 100644 Nginx/entra.sh create mode 100644 Nginx/miweb-https-deployment.yaml mode change 100644 => 100755 Nginx/paraTodo.sh diff --git a/Https/borra.sh b/Https/borra.sh new file mode 100644 index 00000000..19915302 --- /dev/null +++ b/Https/borra.sh @@ -0,0 +1,4 @@ +kubectl delete -f configmap.yaml +kubectl delete -f deployment.yaml +kubectl delete -f service.yaml +kubectl delete -f ingress.yaml diff --git a/Https/configmap.yaml b/Https/configmap.yaml new file mode 100644 index 00000000..d65a1b21 --- /dev/null +++ b/Https/configmap.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: https-config +data: + default.conf: | + server { + listen 80; + listen [::]:80; + server_name _; + location / { + add_header Content-Type text/plain; # Prevents download + return 200 "¡Hola mundo! Demo de Kubernetes + Let's encrypt."; + } + } + diff --git a/Https/crea.sh b/Https/crea.sh new file mode 100644 index 00000000..29356800 --- /dev/null +++ b/Https/crea.sh @@ -0,0 +1,6 @@ +kubectl create -f configmap.yaml +kubectl create -f deployment.yaml +kubectl create -f service.yaml +kubectl create -f ingress.yaml +watch kubectl get all +kubectl describe ing kubernetes-demo-app-ingress-service diff --git a/Https/deployment.yaml b/Https/deployment.yaml new file mode 100644 index 00000000..fe0459d9 --- /dev/null +++ b/Https/deployment.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: https + labels: + app: https +spec: + selector: + matchLabels: + app: https + tier: frontend + strategy: + type: Recreate + template: + metadata: + labels: + app: https + tier: frontend + spec: + containers: + - image: nginx + name: https + ports: + - containerPort: 80 + volumeMounts: + - name: https-configs + mountPath: /etc/nginx/conf.d + # Load the configuration files for nginx + volumes: + - name: https-configs + configMap: + name: https-config + diff --git a/Https/ejemplo.yaml b/Https/ejemplo.yaml new file mode 100644 index 00000000..f92289c3 --- /dev/null +++ b/Https/ejemplo.yaml @@ -0,0 +1,52 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-config +data: + default.conf: | + server { + listen 80; + listen [::]:80; + server_name _; + location / { + add_header Content-Type text/plain; # Prevents download + return 200 "Hello world! Kubernetes + Let's encrypt demo."; + } +--- +apiVersion: v1 +kind: Deployment +metadata: + labels: + app: nginx + name: nginx +spec: + replicas: 1 + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx + ports: + - containerPort: 80 + volumeMounts: + - name: nginx-configs + mountPath: /etc/nginx/conf.d + # Load the configuration files for nginx + volumes: + - name: nginx-configs + configMap: + name: nginx-config +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx +spec: + selector: + app: nginx + ports: + - protocol: "TCP" + port: 80 diff --git a/Https/ingress.yaml b/Https/ingress.yaml new file mode 100644 index 00000000..783f1c1f --- /dev/null +++ b/Https/ingress.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: "kubernetes-demo-app-ingress-service" +spec: + rules: + - host: kubernetes-letsencrypt.jorge.fail + http: + paths: + # The * is needed so that all traffic gets redirected to nginx + - path: /* + pathType: Prefix + backend: + service: + name: https + port: + number: 80 diff --git a/Https/service.yaml b/Https/service.yaml new file mode 100644 index 00000000..b0651512 --- /dev/null +++ b/Https/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: https +spec: + selector: + app: https + type: NodePort + ports: + - protocol: "TCP" + port: 80 + nodePort: 30058 diff --git a/NextCloud/creaTodo.sh b/NextCloud/creaTodo.sh index 81bfeaca..ff1607a0 100755 --- a/NextCloud/creaTodo.sh +++ b/NextCloud/creaTodo.sh @@ -1,3 +1,4 @@ kubectl create -f pv-local-nextcloud.yaml +kubectl create -f pv-local-mysql.yaml kubectl create -k ./ watch kubectl get all -n nextcloud diff --git a/NextCloud/entra b/NextCloud/entra deleted file mode 100755 index 980a1868..00000000 --- a/NextCloud/entra +++ /dev/null @@ -1 +0,0 @@ -kubectl exec --stdin --tty $1 -n $2 -- /bin/bash diff --git a/NextCloud/entra.sh b/NextCloud/entra.sh new file mode 100755 index 00000000..dade5384 --- /dev/null +++ b/NextCloud/entra.sh @@ -0,0 +1 @@ +kubectl exec -ti deployment.apps/nextcloud-server -n nextcloud -- /bin/bash diff --git a/NextCloud/kustomization.yaml b/NextCloud/kustomization.yaml index 3a512883..8691867c 100644 --- a/NextCloud/kustomization.yaml +++ b/NextCloud/kustomization.yaml @@ -1,11 +1,13 @@ secretGenerator: -- name: dbnc-pass +- name: mysqlnc-pass namespace: nextcloud literals: - - password=Rey-1176 + - password=Dsa-0213 - db_user=root - - db_passwd=Rey-1176 + - db_passwd=Dsa-0213 resources: - nc-namespace.yaml - pvc-nextcloud.yaml +- mysql-deployment.yaml +- php-deployment.yaml - nextcloud-deployment.yaml diff --git a/NextCloud/mysql-deployment.yaml b/NextCloud/mysql-deployment.yaml new file mode 100755 index 00000000..503ae41a --- /dev/null +++ b/NextCloud/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/NextCloud/paraTodo.sh b/NextCloud/paraTodo.sh index 1bc875e6..259050db 100755 --- a/NextCloud/paraTodo.sh +++ b/NextCloud/paraTodo.sh @@ -1,2 +1,3 @@ kubectl delete -k ./ kubectl delete -f pv-local-nextcloud.yaml +kubectl delete -f pv-local-mysql.yaml diff --git a/NextCloud/php-deployment.yaml b/NextCloud/php-deployment.yaml new file mode 100644 index 00000000..01f0a4f3 --- /dev/null +++ b/NextCloud/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/NextCloud/pv-local-mysql.yaml b/NextCloud/pv-local-mysql.yaml new file mode 100644 index 00000000..7fcb16c3 --- /dev/null +++ b/NextCloud/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/Nginx/creaTodo.sh b/Nginx/creaTodo.sh index 92c95ec4..ee1e0e4e 100755 --- a/Nginx/creaTodo.sh +++ b/Nginx/creaTodo.sh @@ -1,3 +1,3 @@ kubectl create -f pv-local-nginx.yaml kubectl create -k ./ -watch kubectl get all +#watch kubectl get all diff --git a/Nginx/entra.sh b/Nginx/entra.sh new file mode 100644 index 00000000..f87a98be --- /dev/null +++ b/Nginx/entra.sh @@ -0,0 +1 @@ +kubectl exec -ti deployment.apps/nginx-example -- /bin/bash diff --git a/Nginx/miweb-deployment.yaml b/Nginx/miweb-deployment.yaml index 9af7e1dd..4bbd6f9d 100644 --- a/Nginx/miweb-deployment.yaml +++ b/Nginx/miweb-deployment.yaml @@ -47,13 +47,15 @@ spec: spec: containers: - name: nginx - image: linuxserver/nginx + #image: linuxserver/nginx + image: httpd ports: - containerPort: 80 name: "nginx-http" volumeMounts: - name: nginx-www-folder - mountPath: /config/www + # mountPath: /config/www + mountPath: /usr/local/apache2/htdocs volumes: - name: nginx-www-folder persistentVolumeClaim: diff --git a/Nginx/miweb-https-deployment.yaml b/Nginx/miweb-https-deployment.yaml new file mode 100644 index 00000000..c0b66eb4 --- /dev/null +++ b/Nginx/miweb-https-deployment.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx-example +spec: + type: NodePort + ports: + - name: http + port: 80 + nodePort: 30080 + targetPort: nginx-http + selector: + app: nginx +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nginx-pv-claim + labels: + app: nginx +spec: + accessModes: + - ReadWriteMany + storageClassName: "" + resources: + requests: + storage: 2Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-example + labels: + app: nginx +spec: + selector: + matchLabels: + app: nginx + tier: frontend + strategy: + type: Recreate + template: + metadata: + labels: + app: nginx + tier: frontend + spec: + containers: + - name: nginx + image: steveltn/https-portal:1 + ports: + - containerPort: 80 + name: "nginx-http" + volumeMounts: + - name: nginx-www-folder + mountPath: /config/www + env: + - name: DOMAINS + value: 'reymota.ddns.net -> http://nginx:80' + volumes: + - name: nginx-www-folder + persistentVolumeClaim: + claimName: nginx-pv-claim diff --git a/Nginx/paraTodo.sh b/Nginx/paraTodo.sh old mode 100644 new mode 100755 index 4a810059..6125f7a1 --- a/Nginx/paraTodo.sh +++ b/Nginx/paraTodo.sh @@ -1,2 +1,2 @@ kubectl delete -k ./ -kubectl delete -f pv-local-nginx.yaml +kubectl delete -f pv-local-nginx.yaml