From b1e2f7fd2215d6c42e5b2a2a411bdbcc412cb420 Mon Sep 17 00:00:00 2001 From: Sergey Antropov Date: Wed, 12 Nov 2025 20:29:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20Kubernetes=20=D0=BC=D0=B0=D0=BD=D0=B8=D1=84=D0=B5?= =?UTF-8?q?=D1=81=D1=82=20=D1=81=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=BC=D0=B8=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8F=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлена поддержка MAX/VK мессенджера (MAX_ACCESS_TOKEN, MAX_API_VERSION, MAX_ENABLED) - Добавлена переменная TELEGRAM_ENABLED для управления Telegram - Добавлена переменная DEFAULT_MESSENGER для выбора мессенджера по умолчанию - Заменен GROUPS_ADMIN_PASSWORD на API_KEY для авторизации - Обновлен формат groups.json в ConfigMap с поддержкой мессенджеров - Исправлены health check endpoints (оба используют /api/v1/health) - Улучшена структура секретов с комментариями Автор: Сергей Антропов Сайт: https://devops.org.ru --- kubernetes.yaml | 94 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 12 deletions(-) diff --git a/kubernetes.yaml b/kubernetes.yaml index 86d951e..c68bcf1 100644 --- a/kubernetes.yaml +++ b/kubernetes.yaml @@ -11,14 +11,29 @@ metadata: namespace: message-gateway type: Opaque stringData: + # Telegram настройки telegram_bot_token: "" # Установите токен через kubectl create secret или SealedSecret + telegram_enabled: "true" # Включить Telegram (true/false) + # MAX/VK настройки + max_access_token: "" # Access Token для MAX/VK (опционально) + max_api_version: "5.131" # Версия API MAX/VK + max_enabled: "false" # Включить MAX/VK (true/false) + # Общие настройки мессенджеров + default_messenger: "telegram" # Мессенджер по умолчанию (telegram/max) + # API ключ для авторизации + api_key: "" # API ключ для авторизации (обязательно для управления группами) + # Prometheus Pushgateway настройки pushgateway_url: "" # URL Pushgateway (опционально) pushgateway_job: "MessageGateway" + # Grafana настройки grafana_url: "" # URL Grafana (опционально) + # Zabbix настройки zabbix_url: "" # URL Zabbix (опционально) + # Kubernetes кластер настройки k8s_cluster_grafana_subdomain: "" # Поддомен Grafana для K8S кластеров (опционально) k8s_cluster_prometheus_subdomain: "" # Поддомен Prometheus для K8S кластеров (опционально) k8s_cluster_alertmanager_subdomain: "" # Поддомен AlertManager для K8S кластеров (опционально) + # OpenTelemetry настройки otel_enabled: "false" # Включить OpenTelemetry (true/false) otel_service_name: "monitoring-message-gateway" otel_exporter_otlp_endpoint: "" # Endpoint OpenTelemetry (опционально) @@ -26,13 +41,13 @@ stringData: otel_traces_exporter: "otlp_proto_http" otel_exporter_otlp_insecure: "true" otel_python_log_correlation: "false" - groups_admin_password: "" # Пароль для управления группами (опционально) + # Jira настройки jira_enabled: "false" # Включить интеграцию с Jira (true/false) jira_url: "" # URL Jira (опционально) jira_email: "" # Email пользователя Jira (опционально) jira_api_token: "" # API Token Jira (опционально) jira_project_key: "" # Ключ проекта Jira (опционально) - jira_default_assignee: "" # Email исполнителя по умолчанию (опционально) + jira_default_assignee: "" # Email или accountId исполнителя по умолчанию (опционально) jira_default_issue_type: "Bug" # Тип задачи по умолчанию jira_create_on_alert: "true" # Создавать тикет при алерте (true/false) jira_create_on_resolved: "false" # Создавать тикет при resolved (true/false) @@ -72,23 +87,66 @@ spec: ports: - containerPort: 8000 env: + # Telegram настройки - name: TELEGRAM_BOT_TOKEN valueFrom: secretKeyRef: name: message-gateway-secret key: telegram_bot_token + - name: TELEGRAM_ENABLED + valueFrom: + secretKeyRef: + name: message-gateway-secret + key: telegram_enabled + optional: true + # MAX/VK настройки + - name: MAX_ACCESS_TOKEN + valueFrom: + secretKeyRef: + name: message-gateway-secret + key: max_access_token + optional: true + - name: MAX_API_VERSION + valueFrom: + secretKeyRef: + name: message-gateway-secret + key: max_api_version + optional: true + - name: MAX_ENABLED + valueFrom: + secretKeyRef: + name: message-gateway-secret + key: max_enabled + optional: true + # Общие настройки мессенджеров + - name: DEFAULT_MESSENGER + valueFrom: + secretKeyRef: + name: message-gateway-secret + key: default_messenger + optional: true + # API ключ для авторизации + - name: API_KEY + valueFrom: + secretKeyRef: + name: message-gateway-secret + key: api_key + optional: true + # Grafana настройки - name: GRAFANA_URL valueFrom: secretKeyRef: name: message-gateway-secret key: grafana_url optional: true + # Zabbix настройки - name: ZABBIX_URL valueFrom: secretKeyRef: name: message-gateway-secret key: zabbix_url optional: true + # Kubernetes кластер настройки - name: K8S_CLUSTER_GRAFANA_SUBDOMAIN valueFrom: secretKeyRef: @@ -107,6 +165,7 @@ spec: name: message-gateway-secret key: k8s_cluster_alertmanager_subdomain optional: true + # Prometheus Pushgateway настройки - name: PUSHGATEWAY_URL valueFrom: secretKeyRef: @@ -119,6 +178,7 @@ spec: name: message-gateway-secret key: pushgateway_job optional: true + # OpenTelemetry настройки - name: OTEL_ENABLED valueFrom: secretKeyRef: @@ -161,12 +221,7 @@ spec: name: message-gateway-secret key: otel_python_log_correlation optional: true - - name: GROUPS_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: message-gateway-secret - key: groups_admin_password - optional: true + # Jira настройки - name: JIRA_ENABLED valueFrom: secretKeyRef: @@ -234,7 +289,7 @@ spec: # Readiness проба readinessProbe: httpGet: - path: /api/v1/health/ready + path: /api/v1/health port: 8000 initialDelaySeconds: 10 periodSeconds: 10 @@ -274,9 +329,24 @@ metadata: data: groups.json: | { - "kubernetes": -1002108349725, - "monitoring": -1001997464975, - "oldmonitoring": -1001469966749 + "kubernetes": { + "messenger": "telegram", + "chat_id": -1002108349725, + "thread_id": 0, + "config": {} + }, + "monitoring": { + "messenger": "telegram", + "chat_id": -1001997464975, + "thread_id": 0, + "config": {} + }, + "oldmonitoring": { + "messenger": "telegram", + "chat_id": -1001469966749, + "thread_id": 0, + "config": {} + } } --- apiVersion: v1