Posts from 2019

Using docker-buildx for Multi-architecture Containers

May 07, 2019

When you build a container image, it’s typically only built for one platform (linux) and one architecture (amd64). As the Internet of Things continues to grow, the demand for more arm images increased as well. Traditionally, in order to produce an arm image, you need an arm device to do the build on. As a result, most projects wind up missing arm support.

BuildKit provides emulation capabilities that support multi-architecture builds. With BuildKit, you build container images across multiple architectures concurrently. This core utility backs docker buildx, a multi-architecture build utility for docker. In this post, I’ll discuss why you should produce multi-architecture container images and demonstrate how to use docker buildx to do it.

Read More »

Moving Licenses - Apache 2.0 to MIT

May 02, 2019

Yesterday, I decided to switch the license that I apply to my personal projects. Many open source projects use the Apache 2.0 license. After reading through it a few times, I liked the level of coverage that it provided. It was however a bit wordy in my opinion. These were often simple little side projects that I was hacking on in my free time.

After some discussion with others in the community and a few podcasts, I decided to make a switch. I wanted to preserve a lot of what the Apache license granted, but simplify the wording quite a bit. The MIT license enables many of the same grants, while reducing the verbiage used to describe them. As an Engineer, I understand MIT much more than I understand the Apache license. From discussions, the MIT license often presents a lower barrier to entry when compared to Apache. This was exactly what I was looking for on my side projects.

Read More »

Raspberry Pi Cluster Monitoring

April 21, 2019

In my last few posts, I talked a bit about my at home development cluster. Due to the flexibility of my cluster, I wanted to provide a monitoring solution that was valuable across each technology I use. In this post, I discuss how monitoring is setup on my cluster. I’ll walk through setting up each node, the Prometheus server, and the Graphana UI.

Read More »

Raspberry Pi Cluster Setup

April 12, 2019

Previously, I talked about the different orchestration technologies that I’ve run on my Raspberry Pi cluster. That post was rather high level and only contained details relating to k3s. In this post, we’ll take a more in depth look at my cluster setup and my management process around it.

Read More »

k3s on Raspberry Pi

April 10, 2019

Over the last few days, I’ve been revisiting Kubernetes on my Raspberry Pi cluster. I hope to share what I learned in the process and some of the tooling that I discovered along the way.

Read More »

Easy Steps to a 64bit Raspberry Pi 3 B/B+

March 17, 2019

I was quite surprised to see how under documented installing a 64 bit operating system onto a Raspberry Pi is. Many articles out there talk about needing to compile Linux, which sounds oh-so-pleasant. One day, I stumbled across a 64bit OpenSUSE version that was compatible, but the installation instructions required a Linux OS to be done properly. Since I primarily work on OSX, this presented yet another barrier.

After a lot of searching around, I finally found a straight forward and simple way to do it.

Read More »

gitfs - A FUSE File System

January 30, 2019

During my first employment at Indeed, I cloned every repository down to my machine. This approach worked for a while when the number of repositories was small. As the organization has grown, the solution quickly became unmanageable. While many people do not work across every repository, many are familiar with the pain of setting up a new machine. I wrote gitfs for a few reasons. First, to reduce the time spent setting up a new development environment. Second, to remove the need to figure out where all my projects need to be cloned. In this post, I discuss some challenges faced and lessons learned in writing my first file system.

Read More »