Skip to content

Commit

Permalink
add section on caas manager
Browse files Browse the repository at this point in the history
  • Loading branch information
rgstori committed Oct 7, 2024
1 parent 1409738 commit dbc4b11
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
69 changes: 69 additions & 0 deletions doc/ref_arch/kubernetes/chapters/chapter04.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1207,3 +1207,72 @@ service componenets when the platform service is supported.
- Tracing
- The platform may support any open source tracing technology
- Reference Model :cite:p:`refmodel` Chapter 5.1.5

Kubernetes Cluster Lifecycle Management
---------------------------------------

This section describes the requirements for Kubernetes Cluster Lifecycle Management (LCM). A CaaS Manager is an
architectural block responsible for the automated lifecycle management of Kubernetes clusters. It provides a
centralized platform for performing operations like cluster creation, scaling, upgrades, and destruction. These
guidelines align with the lifecycle management principles outlined in :cite:p:`refmodel` Chapter 9, emphasizing
automation, modularity, and decoupling of deployment and test steps. This adherence ensures consistent and reliable
cluster operations throughout their lifecycle.

As there is no Reference Implementation for this part of the specification, the following table includes examples of
implementation from the Cluster API spec, a subproject of the Kubernetes Cluster Lifecycle SIG :cite:p:`clusterapi`.

.. list-table:: Kubernetes Cluster Lifecycle Management specifications
:widths: 10 20 50 10 10
:header-rows: 1

* - Ref
- Specification
- Details
- Requirement Trace
- Reference Implementation Trace
* - ra2.lcm.001
- Cluster Creation and Destruction
- The CaaS Manager must support automated cluster creation and destruction. This includes provisioning the underlying infrastructure and installing the Kubernetes control plane and worker nodes.
- (ref)
- Cluster API: `Cluster` object
* - ra2.lcm.002
- Cluster Scaling
- The CaaS Manager must support automated cluster scaling. This includes scaling the number of worker nodes up or down based on demand.
- (ref)
- Cluster API: `MachineDeployment` object, scaling feature
* - ra2.lcm.003
- Cluster Upgrades
- The CaaS Manager must support automated cluster upgrades. This includes upgrading the Kubernetes control plane and worker nodes to newer versions.
- (ref)
- Cluster API: `MachineDeployment` object, upgrade strategies
* - ra2.lcm.004
- Cluster Object
- The CaaS Manager API must support a "Cluster" object. Represents a Kubernetes cluster.
- (ref)
- Cluster API: `Cluster` object
* - ra2.lcm.005
- Node Object
- The CaaS Manager API must support a "Node" object. Represents a single machine in the cluster, either a control plane or worker node.
- (ref)
- Cluster API: `Machine` object
* - ra2.lcm.006
- Node Pool Object
- The CaaS Manager API must support a "Node Pool" object. Represents a group of similar nodes with shared characteristics (e.g., machine type, labels).
- (ref)
- Cluster API: `MachineSet` object (for managing homogeneous groups of Machines)
* - ra2.lcm.007
- Node Deployment Strategy
- The CaaS Manager API must support defining a strategy for node deployments, such as rolling updates or blue/green deployments.
- (ref)
- Cluster API: `MachineDeployment` object with rolling update strategies
* - ra2.lcm.008
- Node Health Check
- The CaaS Manager must support mechanisms for monitoring the health of nodes in the cluster and taking appropriate actions (e.g., replacing unhealthy nodes).
- (ref)
- Cluster API: `MachineHealthCheck` object (and integrations with provider-specific health checking)
* - ra2.lcm.009
- Node Initialization Configuration
- The CaaS Manager must support providing initial configuration data for nodes during their creation, such as cloud-init scripts or other bootstrap mechanisms.
- (ref)
- Cluster API: `BootstrapConfig` object (e.g., using `KubeadmConfigTemplate`)

5 changes: 5 additions & 0 deletions doc/ref_arch/kubernetes/refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,11 @@ @misc{k8s-containers-images
url = {https://kubernetes.io/docs/concepts/containers/images/}
}

@misc{clusterapi,
title = {Cluster API docs},
url = {https://cluster-api.sigs.k8s.io/}
}

% Chapter 5 References
@misc{k8s-documentation-ports-and-protocols,
Expand Down

0 comments on commit dbc4b11

Please sign in to comment.