++ use wb superset jwt k8s secret
This commit is contained in:
parent
1827903c41
commit
e9c582800e
@ -101,7 +101,7 @@ Module Federation) конфигурируется отдельно на этап
|
|||||||
| `JWT_PUBLIC_KEY` | string | — | Публичный RSA-ключ проверки |
|
| `JWT_PUBLIC_KEY` | string | — | Публичный RSA-ключ проверки |
|
||||||
| `JWT_KID` | string | `None` | `kid` в заголовке токена (используется для межсервисных вызовов) |
|
| `JWT_KID` | string | `None` | `kid` в заголовке токена (используется для межсервисных вызовов) |
|
||||||
| `DJANGO_JWT_SECRET` | string | `Froom too much love of living` | Легаси-секрет |
|
| `DJANGO_JWT_SECRET` | string | `Froom too much love of living` | Легаси-секрет |
|
||||||
| `SERVER_SUPERSET_JWT_SECRET` | string | `""` | hmac-секрет для embedded superset guest token. В контуре wb берётся из vault `secrets/data/vault/apps/superset`, ключ `JWT_SECRET`, через роль `django-superset` |
|
| `SERVER_SUPERSET_JWT_SECRET` | string | `""` | hmac-секрет для embedded superset guest token. В контуре wb берётся из k8s-секрета `superset-jwt-secret`, ключ `jwt_secret` |
|
||||||
|
|
||||||
### Celery (`CELERY_*`)
|
### Celery (`CELERY_*`)
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ Module Federation) конфигурируется отдельно на этап
|
|||||||
| `django-kafka` | `secrets/data/kafka/apps/django` | `KAFKA_BOOTSTRAP_SERVERS/SECURITY_PROTOCOL/SASL_*` |
|
| `django-kafka` | `secrets/data/kafka/apps/django` | `KAFKA_BOOTSTRAP_SERVERS/SECURITY_PROTOCOL/SASL_*` |
|
||||||
| `django-jwt-private` / `django-jwt-public` | `secrets/data/vault/common/rsa_keys` | `JWT_PRIVATE_KEY` / `JWT_PUBLIC_KEY` |
|
| `django-jwt-private` / `django-jwt-public` | `secrets/data/vault/common/rsa_keys` | `JWT_PRIVATE_KEY` / `JWT_PUBLIC_KEY` |
|
||||||
| `django-common` | `secrets/data/vault/common/django_auth` | `ZITADEL_ACCESS_TOKEN` |
|
| `django-common` | `secrets/data/vault/common/django_auth` | `ZITADEL_ACCESS_TOKEN` |
|
||||||
| `server_superset_jwt_secret` | `secrets/data/vault/apps/superset` | `SERVER_SUPERSET_JWT_SECRET` для `/api/analytics/widgets/<id>/superset_guest_token/` |
|
| `superset-jwt-secret` | k8s-секрет в неймспейсе `django` | `SERVER_SUPERSET_JWT_SECRET` для `/api/analytics/widgets/<id>/superset_guest_token/` |
|
||||||
|
|
||||||
Контейнер экспортирует эти файлы в окружение до запуска (`set -a; . /vault/secrets/...`).
|
Контейнер экспортирует эти файлы в окружение до запуска (`set -a; . /vault/secrets/...`).
|
||||||
Кроме того, `production.py` из ConfigMap содержит функцию `_load_env_file`, которая
|
Кроме того, `production.py` из ConfigMap содержит функцию `_load_env_file`, которая
|
||||||
@ -309,8 +309,9 @@ Module Federation) конфигурируется отдельно на этап
|
|||||||
Для wb superset guest token не использует сервисную учётку Guest Token API: backend
|
Для wb superset guest token не использует сервисную учётку Guest Token API: backend
|
||||||
формирует jwt локально и подписывает его `SERVER_SUPERSET_JWT_SECRET`, а superset
|
формирует jwt локально и подписывает его `SERVER_SUPERSET_JWT_SECRET`, а superset
|
||||||
проверяет тем же значением через `GUEST_TOKEN_JWT_SECRET = os.getenv("JWT_SECRET")`.
|
проверяет тем же значением через `GUEST_TOKEN_JWT_SECRET = os.getenv("JWT_SECRET")`.
|
||||||
Оба значения должны приходить из одного vault-пути `secrets/data/vault/apps/superset`;
|
Оба значения должны совпадать: `superset/jwt-secret` используется superset как
|
||||||
разовый k8s-secret в `django` для этого кейса не используется.
|
`JWT_SECRET`, а `django/superset-jwt-secret` используется backend как
|
||||||
|
`SERVER_SUPERSET_JWT_SECRET`.
|
||||||
|
|
||||||
Остальные (несекретные) переменные задаются в блоке `env` контейнеров
|
Остальные (несекретные) переменные задаются в блоке `env` контейнеров
|
||||||
`backend`/`celery` (`SERVER_*`, `WORKFLOWS_*`, `BIMV2_*`, `MEASUREMENTS_*`,
|
`backend`/`celery` (`SERVER_*`, `WORKFLOWS_*`, `BIMV2_*`, `MEASUREMENTS_*`,
|
||||||
|
|||||||
@ -26,30 +26,6 @@ spec:
|
|||||||
remediation:
|
remediation:
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|
||||||
postRenderers:
|
|
||||||
- kustomize:
|
|
||||||
patches:
|
|
||||||
- target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: Deployment
|
|
||||||
name: backend
|
|
||||||
patch: |-
|
|
||||||
- op: add
|
|
||||||
path: /spec/template/metadata/annotations
|
|
||||||
value:
|
|
||||||
vault.hashicorp.com/agent-inject: "true"
|
|
||||||
vault.hashicorp.com/agent-init-first: "true"
|
|
||||||
vault.hashicorp.com/agent-pre-populate-only: "true"
|
|
||||||
vault.hashicorp.com/auth-path: "auth/kubernetes"
|
|
||||||
vault.hashicorp.com/role: "django-superset"
|
|
||||||
vault.hashicorp.com/agent-inject-secret-server-superset-jwt-secret: "secrets/data/vault/apps/superset"
|
|
||||||
vault.hashicorp.com/agent-inject-file-server-superset-jwt-secret: "server_superset_jwt_secret"
|
|
||||||
vault.hashicorp.com/agent-inject-template-server-superset-jwt-secret: |
|
|
||||||
{{- with secret "secrets/data/vault/apps/superset" -}}
|
|
||||||
{{ index .Data.data "JWT_SECRET" }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
values:
|
values:
|
||||||
global:
|
global:
|
||||||
env: _default
|
env: _default
|
||||||
@ -76,14 +52,6 @@ spec:
|
|||||||
port:
|
port:
|
||||||
_default: 8000
|
_default: 8000
|
||||||
|
|
||||||
command:
|
|
||||||
_default:
|
|
||||||
- /bin/sh
|
|
||||||
- -ec
|
|
||||||
- |
|
|
||||||
export SERVER_SUPERSET_JWT_SECRET="$(cat /vault/secrets/server_superset_jwt_secret)"
|
|
||||||
exec bash /opt/sarex/entrypoint.sh
|
|
||||||
|
|
||||||
probes:
|
probes:
|
||||||
liveness:
|
liveness:
|
||||||
enabled: false
|
enabled: false
|
||||||
@ -350,6 +318,11 @@ spec:
|
|||||||
_default: "False"
|
_default: "False"
|
||||||
|
|
||||||
secretEnvs:
|
secretEnvs:
|
||||||
|
- name: SERVER_SUPERSET_JWT_SECRET
|
||||||
|
secretName:
|
||||||
|
_default: "superset-jwt-secret"
|
||||||
|
secretKey: "jwt_secret"
|
||||||
|
|
||||||
- name: ZITADEL_ACCESS_TOKEN
|
- name: ZITADEL_ACCESS_TOKEN
|
||||||
secretName:
|
secretName:
|
||||||
_default: "zitadel-secret"
|
_default: "zitadel-secret"
|
||||||
|
|||||||
@ -9,7 +9,7 @@ spec:
|
|||||||
values:
|
values:
|
||||||
fullnameOverride: superset
|
fullnameOverride: superset
|
||||||
vault:
|
vault:
|
||||||
enabled: true
|
enabled: false
|
||||||
stronghold:
|
stronghold:
|
||||||
enabled: false
|
enabled: false
|
||||||
extraEnv:
|
extraEnv:
|
||||||
@ -19,6 +19,11 @@ spec:
|
|||||||
extraEnvRaw:
|
extraEnvRaw:
|
||||||
- name: ENABLE_PROXY_FIX
|
- name: ENABLE_PROXY_FIX
|
||||||
value: "true"
|
value: "true"
|
||||||
|
- name: JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: jwt-secret
|
||||||
|
key: jwt_secret
|
||||||
supersetNode:
|
supersetNode:
|
||||||
connections:
|
connections:
|
||||||
redis_host: superset-redis-headless
|
redis_host: superset-redis-headless
|
||||||
|
|||||||
@ -8,7 +8,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: superset-prod
|
chart: superset-prod
|
||||||
version: "0.13.4"
|
version: "0.13.3"
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: yc-oci-charts
|
name: yc-oci-charts
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user