Bare Metal provisioning with Plunder
Homepage: https://plndr.io
GitHub: https://github.com/plunder-app/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..
Welcome Plunder..
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
For getting plunder
up and running please follow the quickstart guide https://plndr.io/quickstart
Origin Story
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.
Projects
The plunder
project has a number of sub-projects that all extend the functionality:
plunder
https://github.com/plunder-app/plunder
The 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
https://github.com/plunder-app/pldrctl
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.
cluster-api-plunder
https://github.com/plunder-app/cluster-api-plunder
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
https://github.com/plunder-app/cappctl
The 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.
Future plans
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
pldrctl
to having a release - Refactor the deployment engine
plunder
to improve logging output - Finalise the kickstart configuration in
plunder
- Extend functionality in the
cluster-api-plunder
provider - Grow the community…
Get involved
The blog that details the usage of plunder
is available here => https://plndr.io
If you’re facing any problems then please raise issues or feel free to reach out to me on twitter
Have fun deploying !