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