diff options
Diffstat (limited to 'roles/archivebox')
-rw-r--r-- | roles/archivebox/defaults/main.yaml | 9 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/.helmignore | 23 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/Chart.yaml | 5 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/templates/deployment.yaml | 45 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/templates/ingress.yaml | 23 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/templates/pv.yaml | 16 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/templates/pvc.yaml | 14 | ||||
-rw-r--r-- | roles/archivebox/files/archivebox/templates/service.yaml | 14 | ||||
-rw-r--r-- | roles/archivebox/tasks/main.yaml | 17 |
9 files changed, 166 insertions, 0 deletions
diff --git a/roles/archivebox/defaults/main.yaml b/roles/archivebox/defaults/main.yaml new file mode 100644 index 0000000..0afc620 --- /dev/null +++ b/roles/archivebox/defaults/main.yaml @@ -0,0 +1,9 @@ +archivebox: + enabled: false + replicas: 1 + port: 8000 + image: archivebox/archivebox + version: 0.7 + +nfs: + path: "/mnt/nfs/k3s/archivebox" diff --git a/roles/archivebox/files/archivebox/.helmignore b/roles/archivebox/files/archivebox/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/roles/archivebox/files/archivebox/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/roles/archivebox/files/archivebox/Chart.yaml b/roles/archivebox/files/archivebox/Chart.yaml new file mode 100644 index 0000000..40b00c9 --- /dev/null +++ b/roles/archivebox/files/archivebox/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: archivebox +description: Archival system +type: application +version: 0.1.0 diff --git a/roles/archivebox/files/archivebox/templates/deployment.yaml b/roles/archivebox/files/archivebox/templates/deployment.yaml new file mode 100644 index 0000000..02a3bfb --- /dev/null +++ b/roles/archivebox/files/archivebox/templates/deployment.yaml @@ -0,0 +1,45 @@ +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: archivebox + image: "{{ .Values.image }}:{{ .Values.version }}" + env: + - name: PUBLIC_INDEX + value: "False" + - name: PUBLIC_SNAPSHOTS + value: "False" + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: SAVE_ARCHIVE_DOT_ORG + value: "False" + - name: SAVE_SCREENSHOT + value: "False" + - name: SAVE_DOM + value: "False" + - name: SAVE_SINGLEFILE + value: "False" + + volumeMounts: + - mountPath: "/data" + name: "{{ .Chart.Name }}-volume" + subPath: data + volumes: + - name: "{{ .Chart.Name }}-volume" + persistentVolumeClaim: + claimName: "{{ .Chart.Name }}-pvc" diff --git a/roles/archivebox/files/archivebox/templates/ingress.yaml b/roles/archivebox/files/archivebox/templates/ingress.yaml new file mode 100644 index 0000000..2601655 --- /dev/null +++ b/roles/archivebox/files/archivebox/templates/ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: archivebox + annotations: + cert-manager.io/cluster-issuer: "ca-issuer" +spec: + ingressClassName: traefik + tls: + - hosts: + - archive.home + secretName: archivebox-tls + rules: + - host: archive.home + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: archivebox-service + port: + number: 80 diff --git a/roles/archivebox/files/archivebox/templates/pv.yaml b/roles/archivebox/files/archivebox/templates/pv.yaml new file mode 100644 index 0000000..869b121 --- /dev/null +++ b/roles/archivebox/files/archivebox/templates/pv.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: "{{ .Chart.Name }}-pv" + labels: + app: "{{ .Chart.Name }}-pv" +spec: + storageClassName: nfs + capacity: + storage: 100Gi + accessModes: + - ReadWriteMany + nfs: + server: {{ .Values.nfs.server }} + path: {{ .Values.nfs.path }} + readOnly: false diff --git a/roles/archivebox/files/archivebox/templates/pvc.yaml b/roles/archivebox/files/archivebox/templates/pvc.yaml new file mode 100644 index 0000000..10a5ced --- /dev/null +++ b/roles/archivebox/files/archivebox/templates/pvc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Chart.Name }}-pvc +spec: + storageClassName: nfs + accessModes: + - ReadWriteMany + resources: + requests: + storage: 100Gi + selector: + matchLabels: + app: "{{ .Chart.Name }}-pv" diff --git a/roles/archivebox/files/archivebox/templates/service.yaml b/roles/archivebox/files/archivebox/templates/service.yaml new file mode 100644 index 0000000..bb8bcc2 --- /dev/null +++ b/roles/archivebox/files/archivebox/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Chart.Name }}-service +spec: + type: ClusterIP + selector: + app: {{ .Chart.Name }} + ports: + - protocol: TCP + port: 80 + targetPort: 8000 + name: webui + diff --git a/roles/archivebox/tasks/main.yaml b/roles/archivebox/tasks/main.yaml new file mode 100644 index 0000000..a4abe9f --- /dev/null +++ b/roles/archivebox/tasks/main.yaml @@ -0,0 +1,17 @@ +--- +- name: Deploy Archivebox + kubernetes.core.helm: + name: archivebox + chart_ref: "{{ lookup('env', 'PWD') }}/roles/archivebox/files/archivebox" + namespace: default + state: "{%- if archivebox.enabled -%} present {%- else -%} absent {%- endif -%}" + values: + replicas: "{{ archivebox.replicas }}" + port: "{{ archivebox.port }}" + image: "{{ archivebox.image }}" + version: "{{ archivebox.version }}" + nfs: + server: "{{ nfs.server }}" + path: "{{ nfs.path }}" + delegate_to: localhost + run_once: true |