apiVersion: apps/v1 kind: Deployment metadata: name: server spec: strategy: type: Recreate selector: matchLabels: app.kubernetes.io/component: server template: metadata: labels: app.kubernetes.io/component: server spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: # Image only supports amd64 - key: kubernetes.io/arch operator: In values: - amd64 containers: - name: sillytavern image: ghcr.io/sillytavern/sillytavern:latest resources: requests: memory: 500Mi cpu: 200m limits: memory: 500Mi cpu: 200m ports: - containerPort: 8000 name: http volumeMounts: - name: sillytavern-extensions mountPath: /home/node/app/public/scripts/extensions/third-party - name: sillytavern-config mountPath: /home/node/app/config - name: sillytavern-user mountPath: /home/node/app/public/user volumes: - name: sillytavern-extensions persistentVolumeClaim: claimName: server-extensions - name: sillytavern-config persistentVolumeClaim: claimName: server-config - name: sillytavern-user persistentVolumeClaim: claimName: server-user --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: server-extensions spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: server-config spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: server-user spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: Service metadata: name: server labels: app.kubernetes.io/component: server spec: selector: app.kubernetes.io/component: server ports: - name: http port: 8000 targetPort: http