fix: включил legacy flow по бимам

This commit is contained in:
diamondrigido 2026-11-05 15:18:54 +02:00
parent d318ea3f16
commit 2f995fe1fa
70 changed files with 2686 additions and 34 deletions

View File

@ -226,7 +226,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -226,7 +226,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -225,7 +225,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -225,7 +225,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -206,7 +206,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -206,7 +206,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -171,7 +171,7 @@ Postgres — тот же хост/БД, что у `documentations-api` конт
| `CDE_API_USERS_TIMEOUT_MS` | `10000` | api |
| `CDE_API_USE_BIMV1_FOR_BIMV2` | `true` | api, process-workflows, copy, move |
| `CDE_API_USE_BIM_INSERTER` | `true` | api, process-workflows, copy, move |
| `CDE_API_USE_LEGACY_BIM_FLOW` | `0` | api, process-workflows, copy, move |
| `CDE_API_USE_LEGACY_BIM_FLOW` | `true` | api, process-workflows, copy, move |
| `CDE_API_WORKFLOWS_CONFIG_FILEPATH` | `/etc/app/tasks_execution_config.json` | все |
| `CDE_API_WORKFLOWS_IMAGES_VERSION` | `master` | api, process-workflows, copy, move |
| `CDE_API_WORKFLOW_BASE_URL` | `http://backend-svc.processing.svc.cluster.local:80` | api, process-workflows, copy, move |

View File

@ -51,7 +51,7 @@ CDE_API_LAST_MASTER_BIM=36311
CDE_API_LAST_SLAVE_1_BIM=94015
CDE_API_LAST_SLAVE_2_BIM=135771
CDE_API_USE_BIM_INSERTER=true
CDE_API_USE_LEGACY_BIM_FLOW=0
CDE_API_USE_LEGACY_BIM_FLOW=true
CDE_API_DATABASE_MAX_CONN_LIFETIME=30m
CDE_API_DATABASE_MAX_CONN_IDLE_TIME=10m
CDE_API_DATABASE_HEALTH_CHECK_PERIOD=30s

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/brusnika-prod и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,77 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: regcred
containers:
- name: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill:prod_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "postgres-service"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,77 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: regcred
containers:
- name: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer:prod_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "worker-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "postgres-service"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,119 @@
---
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"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: regcred
containers:
- name: workspace-recovery
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-workspace-recovery:prod_c9bc246
imagePullPolicy: IfNotPresent
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://workspaces-service.workspaces.svc.cluster.local:8000"
- 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"
- name: CDE_API_DATABASE__HOST
value: "postgres-service"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/brusnika-stage и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,77 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: regcred
containers:
- name: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill:stage_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "192.168.2.45"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,77 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: regcred
containers:
- name: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer:stage_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "worker-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "192.168.2.45"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,119 @@
---
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"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: regcred
containers:
- name: workspace-recovery
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-workspace-recovery:stage_c9bc246
imagePullPolicy: IfNotPresent
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://workspaces-service.workspaces.svc.cluster.local:8000"
- 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:stage: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"
- name: CDE_API_DATABASE__HOST
value: "192.168.2.45"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/d8-ugmk-prod и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,84 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
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: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill: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: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,84 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
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: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer: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-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,126 @@
---
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"

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/sarex-contour и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,84 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
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: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill: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: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,84 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
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: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer: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-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,126 @@
---
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"

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/ugok и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,77 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: dockerhub
containers:
- name: resource-id-backfill
image: 10.4.10.187:80/library/cde-api-resource-id-backfill:ugok_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "postgres-service"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations_db"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: documentations-postgresql-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: documentations-postgresql-secret
key: password

View File

@ -0,0 +1,77 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: dockerhub
containers:
- name: sizer
image: 10.4.10.187:80/library/cde-api-worker-sizer:ugok_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "worker-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "postgres-service"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations_db"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: documentations-postgresql-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: documentations-postgresql-secret
key: password

View File

@ -0,0 +1,119 @@
---
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"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: dockerhub
containers:
- name: workspace-recovery
image: 10.4.10.187:80/library/cde-api-worker-workspace-recovery:ugok_c9bc246
imagePullPolicy: IfNotPresent
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:8000"
- 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"
- name: CDE_API_DATABASE__HOST
value: "postgres-service"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations_db"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: documentations-postgresql-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: documentations-postgresql-secret
key: password

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/uralkal и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,84 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
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: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill: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: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,84 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
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: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer: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-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,126 @@
---
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"

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/vad и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,84 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
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: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill: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: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,84 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
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: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer: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-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,126 @@
---
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"

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/wb и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,77 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: dockerhub
containers:
- name: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill:prod_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "sarex-vpsql-01.xc.wb.ru"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations_db"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,77 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
annotations:
proxy.istio.io/config: '{"terminationDrainDuration":"0s"}'
sidecar.istio.io/inject: "true"
sidecar.istio.io/nativeSidecar: "true"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: dockerhub
containers:
- name: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer:prod_c9bc246
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
env:
- name: CDE_API_APP_NAME
value: "worker-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"
- name: CDE_API_DATABASE__HOST
value: "sarex-vpsql-01.xc.wb.ru"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations_db"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,119 @@
---
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"
spec:
restartPolicy: Never
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: dockerhub
containers:
- name: workspace-recovery
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-workspace-recovery:prod_c9bc246
imagePullPolicy: IfNotPresent
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://workspaces-service.workspaces.svc.cluster.local:8000"
- 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"
- name: CDE_API_DATABASE__HOST
value: "sarex-vpsql-01.xc.wb.ru"
- name: CDE_API_DATABASE__PORT
value: "5432"
- name: CDE_API_DATABASE__NAME
value: "documentations_db"
- name: CDE_API_DATABASE__USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
- name: CDE_API_DATABASE__PASSWORD
valueFrom:
secretKeyRef:
name: postgres-secret
key: password

View File

@ -0,0 +1,10 @@
---
# НЕ подключён к apps/documentations/yc-k8s-test и clusters/*: подключать отдельно, после выката cde-api
# (см. ../README.md).
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: documentations
resources:
- workspace-recovery.yaml
- resource-id-backfill.yaml
- sizer.yaml

View File

@ -0,0 +1,84 @@
---
# Одноразовая задача: CronJob создан в suspend, запускать вручную: kubectl -n documentations create job --from=cronjob/cde-api-resource-id-backfill <имя>
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-resource-id-backfill
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
timeZone: Etc/UTC
suspend: true
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 21600
template:
metadata:
labels:
app.kubernetes.io/name: cde-api-resource-id-backfill
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: resource-id-backfill
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-resource-id-backfill: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: "resource-id-backfill"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_RESOURCE_BACKFILL_BATCH_SIZE
value: "500"
- name: CDE_API_RESOURCE_BACKFILL_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE_POOL_SIZE
value: "2"
- name: CDE_API_RESOURCES_BASE_URL
value: "http://iams.iam.svc.cluster.local:8080"
- name: CDE_API_RESOURCES_TIMEOUT
value: "10s"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,84 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: cde-api-sizer
namespace: documentations
labels:
app.kubernetes.io/name: cde-api-sizer
app.kubernetes.io/part-of: cde-api
spec:
schedule: "0 0 * * *"
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-sizer
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: sizer
image: cr.yandex/crp3ccidau046kdj8g9q/cde-api-worker-sizer: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-sizer"
- name: CDE_API_LOG_LEVEL
value: "info"
- name: CDE_API_OBSERVABILITY_ENABLE
value: "false"
- name: CDE_API_SIZER_BATCH_SIZE
value: "10000"
- name: CDE_API_SIZER_NUM_WORKERS
value: "10"
- name: CDE_API_SIZER_JOB_HALF_PERIOD
value: "12h"
- name: CDE_API_SIZER_RUN_TIMEOUT
value: "6h"
- name: CDE_API_DATABASE__SSLMODE
value: "disable"
- name: CDE_API_DATABASE__INSECURE_SKIP_TLS
value: "false"

View File

@ -0,0 +1,126 @@
---
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"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -149,7 +149,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -206,7 +206,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -149,7 +149,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -164,7 +164,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://backend-api-svc.documentations.svc.cluster.local:80"

View File

@ -149,7 +149,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -209,7 +209,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DOCUMENTATION_V2_URL
value:
_default: "http://documentations-api.documentations.svc.cluster.local:8080"

View File

@ -206,7 +206,7 @@ spec:
_default: "true"
- name: CDE_API_USE_LEGACY_BIM_FLOW
value:
_default: "0"
_default: "true"
- name: CDE_API_DATABASE_MAX_CONN_LIFETIME
value:
_default: "30m"