It’s been a while since I started replacing Dependabot with Renovate because of the crazy amount of configuration options. One of the options that stood out to me is the allowPlugins option, which, understandably, is only when self hosting Renovate. But at that point I just got started with it and wanted to make sure it can do all the other things, until now! Photo by Lisha Dunlap from Pexels
With fibers in PHP 8.1 and templates types in Promise v3 the main focus for ReactPHP Parallel v2 is a simpler type safe user facing API. With Promise v3 and Async v4 providing exactly with we need to make this transformation. Photo by Wolfgang Weiser from Pexels
One of the key parts of Building Secure Images with GitHub Actions is unit testing the image just built. While for most of my repositories this has been some bash script in the repo that I copied to the next new repo. Always had the desire to make something more clean than that, this action is the outcome of that desire. So here it is the: TestInfra Action .
One of the main concerns with using LEGO to build enclosures for the nodes is safety. Raspberry Pies can get hot, and no one wants things to go ablaze. So I, after a few iterations, designed the enclosures with plenty of room for moving air around and through the nodes. And in theory that can be stacked on each other. With a big fan on the front to keep it cool.
When I initially started building Docker images only amd64 was relevant, and having a build ⇒ Scan ⇒ Test ⇒ Push cycle was as easy as using docker save and docker load. But with arm64 becoming more and more popular, including with my own home cluster, I needed to add images for arm64 . For a while this meant I was pushing images with -amd64 and -arm64 suffixes before combining them into one…
To power all but the control plane nodes PoE+ is used, while control plane nodes are USB power controllable through Shelly plugs. Both are fully automatable through API’s and will be used by the cluster node autoscaler.
When starting out with k3s my plan was to use my NAS for all the node’s storage needs. Looked at iSCSI, LUN’s, TFTP, fancy DHCP options and everything. But I’ve settled with USB ↔ SATA, M.2, and even an SDCard in one node for storage.
At the core of the cluster, at least at the start of the project, is an 8 port PoE+ switch. The Ubiquiti US 8 150W to be exact. The main goal of that switch is to power the nodes over PoE+. At this point this switch only power the autoscaleable nodes, all 3 control plane nodes are on 2 other switches.
With version 3, react/promise adds template types to communicate what kind of data the promise will hold once resolved. Add react/async 4.2 with https://github.com/reactphp/async/pull/40 to that and return type hints are a thing and both PHPStan and Psalm will understand them. Photo by Kindel Media
Force fully recreating a TerraForm resource is usually ill-advised, however, in some very specific situations this might exactly what you want. In my TerraForm set up I have two of such situations. One piece of software somehow stops working when no configuration is deployed, and the other's Helm Chart tries changing something that isn't allowed to change on a statefullset. The best course of…