🧑‍💻 a blog about coding, devops, and stuff.

  • TIL: One-line list manipulation in Python

    In Python there’s a one-line syntax for iterating over elements of a list. I’ve always found it looked kind-of odd, and as I need to look it up all the time I decided to write a little TIL on this blog about it. There are more powerful one-liners documented on the Python Wiki.

  • Publishing and building a static website on GitHub Pages

    A week ago or so I finally launched a small website I’ve been working on for quite some time: kevin.gimbel.dev/ops – it’s a colourful static website showing some of the technologies I’ve worked with in the past years since I began doing DevOps full time. The website is built with 11ty and published with GitHub […]

  • Back to basics: WordPress!

    If you’re a regular (LOL) on this website you may have noticed that literally everything is different and all old content is gone as well. Sorry about that! I’ve moved my website from a static webpage made with 11ty to a WordPress powered site again because I’ve noticed over the past years that Markdown-based solutions […]

  • Hello, world!

    The classic first blog post. This post marks the move to WordPress. All content before this one is from my old 11ty based website.

  • How to extend and reuse configs in Gitlab CI

    When I began using Gitlab CI the first thing I wanted to know was how to reuse configs. I know that we’ll have changing requirements at work and that we’ll have hundreds of repositories using basically-the-same configurations so I wanted to make sure we’d have a central place to make changes to these. I found […]

  • Replace git URLs in Gitlab CI

    When working with Gitlab as a storage for Terraform or Ansible modules you probably access them using SSH, like git@gitlab.instance:group/project.git. This has the advantage that authentication is done using SSH keys and everybody on your team can access the repositories just like they’d do when cloning on the terminal – no need for entering passwords during […]

  • Proxy websocket connections with Apache2

    How to configure Apache2 to pass through web socket connections Recently I had to adjust an Apache Virtual Host to allow proxying of Web Socket requests to a service running on localhost which would also accept HTTP requests on the same port. The problem The service in question was Loki, the “Prometheus, but for logs” from Grafana. At Synoa we’ve […]

  • Validating variables in terraform

    Finally, terraform can validate input variables! With the 0.13 release terraform introduces input validation, and with the 1.0.0 releases it was stabilized! Before there was no way of validating variables other than checking their length or doing basic checks inside the code, for example in the locals.tf file, and errors with variables mostly came to light during […]

  • Darken and Lighten colors with CSS

    Recreating SASS darken() & lighten() function with CSS variables and calc The technique shown in this post uses the hsl color format in combination with the calc CSS function to calculate darker or lighter shades of a base color. Before we get into the code I want to make sure I did not come up with this, I found the […]

  • First steps with Traefik 2

    A tale of Auto SSL, Basic Auth, and lots of debugging Recently I’ve spent some time at work trying out Traefik 2 and learning about the new concepts like routers and middleware since we’ll use Traefik 2 as part of some new infrastructure. We’ve used Traefik 1 in production at Synoa for the past 3 years. Initially […]


You can follow this blog via ActivityPub at kevin@kevingimbel.de, follow my Mastodon account at @KevinGimbel@fosstodon.org, or subscribe via RSS.