<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://datavirke.dk/</id><title>Datavirke</title><subtitle>Freelance Consultant building reliable infrastructure using Kubernetes, Cloud &amp; Rust.</subtitle> <updated>2026-03-20T16:13:03+01:00</updated> <author> <name>Mathias Pius Stage</name> <uri>https://datavirke.dk/</uri> </author><link rel="self" type="application/atom+xml" href="https://datavirke.dk/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://datavirke.dk/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Mathias Pius Stage </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Contemplating Entity Component Architecture</title><link href="https://datavirke.dk/posts/contemplating-entity-component-architecture/" rel="alternate" type="text/html" title="Contemplating Entity Component Architecture" /><published>2024-08-31T08:00:00+02:00</published> <updated>2024-08-31T08:00:00+02:00</updated> <id>https://datavirke.dk/posts/contemplating-entity-component-architecture/</id> <content type="text/html" src="https://datavirke.dk/posts/contemplating-entity-component-architecture/" /> <author> <name>Mathias Pius Stage</name> </author> <category term="Software Engineering" /> <summary>Ever since discovering the Entity Component System pattern through Bevy a few years ago, I’ve been simultaneously obsessed with it and frustrated with the lack of attention it is getting outside of the game development world. Hopefully with this post (which I have been trying to write since at least May of 2023), I’ll be able to move the attention needle just a little bit in the right directio...</summary> </entry> <entry><title>Bare-metal Kubernetes, Part X: Metrics and Monitoring with OpenObserve</title><link href="https://datavirke.dk/posts/bare-metal-kubernetes-part-10-metrics-and-monitoring-with-openobserve/" rel="alternate" type="text/html" title="Bare-metal Kubernetes, Part X: Metrics and Monitoring with OpenObserve" /><published>2024-05-16T08:00:00+02:00</published> <updated>2024-05-16T08:00:00+02:00</updated> <id>https://datavirke.dk/posts/bare-metal-kubernetes-part-10-metrics-and-monitoring-with-openobserve/</id> <content type="text/html" src="https://datavirke.dk/posts/bare-metal-kubernetes-part-10-metrics-and-monitoring-with-openobserve/" /> <author> <name>Mathias Pius Stage</name> </author> <category term="Bare-Metal Kubernetes" /> <summary>I intended to write this section much earlier, especially after the incident where monitoring would have proven very helpful, but my previous experience configuring my cluster for metrics and log aggregation using a combination of Prometheus, Grafana and Loki was a little lackluster. At the time Loki was a somewhat new product which might have contributed to my impression, but it felt very slu...</summary> </entry> <entry><title>Bare-metal Kubernetes, Part IX: Renovating old Deployments</title><link href="https://datavirke.dk/posts/bare-metal-kubernetes-part-9-renovating-old-deployments/" rel="alternate" type="text/html" title="Bare-metal Kubernetes, Part IX: Renovating old Deployments" /><published>2024-04-24T08:00:00+02:00</published> <updated>2024-04-24T08:00:00+02:00</updated> <id>https://datavirke.dk/posts/bare-metal-kubernetes-part-9-renovating-old-deployments/</id> <content type="text/html" src="https://datavirke.dk/posts/bare-metal-kubernetes-part-9-renovating-old-deployments/" /> <author> <name>Mathias Pius Stage</name> </author> <category term="Bare-Metal Kubernetes" /> <summary>As of writing this, my cluster has been up and running mostly as expected for 300 days! During this time I’ve made an effort to keep Talos and Kubernetes somewhat up to date, as well all the different helm charts and kustomizations running within it, whenever I stumbled on an out of date version. This has worked reasonably well, primarily because of the small scope of the project, but it’d be ...</summary> </entry> <entry><title>Bare-metal Kubernetes, Part VIII: Containerizing our Work Environment</title><link href="https://datavirke.dk/posts/bare-metal-kubernetes-part-8-containerizing-our-work-environment/" rel="alternate" type="text/html" title="Bare-metal Kubernetes, Part VIII: Containerizing our Work Environment" /><published>2023-09-05T08:00:00+02:00</published> <updated>2023-09-05T08:00:00+02:00</updated> <id>https://datavirke.dk/posts/bare-metal-kubernetes-part-8-containerizing-our-work-environment/</id> <content type="text/html" src="https://datavirke.dk/posts/bare-metal-kubernetes-part-8-containerizing-our-work-environment/" /> <author> <name>Mathias Pius Stage</name> </author> <category term="Bare-Metal Kubernetes" /> <summary>Setting up Kubernetes once is not that hard to get right. Where things usually start to go wrong is when the cluster is left to its own devices for extended periods of time. All of a sudden you’re dealing with certificates expiring rendering your nodes unreachable, and your workstation’s package manager has dutifully updated all your cli tools to new versions causing subtle, or even not-so-sub...</summary> </entry> <entry><title>Bare-metal Kubernetes: First Incident</title><link href="https://datavirke.dk/posts/bare-metal-kubernetes-first-incident/" rel="alternate" type="text/html" title="Bare-metal Kubernetes: First Incident" /><published>2023-08-01T08:00:00+02:00</published> <updated>2023-08-01T08:00:00+02:00</updated> <id>https://datavirke.dk/posts/bare-metal-kubernetes-first-incident/</id> <content type="text/html" src="https://datavirke.dk/posts/bare-metal-kubernetes-first-incident/" /> <author> <name>Mathias Pius Stage</name> </author> <summary>I attempted to upgrade Talos from 1.4.6 to 1.4.7 and ended up completely breaking scheduling across my cluster! Here’s how it happened: Attempted to run talosctl upgrade from 1.4.6 to 1.4.7 for single node. Forgot ‘–preserve’ flag which I thought was required when upgrading clusters with rook1 Aborted upgrade (CTRL+C). Node had not yet cordoned, but still went through with attempt. B...</summary> </entry> </feed>
