Skip to content
Snippets Groups Projects
Commit 799de8be authored by Pascal.BASTIEN's avatar Pascal.BASTIEN
Browse files

Merge branch 'release/v1.1.0'

Sync sur master
parents 68bb96a4 e0f0158f
No related branches found
No related tags found
No related merge requests found
# gitlab-forge.infos
# Page d'information sur gitlab-forge
Cette page permet de vous informer des fonctionnalités actuellement en production ainsi que les procédures si vous avez besoin d'un espace.
N'hésitez pas à proposer un merge request si vous voyez des erreurs ou discuter de Gitlab sur le canal ariane [#gitlab-forge](https://ariane.din.developpement-durable.gouv.fr/channel/gitlab-forge)
Gitlab-forge est mise à disposition des services du ministère. La version installée est indiquée sur l'en-tête du canal.
Gitlab-forge est accessible à partir d'intranet ainsi qu'à partir d'internet en https (aucun accès en ssh).
Pour de plus amples informations sur GitLab-forge, une [documentation](https://snum.gitlab-pages.din.developpement-durable.gouv.fr/dam/gitlab-forge-doc/) décrivant cet éco-système est consultable pour les membres de GitLab-forge. Cette documentation est mise à jour avec les évolutions de cette plate-forme.
# Accès
## Agent du ministère
Tous les agents du pôle ministériel ayant une adresse en @developpement-durable.gouv.fr ou @i-carre.net peuvent accéder à Gitlab-forge (à l'aide de l'identifiant et mot de passe de la messagerie) et y créer des projets individuels sous leur profil.
**Il est interdit de créer un projet public ou des GitLab Pages sous votre profil individuel GitLab.** Dans ce cas, l'URL est publiée avec votre nom de compte et n'est donc pas pérenne. Par ailleurs, Gitlab-forge n'est pas destiné à publier des projets personnels, ni des GitLab Pages individuels. Un script automatique est exécuté réguliérement pour enlever la visibilité publique sur les projets individuels, ainsi que les Gitlab Pages individuelles.
### Accés aux groupes GitLab
Pour rejoindre un groupe ou projet GitLab existant, il faut demander au gestionnaire de groupe ou projet GitLab de vous ajouter dans celui-ci via le menu (*Group information | Project information - members*) **après** que vous vous soyez connecté une première fois à GitLab (sinon le gestionnaire ne verra pas votre compte utilisateur). *Note*: répondre aux invitations par mail ne peut pas fonctionner car les comptes locaux GitLab sont désactivés.
S'il n'y a pas encore de groupe GitLab correspondant à votre service, afin de pouvoir travailler en équipe, vous pouvez en demander la création, sur le [portail Architecture et Méthodes](https://portail.centre-serveur.din.developpement-durable.gouv.fr/projects/demande-architecture-et-methode) - *"Faire une demande d'assistance"*, et indiquer obligatoirement :
- la motivation de cette création ;
- le nom du groupe correspondant au service du demandeur ;
- et le *owner* du groupe (l'administrateur) qui aura la possibilité de créer des sous-groupes ou projets au sein de ce groupe ainsi que les permissions. **L'administrateur doit appartenir au service créé, et doit transmettre un accord écrit de la part du responsable hiérarchique de ce service**. Cet administrateur devient alors responsable du fonctionnement de son groupe.
*Note* : pour être administrateur d'un groupe racine (tel qu'une direction par ex.), la demande devra toutefois être validée par la hiérarchie du niveau approprié. Dans ce cas, le responsable GitLab de ce groupe sera *Maintainer* et sera donc owner des sous-goupes crées.
Les groupes et projets peuvent être internes ou privés :
- un groupe ou projet interne est lisible par tous les agents pouvant se connecter à Gitlab-forge ;
- un groupe ou projet privé ne sera accessible qu'aux membres de celui-ci.
A votre demande, nous pouvons également créer un sous-groupe du **groupe "[pub](https://gitlab-forge.din.developpement-durable.gouv.fr/pub)" dédié aux groupes publics**. La visibilité des sous-groupes/projets de "pub" pourra être interne, privée ou publique.
- un groupe/projet public est accessible à tout internet sans authentification.
## Personne externe
Pour qu'un agent externe puisse accéder à votre groupe/projet, vous devez demander à votre administrateur Amédée de lui créer un compte externe (et une BALI en i-carre.net ) pour cela.
Cet agent pourra se connecter à Gitlab-forge **à partir du lendemain** (synchronisation Cerbère) et vous pourrez **ensuite** l'ajouter en tant que membre d'un groupe ou d'un projet.
Sans compte Amédée, une demande **motivée** d'accès d'une personne externe peut **éventuellement** s'effectuer par l'intermédiaire d'un agent du pôle ministériel. Pour cela :
1. La personne externe doit posséder un compte Cerbere. Elle peut le créer elle-même sur le [portail Cerbere](https://authentification.din.developpement-durable.gouv.fr/authSAML/connexion.do).
2. L'agent du pôle ministériel effectue une demande d'assistance sur le [portail Architecture et Méthodes](https://portail.centre-serveur.din.developpement-durable.gouv.fr/projects/demande-architecture-et-methode) afin qu'un administrateur GitLab valide ce compte cerbère.
## Accès public
Si vous devez publier/partage un groupe ou projet public sur internet sans authentification, vous devez en faire la demande sur le [portail Architecture et Méthodes](https://portail.centre-serveur.din.developpement-durable.gouv.fr/projects/demande-architecture-et-methode) en précisant :
- le nom du groupe correspondant au service du demandeur ;
- ainsi que le owner du groupe (l'administrateur) qui aura la possibilité de créer des sous-groupes ou projets (public, interne ou privé) au sein de ce groupe.
Seul le groupe racine [/pub](https://gitlab-forge.din.developpement-durable.gouv.fr/pub) est autorisé à contenir des groupes/projets publics.
# Sauvegardes
Gitlab-forge est sauvegardé une fois par jour avec une rétention d'une semaine sur le BaaS (stockage objet fournis par DIS/GIC).
Plus précisement, il y a une sauvegarde par jour ouvert et une sauvegarde le premier week-end du mois.
**La restauration consiste à restaurer le serveur complet !**
**Il n'est pas possible de restaurer à la carte** : un groupe ou projet supprimé par mégarde par exemple.
Par ailleurs, les runners et les pages ne sont pas sauvegardés. Ceux-ci pouvant être relancés.
# Fonctionnalités
## Dépôt git
Le dépôt est accessible en `https` uniquement. Les utilisateurs doivent créer, puis utiliser [un jeton (token)](https://gitlab-forge.din.developpement-durable.gouv.fr/-/profile/personal_access_tokens) qui sert de mot de passe pour le client git :
- login : *login Gitlab-forge* (indiqué en haut à droite lorsque vous êtes connecté) ;
- mot de passe : *token* que vous aurez soigneusement noté (s'il est perdu vous pouvez en créer un autre et résiler l'ancien).
## Container Registry
Le registry de Gitlab-forge est mis à disposition sur _intranet_ et _internet_.
L'URL est affichée dans le menu du projet : *Packages et Registries - Container Registry - CLI Commands*
Note: Pensez à activer le nettoyage des images de vos projets dans le menu du projet afin de préserver l'espace disque: Settings -> Clean up image tags -> Clean up image tags.
**Merci d'y faire le ménage réguliérement** afin de ne pas saturer inutilement le disque du serveur et de veiller à créer des images minimalistes, dans la mesure du possible, pour ne pas saturer rapidement le serveur.
## Runner
Si vous disposez déjà de votre propre runner local ou comptez disposer de votre propre runner, vous pouvez le connecter à Gitlab-forge.
Un runner unique partagé est mis à disposition des utilisateurs n'en disposant pas dans leur groupe. Pour l'utiliser, il faut activer la
fonctionnalité CI/CD et activer le runner *gitlab-runner-global-selfservice* dans les paramètres de votre projet.
De même, un runner dédié peut être mis à disposition d'un groupe d'un service d'**administration centrale** à la demande sur [le portail de demandes Architecture et Méthode](https://portail.centre-serveur.din.developpement-durable.gouv.fr/projects/demande-architecture-et-methode).
### Caractéristiques actuelles du runner mis à disposition
- Runner en mode EXPÉRIMENTAL car hébergé sur une instance ECO3 qui n'est pas de la production ;
- Actuellement, il se base sur un [Kubernetes executor](https://docs.gitlab.com/runner/executors/kubernetes.html). Il permet donc de lancer des builds depuis une image de votre choix, mais ne permet pas de faire du Docker-in-Docker ;
- Pour construire une image, vous pouvez néanmoins utiliser kaniko ou podman. Des exemples d'utilisation sont disponibles sur le projet [Build Containers](https://gitlab-forge.din.developpement-durable.gouv.fr/snum/dam/diverstests/build_containers).
## GitLab Pages
Les GitLab pages sont **opérationnelles et en https sur internet**.
L'accessibilité des pages est déterminée au niveau de chaque projet et suivant sa nature (public, interne ou privé) du projet. Il devient alors possible de rendre les pages accessibles à tous ou seulement si on est identifié sur Gitlab-forge ou uniquement des membres du projet.
Les Gitlab pages sont générées par un runner.
## Dependency proxy
Vous pouvez activer et utiliser la fonction `Dependency Proxy` pour votre groupe, ce qui évite de multiples téléchargements de la même image sur Docker Hub, à chaque exécution de runner.
Note: Pensez à activer le nettoyage du cache du Dependency Proxy dans vos groupes afin de préserver l'espace disque: Packages & Registries -> Storage settings -> Clear the Dependency Proxy cache automatically
Pages d'informations sur gitlab-forge
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment