Home

UPDATE for March 2020: I am now open to job offers for full-time, part-time, contract or freelance work. I am looking to push my Kubernetes-based devops and Linux-based SRE role capabilities even further, but am also open to a change in direction, as long as it involves automating and integrating things. Please contact me if you have any interesting opportunities.

Recent articles

  • Dynamic DNS with external-dns
    This article quickly summarises how I now manage the DNS entry that points to the public IP address of my fibre connection, which is assigned a random new IP every 24 hours or so. This came about from deciding to switch from Route53 to Cloudflare for DNS management. I'd already prepared the destination zones on … Read more
  • Protected: Tangram Vector running in containers
    The purpose of this article is to walk through the README.md I have prepared as a PR for the Tangram project, for whom I have recently developed their Dockerfiles and docker-compose files. I want to do this in a clean room environment, and for this exercise I'm going to use an Azure VM running Ubuntu … Read more
  • Azure CLI can’t find antlr4 python library
    I'm trying to run up a VM on Azure using CLI commands on my Ubuntu 20.04 (Focal) workstation. I'm following the official instructions. On running the 'az vm create' command, I get the following error: The command failed with an unexpected error. Here is the traceback: No module named 'antlr4' Traceback (most recent call last): … Read more
  • Deploying OPNSense to no-name WAN router hardware
    In this article, I will discuss my recent experience replacing an older SOHO WAN router running OPNSense with a newer one. Problem summary. I live and work in a remote area, which does not have the most reliable power and internet connections. I've addressed the intermittent power outages by installing a battery back-up system which … Read more
  • Grant read-only rights to backup user for PostgreSQL
    This one comes up quite regularly, so worthy of note. Whenever an application using Postgres changes or creates tables (i.e. Odoo module updates for example), those tables don't seem to be accessible by the backups user on the next backup run. This is the SQL I use to work around it: GRANT SELECT ON ALL … Read more
  • Managing Kubernetes certificates with Python
    I run into a small stumbling block the other evening while working on my 'site domain manager' project (for want of a better name). This is essentially a REST API running in a daemon service that manages the mappings of domains to websites, and uses 'agents' to automate the configuration via API calls to the … Read more