commit fdd88b8d5e173a19a322c70a1e0e22c1cf35e84f
parent ad85f311f90fdd201488fe0798f95c6b6d85bc5d
Author: MTRNord <MTRNord@users.noreply.github.com>
Date: Mon, 4 Aug 2025 10:48:25 +0200
Migrate actual budget
Diffstat:
5 files changed, 162 insertions(+), 173 deletions(-)
diff --git a/apps/base/actualbudget-server/release.yaml b/apps/base/actualbudget-server/release.yaml
@@ -32,44 +32,44 @@ spec:
image: ghcr.io/actualbudget/actual:25.7.1
imagePullPolicy: IfNotPresent
resources:
- limits:
- cpu: 100m
- memory: 128Mi
- requests:
- cpu: 100m
- memory: 128Mi
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
env:
- - name: NODE_ENV
- value: "production"
+ - name: NODE_ENV
+ value: "production"
# - name: DEBUG
# value: "*"
ports:
- - containerPort: 5006
+ - containerPort: 5006
livenessProbe:
- httpGet:
- path: /
- port: 5006
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 3
+ httpGet:
+ path: /
+ port: 5006
+ initialDelaySeconds: 30
+ periodSeconds: 10
+ timeoutSeconds: 5
+ successThreshold: 1
+ failureThreshold: 3
readinessProbe:
- httpGet:
- path: /
- port: 5006
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 3
+ httpGet:
+ path: /
+ port: 5006
+ initialDelaySeconds: 30
+ periodSeconds: 10
+ timeoutSeconds: 5
+ successThreshold: 1
+ failureThreshold: 3
volumeMounts:
- - name: actualbudget-server
- mountPath: /data
+ - name: actualbudget-server
+ mountPath: /data
volumes:
- name: actualbudget-server
persistentVolumeClaim:
- claimName: actualbudget-server
+ claimName: actualbudget-server
---
apiVersion: v1
kind: Service
@@ -97,8 +97,8 @@ spec:
- budget.midnightthoughts.space
rules:
- backendRefs:
- - name: actualbudget-server-service
- port: 5006
+ - name: actualbudget-server-service
+ port: 5006
timeouts:
- request: 240s
- backendRequest: 0s
+ request: 240s
+ backendRequest: 0s
diff --git a/apps/talos_cluster/actualbudget-server/kustomization.yaml b/apps/talos_cluster/actualbudget-server/kustomization.yaml
@@ -3,4 +3,4 @@ kind: Kustomization
namespace: actualbudget-server
resources:
- pvc.yaml
- #- release.yaml
+ - release.yaml
diff --git a/apps/talos_cluster/actualbudget-server/release.yaml b/apps/talos_cluster/actualbudget-server/release.yaml
@@ -1,4 +1,3 @@
----
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -19,44 +18,44 @@ spec:
image: ghcr.io/actualbudget/actual:25.8.0
imagePullPolicy: IfNotPresent
resources:
- limits:
- cpu: 100m
- memory: 128Mi
- requests:
- cpu: 100m
- memory: 128Mi
+ limits:
+ cpu: 100m
+ memory: 128Mi
+ requests:
+ cpu: 100m
+ memory: 128Mi
env:
- - name: NODE_ENV
- value: "production"
+ - name: NODE_ENV
+ value: "production"
# - name: DEBUG
# value: "*"
ports:
- - containerPort: 5006
+ - containerPort: 5006
livenessProbe:
- httpGet:
- path: /
- port: 5006
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 3
+ httpGet:
+ path: /
+ port: 5006
+ initialDelaySeconds: 30
+ periodSeconds: 10
+ timeoutSeconds: 5
+ successThreshold: 1
+ failureThreshold: 3
readinessProbe:
- httpGet:
- path: /
- port: 5006
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 3
+ httpGet:
+ path: /
+ port: 5006
+ initialDelaySeconds: 30
+ periodSeconds: 10
+ timeoutSeconds: 5
+ successThreshold: 1
+ failureThreshold: 3
volumeMounts:
- - name: actualbudget-server
- mountPath: /data
+ - name: actualbudget-server
+ mountPath: /data
volumes:
- name: actualbudget-server
persistentVolumeClaim:
- claimName: actualbudget-server
+ claimName: actualbudget-server
---
apiVersion: v1
kind: Service
@@ -84,8 +83,8 @@ spec:
- budget.midnightthoughts.space
rules:
- backendRefs:
- - name: actualbudget-server-service
- port: 5006
+ - name: actualbudget-server-service
+ port: 5006
timeouts:
- request: 240s
- backendRequest: 0s
+ request: 240s
+ backendRequest: 0s
diff --git a/apps/talos_cluster/draupnir4all/deployment.yaml b/apps/talos_cluster/draupnir4all/deployment.yaml
@@ -42,11 +42,11 @@ spec:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
- matchExpressions:
- - key: app
- operator: In
- values:
- - draupnir4all
+ matchExpressions:
+ - key: app
+ operator: In
+ values:
+ - draupnir4all
topologyKey: "kubernetes.io/hostname"
containers:
- name: draupnir4all
@@ -66,107 +66,97 @@ spec:
# - name: TRACING_METRIC_URL
# value: http://tempo.monitoring.svc.cluster.local:4318/v1/metrics
env:
- - name: NODE_OPTIONS
- value: "--trace-warnings"
+ - name: NODE_OPTIONS
+ value: "--trace-warnings"
command: ["./draupnir-entrypoint.sh"]
- args:
- [
- "appservice",
- "-c",
- "/data/config/config.appservice.yaml",
- "-f",
- "/data/config/draupnir-registration.yaml",
- "--draupnir-config",
- "/data/config/draupnir-config.yaml",
- "-p",
- "9000",
- ]
+ args: ["appservice", "-c", "/data/config/config.appservice.yaml", "-f", "/data/config/draupnir-registration.yaml",
+ "--draupnir-config", "/data/config/draupnir-config.yaml", "-p", "9000"]
resources:
- limits: {}
- requests:
- memory: "344Mi"
- cpu: "252m"
+ limits: {}
+ requests:
+ memory: "344Mi"
+ cpu: "252m"
securityContext:
- runAsUser: 1000
- runAsGroup: 1000
- readOnlyRootFilesystem: true
+ runAsUser: 1000
+ runAsGroup: 1000
+ readOnlyRootFilesystem: true
ports:
- - containerPort: 9001
- name: api
- protocol: TCP
- - containerPort: 9000
- name: appservice
- protocol: TCP
+ - containerPort: 9001
+ name: api
+ protocol: TCP
+ - containerPort: 9000
+ name: appservice
+ protocol: TCP
volumeMounts:
- - name: configs
- mountPath: "/data/config"
- readOnly: true
- - mountPath: /data/storage
- name: storage
- - mountPath: /tmp
- name: tmp
+ - name: configs
+ mountPath: "/data/config"
+ readOnly: true
+ - mountPath: /data/storage
+ name: storage
+ - mountPath: /tmp
+ name: tmp
livenessProbe:
- httpGet:
- path: /healthz
- port: appservice
- scheme: HTTP
- initialDelaySeconds: 15
- periodSeconds: 10
+ httpGet:
+ path: /healthz
+ port: appservice
+ scheme: HTTP
+ initialDelaySeconds: 15
+ periodSeconds: 10
startupProbe:
- httpGet:
- path: /healthz
- port: appservice
- initialDelaySeconds: 15
- failureThreshold: 30
- periodSeconds: 10
- # - name: draupnir4all-web
- # image: ghcr.io/mtrnord/draupnir4all-web:latest
- # imagePullPolicy: Always
- # env:
- # - name: SESSION_SECRET
- # valueFrom:
- # secretKeyRef:
- # name: draupnir4all-web
- # key: session-secret
- # - name: D4ALL_INSTANCE_ADDRESS
- # value: "http://localhost:9001"
- # resources:
- # limits: {}
- # requests:
- # memory: "344Mi"
- # cpu: "252m"
- # securityContext:
- # runAsUser: 1000
- # runAsGroup: 1000
- # readOnlyRootFilesystem: true
- # ports:
- # - containerPort: 3000
- # name: web
- # protocol: TCP
- # volumeMounts:
- # - mountPath: /tmp
- # name: tmp
- # livenessProbe:
- # httpGet:
- # path: /
- # port: web
- # scheme: HTTP
- # initialDelaySeconds: 15
- # periodSeconds: 10
- # startupProbe:
- # httpGet:
- # path: /
- # port: web
- # initialDelaySeconds: 15
- # failureThreshold: 30
- # periodSeconds: 10
+ httpGet:
+ path: /healthz
+ port: appservice
+ initialDelaySeconds: 15
+ failureThreshold: 30
+ periodSeconds: 10
+ # - name: draupnir4all-web
+ # image: ghcr.io/mtrnord/draupnir4all-web:latest
+ # imagePullPolicy: Always
+ # env:
+ # - name: SESSION_SECRET
+ # valueFrom:
+ # secretKeyRef:
+ # name: draupnir4all-web
+ # key: session-secret
+ # - name: D4ALL_INSTANCE_ADDRESS
+ # value: "http://localhost:9001"
+ # resources:
+ # limits: {}
+ # requests:
+ # memory: "344Mi"
+ # cpu: "252m"
+ # securityContext:
+ # runAsUser: 1000
+ # runAsGroup: 1000
+ # readOnlyRootFilesystem: true
+ # ports:
+ # - containerPort: 3000
+ # name: web
+ # protocol: TCP
+ # volumeMounts:
+ # - mountPath: /tmp
+ # name: tmp
+ # livenessProbe:
+ # httpGet:
+ # path: /
+ # port: web
+ # scheme: HTTP
+ # initialDelaySeconds: 15
+ # periodSeconds: 10
+ # startupProbe:
+ # httpGet:
+ # path: /
+ # port: web
+ # initialDelaySeconds: 15
+ # failureThreshold: 30
+ # periodSeconds: 10
volumes:
- name: configs
secret:
- secretName: draupnir-appservice
+ secretName: draupnir-appservice
- name: storage
persistentVolumeClaim:
- claimName: d4all-persistent-storage
+ claimName: d4all-persistent-storage
- name: tmp
emptyDir:
- sizeLimit: 2048Mi
+ sizeLimit: 2048Mi
diff --git a/apps/talos_cluster/envoy-gateway/gateway_settings.yaml b/apps/talos_cluster/envoy-gateway/gateway_settings.yaml
@@ -175,6 +175,18 @@ spec:
certificateRefs:
- kind: Secret
name: vault.midnightthoughts.space-tls
+ - name: https-midnightthoughts-budget
+ protocol: HTTPS
+ hostname: "budget.midnightthoughts.space"
+ port: 443
+ allowedRoutes:
+ namespaces:
+ from: "All"
+ tls:
+ mode: Terminate
+ certificateRefs:
+ - kind: Secret
+ name: budget.midnightthoughts.space-tls
# - name: https-docuseal-midnightthoughts
# protocol: HTTPS
# hostname: "docuseal.midnightthoughts.space"
@@ -247,18 +259,6 @@ spec:
# certificateRefs:
# - kind: Secret
# name: webhook.status.midnightthoughts.space-tls
- # - name: https-midnightthoughts-budget
- # protocol: HTTPS
- # hostname: "budget.midnightthoughts.space"
- # port: 443
- # allowedRoutes:
- # namespaces:
- # from: "All"
- # tls:
- # mode: Terminate
- # certificateRefs:
- # - kind: Secret
- # name: budget.midnightthoughts.space-tls
# - name: https-midnightthoughts-bugzilla
# protocol: HTTPS
# hostname: "bugzilla.midnightthoughts.space"