miniJen is alive!
The Jenkins multi-architecture CPU instance
What is that contraption?
Nope, it’s not a robot of some sort, it won’t move by itself. It’s not Cerebro from Professor Xavier; no, it can’t fly either. What you’re looking at is a Jenkins “cluster” or “instance”. It is composed of a controller (the “brain” or conductor) and three agents (the workers or musicians if we continue a little further with the metaphor).
During FOSDEM, we displayed the
aarch64 Jenkins controller dashboard on an another computer screen using the same Wi-Fi network.
This Jenkins instance was featured in the Hackaday blog post about FOSDEM.
These boards are not microcontrollers, they are miniature computers running GNU/Linux, like the infamous Raspberry Pi.
The controller runs on a NanoPi R5S, sold as a router (thus the three RJ45 connectors).
It’s a 4GB
armv8) 4 cores running friendlyCore, a distribution from the manufacturer (friendlyElec) on a 5.10.x kernel.
The smallest board is a 4 cores
arm32 agent with 512MB of RAM running Armbian with a 5.10.x kernel too.
It’s also a board coming from the friendlyElec manufacturer, the NanoPi Duo2.
The pink board next to the
arm32 board is a
RISC-V board running Armbian with just 1 core, 1GB of RAM and a 6.1.x kernel.
It’s a MangoPi MQ-Pro from MangoPi, one of the first
RISC-V boards available.
The latest board just next to the
RISC-V board with a slightly different shade of pink is an
aarch64 board also from MangoPi.
It is a 4 cores agent with 1GB of RAM running a fork of Armbian with kernel 5.16.x. It’s a MangoPi MQ-Quad.
Don’t try to fool me, there are no cables between the boards!
The boards all have Wi-Fi, and they are all connected to the same Wi-Fi network, provided by a router or my phone, depending on the location.
You can spot their small Wi-Fi antennas hanging in the first pic, except for the router which has no integrated Wi-Fi (it uses a USB Wi-Fi dongle you can see in the pic).
One day, the R5S controller will also be a router for miniJen, but for now, it’s just a Jenkins controller.
How come the controller can contact and control the agents? We’re not using IP addresses, but hostnames ending in
.local, thanks to the Avahi daemon.
What is that big box with cables?
These boards are powered thanks to a Pine64 power supply. Most of the time, you can see they don’t use much current.
3D printed parts
The frame looks strange, I know. I wanted to use a torus because it’s a cool-looking shape, and tentacles because it’s even more cool-looking than a torus.
It has been designed thanks to openSCAD, an … open-source computer-aided design tool & language (yes, there is such a thing as 3D Design as code), and printed at home on a printer running an open-source firmware, Marlin.
Should you want to replicate this at home, you can find the source code on my GitHub.
Genesis and near future
I have made a few live streams during the build of miniJen, and should do some more for the upcoming modifications. I also have a few videos on the same channel about Jenkins and other boards, so don’t hesitate to have a look.