Added grist

Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
This commit is contained in:
Marcus Noble 2024-09-15 13:18:11 +01:00
parent 3a3fe19e45
commit 12d95014f3
Signed by: AverageMarcus
GPG Key ID: B8F2DB8A7AEBAF78
2 changed files with 180 additions and 0 deletions

View File

@ -0,0 +1,29 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cluster-fun-grist
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: cluster.fun
destination:
namespace: grist
name: cluster-fun (v2)
source:
path: manifests/grist
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
targetRevision: HEAD
syncPolicy:
automated: {}
syncOptions:
- CreateNamespace=true
ignoreDifferences:
- kind: Secret
jsonPointers:
- /data
- group: apps
kind: Deployment
jqPathExpressions:
- .spec.template.spec.containers[]?.image
---

151
manifests/grist/grist.yaml Normal file
View File

@ -0,0 +1,151 @@
apiVersion: v1
kind: Secret
metadata:
name: grist
namespace: grist
labels:
app.kubernetes.io/name: grist
annotations:
kube-1password: sgx6juca4jtecyynxzveeljq7y
kube-1password/vault: Kubernetes
kube-1password/secret-text-parse: "true"
type: Opaque
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: grist
namespace: grist
labels:
app.kubernetes.io/name: grist
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: grist-data
namespace: grist
labels:
app.kubernetes.io/name: grist
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "1Gi"
storageClassName: "sbs-default-retain"
---
apiVersion: v1
kind: Service
metadata:
name: grist
namespace: grist
labels:
app.kubernetes.io/name: grist
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8484
protocol: TCP
name: http
selector:
app.kubernetes.io/name: grist
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: grist
namespace: grist
labels:
app.kubernetes.io/name: grist
spec:
selector:
matchLabels:
app.kubernetes.io/name: grist
template:
metadata:
labels:
app.kubernetes.io/name: grist
spec:
serviceAccountName: grist
containers:
- name: grist
image: gristlabs/grist-oss:1.1.18
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8484
protocol: TCP
livenessProbe:
tcpSocket:
port: http
readinessProbe:
tcpSocket:
port: http
env:
- name: APP_HOME_URL
value: https://grist.cluster.fun
- name: APP_DOC_URL
value: https://grist.cluster.fun
- name: GRIST_SINGLE_ORG
value: default
- name: GRIST_TELEMETRY_LEVEL
value: "off"
- naem: ALLOWED_WEBHOOK_DOMAINS
value: "tank.tank.svc,matrix.cluster.fun"
- name: GRIST_ANON_PLAYGROUND
value: "false"
envFrom:
- secretRef:
name: grist
volumeMounts:
- name: data
mountPath: /persist
volumes:
- name: data
persistentVolumeClaim:
claimName: grist-data
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: grist
namespace: grist
labels:
app.kubernetes.io/name: grist
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: grist
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grist
namespace: grist
labels:
app.kubernetes.io/name: grist
spec:
ingressClassName: nginx
tls:
- hosts:
- grist.cluster.fun
rules:
- host: "grist.cluster.fun"
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: grist
port:
number: 80