diff --git a/docs/.vitepress/sidebar.json b/docs/.vitepress/sidebar.json index b08ef86..7454f77 100644 --- a/docs/.vitepress/sidebar.json +++ b/docs/.vitepress/sidebar.json @@ -190,7 +190,7 @@ "collapsed": true, "items": [ { - "text": "Introduction", + "text": "Démarrer", "link": "/administration/introduction" }, { diff --git a/docs/administration/clusters.md b/docs/administration/clusters.md new file mode 100644 index 0000000..142577e --- /dev/null +++ b/docs/administration/clusters.md @@ -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) diff --git a/docs/administration/environnements.md b/docs/administration/environnements.md new file mode 100644 index 0000000..85a94bb --- /dev/null +++ b/docs/administration/environnements.md @@ -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é. diff --git a/docs/administration/introduction.md b/docs/administration/introduction.md index a757d20..4f79d63 100644 --- a/docs/administration/introduction.md +++ b/docs/administration/introduction.md @@ -1,4 +1,4 @@ -# Introduction +# Démarrer Les administrateurs de la console DSO ont accès à un menu supplémentaire: @@ -6,7 +6,7 @@ Les administrateurs de la console DSO ont accès à un menu supplémentaire: 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 diff --git a/docs/administration/journaux.md b/docs/administration/journaux.md new file mode 100644 index 0000000..e06d86a --- /dev/null +++ b/docs/administration/journaux.md @@ -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) \ No newline at end of file diff --git a/docs/administration/organisations.md b/docs/administration/organisations.md index 0ef86fa..2105b89 100644 --- a/docs/administration/organisations.md +++ b/docs/administration/organisations.md @@ -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 - diff --git a/docs/administration/plugins.md b/docs/administration/plugins.md new file mode 100644 index 0000000..31e5153 --- /dev/null +++ b/docs/administration/plugins.md @@ -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. diff --git a/docs/administration/projets.md b/docs/administration/projets.md index a333c23..f3a06f5 100644 --- a/docs/administration/projets.md +++ b/docs/administration/projets.md @@ -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) diff --git a/docs/administration/quotas.md b/docs/administration/quotas.md new file mode 100644 index 0000000..b5ece81 --- /dev/null +++ b/docs/administration/quotas.md @@ -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é. + diff --git a/docs/administration/utilisateurs.md b/docs/administration/utilisateurs.md index 471d18b..634e77c 100644 --- a/docs/administration/utilisateurs.md +++ b/docs/administration/utilisateurs.md @@ -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 diff --git a/docs/administration/zones.md b/docs/administration/zones.md new file mode 100644 index 0000000..8b05bf0 --- /dev/null +++ b/docs/administration/zones.md @@ -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é. diff --git a/docs/agreement/mocks.md b/docs/agreement/mocks.md index 0f803df..a849ceb 100644 --- a/docs/agreement/mocks.md +++ b/docs/agreement/mocks.md @@ -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). diff --git a/docs/public/img/console_admin/cluster_ajout.png b/docs/public/img/console_admin/cluster_ajout.png new file mode 100644 index 0000000..45b5242 Binary files /dev/null and b/docs/public/img/console_admin/cluster_ajout.png differ diff --git a/docs/public/img/console_admin/cluster_details_env.png b/docs/public/img/console_admin/cluster_details_env.png new file mode 100644 index 0000000..3f06199 Binary files /dev/null and b/docs/public/img/console_admin/cluster_details_env.png differ diff --git a/docs/public/img/console_admin/cluster_liste.png b/docs/public/img/console_admin/cluster_liste.png new file mode 100644 index 0000000..d8db5b1 Binary files /dev/null and b/docs/public/img/console_admin/cluster_liste.png differ diff --git a/docs/public/img/console_admin/cluster_suppression.png b/docs/public/img/console_admin/cluster_suppression.png new file mode 100644 index 0000000..3881090 Binary files /dev/null and b/docs/public/img/console_admin/cluster_suppression.png differ diff --git a/docs/public/img/console_admin/environnement_creation.png b/docs/public/img/console_admin/environnement_creation.png new file mode 100644 index 0000000..dcfd3c8 Binary files /dev/null and b/docs/public/img/console_admin/environnement_creation.png differ diff --git a/docs/public/img/console_admin/journaux_erreur.png b/docs/public/img/console_admin/journaux_erreur.png new file mode 100644 index 0000000..29f86e2 Binary files /dev/null and b/docs/public/img/console_admin/journaux_erreur.png differ diff --git a/docs/public/img/console_admin/plugin_configuration.png b/docs/public/img/console_admin/plugin_configuration.png new file mode 100644 index 0000000..8f30681 Binary files /dev/null and b/docs/public/img/console_admin/plugin_configuration.png differ diff --git a/docs/public/img/console_admin/projet_detail.png b/docs/public/img/console_admin/projet_detail.png new file mode 100644 index 0000000..13ef6e2 Binary files /dev/null and b/docs/public/img/console_admin/projet_detail.png differ diff --git a/docs/public/img/console_admin/quota_creation.png b/docs/public/img/console_admin/quota_creation.png new file mode 100644 index 0000000..5ae568a Binary files /dev/null and b/docs/public/img/console_admin/quota_creation.png differ diff --git a/docs/public/img/console_admin/recherche_projet.png b/docs/public/img/console_admin/recherche_projet.png new file mode 100644 index 0000000..b7830a0 Binary files /dev/null and b/docs/public/img/console_admin/recherche_projet.png differ diff --git a/docs/public/img/console_admin/zone_creation.png b/docs/public/img/console_admin/zone_creation.png new file mode 100644 index 0000000..86d9627 Binary files /dev/null and b/docs/public/img/console_admin/zone_creation.png differ