Обновлен 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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user