diff --git a/manifests/outline.yaml b/manifests/outline.yaml new file mode 100644 index 0000000..e792748 --- /dev/null +++ b/manifests/outline.yaml @@ -0,0 +1,124 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: outline +--- +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: docker.cluster.fun/averagemarcus/outline:latest + imagePullPolicy: Always + command: + - sh + - -c + - | + sleep 10 && yarn sequelize db:migrate && yarn build && yarn start + 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 7a7c5bb..f9ec84f 100644 --- a/terraform/bucket.tf +++ b/terraform/bucket.tf @@ -16,11 +16,11 @@ output "linx-bucket_id" { value = scaleway_object_bucket.linx.id } -resource "scaleway_object_bucket" "octoprint_timelapse" { - name = "cluster.fun-octoprint" +resource "scaleway_object_bucket" "outline" { + name = "cluster.fun-outline" acl = "private" } -output "octoprint-bucket_id" { - value = scaleway_object_bucket.octoprint_timelapse.id +output "outline-bucket_id" { + value = scaleway_object_bucket.outline.id }