# services/hermes/local-image-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: hermes-local-image namespace: hermes labels: app: hermes-local-image spec: replicas: 1 revisionHistoryLimit: 2 strategy: type: Recreate selector: matchLabels: app: hermes-local-image template: metadata: labels: app: hermes-local-image annotations: ai.bstein.dev/model: black-forest-labs/FLUX.2-klein-4B ai.bstein.dev/gpu: titan-24 lease-shared image and Wolf lane ai.bstein.dev/config-rev: "20260811-flux2-klein-image-only" spec: serviceAccountName: hermes-gpu-runtime runtimeClassName: nvidia affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - titan-24 volumes: - name: models persistentVolumeClaim: claimName: hermes-image-models - name: local-image-tmp emptyDir: sizeLimit: 2Gi containers: - name: local-image image: registry.bstein.dev/bstein/hermes-local-image@sha256:316d123cc48509a53fb32c26bfb384a3ed4d934cb334d73faa0840a62e047e65 imagePullPolicy: IfNotPresent ports: - name: local-image containerPort: 9004 env: - name: HERMES_LOCAL_IMAGE_MODEL value: black-forest-labs/FLUX.2-klein-4B - name: HERMES_LOCAL_IMAGE_REVISION value: e7b7dc27f91deacad38e78976d1f2b499d76a294 - name: HERMES_LOCAL_IMAGE_LISTEN_PORT value: "9004" - name: LEASE_NAMESPACE value: hermes - name: LEASE_NAME value: titan-24-gpu-owner - name: LEASE_IDLE_OWNER value: hermes - name: LEASE_IMAGE_OWNER value: hermes-image - name: HF_HOME value: /models/huggingface - name: HOME value: /tmp - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: compute,utility volumeMounts: - name: models mountPath: /models - name: local-image-tmp mountPath: /tmp readinessProbe: httpGet: path: /health port: local-image initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 livenessProbe: httpGet: path: /health port: local-image initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 5 securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL] readOnlyRootFilesystem: true seccompProfile: type: RuntimeDefault resources: requests: cpu: "4" memory: 12Gi nvidia.com/gpu.shared: 1 limits: cpu: "12" memory: 28Gi nvidia.com/gpu.shared: 1