From 4bc3a9add5c4b32a7d5f5b7f703c5ca117ebc3c1 Mon Sep 17 00:00:00 2001 From: Marcus Noble Date: Sat, 11 Sep 2021 09:56:37 +0100 Subject: [PATCH] Added outline --- manifests/_apps/outline.yaml | 24 +++++++ manifests/outline/outline.yaml | 122 +++++++++++++++++++++++++++++++++ terraform/bucket.tf | 9 +++ 3 files changed, 155 insertions(+) create mode 100644 manifests/_apps/outline.yaml create mode 100644 manifests/outline/outline.yaml diff --git a/manifests/_apps/outline.yaml b/manifests/_apps/outline.yaml new file mode 100644 index 0000000..331a07d --- /dev/null +++ b/manifests/_apps/outline.yaml @@ -0,0 +1,24 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: outline + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: cluster.fun + destination: + namespace: outline + name: cluster-fun (scaleway) + source: + path: manifests/outline + repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" + targetRevision: HEAD + syncPolicy: + automated: {} + syncOptions: + - CreateNamespace=true + ignoreDifferences: + - kind: Secret + jsonPointers: + - /data diff --git a/manifests/outline/outline.yaml b/manifests/outline/outline.yaml new file mode 100644 index 0000000..208e817 --- /dev/null +++ b/manifests/outline/outline.yaml @@ -0,0 +1,122 @@ +apiVersion: v1 +kind: Secret +metadata: + name: outline + namespace: outline + annotations: + kube-1password: maouivotrbgydslnsukbjrwgja + kube-1password/vault: Kubernetes + kube-1password/secret-text-key: .env +type: Opaque +--- +apiVersion: v1 +kind: Service +metadata: + name: outline + namespace: outline +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: web + name: web + selector: + app: outline +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: outline + namespace: outline +spec: + selector: + matchLabels: + app: outline + serviceName: outline + replicas: 1 + template: + metadata: + labels: + app: outline + spec: + containers: + - name: postgres + image: postgres:9-alpine + imagePullPolicy: IfNotPresent + ports: + - containerPort: 5432 + name: db + env: + - name: POSTGRES_USER + value: user + - name: POSTGRES_PASSWORD + value: pass + - name: POSTGRES_DB + value: outline + - name: PGDATA + value: /var/lib/postgresql/data/outline + volumeMounts: + - name: data + mountPath: /var/lib/postgresql/data + - name: redis + image: redis:6 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 6379 + name: redis + - name: outline + image: outlinewiki/outline:0.59.0 + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - | + sleep 10 && yarn sequelize db:migrate --env=production-ssl-disabled && yarn build && yarn start + env: + - name: PGSSLMODE + value: disable + ports: + - containerPort: 3000 + name: web + volumeMounts: + - mountPath: /opt/outline/.env + subPath: .env + name: outline-env + readOnly: true + volumes: + - name: outline-env + secret: + secretName: outline + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi +--- +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: outline + namespace: outline + annotations: + cert-manager.io/cluster-issuer: letsencrypt + traefik.ingress.kubernetes.io/frontend-entry-points: http,https + traefik.ingress.kubernetes.io/redirect-entry-point: https + traefik.ingress.kubernetes.io/redirect-permanent: "true" +spec: + tls: + - hosts: + - outline.cluster.fun + secretName: outline-ingress + rules: + - host: outline.cluster.fun + http: + paths: + - path: / + backend: + serviceName: outline + servicePort: 80 diff --git a/terraform/bucket.tf b/terraform/bucket.tf index 06b502f..5b9df27 100644 --- a/terraform/bucket.tf +++ b/terraform/bucket.tf @@ -6,3 +6,12 @@ resource "scaleway_object_bucket" "kubernetes" { output "bucket_id" { value = scaleway_object_bucket.kubernetes.id } + +resource "scaleway_object_bucket" "outline" { + name = "cluster.fun-outline" + acl = "private" +} + +output "outline-bucket_id" { + value = scaleway_object_bucket.outline.id +}