@@ -9,94 +9,105 @@ Voici un schéma reprenant les composants de l'outil NumEcoEval à installer.
Les pré-requis au niveau de l'infrastructure sont :
1.**Un accès internet**
Un accès à internet pour pouvoir télécharger les images docker utilisées pour ce déploiement.
Un accès à internet pour pouvoir télécharger les images docker utilisées pour ce déploiement. Kubectl et Helm installés sur votre poste d'administrateur. Un cluster kubernetes local ou hébergé chez un cloud provider.
2.** kubectl **
[Kubectl](https://kubernetes.io/docs/reference/kubectl/) est nécessaire pour interagir avec votre cluster kubernetes ou vous souhaitez déployer NumEcoEval.
2.**Un K9s**
3.** Docker **
Kubernetes est un orchestrateur de container [Docker](https://www.docker.com/). Il faut donc installer ce dernier pour effectuer le déploiement.
Il est également recommandé d'installer K9S pour faciliter le suivi du déploiement et l'administration de votre cluster ainsi qu'une bonne compréhension générale de NumEcoEval couplé avec G4it et de son architecture.
4.** Un cluster fonctionnel **
Il vous faut un cluster kubernetes local ou hébergé chez un cloud provider sur lequel vous souhaitez déployer NumEcoEval. Pour les solutions locales vous pouvez utiliser [kind](https://kind.sigs.k8s.io/) ou [minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download). N'oubliez pas de configurer kubectl pour utiliser le cluster déployé:
```
kubectl config use-context moncluster
```
3.**Une chart Helm**
2.**K9s**
Il est également **recommandé** (pas obligatoire) d'installer [K9S](https://k9scli.io/) pour faciliter le suivi du déploiement et l'administration de votre cluster.
Ce déploiement s'effectue via l'utilisation d'une chart Helm.
3.**Helm**
Ce déploiement s'effectue via l'utilisation d'une chart [Helm](https://helm.sh/docs/intro/install/).
Pour configurer le déploiement, vous pouvez copier le fichier value.yaml et l'éditer à votre guise pour répondre à vos besoins spécifiques.
Le fichier values.yaml par défaut tel qu'il est donné suffit pour un déploiement fonctionnel.
4.**Quelques connaissances**
Une bonne compréhension générale de NumEcoEval couplé avec G4it et de son architecture peuvent être utile pour comprendre le déploiement. Vous pouvez vous référer à la documentation de NumEcoEval ainsi qu'au schéma d'architecture donné précédemment.
## Le temps de déploiement
Ce déploiement se veut très simple et très rapide puisque l'intégralité de ce déploiement s'effectue en 1 commande.
Ce dernier prend en moyenne entre 3 à 5 minutes le temps que [keycloak](https://www.keycloak.org/) s'initialise correctement.
Ce dernier prend en moyenne entre 5 à 10 minutes le temps que les images dockers nécessaires au déploiement se téléchargent et que [keycloak](https://www.keycloak.org/) s'initialise correctement.
## Le déploiement
### Configuration du déploiement
### Les étapes de déploiement
Le fichier [values.yaml](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/g4it/-/blob/main/k8s-helm/g4it/values.yaml?ref_type=heads) sert de base de configuration pour la chart Helm qu'on installe et désinstalle à notre guise.
Depuis le répertoire g4it: [URL](ddd) à venir
Pour configurer le déploiement, vous pouvez copier le fichier value.yaml et l'éditer à votre guise pour répondre à vos besoins spécifiques.
Le fichier values.yaml par défaut tel qu'il est donné suffit pour un déploiement fonctionnel en environnement de developpement.
Helm dependency va installer les dépendances Helm (Keycloak) dans le dossier 'charts/'.
Vous pouvez retrouver le fichier values.yaml [ici](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/g4it/-/blob/main/k8s-helm/g4it/values.yaml?ref_type=heads)
La liste des values et de ce qu'elles configurent se trouve sur le README.md visible [ici](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/g4it/-/tree/main/k8s-helm/g4it?ref_type=heads)
### Quels sont les points d'attention ?
**ATTENTION**: Le fichier values.yaml fourni par défaut ne **doit pas** être utilisé en environnement de production. Ce fichier permet de configurer des mots de passe utiles à l'administration de keycloak et de g4it. Par conséquent il est de votre responsabilité de copier le fichier values.yaml de modifier les valeurs sensibles (section SECRETS) et de **ne pas rendre publique** votre configuration.
Pour que g4it x NumEcoEval fonctionne, il faut que le **frontend, le backend et keycloak soient exposés** (port-forward).
### Les étapes de déploiement
Depuis le répertoire g4it: [g4it](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/g4it/-/tree/main/k8s-helm/g4it?ref_type=heads)
A vous de décider comment vous souhaitez faire.
```
helm install g4it -f my-values.yaml
```
Par défaut, les services sur lesquels reposent le déploiement de ces briques sont de type ClusterIP.
Dans cette commande, nous avons supposé que vous avez créé et configuré un fichier "my-values.yaml" à partir du fichier "values.yaml" par défaut.
Il faut donc configurer les port forward manuellement:
### Quels sont les points d'attention ?
| Etape 1 | kubectl port-forward svc/g4it-frontend 4200:4200 |
Pour que g4it x NumEcoEval fonctionne, il faut que le **frontend, le backend et keycloak soient exposés** (port-forward).
Sinon, vous pouvez modifier leur type de service pour les passer en LoadBalancer ou NodePort pour les rendre accessible directement sans avoir à configurer les port forward manuellement.
A vous de décider comment vous souhaitez faire.
### Comment configurer le fichier values.yaml ?
Par défaut, les services sur lesquels reposent le déploiement de ces briques sont de type ClusterIP.
En attente
Si vous avez installé k9s, vous pouvez réaliser cette opération très simplement depuis l'interface.
En attente
Sinon il faut configurer les port forward manuellement en utilisant kubectl:
```
kubectl port-forward svc/g4it-backend 8080:8080
kubectl port-forward svc/g4it-frontend 4200:4200
kubectl port-forward svc/keycloak 8090:8090
```
En attente
Alternativement, vous pouvez modifier le type de service utilisé par défaut par ce déploiement pour les passer en LoadBalancer ou NodePort pour les rendre accessible directement sans avoir à configurer les port forward manuellement.
### Comment désinstaller la chart Helm ? (supprimer le déploiement)
Le fichier values.yaml sert de base de configuration pour la chart Helm qu'on installe et désinstalle à notre guise.
| Désinstaller | |
|--------------|--|
| Etape 1 | helm uninstall g4it |
```
helm uninstall g4it
```
## Le Test
### Accès Frontend
[URL](http://localhost:4280)
Par défaut le frontend est accessible via ce lien [http://localhost:4280](http://localhost:4280)
Si vous êtes sous Linux, vous pouvez éditer votre fichier '/etc/hosts' afin de faire de la redirection sur localhost:
| Etape 1 | 127.0.0.1 g4it-backend |
|---------|------------------------|
| **Etape 2** | **127.0.0.1 g4it-frontend** |
| **Etape 3** | **127.0.0.1 keycloak** |
/etc/hosts:
```
...
127.0.0.1 g4it-backend
127.0.0.1 g4it-frontend
127.0.0.1 keycloak
```
### Accès aux swaggers de NumEcoEval
Pour accéder aux swaggers pour l'import des données au niveau de NumEcoEval, il faut exposer l'api rest des referentiels:
[URL](http://localhost:8085/)
Pour accéder aux swaggers pour l'import des données au niveau de NumEcoEval, il faut exposer l'api rest des référentiels: