#+TITLE: K8s concepts review #+AUTHOR: Adam Mohammed #+DATE: September 18, 2023 At one of the meetings I brought up how similar nano-metal felt to a collection of K8s specifications that make standing up and managing K8s clusters easier. In this document I'll cover the following topics at a high level: Cluster API, CNI, CCM, and CSI. First is the Cluster API, this came about as a means for creating and managing kubernetes clusters using kubernetes it self. The cluster API allows an operator to use a so-called "management cluster" to create other K8s clusters known as "Workload clusters." The cluster API is NOT part of the core K8s resources, but is implemented as a set of custom resource definitions and controllers to actually carry out the desired actions. A cluster operator can use the cluster-api to create workload clusters by relying on 3 components: bootstrap provider, infrastructure provider, and the control plane provider. Nanometal aims at making provisioning of bare metal machines extensible and scalable by enabling facilities to carry out the desired operations requested by the EMAPI. We can think of the EMAPI as the "management cluster" in this world. What Metal has today, maps well to the infrastructure provider, since all the cluster-api has to do is ask for machines with a certain configuration and the provider is responsible for making that happen. I think for this project a bulk of this work is figuring out how we make the infrastructure provider out of our existing components, but let's put that aside for right now and consider the rest of the components. The bootstrap and the control plane providers are concepts that also seem important to our goal. We want it to be simple for us to enter a new facility and set up the components we need to start provisioning hardware. The bootstrap provider, in the cluster-api concepts turns a server provisioned with a base OS into an operating K8s node. For us, we probably would also want some process which turns any facility or existing datacenter, into an equinix metal managed facility. Once we know about the facility that we need to manage, the concept of the control plane provider maps well with the diagrams from Nanometal so far. We'd want some component that installs the required agent and supporting components in the facilty so we can start to be able to provide metal services there.