--- 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"