From 22e03c22f2c4fa74f496063dd41461a7a04c15e4 Mon Sep 17 00:00:00 2001 From: gregory hendrickson Date: Sat, 28 Jan 2023 22:34:40 -0800 Subject: [PATCH] add all** --- deployments/mysql-deployment.yaml | 35 +++++++++++++++ deployments/nextcloud-deployment.yaml | 26 ++++++++++++ deployments/nginx-ingress-service.yaml | 59 ++++++++++++++++++++++++++ mysql-configmap.yaml | 11 +++++ mysql-secret.yaml | 6 +++ nextcloud-configmap.yaml | 27 ++++++++++++ nginx-configmap.yaml | 41 ++++++++++++++++++ nginx-secret.yaml | 7 +++ services/mysql-service.yaml | 12 ++++++ services/nextcloud-service.yaml | 12 ++++++ services/nginx-ingress-service.yaml | 15 +++++++ volumes/mysql-pv.yaml | 11 +++++ volumes/mysql-pvc.yaml | 10 +++++ volumes/nextcloud-pv.yaml | 11 +++++ volumes/nextcloud-pvc.yaml | 10 +++++ volumes/nginx-pv.yaml | 11 +++++ volumes/nginx-pvc.yaml | 13 ++++++ 17 files changed, 317 insertions(+) create mode 100644 deployments/mysql-deployment.yaml create mode 100644 deployments/nextcloud-deployment.yaml create mode 100644 deployments/nginx-ingress-service.yaml create mode 100644 mysql-configmap.yaml create mode 100644 mysql-secret.yaml create mode 100644 nextcloud-configmap.yaml create mode 100644 nginx-configmap.yaml create mode 100644 nginx-secret.yaml create mode 100644 services/mysql-service.yaml create mode 100644 services/nextcloud-service.yaml create mode 100644 services/nginx-ingress-service.yaml create mode 100644 volumes/mysql-pv.yaml create mode 100644 volumes/mysql-pvc.yaml create mode 100644 volumes/nextcloud-pv.yaml create mode 100644 volumes/nextcloud-pvc.yaml create mode 100644 volumes/nginx-pv.yaml create mode 100644 volumes/nginx-pvc.yaml diff --git a/deployments/mysql-deployment.yaml b/deployments/mysql-deployment.yaml new file mode 100644 index 0000000..df4ff3d --- /dev/null +++ b/deployments/mysql-deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mysql +spec: + replicas: 1 + selector: + matchLabels: + app: mysql + template: + metadata: + labels: + app: mysql + spec: + containers: + - name: mysql + image: mysql:8 + ports: + - containerPort: 3306 + env: + - name: MYSQL_ROOT_PASSWORD + value: "password" + - name: MYSQL_DATABASE + value: "nextcloud" + - name: MYSQL_USER + value: "nextcloud" + - name: MYSQL_PASSWORD + value: "password" + volumeMounts: + - name: mysql-data + mountPath: /var/lib/mysql + volumes: + - name: mysql-data + persistentVolumeClaim: + claimName: mysql-pvc diff --git a/deployments/nextcloud-deployment.yaml b/deployments/nextcloud-deployment.yaml new file mode 100644 index 0000000..a40d25d --- /dev/null +++ b/deployments/nextcloud-deployment.yaml @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nextcloud +spec: + replicas: 1 + selector: + matchLabels: + app: nextcloud + template: + metadata: + labels: + app: nextcloud + spec: + containers: + - name: nextcloud + image: nextcloud:latest + ports: + - containerPort: 80 + volumeMounts: + - name: nextcloud-data + mountPath: /var/www/html + volumes: + - name: nextcloud-data + persistentVolumeClaim: + claimName: nextcloud-pvc diff --git a/deployments/nginx-ingress-service.yaml b/deployments/nginx-ingress-service.yaml new file mode 100644 index 0000000..d229482 --- /dev/null +++ b/deployments/nginx-ingress-service.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-ingress +spec: + replicas: 1 + selector: + matchLabels: + app: nginx-ingress + template: + metadata: + labels: + app: nginx-ingress + spec: + containers: + - name: nginx-ingress + image: nginx-ingress-controller:alpine + ports: + - containerPort: 80 + - containerPort: 443 + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + args: + - /nginx-ingress-controller + - --configmap=$(POD_NAMESPACE)/nginx-ingress-config + - --tcp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-tcp-services-config + - --udp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-udp-services-config + - --annotations-prefix=nginx.ingress.kubernetes.io + - --publish-service=$(POD_NAMESPACE)/nginx-ingress + volumeMounts: + - name: nginx-ingress-config + mountPath: /etc/nginx/nginx-ingress-config + - name: nginx-ingress-tcp-services-config + mountPath: /etc/nginx/nginx-ingress-tcp-services-config + - name: nginx-ingress-udp-services-config + mountPath: /etc/nginx/nginx-ingress-udp-services-config + - name: nginx-ingress-certs + mountPath: /etc/nginx/nginx-ingress-certs + volumes: + - name: nginx-ingress-config + configMap: + name: nginx-ingress-config + - name: nginx-ingress-tcp-services-config + configMap: + name: nginx-ingress-tcp-services-config + - name: nginx-ingress-udp-services-config + configMap: + name: nginx-ingress-udp-services-config + - name: nginx-ingress-certs + secret: + secretName: nginx-ingress-certs + diff --git a/mysql-configmap.yaml b/mysql-configmap.yaml new file mode 100644 index 0000000..3507f9d --- /dev/null +++ b/mysql-configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql-config +data: + my.cnf: | + [mysqld] + datadir=/var/lib/mysql + socket=/var/lib/mysql/mysql.sock + bind-address=0.0.0.0 + max_connections=1024 diff --git a/mysql-secret.yaml b/mysql-secret.yaml new file mode 100644 index 0000000..af15595 --- /dev/null +++ b/mysql-secret.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Secret +metadata: + name: mysql-secret +data: + root-password: "cGFzc3dvcmQ=" diff --git a/nextcloud-configmap.yaml b/nextcloud-configmap.yaml new file mode 100644 index 0000000..7caadb8 --- /dev/null +++ b/nextcloud-configmap.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: nextcloud-config +data: + config.php: | + 'oc12345678', + 'passwordsalt' => 'abcdefghijklmnopqrstuvwxyz', + 'secret' => 'abcdefghijklmnopqrstuvwxyz', + 'trusted_domains' => + array ( + 0 => 'nextcloud.example.com', + ), + 'datadirectory' => '/var/www/html/data', + 'overwrite.cli.url' => 'http://nextcloud.example.com', + 'dbtype' => 'mysql', + 'version' => '20.0.0.10', + 'dbname' => 'nextcloud', + 'dbhost' => 'nextcloud-mysql', + 'dbport' => '', + 'dbtableprefix' => 'oc_', + 'dbuser' => 'nextcloud', + 'dbpassword' => 'password', + 'installed' => true, + ); diff --git a/nginx-configmap.yaml b/nginx-configmap.yaml new file mode 100644 index 0000000..7d54e4c --- /dev/null +++ b/nginx-configmap.yaml @@ -0,0 +1,41 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-ingress-config +data: + nginx-ingress.conf: |- + # Configuration for nginx-ingress + events { + worker_connections 1024; + } + + http { + server { + listen 80; + server_name _; + + location / { + proxy_pass http://nextcloud-service; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } + + server { + listen 443 ssl; + server_name _; + + ssl_certificate /etc/nginx/certs/tls.crt; + ssl_certificate_key /etc/nginx/certs/tls.key; + + location / { + proxy_pass http://nextcloud-service; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } + } diff --git a/nginx-secret.yaml b/nginx-secret.yaml new file mode 100644 index 0000000..2c66ed0 --- /dev/null +++ b/nginx-secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: nginx-ingress-certs +data: + tls.crt: + tls.key: diff --git a/services/mysql-service.yaml b/services/mysql-service.yaml new file mode 100644 index 0000000..3f35fb6 --- /dev/null +++ b/services/mysql-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: mysql +spec: + selector: + app: mysql + ports: + - name: mysql + port: 3306 + targetPort: 3306 + type: ClusterIP diff --git a/services/nextcloud-service.yaml b/services/nextcloud-service.yaml new file mode 100644 index 0000000..564d2df --- /dev/null +++ b/services/nextcloud-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: nextcloud +spec: + selector: + app: nextcloud + ports: + - name: http + port: 80 + targetPort: 80 + type: ClusterIP diff --git a/services/nginx-ingress-service.yaml b/services/nginx-ingress-service.yaml new file mode 100644 index 0000000..bf88734 --- /dev/null +++ b/services/nginx-ingress-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx-ingress +spec: + selector: + app: nginx-ingress + ports: + - name: http + port: 80 + targetPort: 80 + - name: https + port: 443 + targetPort: 443 + type: ClusterIP diff --git a/volumes/mysql-pv.yaml b/volumes/mysql-pv.yaml new file mode 100644 index 0000000..de8343d --- /dev/null +++ b/volumes/mysql-pv.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mysql-pv +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/data/mysql" diff --git a/volumes/mysql-pvc.yaml b/volumes/mysql-pvc.yaml new file mode 100644 index 0000000..b9e9f2d --- /dev/null +++ b/volumes/mysql-pvc.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/volumes/nextcloud-pv.yaml b/volumes/nextcloud-pv.yaml new file mode 100644 index 0000000..aa9f68c --- /dev/null +++ b/volumes/nextcloud-pv.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nextcloud-pv +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/data/nextcloud" diff --git a/volumes/nextcloud-pvc.yaml b/volumes/nextcloud-pvc.yaml new file mode 100644 index 0000000..7fcd597 --- /dev/null +++ b/volumes/nextcloud-pvc.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nextcloud-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/volumes/nginx-pv.yaml b/volumes/nginx-pv.yaml new file mode 100644 index 0000000..c7fe2af --- /dev/null +++ b/volumes/nginx-pv.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nginx-ingress-pv +spec: + capacity: + storage: 5Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/mnt/data/nginx-ingress" diff --git a/volumes/nginx-pvc.yaml b/volumes/nginx-pvc.yaml new file mode 100644 index 0000000..dd03b2e --- /dev/null +++ b/volumes/nginx-pvc.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nginx-ingress-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + selector: + matchLabels: + app: nginx-ingress