Bare Metal provisioning with Plunder
I’ve been wanting to announce this for a while, but between my poor quality code, poor quality documentation and getting it “greenlit” by
$employer it has just been developed quietly in the background. There is still a long way to go, but the project has reached a state that i’m happy with..
The name is pretty terrible, but given the original purpose of this was to automate the deployment of Docker Swarm and Kubernetes on bare-metal I opted for something that at least had a nautical theme to it.
The main purpose for creating this was:
- Simplify the tooling
- Ease setting up the environment
- Ease automation
- Add an abstraction layer (API) to ease higher level tooling interaction with bare-metal
As with most open source projects the project stems from having to help people get things deployed on bare-metal platforms and thinking “How can things be this bad … still”. From challanges getting all of the constituent parts up and running to having to script various bits in a vain attempt to ease and automate it struck me how fragmented and terri-bad things still were.
I also looked at some of the new alternative newer tooling but issues in air-gapped environments to just how complex the initial set up was also put me off. Not to say that my attempt is much better, but the aim has always been to around making things quick and simple.
plunder project has a number of sub-projects that all extend the functionality:
plunder sub-project contains the API-driven deployment server that exposes all of the services required in order to deploy Operating Systems and platforms onto bare-metal servers.
pldrctl is the CLI that interacts with
plunder over a network connection, allowing remote administrators to manage deployments on remote servers. The
pldrctl tool also allows remote execution on newly deployed servers along with collecting logs of deployments.
The Cluster API provider implementation that allows a Kubernetes cluster to deploy additional (or guest) Kubernetes clusters on bare-metal. For details of using the
cluster-api-plunder provider please follow the details here => https://plndr.io/cluster-api/
cappctl tool is used to seed the first Kubernetes server in a brand new environment, it would typically be used to deploy the the master kubernetes cluster that the Cluster-api provider would then be deployed upon for all guest cluster deployments.
There is no concrete roadmap for Plunder at this current point, mainly a list of goals as I attempt to mature the project.
- Move the CLI
pldrctlto having a release
- Refactor the deployment engine
plunderto improve logging output
- Finalise the kickstart configuration in
- Extend functionality in the
- Grow the community…
The blog that details the usage of
plunder is available here => https://plndr.io
Have fun deploying !