The trust model of vTPM in Confidential VMs

In a previous post, I explained that the direction most Confidential Computing deployments are converging toward is to reintroduce the TPM abstraction inside the Confidential VM itself. Rather than relying on a physical TPM, the goal is to expose a TPM interface from within the TEE. This design choice is largely pragmatic. It enables a lift-and-shift model for existing operating systems and workloads that already depend on TPMs for measured boot, disk encryption, and remote attestation. At the same time, it preserves the familiar TPM security guarantees while replacing physical trust assumptions with hardware-enforced isolation. ...

January 21, 2026 · 6 min · Gauthier Jolly

The race toward Confidential AI inference

For almost half a decade now, I have been working on Confidential Computing at Canonical. This position has given me a front-row seat to the evolution of Confidential Computing technologies and their applications. One of the most exciting applications is Confidential AI inference, which allows AI models to be hosted and executed in a way that can keep the user’s input data confidential, even from the service provider itself. While Apple is announcing a partnership with Google, to base its own models on Google Gemini and while some might see this as a failure, it is worth noting that Apple Intelligence already has a meaningful legacy. ...

January 18, 2026 · 2 min · Gauthier Jolly

Attestable Immutable Nodes for Kubernetes

Rethinking the Trust Boundary of Kubernetes Nodes Most Kubernetes security mechanisms implicitly assume that worker nodes are trustworthy. In practice, this assumption is weak. The operating systems running underneath Kubernetes are often mutable, difficult to audit, and only loosely tied to what was originally provisioned. Even when containers are well isolated and supply chains are secured, a compromised or drifted node OS undermines the entire stack. A more robust approach is to treat the node operating system as a security boundary, not just a runtime dependency. This is where immutable and attestable operating systems become relevant. By making the OS immutable and cryptographically verifiable, Kubernetes can rely on a foundation whose integrity is provable rather than assumed. ...

January 14, 2026 · 6 min · Gauthier Jolly

Exposing a local web server using Cloudflare Tunnels

Context I often run into this problem: I have a local file on my computer that I want to share with a friend or colleague on the other side of the world. While I could upload it to a file sharing service, it’s can be very annoying to have to upload it somewhere first, especially if it’s a one-off situation and if the file is big. More over, it’s my data and I don’t necessarily want to upload it to a Google or Dropbox server. Similarly, when I’m developing a web application on my local machine, I often want to show it to someone else for testing or feedback. Again, uploading it to a public server can be cumbersome and I don’t want to start dealing with a deployment strategy if I just stated prototyping. ...

December 16, 2025 · 4 min · Gauthier Jolly

Build an AI inference server on Ubuntu

Open source tools like Ollama and Open WebUI are convenient for building local LLM inference stacks that let you create a ChatGPT-like experience on your own infrastructure. Whether you are a hobbyist, someone concerned about privacy, or a business looking to deploy LLMs on-premises, these tools can help you achieve that. Prerequisites We assume here that you are running an LTS version of Ubuntu (NVIDIA and AMD tooling is best supported on LTS releases) and that you have a GPU installed on your machine (either NVIDIA or AMD). If you don’t have a GPU, you can still follow this guide, but inference will be much slower as it will run on CPU. ...

December 13, 2025 · 6 min · Gauthier Jolly

Build an Ubuntu Destkop image with genesis

Intro A few years ago I built a tool called genesis to build images of Ubuntu. The tool has a very basic CLI interface and is written in Python. I was asked recently if I had ever built desktop images of Ubuntu from scratch and had to admit that I had never tried. I decided to give it a go and found the process rather straight forward. Steps First, install genesis in a venv: ...

November 18, 2025 · 2 min · Gauthier Jolly

How I built an Ubuntu archive mirror using Cloudflare

For a while, I wanted to set up an Ubuntu archive mirror using Cloudflare. It felt like a natural idea: the archive is a set of static files that could be easily cached, and Cloudflare is very good at caching files close to users around the world. What is an archive mirror? If you have ever run apt update on Ubuntu, you have used the archive. It is a big collection of files: packages (.deb files) and index files (Packages.gz, Release, etc.) that tell apt what is available. ...

September 25, 2025 · 5 min · Gauthier Jolly

Architecture of a Linux system and boot process

Linux systems may seem complex, but at their core, they consist of two fundamental components: the kernel and a root filesystem. Understanding how these elements interact during the boot process can demystify Linux and provide insight into how your system comes to life each time you power it on. The Two Main Components of a Linux Distribution 1. The Linux Kernel The kernel is the heart of any Linux system. It’s responsible for: ...

April 26, 2025 · 4 min · Gauthier Jolly

Practical Guide To Virtual Networking on Linux

Linux Networking: Bridged and Routed VM Networking Scenario 1: Bridged Networking (Layer 2 Integration) Goal: VMs/containers appear as full LAN peers, get IPs from the LAN’s DHCP, and are reachable directly. Create a bridge interface (br0). Add the physical interface (e.g., eth0) to the bridge. Assign IP or DHCP to br0 only. eth0 should have no IP. Virtual interfaces (e.g., tap0) are also added to br0. Key Commands: 1 2 3 4 sudo ip link add br0 type bridge sudo ip link set eth0 master br0 sudo ip link set br0 up sudo dhcpcd br0 No NAT, no subnetting. Full LAN access. ...

April 23, 2025 · 3 min · Gauthier Jolly

How to install NVIDIA drivers on Ubuntu

Make sure the system is up-to-date This section is important to avoid pulling DKMS NVIDIA drivers during the installation. First make sure your server is up-to-date: 1 2 sudo apt update sudo apt full-upgrade -y If your system needs reboot, reboot it before running: 1 sudo apt autoremove -y Note: You can check if your system needs to be rebooted by checking if this file exists: /var/run/reboot-required. ...

February 12, 2025 · 3 min · Gauthier Jolly