Déployer votre image de container sur OpenShift avec GitLab CI/CD
Ce matin vous avez créé votre image de container, il est maintenant temps de la déployer sur votre cluster OpenShift !
Déployer directement l’image sur OpenShift [Challenge 2.1] Beginner
Utilisez la perspective "Developer" de votre console OpenShift pour déployer votre image.
Vous pouvez utiliser le projet "default" pour cette étape.
Ajouter également la variable d’environnement PING avec la valeur DIOD.
Profitez en pour vous familiariser avec les objets OpenShift (POD, Deployment, Service, Route …).
Déployer l’application sur OpenShift avec GitLab CI/CD [Challenge 2.2] Advanced
Pour ce challenge, créer le projet "diod" sur votre cluster OpenShift.
Avant de pouvoir utiliser GitLab avec OpenShift il faut que vous installiez un "GitLab runner" sur OpenShift. Le runner est fourni par l’intermédiaire d’un Operator. Il va falloir que vous exploriez votre cluster pour trouver comment l’installer.
| Il y a 2 versions différentes de l’opérateur (1 certifiée Red Hat et 1 version communautaire). Nous avons rencontré un problème avec l’opérateur certifié (en cours de résolution côté Red Hat) et il faut donc installer l’opérateur "Communautaire". |
N’oubliez pas de créer un secret pour le runner avant de le déployer. Pour faire cela vous devrez récupérer le token dans la partie Settings > CI/CD > Runners de votre projet GitLab. Pour créer le secret, utilisez le manifest suivant (celui de la documentation étant mal formaté) :
apiVersion: v1
kind: Secret
metadata:
name: gitlab-runner-secret
type: Opaque
stringData:
runner-registration-token: LE_TOKEN_GITLAB
Le runner devra être déployé dans le namespace "diod".
Une fois installé le GitLab runner, vous allez devoir créer un pipeline (.gitlab-ci.yml) pour builder l’application et le pousser vers OpenShift (qui va s’occuper de containeriser l’application et faire un déploiement 'rolling'). Il y a un .gitlab-ci.yml déjà présent dans le repo pour vous mettre en route, mais n’hésitez pas de le modifier. Les jobs auront besoin des droits corrects pour pouvoir manipuler votre projet OpenShift. Voici un exemple de comment configurer le RBAC si votre runner tourne dans le même projet (diod) que l’application:
oc policy add-role-to-user edit system:serviceaccount:diod:default -n diod
clusterrole.rbac.authorization.k8s.io/edit added: "system:serviceaccount:diod:default"
Preuves à fournir
-
[Challenge 2.2.1] Screenshot de l’Operator installé
-
[Challenge 2.2.2] Screenshot de GitLab CI/CD qui montre le Runner qui tourne sur OpenShift s’est connecté à GitLab
-
[Challenge 2.2.3] L’URL de votre repo GitLab qui contient le pipeline (qui a bien évidemment réussi)
-
[Challenge 2.2.4] Screenshot des ressources k8s générées