536 lines
10 KiB
YAML
536 lines
10 KiB
YAML
---
|
|
# Variables globales pour le déploiement Kubernetes
|
|
# Fichier: group_vars/all.yml
|
|
|
|
# ============================================================
|
|
# Configuration du cluster Kubernetes
|
|
# ============================================================
|
|
cluster_name: smart-city-martinique
|
|
k8s_version: "1.28.0"
|
|
container_runtime: containerd
|
|
network_plugin: cilium
|
|
|
|
# ============================================================
|
|
# Configuration réseau
|
|
# ============================================================
|
|
domain: digitribe.fr
|
|
traefik_namespace: traefik
|
|
ingress_class: traefik
|
|
|
|
# TLS
|
|
tls_enabled: true
|
|
tls_certresolver: letsencrypt
|
|
acme_email: admin@digitribe.fr
|
|
|
|
# ============================================================
|
|
# Storage
|
|
# ============================================================
|
|
storage_class: nfs-client
|
|
nfs_server: "192.168.1.200"
|
|
nfs_path: /data/k8s
|
|
|
|
# Persistent Volume sizes
|
|
storage_sizes:
|
|
postgres: 50Gi
|
|
minio: 500Gi
|
|
kafka: 100Gi
|
|
influxdb: 50Gi
|
|
loki: 100Gi
|
|
grafana: 10Gi
|
|
jupyterhub: 20Gi
|
|
gitea: 20Gi
|
|
metabase: 10Gi
|
|
superset: 10Gi
|
|
mindsdb: 20Gi
|
|
odk: 10Gi
|
|
mapstore: 10Gi
|
|
geoserver: 20Gi
|
|
airflow: 20Gi
|
|
flink: 20Gi
|
|
emqx: 10Gi
|
|
mosquitto: 5Gi
|
|
redis: 10Gi
|
|
elasticsearch: 50Gi
|
|
|
|
# ============================================================
|
|
# Helm Charts versions
|
|
# ============================================================
|
|
helm_charts:
|
|
traefik:
|
|
chart: traefik/traefik
|
|
version: "28.0.0"
|
|
ingress_nginx:
|
|
chart: ingress-nginx/ingress-nginx
|
|
version: "4.8.0"
|
|
cert_manager:
|
|
chart: jetstack/cert-manager
|
|
version: "1.13.0"
|
|
nfs_provisioner:
|
|
chart: nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
|
|
version: "4.0.18"
|
|
postgresql:
|
|
chart: bitnami/postgresql
|
|
version: "13.2.0"
|
|
postgresql_ha:
|
|
chart: bitnami/postgresql-ha
|
|
version: "12.2.0"
|
|
redis:
|
|
chart: bitnami/redis
|
|
version: "18.0.0"
|
|
minio:
|
|
chart: bitnami/minio
|
|
version: "12.10.0"
|
|
kafka:
|
|
chart: strimzi/kafka-operator
|
|
version: "0.38.0"
|
|
flink:
|
|
chart: apache/flink-kubernetes-operator
|
|
version: "1.7.0"
|
|
airflow:
|
|
chart: apache/airflow
|
|
version: "1.11.0"
|
|
grafana:
|
|
chart: grafana/grafana
|
|
version: "7.0.0"
|
|
loki:
|
|
chart: grafana/loki-stack
|
|
version: "2.9.0"
|
|
prometheus:
|
|
chart: prometheus/kube-prometheus-stack
|
|
version: "51.0.0"
|
|
emqx:
|
|
chart: emqx/emqx-operator
|
|
version: "2.2.0"
|
|
mosquitto:
|
|
chart: k8s-at-home/mosquitto
|
|
version: "4.8.0"
|
|
gitea:
|
|
chart: gitea/gitea
|
|
version: "9.0.0"
|
|
jupyterhub:
|
|
chart: jupyterhub/jupyterhub
|
|
version: "3.0.0"
|
|
superset:
|
|
chart: apache/superset
|
|
version: "0.11.0"
|
|
metabase:
|
|
chart: bitnami/metabase
|
|
version: "0.13.0"
|
|
mindsdb:
|
|
chart: bitnami/mindsdb
|
|
version: "0.1.0"
|
|
odk:
|
|
chart: odk/odk-central
|
|
version: "1.0.0"
|
|
mapstore:
|
|
chart: geosolutionsit/mapstore
|
|
version: "1.0.0"
|
|
geoserver:
|
|
chart: kartoza/geoserver
|
|
version: "2.2.0"
|
|
frost:
|
|
chart: fraunhoferiosb/frost-server
|
|
version: "1.0.0"
|
|
nodered:
|
|
chart: k8s-at-home/node-red
|
|
version: "4.8.0"
|
|
phpipam:
|
|
chart: phpipam/phpipam
|
|
version: "1.0.0"
|
|
clickhouse:
|
|
chart: bitnami/clickhouse
|
|
version: "4.0.0"
|
|
starrocks:
|
|
chart: starrocks/starrocks-community
|
|
version: "1.0.0"
|
|
trino:
|
|
chart: trinodb/trino
|
|
version: "0.10.0"
|
|
deltalake:
|
|
chart: delta-io/delta-lake
|
|
version: "1.0.0"
|
|
streamlit:
|
|
chart: streamlit/streamlit
|
|
version: "1.0.0"
|
|
duckdb:
|
|
chart: duckdb/duckdb
|
|
version: "1.0.0"
|
|
elasticsearch:
|
|
chart: elastic/elasticsearch
|
|
version: "8.11.0"
|
|
kibana:
|
|
chart: elastic/kibana
|
|
version: "8.11.0"
|
|
|
|
# ============================================================
|
|
# Services configuration
|
|
# ============================================================
|
|
services:
|
|
airflow:
|
|
enabled: true
|
|
namespace: airflow
|
|
replicas: 2
|
|
resources:
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
limits:
|
|
cpu: "2000m"
|
|
memory: "4Gi"
|
|
|
|
kafka:
|
|
enabled: true
|
|
namespace: kafka
|
|
replicas: 3
|
|
resources:
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
limits:
|
|
cpu: "2000m"
|
|
memory: "4Gi"
|
|
|
|
flink:
|
|
enabled: true
|
|
namespace: flink
|
|
replicas: 2
|
|
resources:
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
limits:
|
|
cpu: "2000m"
|
|
memory: "4Gi"
|
|
|
|
emqx:
|
|
enabled: true
|
|
namespace: iot
|
|
replicas: 3
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
mosquitto:
|
|
enabled: true
|
|
namespace: iot
|
|
replicas: 2
|
|
resources:
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "256Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
|
|
postgresql:
|
|
enabled: true
|
|
namespace: default
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
redis:
|
|
enabled: true
|
|
namespace: default
|
|
replicas: 3
|
|
resources:
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "256Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
|
|
minio:
|
|
enabled: true
|
|
namespace: default
|
|
replicas: 4
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
grafana:
|
|
enabled: true
|
|
namespace: monitoring
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "256Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
|
|
loki:
|
|
enabled: true
|
|
namespace: monitoring
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
prometheus:
|
|
enabled: true
|
|
namespace: monitoring
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
gitea:
|
|
enabled: true
|
|
namespace: gitea
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
jupyterhub:
|
|
enabled: true
|
|
namespace: jupyterhub
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
superset:
|
|
enabled: true
|
|
namespace: superset
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
metabase:
|
|
enabled: true
|
|
namespace: metabase
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
mindsdb:
|
|
enabled: true
|
|
namespace: mindsdb
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
odk:
|
|
enabled: true
|
|
namespace: odk
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
mapstore:
|
|
enabled: true
|
|
namespace: mapstore
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
geoserver:
|
|
enabled: true
|
|
namespace: geoserver
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
frost:
|
|
enabled: true
|
|
namespace: iot
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "256Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
|
|
nodered:
|
|
enabled: true
|
|
namespace: iot
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "256Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
|
|
phpipam:
|
|
enabled: true
|
|
namespace: phpipam
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "256Mi"
|
|
limits:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
|
|
smartapp:
|
|
enabled: true
|
|
namespace: smartapp
|
|
replicas: 2
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
clickhouse:
|
|
enabled: true
|
|
namespace: clickhouse
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
limits:
|
|
cpu: "2000m"
|
|
memory: "4Gi"
|
|
|
|
starrocks:
|
|
enabled: true
|
|
namespace: starrocks
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
limits:
|
|
cpu: "2000m"
|
|
memory: "4Gi"
|
|
|
|
trino:
|
|
enabled: true
|
|
namespace: trino
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1Gi"
|
|
limits:
|
|
cpu: "2000m"
|
|
memory: "4Gi"
|
|
|
|
deltalake:
|
|
enabled: true
|
|
namespace: deltalake
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
streamlit:
|
|
enabled: true
|
|
namespace: streamlit
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
duckdb:
|
|
enabled: true
|
|
namespace: duckdb
|
|
replicas: 1
|
|
resources:
|
|
requests:
|
|
cpu: "250m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
|
|
# ============================================================
|
|
# Monitoring
|
|
# ============================================================
|
|
monitoring:
|
|
enabled: true
|
|
namespace: monitoring
|
|
grafana_admin_password: "{{ vault_grafana_password }}"
|
|
prometheus_retention: 30d
|
|
loki_retention: 30d
|
|
|
|
# ============================================================
|
|
# Backup
|
|
# ============================================================
|
|
backup:
|
|
enabled: true
|
|
schedule: "0 2 * * *"
|
|
retention: 30
|
|
storage_class: nfs-client
|
|
storage_size: 100Gi
|