🇬🇧 GITLAB 💚 KUBERNETES - ACT 2

GitLab 💚 Kubernetes : act 2

GitLab likes Kubernetes. This is a long story between these two tools. GitLab has been working to integrate Kubernetes into its platform, enabling you to interact with it without leaving the DevOps platform.

I don’t know if you have already seen or read my old blog post https://about.gitlab.com/blog/2022/06/08/configuring-your-cluster-with-kubernetes-integration/ but things have changed.

The certificate integration is an old story, we will never talk about it again. The agent is in constant evolution and we can find new features and fixes in each release of GitLab. More secure, more performant, it’s constantly evolving.

🇬🇧 🦊 GITLAB - DEFINE AND WRITE JOBS’ SPECIFICATIONS

The “specs” attribute?

The “specs” attribute has been introduced in GitLab CI since the release 15.11 of GitLab (as mentioned in this blog post).

This attribute allows you to invalidate CI when one field typed as “important” is missing.

When should I use the specs attribute?

To illustrate one benefit of using this attribute, let me explain with an example. This simple command allows you to deploy a Cloud Run service based on a Docker image called my-image.

🇬🇧 GITLAB - DEFINE AND WRITE JOBS’ SPECIFICATIONS

The “specs” attribute?

The “specs” attribute has been introduced in GitLab CI since the release 15.11 of GitLab (as mentioned in this blog post).

This attribute allows you to invalidate CI when one field typed as “important” is missing.

When should I use the specs attribute?

To illustrate one benefit of using this attribute, let me explain with an example. This simple command allows you to deploy a Cloud Run service based on a Docker image called my-image.

🇬🇧 K6, A LIBRARY THAT WANTS TO BREAK YOUR APPLICATIONS

k6 is an open source tool created by Grafana Labs that allows you to easily execute performance tests written in Javascript.

Installed with apt, dnf, brew, choco or Docker, k6 is available for every type of system or configuration.

My first test

The first step consists of creating a Javascript file, for example _my-first-test.js_. This will contain a function querying the HTTP service you want to test. For example :

export default function () {
  http.get('https://test.k6.io');
  sleep(1);
}

This test can be executed using this command: _k6 run my-first-test.js_. It generates a report in your terminal with some default metrics.

🇬🇧 CLOUD SEED - DEPLOY FASTER WITH GITLAB 🚀

Were you at the Cloud Next in October? This big annual Google event where a lot of new features around Google and its cloud platform GCP are announced. This year, there was one linked to GitLab : Cloud Seed.

⛅ 🌱Cloud Seed ?

What is Cloud Seed? This is a new, open source project launched by GitLab Incubation at the end of 2021 and lead by by Sri Rangan.

The objective of Cloud Seed is very simple. It’s to accelerate deployment of your application from GitLab to Google Cloud Platform. This project was opened first for beta testers, we were less than 100 people to try out this project and give some feedback.

🇬🇧 A NEW GITPOD TEMPLATE FOR GOOGLE CLOUD

📚 My projects on Google Cloud Platform

Some of my projects are deployed on Google Cloud Platform. Mainly in Java, I deployed a lot of functions on Cloud function. This service is so useful for quickly deploying a short function in the cloud. Sometimes I also deploy applications with App engine, it scans your application, detects the language and deploys it without any configuration. Handy for deploying a component without creating and configuring any Docker file. Since 2019, another service has been created, its Cloud Run. This serverless platform allows you to deploy containers easily. Before 2022, I only used it for one test.

DÉVELOPPEURS, FAITES EXPLOSER VOS APIS 🧨

Cet article fait suite à une présentation faite aux Human Talks en septembre 2022. Les slides sont disponibles ici.

Pendant ma mission chez RCA en 2021/2022, j’ai intégré une équipe travaillant sur des API publiques mises à disposition derrière un API Manager, Gravitee. Cette plateforme permet, entre autres, de contrôler et de sécuriser nos APIs. Par exemple, le “rate limit” consiste à limiter le nombre d’appels à une API dans un intervalle de temps donné.

🇬🇧 GITPOD CHEATSHEET

Are you familiar with Gitpod? I offer you a Cheatsheet to discover this awesome tool 🤩

GitPod Cheatsheet

🇬🇧 CREATE AND CONFIGURE YOUR OWN GITLAB RUNNER AUTOMATICALLY ON GITPOD

In this blog post, I will explain why and how I installed a GitLab Runner on a Gitpod workspace 😃

🔎 GitLab & Gitpod

I use GitLab all the time for my personal projects. I can save my code, get history and automate tasks like building or deploying my applications with GitLabCI. If this is your first time hearing about GitLab or GitLabCI, you can discover it by reading 📖 my series of Cheatsheets 😀.

COMMENT JE SUIS ARRIVÉ À DÉVELOPPER EN JAVA SUR LE CLOUD GRÂCE À GITPOD

Les IDE Cloud

Depuis plusieurs années les IDE Cloud font parler d’eux. La première fois que j’ai entendu ce terme et assisté à une démonstration, c’était pour Eclipse CHE, outil créé en 2014 par les équipes Codenvy. Cette démonstration était impressionnante mais de part mes activités du moment, je ne m’y suis pas intéressé davantage. L’utilisation d’un outil annexe pour modifier mes projets GitLab ou GitHub n’a peut-être pas aidé.

L’intégration de Gitpod

Lors de la consultation de projets hébergés sur GitLab, j’ai aperçu dans l’été 2021 un nouveau bouton “Gitpod” apparaître à côté de celui permettant d’ouvrir le Web IDE de GitLab. C’est à partir de ce moment que j’ai pu découvrir et tester une première fois cet outil. Une très bonne première impression !

COMMENT REMERCIER CES CONTRIBUTEURS SUR GITHUB ?

Fin octobre, j’ai initié un projet GitHub pour lister les différentes communautés nantaises. Et les contributions sont rapidement arrivées 💪 🙏 ! Comme dans la plupart des projets open source, le remerciement s’effectue en listant les contributeurs et c’est la moindre des choses que je pouvais faire pour les remercier.

Au lieu de le faire manuellement à chaque contribution et de trouver une représentation graphique sympa, j’ai effectué quelques recherches et je suis rapidement tombé sur ce robot all-contributor. Il permet de lister les contributeurs dans un fichier, par défaut le README.md, avec leur identifiant GitHub et leur photo de profil. Le robot affiche également le nombre de contributeurs sous la forme d’un compteur.

🇬🇧 10 YEARS OF GITLAB 🦊

The 8th of October of this year is a special day for GitLab. It’s the 10th birthday of the first commit!

For this #10YearsOfGitLab day, I decided to write this blog post about my journey with GitLab, and more specifically the GitLab platform.

The beginning

I have known GitLab for more than 5 years -I don’t remember how many years exactly- but simply as a source code manager. Whether in a personal or professional context, my usage was limited to committing source code and retrieving it. At conferences and in blog posts, I had vaguely heard that continuous integration was directly provided by the platform but I had never looked into it.

QUARKUS 2.0

QUARKUS 2.0 IS HERE! : voici le message de la page d’accueil du site de Quarkus.io et qu’est-ce que ça fait plaisir de voir arriver cette nouvelle release !

Quarkus 2 is here

Une version “majeure” ?

Le mot “release” est souvent associé à la notion de version “majeure” contenant un changement important (aussi appelé “breaking change”). Les utilisateurs les redoutent souvent, se demandant si l’effort à adopter et les tests de non-régression seront importants.

INSTALLATION D'UN GITLAB RUNNER SUR UN RASPBERRY PI EN 10 MINUTES

❓ Un runner ?

L’intégration continue de GitLab, plus connue sous le nom de GitLab CI fonctionne avec des runners qui exécutent les pipelines que vous décrivez dans vos projets. Sur gitlab.com, GitLab met à disposition des runners avec cependant une limitation en termes d’utilisation voir ici.

Les runners, développés en Go, peuvent être installés sur n’importe quelle structure que ce soit sur le cloud ou chez vous de façon à avoir totalement la main sur leurs configurations.

COMMENT ORGANISER SON TRAVAIL AVEC GITLAB ?

💡 Comment organiser son travail ?

Vous vous posez souvent cette question autour de votre organisation ? Pour ma part c’est une remise en cause perpétuelle depuis que j’ai commencé à travailler. Notre mode de fonctionnement à un instant donné n’est pas forcément le même à un autre moment. Cela peut dépendre de plein de choses, de notre rôle qui évolue, de l’équipe avec laquelle on travaille, de votre entreprise, de la volonté de faire des choses en parallèle de notre métier, de notre vie privée, etc.

🇬🇧 🦊 GITLAB 13.8 RELEASE

Like each month, GitLab create a new release and this month, it’s the 13.8. And for the first time, i would like to speak about some functionnalities. All the features are detailed in this GitLab blog post.


GitLab CI

In this release, there are many plaisant news features about GitLabCI. You can now edit your pipeline, visualize it and valid it without push your modification, producing a new execution of your pipeline.

UN TECH LEAD ?

Depuis Juin 2016 j’occupe le poste de Tech Lead au sein de la DSI de Pôle emploi. Ce rôle, mené sur deux équipes de développement depuis septembre 2018, peut amener beaucoup de débats sur son utilité ou bien tout simplement sur le périmètre de ses activités.

Un bref article pour partager ma vision des choses, basée sur mon expérience et sur des liens que j’ai trouvés ou échanges avec d’autres Tech Lead.

🇬🇧 🦊 AN ADVICE FOR GITLABCI : USE PARENT-CHILD PIPELINES!

If you have (or not) writed GitLabCI pipelines, let me speak you about parent-child pipelines. It’s something very simple to understand, and very simple to implement in your (future) project. 🥳


Imagine you have several components on your application (at min one front end, one back end). In my exemple i have two front-end and three back-end. My .gitalb-ci.yml file contains approximately one hundred lines, with tests execution, build, create and push docker images on the GitLab registry. I haven’t implemented yet a deploiement on a cloud or one physical machine.

🇬🇧 DEPLOY AN QUARKUS APPLICATION ON GKE WITH GITLABCI

In this post, i would like to show you how take advantage of the power of Quarkus and GitLab CI to easily deploy a Rest API on a Google Kubernetes Engine cluster. You can find the full post (in French 🇫🇷) with the Quarkus explain and configuration here.

🚀 Quarkus

If you don’t know Quarkus, this is a previous post to a workshop (in French 🇫🇷) 🚀 Quarkus.

In this example, i make a simple Quarkus application with the kubernetes extension, which allow to return a 200 HTTP code on this REST resource http://localhost:8080/hello.

🇬🇧 🦊 GITLABCI: EASY BUILD AND DEPLOY AN IMAGE WITH KANIKO

I read differents post about image build and deployment with GitLab CI and i would like want to share one tip : use Kaniko 😁.

To create an image you can use the usual docker command

docker build -t <your image name>

And to push this image, this one :

docker push <your image name>:latest

All built with the docker image, and the dind services :

image: docker:stable
 services:
   - docker:dind

And finally, in your gitlab-ci.yml, you will have this :