186 lines
5.3 KiB
YAML
186 lines
5.3 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: jarca-ledger
|
|
labels:
|
|
app.kubernetes.io/name: jarca-ledger
|
|
spec:
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: jarca-ledger
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: jarca-ledger
|
|
spec:
|
|
automountServiceAccountToken: false
|
|
enableServiceLinks: false
|
|
terminationGracePeriodSeconds: 30
|
|
imagePullSecrets:
|
|
- name: jarca-ledger-registry
|
|
nodeSelector:
|
|
kubernetes.io/os: linux
|
|
kubernetes.io/arch: arm64
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
fsGroup: 1000
|
|
fsGroupChangePolicy: OnRootMismatch
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
initContainers:
|
|
- name: init-db
|
|
image: gitea.jsfamily.quest/jsfamily/jarca-ledger-mcp:v0.1.2
|
|
imagePullPolicy: IfNotPresent
|
|
command:
|
|
- python
|
|
- -c
|
|
- >-
|
|
from jarca_ledger_mcp.service import health_check;
|
|
result = health_check();
|
|
assert result["success"], result
|
|
env:
|
|
- name: JARCA_LEDGER_DB_PATH
|
|
value: /data/ledger.sqlite3
|
|
- name: HOME
|
|
value: /tmp
|
|
- name: TMPDIR
|
|
value: /tmp
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: /data
|
|
- name: init-tmp
|
|
mountPath: /tmp
|
|
containers:
|
|
- name: mcp
|
|
image: gitea.jsfamily.quest/jsfamily/jarca-ledger-mcp:v0.1.2
|
|
imagePullPolicy: IfNotPresent
|
|
env:
|
|
- name: JARCA_LEDGER_DB_PATH
|
|
value: /data/ledger.sqlite3
|
|
- name: HOME
|
|
value: /tmp
|
|
- name: TMPDIR
|
|
value: /tmp
|
|
ports:
|
|
- name: mcp
|
|
containerPort: 8000
|
|
protocol: TCP
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
startupProbe:
|
|
tcpSocket:
|
|
port: mcp
|
|
periodSeconds: 5
|
|
timeoutSeconds: 2
|
|
failureThreshold: 24
|
|
readinessProbe:
|
|
tcpSocket:
|
|
port: mcp
|
|
periodSeconds: 10
|
|
timeoutSeconds: 2
|
|
failureThreshold: 3
|
|
livenessProbe:
|
|
tcpSocket:
|
|
port: mcp
|
|
periodSeconds: 20
|
|
timeoutSeconds: 2
|
|
failureThreshold: 3
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: /data
|
|
- name: mcp-tmp
|
|
mountPath: /tmp
|
|
- name: dashboard
|
|
image: gitea.jsfamily.quest/jsfamily/jarca-ledger-mcp:v0.1.2
|
|
imagePullPolicy: IfNotPresent
|
|
command:
|
|
- uvicorn
|
|
- dashboard.server:app
|
|
- --host
|
|
- 0.0.0.0
|
|
- --port
|
|
- "8501"
|
|
- --proxy-headers
|
|
env:
|
|
- name: JARCA_LEDGER_DB_PATH
|
|
value: /data/ledger.sqlite3
|
|
- name: HOME
|
|
value: /tmp
|
|
- name: TMPDIR
|
|
value: /tmp
|
|
- name: JARCA_DASHBOARD_ADMIN_ID
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: jarca-ledger-dashboard-auth
|
|
key: admin-id
|
|
- name: JARCA_DASHBOARD_ADMIN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: jarca-ledger-dashboard-auth
|
|
key: admin-password
|
|
- name: JARCA_DASHBOARD_SIGNING_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: jarca-ledger-dashboard-auth
|
|
key: signing-secret
|
|
- name: FORWARDED_ALLOW_IPS
|
|
value: 127.0.0.1
|
|
ports:
|
|
- name: dashboard
|
|
containerPort: 8501
|
|
protocol: TCP
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
startupProbe:
|
|
httpGet:
|
|
path: /_stcore/health
|
|
port: dashboard
|
|
periodSeconds: 5
|
|
timeoutSeconds: 2
|
|
failureThreshold: 24
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /_stcore/health
|
|
port: dashboard
|
|
periodSeconds: 10
|
|
timeoutSeconds: 2
|
|
failureThreshold: 3
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /_stcore/health
|
|
port: dashboard
|
|
periodSeconds: 20
|
|
timeoutSeconds: 2
|
|
failureThreshold: 3
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: /data
|
|
- name: dashboard-tmp
|
|
mountPath: /tmp
|
|
volumes:
|
|
- name: data
|
|
persistentVolumeClaim:
|
|
claimName: jarca-ledger-data
|
|
- name: init-tmp
|
|
emptyDir: {}
|
|
- name: mcp-tmp
|
|
emptyDir: {}
|
|
- name: dashboard-tmp
|
|
emptyDir: {}
|