diff options
Diffstat (limited to 'roles/cloud')
-rw-r--r-- | roles/cloud/defaults/main.yaml | 6 | ||||
-rw-r--r-- | roles/cloud/files/cloud/Chart.yaml | 6 | ||||
-rw-r--r-- | roles/cloud/files/cloud/templates/cloud.yaml | 40 | ||||
-rw-r--r-- | roles/cloud/files/cloud/templates/ingress.yaml | 33 | ||||
-rw-r--r-- | roles/cloud/files/cloud/templates/pv.yaml | 16 | ||||
-rw-r--r-- | roles/cloud/files/cloud/templates/pvc.yaml | 14 | ||||
-rw-r--r-- | roles/cloud/files/cloud/templates/service.yaml | 13 | ||||
-rw-r--r-- | roles/cloud/tasks/main.yaml | 17 |
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 |