refactor: убрать Traefik, добавить метрики и ingress аддонам, provisioning DB/MinIO

Traefik:
- k3s-server-config.yaml.j2: traefik всегда в disable list (убрана переменная)
- group_vars/all/main.yml: убрана k3s_disable_traefik
- ingress-nginx/tasks: убраны задачи отключения Traefik (дублирование)

Prometheus метрики (по умолчанию включены):
- postgresql, mysql: metrics.enabled + serviceMonitor (при addon_prometheus_stack)
- minio: metrics.serviceMonitor (при addon_prometheus_stack)
- velero: metrics.enabled + serviceMonitor (при addon_prometheus_stack)
- crowdsec: ServiceMonitor для /metrics:6060 (при addon_prometheus_stack)
- ingress-nginx: ingress_nginx_metrics_enabled: true (было false)

Ingress:
- velero: velero_ingress_enabled (API port 8085)
- crowdsec: crowdsec_ingress_enabled (LAPI port 8080)

Databasus — provisioning shared ресурсов вместо деплоя своих:
- addon_postgresql: Job создаёт user 'databasus' + database 'databasus' в shared PG
- addon_minio: Job создаёт bucket 'databasus-backups' в shared MinIO
- vault_databasus_db_password добавлен в vault.yml.example
This commit is contained in:
Sergey Antropoff
2026-04-25 11:19:42 +03:00
parent 80dbf686b0
commit 71a5e14ebb
17 changed files with 326 additions and 88 deletions

View File

@@ -16,9 +16,13 @@ mysql_auth_password: "{{ vault_mysql_password | default('changeme-app') }}"
mysql_storage_size: "8Gi"
mysql_storage_class: "" # "" = default StorageClass
# ── Secondary реплики (read-only) ─────────────────────────────────────────────
# ── Secondary реплики ─────────────────────────────────────────────────────────
mysql_secondary_replica_count: 0 # 0 = только primary
# ── Метрики (mysqld_exporter sidecar) ─────────────────────────────────────────
mysql_metrics_enabled: true
# ServiceMonitor создаётся только когда addon_prometheus_stack: true
# ── Ресурсы ────────────────────────────────────────────────────────────────────
mysql_resources:
requests:

View File

@@ -34,6 +34,10 @@
size: "{{ mysql_storage_size }}"
storageClass: "{{ mysql_storage_class }}"
resources: "{{ mysql_resources }}"
metrics:
enabled: "{{ mysql_metrics_enabled | bool }}"
serviceMonitor:
enabled: "{{ mysql_metrics_enabled | bool and addon_prometheus_stack | default(false) | bool }}"
environment:
KUBECONFIG: "{{ k3s_kubeconfig_path }}"
@@ -59,7 +63,7 @@
- " Database: {{ mysql_auth_database }}"
- " Root: root / {{ mysql_auth_root_password }}"
- " App user: {{ mysql_auth_username }} / {{ mysql_auth_password }}"
- " Метрики: {{ 'включены' if mysql_metrics_enabled else 'выключены' }}"
- "──────────────────────────────────────────────"
- " Port-forward для локального доступа:"
- " kubectl port-forward -n {{ mysql_namespace }} svc/mysql 3306:3306"
- " Port-forward: kubectl port-forward -n {{ mysql_namespace }} svc/mysql 3306:3306"
- "══════════════════════════════════════════════"