rackhd-updated.pngRackHD is a technology stack for enabling automated hardware management and orchestration through cohesive APIs. It serves as an abstraction layer between other management layers and the underlying, vendor-specific physical hardware. Essentially, it makes bare-metal data centers easier to manage from a deployment and configuration perspective.

Out-of-the-box RackHD does not include a command line interface (CLI). CLIs are critical to system administrators who want to gain quick insights into an application and enable more powerful behavior through scripting. Since {code} already hosts golang bindings via gorackhd, it seemed like a natural fit to pair gorackhd and Cobra to kickstart a simple, cross-platform RackHD CLI.

RackHD CLI is still in its infancy – we are only on version 0.1.0. This release lays the groundwork for a project that is easy to contribute to and expand on. Current capabilities of the RackHD CLI are listing RackHD nodes, SKUs and tags. Nodes can be tagged with arbitrary labels and the list of nodes can be filtered based on tags.

bash-148836_960_720.pngProducing RackHD CLI enabled Travis Rhoden, a {code} team member, to start a fun little side-project that integrated RackHD and Kubernetes with “kube-up.sh”. This script is a developer-oriented tool for creating new Kubernetes clusters on a variety of providers, such as GCE, AWS, or Azure. Due to its nature as a BASH script, adding support for RackHD into kube-up.sh required a CLI that could allocate new nodes for a Kubernetes cluster. The RackHD driver for kube-up.sh is located here in GitHub. The kube-up.sh tool has since been deprecated in Kubernetes, but this was still a useful exercise to show the potential of a RackHD CLI.

We at {code} believe the allocation and consumption of compute resources should be easy, regardless of whether those resources are virtual, cloud or bare-metal in your own data center. The RackHD CLI is another tool that enables developers to interface with bare-metal machines in much the same way they would with nodes from a cloud provider. Get started using RackHD CLI by deploying a Vagrant instance of RackHD and use the RackHD CLI to get information and while you’re at it, don’t forget to contribute!

And if you’re curious about past projects with RackHD, check out the RackHD Machine Driver and a home lab.