Skip to content

Commit

Permalink
wip wip
Browse files Browse the repository at this point in the history
  • Loading branch information
Baptiste Noleau authored and this-is-tobi committed Jul 5, 2024
1 parent fb13126 commit 560888d
Show file tree
Hide file tree
Showing 23 changed files with 197 additions and 11 deletions.
2 changes: 1 addition & 1 deletion docs/.vitepress/sidebar.json
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@
"collapsed": true,
"items": [
{
"text": "Introduction",
"text": "Démarrer",
"link": "/administration/introduction"
},
{
Expand Down
39 changes: 39 additions & 0 deletions docs/administration/clusters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Clusters

Un cluster est, au même titre qu'un cluster kubernetes, un ensemble de noeuds pilotés, par une solution d'orchestration (kubernetes vanille, OpenShift, Rancher, etc...)

La console n'installe pas de cluster kubernetes à proprement parlé mais permet de piloter des projets sur différents clusters.

## Création d'un cluster

En appuyant sur le bouton **+ Ajouter un nouveau cluster**, une nouvelle page s'ouvre pour faire l'action idoine.

Un exemple de remplissage des différents champs de configuration, une explication se trouvant après:
![cluster ajout](/img/console_admin/cluster_ajout.png)

1. **Kubeconfig**: Fournir un kubeconfig sous forme de fichier texte
2. **Nom du serveur Transport Layer Security (TLS)**: information extraite du fichier kubeconfig
3. **Nom du cluster applicatif**: Nom que le cluster aura dans l'interface de la console par les utilisateurs.
4. **Informations supplémentaires sur le cluster**: Informations supplémentaires qui seront visibles par les utilisateurs, typiquement l'adresse IP des FIP
5. **Ignorer le certificat TLS du server (risques potentiels de sécurité !)**: à cocher pour désactiver la vérification du certificat TLS dans le kubeconfig
6. **Ressources cluster**: Cochez la case si des ressources de type cluster peuvent être déployées par Argocd, à réserver pour les clusters dédiés
7. **Zone associée**: Zone associée au cluster
8. **Confidentialité du cluster**: choix si le cluster est public (partagé et visible par tout le monde) ou dédié (pour un projet ou une équipe projet). En cas de cluster dédié, il sera demander de choisir les projets associés qui peuvent être déployé sur ce cluster.
9. **Nom des types d'environnement**: un cluster est lié à un certain nombre d'environnement, typiquement les environnements hors production sur un cluster et l'environnement concernant la production sur un cluster dédié
10. Cliquer sur le bouton **Ajouter le cluster**

## Détail d'un cluster

En cliquant sur la tuile d'un cluster, il est possible d'avoir une page détaillée concernant ce dernier.

Les mêmes informations que lors de la création apparaissent ainsi qu'une liste des projets (environnements) associés

![cluster détail environnement](/img/console_admin/cluster_details_env.png)

## Suppresion d'un cluster

Pour pouvoir supprimer un cluster, il faut se rendre sur la page de [détail d'un cluster](#detail-d-un-cluster).

Le cluster ne doit avoir aucun projet actuellement déployé dessus.

![cluster suppression](/img/console_admin/cluster_suppression.png)
24 changes: 24 additions & 0 deletions docs/administration/environnements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Type d'environnement

Un environnement est désigne une phase de développement du projet. Chaque environnement est lié à des quotas ainsi qu'à des clusters.

## Création d'un environnement

Cliquer sur le bouton **+ Ajouter un nouveau type d'environnement**.

Un exemple de création de type d'environnement, les explication se trouvant après:
![environnement création](/img/console_admin/environnement_creation.png)

1. **Nom du type d'environnement**: Nom de l'environnement que les utilisateurs verront dans la console (*dev dans l'exemple*)
2. **Quotas associés**: Tous les quotas possibles une fois que ce type d'environnement sera sélectionné par les utilisateurs (*small et medium dans l'exemple*)
1. Le bouton **Ajouter tout* ajoute tous les quotas dans le type d'environnement
2. Le bouton **Ajouter visible** ajoute tous les quotas visible par les utilisateurs (quota privé décoché)
3. **Clusters associés**: Tous les clusters disponible une fois que ce type d'environnement sera sélectionné par les utilisateurs (*formation-ovh dans l'exemple*)

## Mise à jour et Suppression

Pour mettre à jour un type d'evironnement, il faut sélectionner sa tuile dans la liste.

Il est possible de modifier les quotas associés ainsi que les clusters mais pas le nom.

Tout en bas il est possible de retrouver la liste des projets associés à ce type d'environnement. Un type d'environnement doit être libre de toute utilisation avant de pouvoir être supprimé.
4 changes: 2 additions & 2 deletions docs/administration/introduction.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Introduction
# Démarrer

Les administrateurs de la console DSO ont accès à un menu supplémentaire:

![menu_admin](/img/console_admin/menu_admin.png)

Ce menu d'administration permet de gérer les différents aspects de la console (utilisateurs, organisations, projets, ...), voir les journaux de la console ainsi que gérer les différents plugins installés.

La console permet d'administration les items suivants:
La console permet d'administrer les items suivants:

- Utilisateurs: gestion simple des utilisateurs (la création d'un utilisateur est à faire directement sur keycloak)
- Organisations: liste des organisations, création d'une nouvelle organisation, synchronisation
Expand Down
29 changes: 29 additions & 0 deletions docs/administration/journaux.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Journaux

Les journaux sont essentiels pour comprendre la vie de la plateforme et apporter une réponse en cas de problème.

Ce menu permet de voir tous les actions que la console effectue suite aux saisies utilisateurs.

Dès qu'un problème apparait, l'entrée du journal est entourée en rouge (vert si l'action s'est correctement effectuée) avec les clés suivantes:

```json
{
args:{
}
config:{
}
failed:[
]
results:{
}
}
```

La clé args regroupe toutes les données que la console a pu récupérer sur le projet (id, nom, membres, environnements, etc).

La clé failed contient le plugin en erreur (pour faciliter la vie de l'administrateur)

La clé results contient les logs des différents plugins joués et donne un 1er aperçu du problème rencontré.

Dans l'exemple suivant, le projet a un soucis d'authenfication concernant GitLab. D'expérience, il s'agit très certainement d'un clonage de dépôt privé dont les informations d'identification ont été mal renseignées.
![journaux erreur](/img/console_admin/journaux_erreur.png)
3 changes: 0 additions & 3 deletions docs/administration/organisations.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,4 @@ Cliquer sur le bouton **Ajouter l'organisation**

Au lieu d'ajouter manuellement les organisations une par une, il est possible de définir une url permettant de charger les organisations depuis une source extérieure.



Le bouton **Synchroniser les organisations** sert à synchroniser une liste d'organisations depuis une source extérieure. L'endpoint est défini directement dans le code de la console

27 changes: 27 additions & 0 deletions docs/administration/plugins.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Plugins

La console DSO fonctionne via des plugins pour toutes ses fonctionnalités:

- keycloak
- vault
- harbor
- argocd
- ...

Il est possible d'écrire son propre plugin, un dépôt d'exemple si trouve [ici](https://github.com/cloud-pi-native/console-plugin-helloworld)

Pour les plugins rendant service à d'autres plugins (plugin de type API - typiquement le cas du plugin vault qui sert à stocker les secrets des autres plugins), un exemple se trouve [ici](https://github.com/cloud-pi-native/console-plugin-helloworld-api)

Chaque plugin peut exposer sa configuration à différents niveaux:

- projet: la configuration se trouvera sur la page **Mes services** du projet en question
- global: la configuration se trouvera sur la page **Administration/Plugins**

## Configuration globale

Pour changer la configuration globale d'un plugin, cliquer sur le plugin en question pour ouvrir son menu de paramètres et changer celui voulu.

Dans l'exemple suivant, le quota par défaut de harbor est mis à 1GB:
![plugin configuration](/img/console_admin/plugin_configuration.png)

Cliquer sur le bouton **Enregistrer** pour sauvegarder la nouvelle configuration.
16 changes: 16 additions & 0 deletions docs/administration/projets.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,19 @@

Le menu Administration > Projets permet de voir la liste de tous les projets, que ce soit les projets non archivés, archivés, verrouillés, échoués.

Une zone de texte permet de filtrer rapidement sur les éléments suivants:

- Nom
- Description
- Souscripteur

![recherche projet](/img/console_admin/recherche_projet.png)

En cliquant sur le projet concerné, une autre page s'ouvre sur laquelle les informations suivantes sont disponibles:

- Les environnements associés au projet ainsi que leur quota
- Les dépôts (ainsi que leur type) synchronisés
- Les membres du projet et leur statut
- La configuration des plugins pour ce projet en particulier

![projet détail](/img/console_admin/projet_detail.png)
27 changes: 27 additions & 0 deletions docs/administration/quotas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Quotas

Un quota est une limite dure (en terme de CPU et de RAM) de ce qu'un projet peut déployer sur un environnement donné.

Dans le monde kubernetes, cela se traduit par un objet de type ResourceQuota dans le namespace.

## Création d'un nouveau quota

Cliquer sur le bouton **+ Ajouter un nouveau quota**, une nouvelle page s'ouvre demandant un certain nombre détail.

Un exemple ci-dessous pour la création d'un quota, l'explication des champs se trouvant après:
![quota création](/img/console_admin/quota_creation.png)

1. **Nom du quota**: Nom que le quota aura sur la partie cliente de la console
2. **Mémoire allouée**: Mémoire maximum que le projet pourra allouer s'il choisit ce quota
3. **CPU alloué(s)**: Nombre de CPU maximum que le projet pourra allouer s'il choisit ce quota
4. **Quota privé**: Si le quota est uniquement accessible aux administrateurs de la console
5. **Nom des types d'environnement**: A quels environnement ce quota est associé

## Mise à jour du quota et suppression

Pour mettre à jour un quota, il suffit de cliquer sur sa tuile dans la page principal des quotas.

Si le quota est utilisé par des projets, la liste des projets et environnement est affichée.

Un quota ne peut être supprimé que s'il n'a pas de projet lié.

3 changes: 1 addition & 2 deletions docs/administration/utilisateurs.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Utilisateurs

Dans le menu Administration > Utilisateurs il est possible de retrouver tous les utilisateurs inscrits sur la plateforme, ainsi que leur statut administrateur.
Dans le menu Administration > Utilisateurs il est possible de retrouver tous les utilisateurs inscrits sur la plateforme, ainsi que leur statut (utilisateur simple ou administrateur).

> ![NOTE]
> La création et la suppresion des utilisateurs est à faire directement dans keycloak.
## Recherche
Expand Down
27 changes: 27 additions & 0 deletions docs/administration/zones.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Zones

Une zone désigne un datacenter particulier. Dans le cadre de Cloud Pi Native, il existe 2 zones:

- Zone Usuelle: zone pour les projets présentant une sensibilité moindre.
- Zone Restreinte: zone pour les projets sensibles, plus contraignant au niveau des flux réseaux

L'instructure sur OVH n'est pas concerné par cette notion de zone, aussi il n'existe que le choix **Zone Défaut**

## Création d'une zone

Cliquer sur le bouton **+ Ajouter une nouvelle zone**.

Un exemple de création d'une nouvelle zone, les explications se trouvant après:

![zone creation](/img/console_admin/zone_creation.png)

1. **Nom court de la zone**: Nom court à des fins techniques, aka un id (*pub dans l'exemple*)
2. **Nom complet de la zone**: Nom qui sera affichée dans la console à destination des utilisateurs (*Zone publique dans l'exemple*)
3. **Informations supplémentaires sur la zone**: Champ libre pour informer les utilisateurs du but de la zone (*Zone Publique de moindre sensibilité* dans l'exemple)
4. **Clusters associés**: Quels sont les clusters disponibles dans cette zone particulière ? (*dans l'exemple seul le cluster formation-ovh est associé à la zone*)

## Mise à jour et Suppression

Sélectionner la zone voulue via sa tuile. Le nom court d'une zone ne pourra pas être modifié étant lié à d'autres éléments techniques.

Seule une zone sans cluster associé peut être supprimée. De même il faut que le cluster soit vide de tous projets pour pouvoir être supprimé.
7 changes: 4 additions & 3 deletions docs/agreement/mocks.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Bouchons

Un chart Helm a été créé afin de permettre aux projets clients de l'offre Cloud Pi Native de simuler ou remplacer les éléments fournis par l'infrastructure du MI à savoir :
- Un serveur SMTP pour les envois de mails
- La création d'un bucket S3
- Le SSO *Passage2*

- Un serveur SMTP pour les envois de mails
- La création d'un bucket S3
- Le SSO *Passage2*

Le chart Helm est disponible sur le [repo github public](https://github.com/cloud-pi-native/helm-projects-mocks).

Expand Down
Binary file added docs/public/img/console_admin/cluster_ajout.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/img/console_admin/projet_detail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/img/console_admin/quota_creation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/img/console_admin/zone_creation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 560888d

Please sign in to comment.