aboutsummaryrefslogtreecommitdiff
path: root/roles/cloud
diff options
context:
space:
mode:
Diffstat (limited to 'roles/cloud')
-rw-r--r--roles/cloud/defaults/main.yaml6
-rw-r--r--roles/cloud/files/cloud/Chart.yaml6
-rw-r--r--roles/cloud/files/cloud/templates/cloud.yaml40
-rw-r--r--roles/cloud/files/cloud/templates/ingress.yaml33
-rw-r--r--roles/cloud/files/cloud/templates/pv.yaml16
-rw-r--r--roles/cloud/files/cloud/templates/pvc.yaml14
-rw-r--r--roles/cloud/files/cloud/templates/service.yaml13
-rw-r--r--roles/cloud/tasks/main.yaml17
8 files changed, 145 insertions, 0 deletions
diff --git a/roles/cloud/defaults/main.yaml b/roles/cloud/defaults/main.yaml
new file mode 100644
index 0000000..23f8615
--- /dev/null
+++ b/roles/cloud/defaults/main.yaml
@@ -0,0 +1,6 @@
+cloud:
+ version: v2.26.0
+ replicas: 1
+ enabled: false
+ port: 80
+ path: "/mnt/nfs/k3s/cloud/"
diff --git a/roles/cloud/files/cloud/Chart.yaml b/roles/cloud/files/cloud/Chart.yaml
new file mode 100644
index 0000000..0665bb9
--- /dev/null
+++ b/roles/cloud/files/cloud/Chart.yaml
@@ -0,0 +1,6 @@
+apiVersion: v2
+name: cloud
+description: Filebrowser for Files
+type: application
+
+version: 0.1.0
diff --git a/roles/cloud/files/cloud/templates/cloud.yaml b/roles/cloud/files/cloud/templates/cloud.yaml
new file mode 100644
index 0000000..d688901
--- /dev/null
+++ b/roles/cloud/files/cloud/templates/cloud.yaml
@@ -0,0 +1,40 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: "{{ .Chart.Name }}-deployment"
+ labels:
+ app: {{ .Chart.Name }}
+spec:
+ replicas: {{ .Values.replicas }}
+ selector:
+ matchLabels:
+ app: {{ .Chart.Name }}
+ template:
+ metadata:
+ labels:
+ app: {{ .Chart.Name }}
+ spec:
+ containers:
+ - name: filebrowser
+ image: "{{ .Values.image }}:{{ .Values.version }}"
+ ports:
+ - name: http
+ containerPort: 80
+ volumeMounts:
+ - mountPath: "/Drive"
+ name: "{{ .Chart.Name }}-volume"
+ subPath: "Drive"
+ - mountPath: "/database.db"
+ name: "{{ .Chart.Name }}-volume"
+ subPath: "db/database.db"
+ - mountPath: "/.filebrowser.json"
+ name: "{{ .Chart.Name }}-volume"
+ subPath: "config/filebrowser.json"
+ volumes:
+ - name: "{{ .Chart.Name }}-volume"
+ persistentVolumeClaim:
+ claimName: {{ .Chart.Name }}-pvc
+# securityContext:
+# runAsUser: 1001
+# runAsGroup: 1001
+# fsGroup: 1001
diff --git a/roles/cloud/files/cloud/templates/ingress.yaml b/roles/cloud/files/cloud/templates/ingress.yaml
new file mode 100644
index 0000000..22f55b1
--- /dev/null
+++ b/roles/cloud/files/cloud/templates/ingress.yaml
@@ -0,0 +1,33 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: cloud
+ annotations:
+ cert-manager.io/cluster-issuer: "letsencrypt-prod"
+spec:
+ ingressClassName: traefik
+ tls:
+ - hosts:
+ - drive.aadityadhruv.com
+ secretName: cloud-tls
+ rules:
+ - host: drive.home
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: cloud-service
+ port:
+ number: 80
+ - host: drive.aadityadhruv.com
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: cloud-service
+ port:
+ number: 80
diff --git a/roles/cloud/files/cloud/templates/pv.yaml b/roles/cloud/files/cloud/templates/pv.yaml
new file mode 100644
index 0000000..21b3611
--- /dev/null
+++ b/roles/cloud/files/cloud/templates/pv.yaml
@@ -0,0 +1,16 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: {{ .Chart.Name }}-pv
+ labels:
+ app: {{ .Chart.Name }}
+spec:
+ storageClassName: nfs
+ capacity:
+ storage: 16Gi
+ accessModes:
+ - ReadWriteMany
+ nfs:
+ server: {{ .Values.nfs.server }}
+ path: {{ .Values.nfs.path }}
+ readOnly: false
diff --git a/roles/cloud/files/cloud/templates/pvc.yaml b/roles/cloud/files/cloud/templates/pvc.yaml
new file mode 100644
index 0000000..1324417
--- /dev/null
+++ b/roles/cloud/files/cloud/templates/pvc.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: {{ .Chart.Name }}-pvc
+spec:
+ storageClassName: nfs
+ accessModes:
+ - ReadWriteMany
+ resources:
+ requests:
+ storage: 16Gi
+ selector:
+ matchLabels:
+ app: {{ .Chart.Name }}
diff --git a/roles/cloud/files/cloud/templates/service.yaml b/roles/cloud/files/cloud/templates/service.yaml
new file mode 100644
index 0000000..c412876
--- /dev/null
+++ b/roles/cloud/files/cloud/templates/service.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ .Chart.Name }}-service
+spec:
+ type: ClusterIP
+ selector:
+ app: {{ .Chart.Name }}
+ ports:
+ - protocol: TCP
+ port: {{ .Values.port }}
+ targetPort: http
+ name: webui
diff --git a/roles/cloud/tasks/main.yaml b/roles/cloud/tasks/main.yaml
new file mode 100644
index 0000000..4a3a168
--- /dev/null
+++ b/roles/cloud/tasks/main.yaml
@@ -0,0 +1,17 @@
+---
+- name: Deploy Cloud
+ kubernetes.core.helm:
+ name: cloud
+ chart_ref: "{{ lookup('env', 'PWD') }}/roles/cloud/files/cloud"
+ namespace: default
+ state: "{%- if cloud.enabled -%} present {%- else -%} absent {%- endif -%}"
+ values:
+ image: filebrowser/filebrowser
+ replicas: "{{ cloud.replicas }}"
+ version: "{{ cloud.version }}"
+ port: "{{ cloud.port }}"
+ nfs:
+ path: "{{ cloud.path }}"
+ server: "{{ nfs.server }}"
+ delegate_to: localhost
+ run_once: true