# Components list
# component-base
Ce composent est necessaire pour créer une plateforme
# ownership for component-base
- team solution
# elements for component-base
- public route53 SOA "$plateform.accor.net" (to be defined)
- activate CWL for api gateway
- aws cognito pour la gestion des utilisateurs "admin" (sauf si ping identity)
- la liste des utilisateurs est fournis au component via le manifest
- initie le chatops
# component-network
Permet de créer l'ensemble des éléments du réseau
# ownership for component-network
- team réseau
- temps ops
# elements for component-network
- VPC
- subnet
- subnet group
- routes table
- nat gateway
- egress only internet gateway
- route53 private zone
# component-kubernetes
Permet d'avoir un kubernetes utilisable
# Dépendance de component-kubernetes
est dépendant de component-network
# ownership for component-kubernetes
- team solution
# elements for component-kubernetes
- EKS avec
- les masters managés
- un node pool de compute
- un node pool de ...
- installation / confirguration de Calico (ou cilium)
- deux ingress controllers "traefik"
- un pour les flux public
- un pour les flux d'aministration
- un backend de stockage Rook (ceph) sur un NodePool de i3 (stockage des PVC en multi-az)
- cluster-autoscaler
- externalDNS
- kube2iam ou kiam ou service EKS
# component-observability-infra
Créer les éléments d'observabilité de l'infratructure
# Dépendance de component-observability-infra
est dépendant de component-network
# ownership for component-observability-infra
- team solution
# elements for component-observability-infra
ES managé
monitoring
- un node exporter par EC2 (inclus node EKS)
- cloudwatch-exporter pour les services managés
- pushGateway pour les métriques lambdas métiers
- un prometheus (dans un ASG)
- découverte via ec2_sd_config (https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config)
alerting
- AlertManager (dans un ASG)
logging
- fluentd par EC2 (pour les node EKS uniquement les logs EC2)
- => dans bucket s3
- => dans l'ES managé
- fluentd par EC2 (pour les node EKS uniquement les logs EC2)
tracing
- vers ES managé
- jaeger-operator dans EKS
Grafana sur EC2, branché par défaut sur
- le prometheus sur EC2
# component-observability-apps
Map les métriques applicatives
# Dépendance de component-observability-apps
est dépendant de "component-observability-infra"
# ownership for component-observability-apps
- team solution
# elements for component-observability-apps
- monitoring
- dans EKS
- prometheus-operator
- un prometheus par namespace
- prometheus-operator
- dans Lambda
- dans EC2
- dans EKS
- alerting
- utiliser l'AlertManager sur vm ec2
- logging
- fluentd pour les logs apps
- => dans bucket s3
- => dans l'ES managé
- fluentd pour les logs apps
- tracing
- vers ES managé
- dans EKS
- jaeger-operator dans EKS
# component-serverless-enable
Gère les dépendances des applictions lambda
# dependances for component-serverless-enable
est dépendant de component-network
# ownership for component-serverless-enable
- team solution
# elements for component-serverless-enable
- configuration d'api-gateway
- lambda d'authentification
- ...
# component-grafana-eks
Ajout un grafana pour un namespace dans EKS
# dependances for component-grafana-eks
- component-kubernetes
- component-observability-apps
- component du projet
# ownership for component-grafana-eks
- team solution
# elements for component-grafana-eks
- helm chart grafana
- oauth pluggé sur Cognito (ou idp ops)
# To be defined component
les composants à définir:
- ...