iac/apps/documentations/cronjobs/uralkal/workspace-recovery.yaml
2026-11-05 15:18:54 +02:00

127 lines
5.1 KiB
YAML

---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-workspace-recovery
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-workspace-recovery
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 */12 * * *"
timeZone: Etc/UTC
suspend: false
concurrencyPolicy: Forbid
startingDeadlineSeconds: 1800
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-workspace-recovery
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
traffic.sidecar.istio.io/excludeOutboundPorts: "8200"
vault.hashicorp.com/agent-init-first: "true"
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/agent-pre-populate-only: "true"
vault.hashicorp.com/auth-path: auth/kubernetes
vault.hashicorp.com/role: documentations
vault.hashicorp.com/agent-inject-secret-cde-api-postgres: secrets/data/apps/documentations/postgres
vault.hashicorp.com/agent-inject-template-cde-api-postgres: |-
{{- with secret "secrets/data/apps/documentations/postgres" -}}
CDE_API_DATABASE__HOST={{ index .Data.data "host" }}
CDE_API_DATABASE__PORT={{ index .Data.data "port" }}
CDE_API_DATABASE__NAME={{ index .Data.data "database" }}
CDE_API_DATABASE__USER={{ index .Data.data "username" }}
CDE_API_DATABASE__PASSWORD={{ index .Data.data "password" }}
{{- end -}}
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
serviceAccountName: documentations-vault
imagePullSecrets:
- name: regcred
containers:
- name: workspace-recovery
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-workspace-recovery:prod_c9bc246
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "-ec"]
args:
- |
set -a
[ -f /vault/secrets/cde-api-postgres ] && . /vault/secrets/cde-api-postgres
set +a
exec /opt/worker
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "worker-workspace-recovery"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_REDIS__HOST
value: "redis"
- name: CDE_API_REDIS__PORT
value: "6379"
- name: CDE_API_REDIS__DB
value: "5"
- name: CDE_API_REDIS__SSL
value: "false"
- name: CDE_API_REDIS__DIAL_TIMEOUT_MS
value: "5000"
- name: CDE_API_REDIS__READ_TIMEOUT_MS
value: "3000"
- name: CDE_API_REDIS__WRITE_TIMEOUT_MS
value: "3000"
- name: CDE_API_REDIS__POOL_SIZE
value: "2"
- name: CDE_API_REDIS__MIN_IDLE_CONNS
value: "0"
- name: CDE_API_WORKSPACE_BASE_URL
value: "http://backend-svc.workspaces.svc.cluster.local:80"
- name: CDE_API_WORKSPACE_TIMEOUT_MS
value: "10000"
- name: CDE_API_WORKSPACE_RETRY_COUNT
value: "0"
- name: CDE_API_WORKSPACE_RECOVERY_CONCURRENCY
value: "1"
- name: CDE_API_WORKSPACE_RECOVERY_CURSOR_KEY
value: "cde-api:production:workspace-recovery:cursor"
- name: CDE_API_WORKSPACE_RECOVERY_BATCH_SIZE
value: "100"
- name: CDE_API_WORKSPACE_RECOVERY_MIN_AGE
value: "1h"
- name: CDE_API_WORKSPACE_RECOVERY_REQUEST_INTERVAL
value: "1s"
- name: CDE_API_WORKSPACE_RECOVERY_BATCH_INTERVAL
value: "5s"
- name: CDE_API_WORKSPACE_RECOVERY_MAX_ERROR_DELAY
value: "1m"
- name: CDE_API_WORKSPACE_RECOVERY_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value: "30m"
- name: CDE_API_DATABASE_MAX_CONN_IDLE_TIME
value: "10m"
- name: CDE_API_DATABASE_HEALTH_CHECK_PERIOD
value: "30s"
- name: CDE_API_DATABASE_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"