apiVersion: v1
kind: PersistentVolumeClaim
metadata: { name: tigerstrike-runs, namespace: tigerstrike }
spec: { accessModes: ["ReadWriteOnce"], resources: { requests: { storage: 20Gi } } }
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata: { name: tigerstrike-dind-cache, namespace: tigerstrike }
spec: { accessModes: ["ReadWriteOnce"], resources: { requests: { storage: 20Gi } } }
---
apiVersion: apps/v1
kind: Deployment
metadata: { name: tigerstrike, namespace: tigerstrike, labels: { app: tigerstrike } }
spec:
replicas: 1
strategy: { type: Recreate }
selector: { matchLabels: { app: tigerstrike } }
template:
metadata: { labels: { app: tigerstrike } }
spec:
terminationGracePeriodSeconds: 30
containers:
- name: tigerstrike
image: tigergate/tigerstrike:1.0.0
command: ["/usr/local/bin/tigerstrike-service"]
args: ["--port", "8085", "--workers", "2"]
env:
- { name: DOCKER_HOST, value: "tcp://127.0.0.1:2375" } # talk to the DinD sidecar
- { name: TIGERSTRIKE_WORKER_NAME, value: "acme-eks" }
- { name: TIGERSTRIKE_BOOT_TIMEOUT, value: "15m" } # first sandbox pull is ~600 MB
- name: TIGERGATE_API_KEY
valueFrom: { secretKeyRef: { name: tigerstrike-api, key: TIGERGATE_API_KEY } }
ports: [{ containerPort: 8085, name: health }]
startupProbe: { httpGet: { path: /health, port: 8085 }, periodSeconds: 5, failureThreshold: 24 }
livenessProbe: { httpGet: { path: /health, port: 8085 }, periodSeconds: 30, failureThreshold: 6 }
resources: { requests: { cpu: "1", memory: "2Gi" }, limits: { cpu: "2", memory: "4Gi" } }
volumeMounts:
- { name: runs, mountPath: /var/lib/tigerstrike/runs }
- name: dind
image: docker:24-dind
securityContext: { privileged: true }
env: [{ name: DOCKER_TLS_CERTDIR, value: "" }]
args: ["--host=unix:///var/run/docker.sock"]
startupProbe: { tcpSocket: { port: 2375 }, periodSeconds: 5, failureThreshold: 24 }
resources: { requests: { cpu: "1", memory: "2Gi" }, limits: { cpu: "4", memory: "8Gi" } }
volumeMounts:
- { name: dind-storage, mountPath: /var/lib/docker }
- { name: runs, mountPath: /var/lib/tigerstrike/runs } # same path in both containers
volumes:
- { name: runs, persistentVolumeClaim: { claimName: tigerstrike-runs } }
- { name: dind-storage, persistentVolumeClaim: { claimName: tigerstrike-dind-cache } }