diff --git a/apps/loops/resources/ceph-object-user.yaml b/apps/loops/resources/ceph-object-user.yaml new file mode 100644 index 0000000..39fb663 --- /dev/null +++ b/apps/loops/resources/ceph-object-user.yaml @@ -0,0 +1,8 @@ +apiVersion: ceph.rook.io/v1 +kind: CephObjectStoreUser +metadata: + name: loops + namespace: rook-ceph +spec: + store: my-store + displayName: Loops media diff --git a/apps/loops/resources/kustomization.yaml b/apps/loops/resources/kustomization.yaml new file mode 100644 index 0000000..e33ef44 --- /dev/null +++ b/apps/loops/resources/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ceph-object-user.yaml diff --git a/apps/loops/values.yaml b/apps/loops/values.yaml new file mode 100644 index 0000000..e8eec00 --- /dev/null +++ b/apps/loops/values.yaml @@ -0,0 +1,36 @@ +domain: loops.brunner.ninja +runtimeSecret: loops-runtime +mysql: + authSecret: mysql-auth + storageClass: rook-ceph-block-ec + storageSize: 30Gi +valkey: + authSecret: valkey-auth + storageClass: rook-ceph-block-ec + storageSize: 5Gi +persistence: + storageClass: rook-cephfs-ec + storageSize: 10Gi +ingress: + enabled: true + name: loops-brunner-ninja + entryPoint: websecure +transcoder: + nodeSelector: + kubernetes.io/hostname: arschrock + tolerations: + - key: node-role.kubernetes.io/control-plane + operator: Exists + effect: NoSchedule +config: + APP_URL: "https://loops.brunner.ninja" + AWS_DEFAULT_REGION: "keller" + AWS_ENDPOINT: "http://rook-ceph-rgw-my-store.rook-ceph.svc.cluster.local" + AWS_URL: "https://s3.brunner.ninja/loops" + LOOPS_ADMIN_MAILS_TO: "daniel@brunner.ninja" + LOOPS_EMAILS_DMCA: "daniel@brunner.ninja" + LOOPS_EMAILS_SUPPORT: "daniel@brunner.ninja" + LOOPS_LOCAL_DOMAINS: "social.brunner.ninja,pixels.brunner.ninja" + MAIL_FROM_ADDRESS: "loops@brunner.ninja" + MAIL_HOST: "smtp-relay.gmail.com" + SESSION_DOMAIN: "loops.brunner.ninja" diff --git a/apps/pixelfed/resources/ceph-object-user.yaml b/apps/pixelfed/resources/ceph-object-user.yaml new file mode 100644 index 0000000..a0deed5 --- /dev/null +++ b/apps/pixelfed/resources/ceph-object-user.yaml @@ -0,0 +1,8 @@ +apiVersion: ceph.rook.io/v1 +kind: CephObjectStoreUser +metadata: + name: pixelfed + namespace: rook-ceph +spec: + store: my-store + displayName: Pixelfed media diff --git a/apps/pixelfed/resources/kustomization.yaml b/apps/pixelfed/resources/kustomization.yaml new file mode 100644 index 0000000..e33ef44 --- /dev/null +++ b/apps/pixelfed/resources/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ceph-object-user.yaml diff --git a/apps/pixelfed/values.yaml b/apps/pixelfed/values.yaml new file mode 100644 index 0000000..6d829a9 --- /dev/null +++ b/apps/pixelfed/values.yaml @@ -0,0 +1,31 @@ +domain: pixels.brunner.ninja +runtimeSecret: pixelfed-runtime +mysql: + authSecret: mysql-auth + storageClass: rook-ceph-block-ec + storageSize: 20Gi +valkey: + authSecret: valkey-auth + storageClass: rook-ceph-block-ec + storageSize: 5Gi +persistence: + storageClass: rook-cephfs-ec + storageSize: 5Gi +ingress: + enabled: true + name: pixels-brunner-ninja + entryPoint: websecure +config: + ADMIN_DOMAIN: "pixels.brunner.ninja" + APP_DOMAIN: "pixels.brunner.ninja" + APP_URL: "https://pixels.brunner.ninja" + AWS_DEFAULT_REGION: "keller" + AWS_ENDPOINT: "http://rook-ceph-rgw-my-store.rook-ceph.svc.cluster.local" + AWS_URL: "https://s3.brunner.ninja/pixelfed" + MAIL_FROM_ADDRESS: "pixelfed@brunner.ninja" + MAIL_HOST: "smtp-relay.gmail.com" + PF_OIDC_AUTHORIZE_URL: "https://auth.brunner.ninja/application/o/authorize/" + PF_OIDC_LOGOUT_URL: "https://auth.brunner.ninja/application/o/pixels/end-session/" + PF_OIDC_PROFILE_URL: "https://auth.brunner.ninja/application/o/userinfo/" + PF_OIDC_TOKEN_URL: "https://auth.brunner.ninja/application/o/token/" + SESSION_DOMAIN: "pixels.brunner.ninja" diff --git a/bootstrap/kustomization.yaml b/bootstrap/kustomization.yaml index 713021b..6e5b705 100644 --- a/bootstrap/kustomization.yaml +++ b/bootstrap/kustomization.yaml @@ -100,6 +100,8 @@ resources: - nextcloud.yaml - fediverse-project.yaml - mastodon-postgresql.yaml +- pixelfed.yaml +- loops.yaml - nextcloud-whiteboard.yaml - nextcloud-talk-hpb.yaml - nextcloud-clamav.yaml diff --git a/bootstrap/loops.yaml b/bootstrap/loops.yaml new file mode 100644 index 0000000..af1719f --- /dev/null +++ b/bootstrap/loops.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: loops + namespace: argocd +spec: + project: fediverse + sources: + - repoURL: https://brunner.ninja/charts + chart: loops + targetRevision: 0.0.0-f614b34f + helm: + releaseName: loops + valueFiles: + - $values/apps/loops/values.yaml + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + path: apps/loops/resources + destination: + server: https://kubernetes.default.svc + namespace: loops + syncPolicy: + automated: + enabled: false + prune: false + selfHeal: false diff --git a/bootstrap/pixelfed.yaml b/bootstrap/pixelfed.yaml new file mode 100644 index 0000000..0942c14 --- /dev/null +++ b/bootstrap/pixelfed.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: pixelfed + namespace: argocd +spec: + project: fediverse + sources: + - repoURL: https://brunner.ninja/charts + chart: pixelfed + targetRevision: 0.15.1 + helm: + releaseName: pixelfed + valueFiles: + - $values/apps/pixelfed/values.yaml + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + path: apps/pixelfed/resources + destination: + server: https://kubernetes.default.svc + namespace: pixelfed + syncPolicy: + automated: + enabled: false + prune: false + selfHeal: false