CfgMgmtCamp 2024 Slides

During FOSDEM of 2024, mere days before the kick-off of CfgMgmtCamp 2024 in Ghent, Apple released a language named Pkl as Apache 2.0 open source.

As a heavy user of Pkl’s Apple-internal progenitor for four years at that point, I was well placed to give the first ever public talk about it, by the gracious request of the organizers - and there was no audience more suited than CfgMgmtCamp for an introduction to such a release!

[Read More]

Ubuntu 20.04 With Root ZFS in AWS

For several years now, I’ve been running all my AWS instances with a recent long-term support edition of Ubuntu server, ZFS as the root file system. Ubuntu 20.04 LTS was released today, so I’ve updated my Packer templates - the original inspiration for the amazon-ebssurrogate builder - to support it!

Ubuntu 20.04 With Root ZFS in AWS

Ubuntu 20.04 has some nice new features, including:

  • ZFS on Linux version 0.8.3,
  • Linux Kernel version 5.4, including io_uring and built-in support for WireGuard,
  • Up-to-date compiler and runtime packages for a variety of platforms.

Since I last updated these templates, HashiCorp have also added a feature to Packer to allow templates to be authored in HashiCorp Configuration Language v2 instead of JSON.

[Read More]
zfs  aws  packer  linux 

Completion of Generated Code in IntelliJ Rust

Recently, I’ve been doing a lot of work with Tonic, a Rust implementation of the gRPC protocol. Like many implementations of gRPC, Tonic generates code from the protocol buffers definitions at build time using the tonic-build crate in a Cargo build script, and by default puts them in the path referred to by OUT_DIR. This has the unfortunate side effect that tooling such as IntelliJ Rust does not see the generated code for the purposes of analysis and completion - something very useful for the verbose generated protocol buffers code - unless you take some additional steps.

[Read More]

CfgMgmtCamp 2020 - Slides

At CfgMgmtCamp 2020, I gave a talk entitled “Terraform Without The Mess”, in which we looked at how the history of features in Terraform affect the way we structure and write our Terraform configuration today, and make opinionated recommendations about how to structure modern Terraform code in a way which makes changes simple, predictable and safe.

[Read More]

HashiConf EU 2019 - CloudInit: The Good Parts

At the 2019 edition of HashiConf EU in Amsterdam, I gave a talk entitled “CloudInit: The Good Parts” - a surprisingly long talk given the subject matter! I’ve had a number of requests for the slide deck, which I’m posting here along with the video from the event.

[Read More]

HashiDays Amsterdam 2018 - systemd: The Good Parts

At HashiDays Amsterdam 2018, I gave a talk entitled “systemd: The Good Parts”, in which I tried to focus on how to use systemd, aimed at practitioners who are committed to a Linux distribution which uses the controversial init system.

The talk was recorded, so I’m posting both the video and the slide deck here.

Video

Slides

As ever, thanks to the HashiCorp team for putting together a fantastic event at a great venue in Amsterdam, and for posting a transcription of the talk!

[Read More]

Windows AMIs With Even Fewer Tears

Some recent image building work I was doing required images based on Windows Server. One of my more popular posts, Windows AMIs Without the Tears, detailed the fraught endeavor of making the WinRM management system work for this purpose, but since then Microsoft have substantially improved the situation by committing engineering effort to porting OpenSSH to Windows.

[Read More]

Building ZFS Root Ubuntu AMIs With Packer

For all applications of importance or significance, we recommend using ZFS. On bare metal servers, ZFS is king of the hill, but on AWS and Linux it is still gaining traction. Data integrity guarantees as well as features such as “instantaneous” snapshots, compression, quotas, and the ability to send/receive datasets make ZFS very compelling. In this post, we’re going to demonstrate how to build from-scratch AMIs booting Ubuntu Linux with a ZFS root file system.

[Read More]
zfs  aws  packer