ProofedMesh/deploy/verification-service/20-deployment.yaml

99 lines
3 KiB
YAML
Raw Permalink Normal View History

apiVersion: apps/v1
kind: Deployment
metadata:
name: verification-service
namespace: agent-trust
labels:
app.kubernetes.io/name: verification-service
app.kubernetes.io/part-of: proofedmesh
app.kubernetes.io/component: trust-core
spec:
replicas: 2
revisionHistoryLimit: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app.kubernetes.io/name: verification-service
template:
metadata:
labels:
app.kubernetes.io/name: verification-service
app.kubernetes.io/part-of: proofedmesh
app.kubernetes.io/component: trust-core
spec:
serviceAccountName: verification-service
automountServiceAccountToken: false
securityContext:
runAsNonRoot: true
runAsUser: 65532
runAsGroup: 65532
fsGroup: 65532
seccompProfile:
type: RuntimeDefault
containers:
- name: verification-service
image: harbor.basicstack.de/basicstack/verification-service:dev
imagePullPolicy: IfNotPresent
args:
- "-listen=:8084"
- "-backend=memory"
env:
- name: TLOG_URL
value: "http://transparency-log.agent-trust.svc.cluster.local"
# Keyids are the Phase-1 defaults; override via the Secret
# below if a different key rotation lands.
- name: APPROVAL_SIGNER_KEY_ID
value: "trust-api/approval-signer-2026-q4"
- name: TRANSFORM_SIGNER_KEY_ID
value: "trust-api/agent-testagent-transform-2026-q4"
# Public-key material for the DSSE validators. The Secret
# name resolves per environment (see 10-secret-dev.example.yaml
# for the shape).
- name: VERIFICATION_SIGNER_KEYS
valueFrom:
secretKeyRef:
name: verification-service-dev
key: VERIFICATION_SIGNER_KEYS
ports:
- name: http
containerPort: 8084
protocol: TCP
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 2
periodSeconds: 10
failureThreshold: 3
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 10
periodSeconds: 20
failureThreshold: 3
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "1000m"
memory: "512Mi"
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/name: verification-service