Terraform Pipelines with GitLab CI

Gitlab-CI is awesomelishiously simple. Let’s assume you have a Terraform Gitlab project with a folder structure like mine: README.md .gitignore terraform │ main.tf │ outputs.tf └──variables.tf You can find a .gitignore example here. Since we can provide our credentials via environment variables, the provider can look like: provider "aws" { version = ">= 2.28.1" } In the Gitlab project page, go to “Settings” > “CI/CD” > “Variables”, and set the following variables:...

<span title='2020-03-16 07:26:43 +0000 UTC'>March 16, 2020</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;243 words&nbsp;·&nbsp;Joost

Deploy to ECS Fargate with Jenkins

In this post I demonstrate a simple container deployment setup; a Jenkins pipeline to Elastic Container Registry (ECR) and Fargate on Elastic Container Service (ECS). I assume you have Jenkins running, with a pipeline and Git repo webhook tied to it. Besides the default Jenkins plugins, you’ll need the Pipeline Utiliy Steps. Also I assume you already have a ECR repository, a ECS Fargate cluster and an AWS service account with credentials....

<span title='2020-02-24 16:11:54 +0000 UTC'>February 24, 2020</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;394 words&nbsp;·&nbsp;Joost

Affordable GKE cluster

With any project, personal or for clients, I develop and build applications in Docker containers; so it would be really convenient to run these as containers in production. Usually I’ll spin up a small Ubuntu VM (GCP/Azure/AWS/Digital Ocean) and install Docker manually. I would love to run everything with Kubernetes as a container orchestrator, but the costs of such a cluster for personal usage seems rather high. Until I found this article by Remko Seelig, using Kubernetes on Google Cloud with preemptible nodes, which is about half the price of regular instances....

<span title='2019-12-02 04:07:47 +0000 UTC'>December 2, 2019</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;489 words&nbsp;·&nbsp;Joost

Nginx-Ingress with cert-manager and Let’s Encrypt

I was happy with Helm when a far-more-experienced-Kubernetes-guy told me I should not use Helm because Tiller is unsafe and some other reasons. Now I follow the method of Tobias Bradtke, with the advantage of declarative application management; while I keep one cluster-definition in one Git repository. update: The most apparent change of Helm 3 is the removal of Tiller, which makes the templating as shown here less relevant...

<span title='2019-09-09 04:07:47 +0000 UTC'>September 9, 2019</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;954 words&nbsp;·&nbsp;Joost

Python Django with Docker and Gitlab CI

For a project I was specifically asked to build an API using Python Django. So, my first starting point was to google “django cookiecutter” which immediately brought me to this amazing cookiecutter project. What I am going to demonstrate here is how to quickly setup the project (for the sake of completeness) and use Gitlab Continuous Integration to automatically unit test, run linters, generate documentation, build a container and release it....

<span title='2019-05-19 04:07:47 +0000 UTC'>May 19, 2019</span>&nbsp;·&nbsp;5 min&nbsp;·&nbsp;985 words&nbsp;·&nbsp;Joost