Обновлен Kubernetes манифест с новыми возможностями

- Добавлена поддержка 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
This commit is contained in:
2025-11-12 20:29:59 +03:00
parent b90def35ed
commit b1e2f7fd22

View File

@@ -11,14 +11,29 @@ metadata:
namespace: message-gateway namespace: message-gateway
type: Opaque type: Opaque
stringData: stringData:
# Telegram настройки
telegram_bot_token: "" # Установите токен через kubectl create secret или SealedSecret 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_url: "" # URL Pushgateway (опционально)
pushgateway_job: "MessageGateway" pushgateway_job: "MessageGateway"
# Grafana настройки
grafana_url: "" # URL Grafana (опционально) grafana_url: "" # URL Grafana (опционально)
# Zabbix настройки
zabbix_url: "" # URL Zabbix (опционально) zabbix_url: "" # URL Zabbix (опционально)
# Kubernetes кластер настройки
k8s_cluster_grafana_subdomain: "" # Поддомен Grafana для K8S кластеров (опционально) k8s_cluster_grafana_subdomain: "" # Поддомен Grafana для K8S кластеров (опционально)
k8s_cluster_prometheus_subdomain: "" # Поддомен Prometheus для K8S кластеров (опционально) k8s_cluster_prometheus_subdomain: "" # Поддомен Prometheus для K8S кластеров (опционально)
k8s_cluster_alertmanager_subdomain: "" # Поддомен AlertManager для K8S кластеров (опционально) k8s_cluster_alertmanager_subdomain: "" # Поддомен AlertManager для K8S кластеров (опционально)
# OpenTelemetry настройки
otel_enabled: "false" # Включить OpenTelemetry (true/false) otel_enabled: "false" # Включить OpenTelemetry (true/false)
otel_service_name: "monitoring-message-gateway" otel_service_name: "monitoring-message-gateway"
otel_exporter_otlp_endpoint: "" # Endpoint OpenTelemetry (опционально) otel_exporter_otlp_endpoint: "" # Endpoint OpenTelemetry (опционально)
@@ -26,13 +41,13 @@ stringData:
otel_traces_exporter: "otlp_proto_http" otel_traces_exporter: "otlp_proto_http"
otel_exporter_otlp_insecure: "true" otel_exporter_otlp_insecure: "true"
otel_python_log_correlation: "false" otel_python_log_correlation: "false"
groups_admin_password: "" # Пароль для управления группами (опционально) # Jira настройки
jira_enabled: "false" # Включить интеграцию с Jira (true/false) jira_enabled: "false" # Включить интеграцию с Jira (true/false)
jira_url: "" # URL Jira (опционально) jira_url: "" # URL Jira (опционально)
jira_email: "" # Email пользователя Jira (опционально) jira_email: "" # Email пользователя Jira (опционально)
jira_api_token: "" # API Token Jira (опционально) jira_api_token: "" # API Token Jira (опционально)
jira_project_key: "" # Ключ проекта Jira (опционально) jira_project_key: "" # Ключ проекта Jira (опционально)
jira_default_assignee: "" # Email исполнителя по умолчанию (опционально) jira_default_assignee: "" # Email или accountId исполнителя по умолчанию (опционально)
jira_default_issue_type: "Bug" # Тип задачи по умолчанию jira_default_issue_type: "Bug" # Тип задачи по умолчанию
jira_create_on_alert: "true" # Создавать тикет при алерте (true/false) jira_create_on_alert: "true" # Создавать тикет при алерте (true/false)
jira_create_on_resolved: "false" # Создавать тикет при resolved (true/false) jira_create_on_resolved: "false" # Создавать тикет при resolved (true/false)
@@ -72,23 +87,66 @@ spec:
ports: ports:
- containerPort: 8000 - containerPort: 8000
env: env:
# Telegram настройки
- name: TELEGRAM_BOT_TOKEN - name: TELEGRAM_BOT_TOKEN
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: message-gateway-secret name: message-gateway-secret
key: telegram_bot_token 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 - name: GRAFANA_URL
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: message-gateway-secret name: message-gateway-secret
key: grafana_url key: grafana_url
optional: true optional: true
# Zabbix настройки
- name: ZABBIX_URL - name: ZABBIX_URL
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: message-gateway-secret name: message-gateway-secret
key: zabbix_url key: zabbix_url
optional: true optional: true
# Kubernetes кластер настройки
- name: K8S_CLUSTER_GRAFANA_SUBDOMAIN - name: K8S_CLUSTER_GRAFANA_SUBDOMAIN
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@@ -107,6 +165,7 @@ spec:
name: message-gateway-secret name: message-gateway-secret
key: k8s_cluster_alertmanager_subdomain key: k8s_cluster_alertmanager_subdomain
optional: true optional: true
# Prometheus Pushgateway настройки
- name: PUSHGATEWAY_URL - name: PUSHGATEWAY_URL
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@@ -119,6 +178,7 @@ spec:
name: message-gateway-secret name: message-gateway-secret
key: pushgateway_job key: pushgateway_job
optional: true optional: true
# OpenTelemetry настройки
- name: OTEL_ENABLED - name: OTEL_ENABLED
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@@ -161,12 +221,7 @@ spec:
name: message-gateway-secret name: message-gateway-secret
key: otel_python_log_correlation key: otel_python_log_correlation
optional: true optional: true
- name: GROUPS_ADMIN_PASSWORD # Jira настройки
valueFrom:
secretKeyRef:
name: message-gateway-secret
key: groups_admin_password
optional: true
- name: JIRA_ENABLED - name: JIRA_ENABLED
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@@ -234,7 +289,7 @@ spec:
# Readiness проба # Readiness проба
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /api/v1/health/ready path: /api/v1/health
port: 8000 port: 8000
initialDelaySeconds: 10 initialDelaySeconds: 10
periodSeconds: 10 periodSeconds: 10
@@ -274,9 +329,24 @@ metadata:
data: data:
groups.json: | groups.json: |
{ {
"kubernetes": -1002108349725, "kubernetes": {
"monitoring": -1001997464975, "messenger": "telegram",
"oldmonitoring": -1001469966749 "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 apiVersion: v1