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
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).
Accès
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.
Afin de pouvoir travailler en équipe, vous pouvez demander la création d'un groupe, via le même encart "Faire une demande d'assistance" sur le portail Architecture et Méthodes, 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é.
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" dédié aux groupes publics. La visibilité des sous-groupes/projets de pub pourra être interne, privée ou publique.
- un groupe/projet publique est accessible à tout internet sans authentification.
Il est interdit de créer un projet publique 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 individuels. Un script sera exécuté ultérieurement pour enlever la visibilité publique sur les projets individuels.
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 ensuite se connecter à Gitlab-forge le lendemain (synchronisation Cerbère) et vous pourrez ainsi 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 :
- La personne externe doit posséder un compte Cerbere. Elle peut le créer elle-même sur le portail Cerbere.
- L'agent du pôle ministériel effectue une demande d'assistance sur le portail Architecture et Méthodes 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 à la BALF @PND Forge en précisant :
- le nom du groupe correspondant au service du demandeur ;
- 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.
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) 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
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 peut être mis à disposition d'un groupe d'un service d'administration centrale à la demande sur le portail de demandes Architecture et Méthode.
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. 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
Pages en dev
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.
Afin de générer les Gitlab pages, vous pouvez utiliser votre propre runner local ou utiliser le runner de votre groupe.
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.