... | @@ -9,94 +9,105 @@ Voici un schéma reprenant les composants de l'outil NumEcoEval à installer. |
... | @@ -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 :
|
|
Les pré-requis au niveau de l'infrastructure sont :
|
|
|
|
|
|
1. **Un accès internet**
|
|
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.
|
|
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 fichier values.yaml par défaut tel qu'il est donné suffit pour un déploiement fonctionnel.
|
|
|
|
|
|
|
|
## Le temps de déploiement
|
|
## 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 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
|
|
## 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.
|
|
|
|
|
|
| Etape 1 | **helm dependency update** |
|
|
Le fichier values.yaml par défaut tel qu'il est donné suffit pour un déploiement fonctionnel en environnement de developpement.
|
|
|---------|----------------------------|
|
|
|
|
| **Etape 2** | **helm install g4it -f values.yaml** |
|
|
|
|
|
|
|
|
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).
|
|
|---------|--------------------------------------------------|
|
|
|
|
| **Etape 2** | **kubectl port-forward svc/g4it-backend 8080:8080** |
|
|
|
|
| **Etape 3** | **kubectl port-forward svc/keycloak 8090:8090** |
|
|
|
|
|
|
|
|
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)
|
|
### 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.
|
|
helm uninstall g4it
|
|
|
|
```
|
|
| Désinstaller | |
|
|
|
|
|--------------|--|
|
|
|
|
| Etape 1 | helm uninstall g4it |
|
|
|
|
|
|
|
|
## Le Test
|
|
## Le Test
|
|
|
|
|
|
### Accès Frontend
|
|
### 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:
|
|
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 |
|
|
/etc/hosts:
|
|
|---------|------------------------|
|
|
```
|
|
| **Etape 2** | **127.0.0.1 g4it-frontend** |
|
|
...
|
|
| **Etape 3** | **127.0.0.1 keycloak** |
|
|
127.0.0.1 g4it-backend
|
|
|
|
127.0.0.1 g4it-frontend
|
|
|
|
127.0.0.1 keycloak
|
|
|
|
```
|
|
|
|
|
|
### Accès aux swaggers de NumEcoEval
|
|
### 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/)
|
|
```
|
|
|
|
kubectl port-forward svc/api-rest-referentiels 8085:8080
|
|
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:
|
|
```
|
|
|
|
|
|
| Exposition | |
|
|
Vous pouvez maintenant acceder au swagger [ici](http://localhost:8085/swagger-ui/index.html)
|
|
|------------|--|
|
|
|
|
| Etape 1 | kubectl port-forward svc/api-rest-referentiels 8085:8080 |
|
|
|
|
|
|
|
|
### Traefik access
|
|
### Traefik access
|
|
|
|
|
... | | ... | |