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 de GitLab 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 le moment).
Pour l'assistance à gitlab-forge :
- "Faire une demande d'assistance" sur le portail Architecture et Méthodes
- ou sur le canal ariane #gitlab-forge, si vous voulez partager ou vous faire aider par DAM ou d'autres utilisateurs, pour des problèmes que d'autres peuvent rencontrer par exemple.
Pour de plus amples informations sur GitLab-forge, une documentation 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 - "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 automatiquement owner des sous-groupes qu'il créeras.
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 public est accessible à tout internet sans authentification.
Partenaires externes
Les partenaires externes qui développent des produits ministériels peuvent accéder aux différents outils mis à disposition de la DNUM tels que Gitlab, Taiga, Sonarqube selon 2 conditions qui sont l'authentification et l'accréditation
Voici ci-dessous les 2 méthodes possibles (au choix suivant le niveau d'intégration dans les équipes du ministère).
MÉTHODE 1 : Création du compte par le partenaire externe
-
Etape 1 : Créer son compte sur le portail Cerbère.
Le partenaire externe crée directement son compte professionnel en renseignant son numéro Siren. -
Etape 2 : Demander l'accréditation aux outils en créant un Ticket DAM (portail SPS - Département Architecture et Méthodes).
Dès que le compte cerbère est créé, le responsable "produit" du ministère fait une demande d'accréditation via le portail SPS, en renseignant dans l'objet du ticket : Accréditation à l'outil "XX", l'adresse mail du partenaire externe et l'application concernée (GitLab ou Taïga) -
Etape 3 : S'authentifier sur l'application GitLab (ou Taïga) : le partenaire externe s'authentifie une première fois (obligatoire !).
-
Etape 4 : Inviter le partenaire externe à rejoindre votre projet : En tant qu'agent du ministère vous l'invitez à rejoindre votre équipe sur votre projet depuis l'application concernée (Gitlab ou Taiga).
MÉTHODE 2 : Création du compte par l'administrateur Amédée
Le partenaire externe se voit attribuer un compte dans l'annuaire du ministère (compte "externe" avec Boite Aux Lettres Individuelle (BALI) en i-carre.net).
Ce compte sera automatiquement reconnu dans les outils au lendemain de sa création et peut être utilisé pour les autres applications du ministère, tel que le bureau numérique (BNUM) par exemple.
-
Etape 1 : Demander à votre administrateur Amédée** de votre service : la création d'un compte "externe" (et une BALI en i-carre.net).
-
Etape 2 : S'authentifier sur l'application GitLab (ou Taïga) : le partenaire externe s'authentifie une première fois (obligatoire !).
-
Etape 3 : Inviter le partenaire externe à rejoindre votre projet : En tant qu'agent du ministère vous l'invitez à rejoindre votre équipe sur votre projet depuis l'application concernée (Gitlab ou Taiga).
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 en précisant :
- le nom du groupe correspondant au service du demandeur ;
- ainsi que le propriétaire 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 est autorisé, par défaut, à contenir des groupes/projets publics. Cela reste possible pour les autres groupes après validation des administrateurs GitLab et une demande sur le portail Architecture et Méthodes en précisant les motivations de l'accès public.
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
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.
Caractéristiques actuelles du runner mis à disposition
- Ce runner partagé 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.
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