Fresh off the lab

The only difference between science and screwing around is writing it down

Posts

  • Quickie: Calico over VMXNET3

    I’ve wasted almost three days of my life over this so I think everyone should know: If your nodes cannot communicate with eachother via TCP or UDP, but ping works, check that you’re not using VMXNET3 interfaces on vmware with Calico as documented in this GitHub issue You need to edit your FelixConfiguration and add…

  • Traefik: Secure IngressRoutes with cert-manager

    In the previous post I have exposed a web application through Traefik Proxy. Unfortunately Traefik does not support, by default, websockets, which my application uses.To enable them we have to add a Header to all requests to our backend, adding a customRequestHeaders Middleware. We do so by specifying a Middleware CRD, or “Custom Resource Definition”,…

  • Kubernetes – Exposing services

    In Part 3 of the “Migrating a Django app to Kubernetes” I’ve written a Helm chart to run a Django application and a few corollary services on Kubernetes, but aside from port-forwarding, it’s still stuck “inside” the box. Time to let it out. Kubernetes keeps applications inside of itself by default, there are a few…

  • Migrating a Django app to Kubernetes – Part 3 – Writing an Helm Chart

    In Part 2 we have seen how helpful Helm Charts can be so… let’s write our own. that was easy.Oh , right, we have to actually _do_ something with it. As always, all code will be available in this repo. Helm Charts start deploying an nginx container. That’s fine so far, as we still don’t…

  • Migrating a Django app to Kubernetes – Part 2 – Backend

    All code (minus passwords) will be published in the associated Github Repo As mentioned in part 1, my application has not one, but three backends! Neither of these applications is “stateless”, so we can’t treat them like cattle and scale them up or down as needed Stateful Sets Kubernetes introduces the idea of Stateful Set…

  • Migrating a Django app to Kubernetes – Part 1

    Migrating a Django app to Kubernetes – Part 1

    At my current workplace I have been “bestowed” the development and upkeep of an internal tool – Metamonitor. Since our Managed Services team has a lot of customers, each with their own monitoring system, an ex-colleague had built (and I’ve since completely rewritten and expanded) a Django application against which monitoring systems fire webhooks, centralizing…

  • Streaming Telemetry on Cisco IOS-XE

    Streaming Telemetry on Cisco IOS-XE

    Since we already have a TIG stack up and running we might as well do something fun with it. Ever heard of streaming telemetry?No?Would you like to? We no longer have to poll network devices for thousands of data points every few seconds to monitor them, we can just have them report back to us…

  • Writing an Ansible module

    Writing an Ansible module

    Another one? There’s so many! Sure, but did you know my Python library netwalk has support for configuring spanning-tree on Cisco switchports and Ansible does not? Someone should do something about it.Anyone?Fine, I’ll do it myself. In this post, I truly have absolutely no idea what I’m doing.And I can’t wait to begin. Ansible galaxy…

  • User analytics with TIG stack

    User analytics with TIG stack

    If you’re reading this post, you’re being tracked.Don’t worry! In this article I’ll explain you exactly how, much better than a vague “privacy policy”. In this article we will learn to configure Telegraf, influxDB and Grafana to collect and parse json-formatted Nginx logs What’s a TIG? TIG stands for Telegraf, InfluxDB, Grafana, and we’re going…

  • Migrating to Fedora – programmatically, part 1

    Migrating to Fedora – programmatically, part 1

    As mentioned in my last post, I’ve decided to try Fedora Linux because of its better compatibility with Podman. What best way to try it than reinstalling your home server?But this time I want to do it right. I want to do it with automation. My home server runs several services: I plan to set…