317 lines
11 KiB
Smarty
317 lines
11 KiB
Smarty
{{- define "envs_all" }}
|
|
# Приложение
|
|
- name: INSTANCE_NAME
|
|
value: {{ .Values.app.instanceName | quote }}
|
|
- name: DEFAULT_TENANT_HOSTNAME
|
|
value: {{ .Values.app.defaultTenantHostname | quote }}
|
|
- name: APP_ENV
|
|
value: "prod"
|
|
- name: APP_PORT
|
|
value: "80"
|
|
- name: YII_DEBUG
|
|
value: {{ .Values.app.debug | quote }}
|
|
- name: YII_TRACE_LEVEL
|
|
value: "0"
|
|
- name: AUTH_HOST
|
|
value: {{ .Values.app.authHost | quote }}
|
|
- name: SINGLE_TENANT
|
|
value: {{ .Values.app.singleTenant | quote }}
|
|
- name: FORCE_HTTPS
|
|
value: {{ .Values.app.forceHttps | quote }}
|
|
- name: ENABLE_FRONTEND
|
|
value: {{ .Values.app.front2 | quote }}
|
|
- name: LAUNCHPAD_TOPICS
|
|
value: {{ .Values.app.launchpad.topics | quote }}
|
|
- name: SMS_SENDER_NAME
|
|
value: {{ .Values.app.sms.senderName | quote }}
|
|
- name: IFRAME_FULL_ACCESS
|
|
value: {{ .Values.app.security.iframeFullAccess | quote }}
|
|
- name: LDAPTLS_REQCERT
|
|
value: "never"
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "APP_COOKIE_VALIDATION_KEY" "key" "cookie-validation-key") | nindent 0 }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "APP_ENCRYPTION_KEY" "key" "encryption-key") | nindent 0 }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "SERVICES_INTERNAL_SECRET" "key" "services-internal-secret") | nindent 0 }}
|
|
|
|
# Своя политика конфиденциальности
|
|
- name: ALLOW_CUSTOM_POLICY_URLS
|
|
value: {{ .Values.app.customPolicy.enabled | quote }}
|
|
{{- if .Values.app.customPolicy.enabled }}
|
|
- name: CUSTOM_PRIVACY_POLICY_URL
|
|
value: {{ .Values.app.customPolicy.privacyUrl | default "https://hrbox.io/policy" | quote }}
|
|
- name: CUSTOM_TERMS_URL
|
|
value: {{ .Values.app.customPolicy.termsUrl | default "https://hrbox.io/terms" | quote }}
|
|
{{- else }}
|
|
- name: CUSTOM_PRIVACY_POLICY_URL
|
|
value: ""
|
|
- name: CUSTOM_TERMS_URL
|
|
value: ""
|
|
{{- end }}
|
|
|
|
# PostgreSQL
|
|
- name: POSTGRES_VHOST
|
|
value: {{ .Values.app.postgres.host | quote }}
|
|
- name: POSTGRES_PORT
|
|
value: {{ .Values.app.postgres.port | quote }}
|
|
- name: POSTGRES_DB
|
|
value: {{ .Values.app.postgres.database | quote }}
|
|
- name: POSTGRES_USER
|
|
value: {{ .Values.app.postgres.user | quote }}
|
|
- name: POSTGRES_CITUS
|
|
value: {{ .Values.app.postgres.citus | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "POSTGRES_PASSWORD" "key" "postgres-password") | nindent 0 }}
|
|
|
|
# Redis / Dragonfly
|
|
- name: REDIS_HOST
|
|
value: {{ include "hrbox.redisHost" . | quote }}
|
|
- name: REDIS_PORT
|
|
value: {{ .Values.app.redis.port | quote }}
|
|
- name: REDIS_CONNECTION
|
|
value: {{ printf "tcp://%s:%s" (include "hrbox.redisHost" .) (.Values.app.redis.port | toString) | quote }}
|
|
|
|
# NATS
|
|
- name: BROKER
|
|
value: "nats"
|
|
- name: NATS_URL
|
|
value: {{ include "hrbox.natsUrl" . | quote }}
|
|
- name: NATS_STREAM_REPLICAS
|
|
{{- if and .Values.nats.enabled .Values.nats.cluster.enabled }}
|
|
value: {{ .Values.nats.cluster.replicas | quote }}
|
|
{{- else }}
|
|
value: "1"
|
|
{{- end }}
|
|
|
|
# S3
|
|
- name: S3_ENDPOINT
|
|
value: {{ .Values.app.s3.endpoint | quote }}
|
|
- name: S3_BUCKET
|
|
value: {{ .Values.app.s3.bucket | quote }}
|
|
- name: S3_PREFIX
|
|
value: {{ .Values.app.s3.prefix | quote }}
|
|
- name: S3_REGION
|
|
value: {{ .Values.app.s3.region | quote }}
|
|
- name: S3_VERSION
|
|
value: {{ .Values.app.s3.version | quote }}
|
|
- name: S3_PATH_STYLE
|
|
value: {{ .Values.app.s3.pathStyle | quote }}
|
|
- name: S3_MULTIPART
|
|
value: {{ .Values.app.s3.multipart | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "S3_KEY" "key" "s3-key") | nindent 0 }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "S3_SECRET" "key" "s3-secret") | nindent 0 }}
|
|
|
|
# Почта
|
|
- name: SENDER_ENV
|
|
value: "PROD"
|
|
- name: SENDER_DEV_EMAIL
|
|
value: ""
|
|
- name: SMTP_HOST
|
|
value: {{ .Values.app.smtp.host | quote }}
|
|
- name: SMTP_PORT
|
|
value: {{ .Values.app.smtp.port | quote }}
|
|
- name: SMTP_USERNAME
|
|
value: {{ .Values.app.smtp.user | quote }}
|
|
- name: SMTP_FROM
|
|
value: {{ .Values.app.smtp.from | quote }}
|
|
- name: SMTP_FROM_HOST
|
|
value: {{ .Values.app.smtp.fromHost | quote }}
|
|
- name: SMTP_SECURITY_TYPE
|
|
value: {{ .Values.app.smtp.securityType | quote }}
|
|
- name: SMTP_SSL_ALLOW_SELF_SIGNED
|
|
value: {{ .Values.app.smtp.sslAllowSelfSigned | quote }}
|
|
- name: SMTP_SSL_VERIFY_PEER
|
|
value: {{ .Values.app.smtp.sslVerifyPeer | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "SMTP_PASSWORD" "key" "smtp-password") | nindent 0 }}
|
|
|
|
# Внутренние сервисы
|
|
- name: GEONAMES_URL
|
|
value: {{ include "hrbox.geonamesUrl" . | quote }}
|
|
- name: GOWORKER_URL
|
|
value: {{ include "hrbox.goworkerUrl" . | quote }}
|
|
- name: GOWORKER_PUSH_MIN_INTERVAL
|
|
value: {{ .Values.app.goworker.pushMinInterval | quote }}
|
|
- name: GOWORKER_SENTRY_DSN
|
|
value: {{ .Values.app.sentry.goworkerDsn | quote }}
|
|
- name: KEDOCA_URL
|
|
value: {{ include "hrbox.kedocaUrl" . | quote }}
|
|
- name: TSP_URL
|
|
value: {{ .Values.app.kedoca.tspUrl | quote }}
|
|
- name: APP_INTERNAL_URL
|
|
value: {{ .Values.app.videoConverter.internalUrl | default (printf "http://%s" (include "hrbox.component" (dict "ctx" . "name" "web"))) | quote }}
|
|
- name: CONDUCTOR_TOPIC_CONDUCTOR
|
|
value: "conductor"
|
|
- name: CONDUCTOR_TOPIC_LAUNCHER
|
|
value: "launcher"
|
|
- name: PYTHONUNBUFFERED
|
|
value: "1"
|
|
- name: DOCCONV_MAX_PARALLEL_TASKS
|
|
value: {{ .Values.app.fileProcessor.docconvMaxParallelTasks | quote }}
|
|
|
|
# HRBox Hub
|
|
- name: HUB_URL
|
|
value: {{ .Values.app.hub.url | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "HUB_TOKEN" "key" "hub-token") | nindent 0 }}
|
|
|
|
# Nanabush Player
|
|
{{- include "envs_nanabush_player" . }}
|
|
|
|
# Чат
|
|
- name: CHATBOX_SENTRY_DSN
|
|
value: {{ .Values.app.sentry.chatboxDsn | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "CHATBOX_WRAPPING_KEY" "key" "chatbox-wrapping-key") | nindent 0 }}
|
|
|
|
# Видеозвонки (LiveKit)
|
|
- name: LIVEKIT_URL
|
|
value: {{ .Values.app.livekit.url | quote }}
|
|
- name: LIVEKIT_API_KEY
|
|
value: {{ .Values.app.livekit.apiKey | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "LIVEKIT_API_SECRET" "key" "livekit-api-secret") | nindent 0 }}
|
|
|
|
# AI
|
|
- name: AI_DOCS_INDEX_ENABLED
|
|
value: {{ .Values.app.ai.docsIndexEnabled | quote }}
|
|
- name: AI_SEMANTIC_INDEX_ENABLED
|
|
value: {{ .Values.app.ai.semanticIndexEnabled | quote }}
|
|
- name: AI_SEMANTIC_INDEX_USE_BATCH
|
|
value: {{ .Values.app.ai.semanticIndexUseBatch | quote }}
|
|
- name: YANDEX_CLOUD_AI_FOLDER_ID
|
|
value: {{ .Values.app.ai.yandex.folderId | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "YANDEX_CLOUD_AI_API_KEY" "key" "yandex-ai-api-key") | nindent 0 }}
|
|
|
|
# Внешние интеграции
|
|
- name: TELEGRAM_API_URL
|
|
value: {{ .Values.app.integrations.telegram.apiUrl | quote }}
|
|
- name: AUTH_GOOGLE_ENABLED
|
|
value: {{ .Values.app.integrations.google.enabled | quote }}
|
|
- name: GOOGLE_CLIENT_ID
|
|
value: {{ .Values.app.integrations.google.clientId | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "GOOGLE_CLIENT_SECRET" "key" "google-client-secret") | nindent 0 }}
|
|
- name: YANDEX_CLIENT_ID
|
|
value: {{ .Values.app.yandex.clientId | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "YANDEX_CLIENT_PASSWORD" "key" "yandex-client-password") | nindent 0 }}
|
|
- name: SLACK_APP_CLIENT_ID
|
|
value: {{ .Values.app.slack.clientId | quote }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "SLACK_APP_CLIENT_SECRET" "key" "slack-client-secret") | nindent 0 }}
|
|
{{- include "hrbox.secretEnv" (dict "ctx" . "env" "SLACK_APP_VERIFICATION_TOKEN" "key" "slack-verification-token") | nindent 0 }}
|
|
- name: GLAGOL_PARTNER_ID
|
|
value: {{ .Values.app.integrations.glagol.partnerId | quote }}
|
|
- name: GLAGOL_API_URL
|
|
value: {{ .Values.app.integrations.glagol.apiUrl | quote }}
|
|
|
|
# Sentry
|
|
- name: SENTRY_DSN
|
|
value: {{ .Values.app.sentry.dsn | quote }}
|
|
- name: SENTRY_DSN_LAUNCHPAD
|
|
value: {{ .Values.app.sentry.launchpadDsn | default .Values.app.sentry.dsn | quote }}
|
|
- name: SENTRY_DSN_CONDUCTOR
|
|
value: {{ .Values.app.sentry.conductorDsn | default .Values.app.sentry.dsn | quote }}
|
|
- name: SENTRY_ENVIRONMENT
|
|
value: {{ .Values.app.sentry.environment | quote }}
|
|
- name: SENTRY_RELEASE
|
|
value: {{ .Values.image.hrbox | quote }}
|
|
|
|
# Метаданные пода
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
- name: POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
{{- end }}
|
|
|
|
{{- define "envs_nanabush_player" -}}
|
|
{{- $player := .Values.app.nanabushPlayer }}
|
|
- name: NANABUSH_PLAYER_ENABLED
|
|
value: {{ $player.enabled | quote }}
|
|
{{- if $player.deployment.enabled }}
|
|
- name: NANABUSH_PLAYER_PUBLIC_ORIGIN
|
|
value: {{ include "nanabushPlayer.publicOrigin" . | quote }}
|
|
- name: NANABUSH_PLAYER_AUDIENCE
|
|
value: {{ include "nanabushPlayer.publicOrigin" . | quote }}
|
|
- name: NANABUSH_PLAYER_BASE_PATH
|
|
value: {{ include "nanabushPlayer.basePath" . | quote }}
|
|
- name: NANABUSH_PLAYER_INTERNAL_ORIGIN
|
|
value: {{ include "nanabushPlayer.internalOrigin" . | quote }}
|
|
- name: NANABUSH_PLAYER_ISSUER
|
|
value: {{ include "nanabushPlayer.issuer" . | quote }}
|
|
- name: NANABUSH_PLAYER_CONTRACT_VERSION
|
|
value: {{ $player.contractVersion | quote }}
|
|
- name: NANABUSH_PLAYER_PLAYER_VERSION
|
|
value: {{ include "nanabushPlayer.version" . | quote }}
|
|
- name: NANABUSH_PLAYER_TICKET_TTL_SECONDS
|
|
value: {{ $player.deployment.ticket.ttlSeconds | quote }}
|
|
- name: NANABUSH_PLAYER_SESSION_TTL_SECONDS
|
|
value: {{ $player.deployment.ticket.credentialTtlSeconds | quote }}
|
|
- name: NANABUSH_PLAYER_PACKAGE_CONTENT_MAX_BYTES
|
|
value: {{ $player.deployment.backchannel.packageContentMaxBytes | quote }}
|
|
- name: NANABUSH_PLAYER_SCORM_PACKAGE_MAX_BYTES
|
|
value: {{ $player.deployment.backchannel.scormPackageMaxBytes | quote }}
|
|
{{- with $player.deployment.backchannel.scormPackageMaxFiles }}
|
|
- name: NANABUSH_PLAYER_SCORM_PACKAGE_MAX_FILES
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
- name: NANABUSH_PLAYER_LEGACY_FALLBACK
|
|
value: {{ $player.rollout.legacyFallback | quote }}
|
|
- name: NANABUSH_PLAYER_ALLOWED_CONTENT_TYPES
|
|
value: {{ join "," $player.rollout.allowedContentTypes | quote }}
|
|
- name: NANABUSH_PLAYER_ALLOWED_TENANTS
|
|
value: {{ join "," $player.rollout.allowedTenants | quote }}
|
|
- name: NANABUSH_PLAYER_ROLLOUT_PERCENT
|
|
value: {{ $player.rollout.percent | quote }}
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
{{- define "envs_nanabush_player_signing" -}}
|
|
{{- $cfg := .Values.app.nanabushPlayer.deployment }}
|
|
{{- if $cfg.enabled }}
|
|
- name: NANABUSH_PLAYER_HS256_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "nanabushPlayer.secretName" . | quote }}
|
|
key: {{ required "Нужно имя ключа ticketHs256 в секрете Nanabush Player" $cfg.existingSecret.keys.ticketHs256 | quote }}
|
|
{{- with $cfg.existingSecret.keys.ticketKeys }}
|
|
- name: NANABUSH_PLAYER_TICKET_KEYS
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "nanabushPlayer.secretName" $ | quote }}
|
|
key: {{ . | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
{{- define "envs_kedoca" }}
|
|
- name: ROOT_CA_PASS
|
|
value: {{ .Values.app.kedoca.rootCaPass | quote }}
|
|
- name: KEDO_ENGINE
|
|
value: {{ .Values.app.kedoca.engine | quote }}
|
|
- name: KEDO_ALGORITHM
|
|
value: {{ .Values.app.kedoca.algorithm | quote }}
|
|
- name: KEDO_PKEYOPT
|
|
value: {{ .Values.app.kedoca.pkeyopt | quote }}
|
|
{{- end }}
|
|
|
|
{{- define "envs_tracing" }}
|
|
- name: OTEL_PHP_AUTOLOAD_ENABLED
|
|
value: "true"
|
|
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
|
value: {{ .Values.app.tracing.exporterUrl | quote }}
|
|
- name: OTEL_SERVICE_NAME
|
|
value: "hrbox-app"
|
|
- name: OTEL_TRACES_EXPORTER
|
|
value: "otlp"
|
|
- name: OTEL_EXPORTER_OTLP_PROTOCOL
|
|
value: "http/protobuf"
|
|
- name: OTEL_PROPAGATORS
|
|
value: "baggage,tracecontext"
|
|
- name: OTEL_LOG_LEVEL
|
|
value: "info"
|
|
{{- end }}
|