Skip to content

Commit

Permalink
Add clusterclass-related documentation
Browse files Browse the repository at this point in the history
Signed-off-by: Vui Lam <vui@vmware.com>
  • Loading branch information
vuil authored and ankeesler committed Jun 14, 2022
1 parent 8dc533c commit e9b8087
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
8 changes: 8 additions & 0 deletions docs/cli/clusterclass/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# ClusterClass Support

Documentation for cluster LCM using ClusterClass.

## Table of Contents

* [ClusterClass Support](cluster-class-support.md)
* ClusterClass Developer Overview (To be added)
43 changes: 43 additions & 0 deletions docs/cli/clusterclass/cluster-class-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Support for ClusterClass-based LCM

## Intro

The ClusterClass functionality in Cluster API supports the server-side
management CAPI cluster topologies. By leveraging this functionality
not only will we be able to encapsulate common cluster configuration
scenarios at the server end in a reusable fashion, we will also be able
eliminate a significant fraction of client-side processing required to create a
workload cluster today.

## Approach

To introduce ClusterClass in a backward-compatible fashion, all the existing
ytt-base client-side templates are retained. The CLI will accept the legacy
cluster configuratiion file (based on flat key-value pairs) as well as a CAPI
ClusterClass-based Cluster resource as appropriate for the target
infrastructure. The latter is sometimes referred to as the 'CCluster.yaml'

Where possible, legacy configuration will be translated into a CCluster.yaml,
and users will be urged to use the new format where possible in the future.

Existing ytt overlays are retained. New files to support ClusterClass
are introduced in a non-overlapping fashion as separate directories (name
'yttcc' and 'cconly') across all supported target infrastructures.

yttcc/ : contains overlays required to translate legacy config values into
CCluster.yaml. They will be included in an upcoming version of the CLI which
supports ClusterClass-based cluster creation.

cconly/ : contains overlays required configure the ClusterClass and associated
templates themselves. They are included for development purposes for now, and
will eventually not be installed on the CLI host.

The reason for the above is that ClusterClass's and their associate templates
are being assembled as Carvel packages and deployed to the bootstrap cluster
and management cluster through these packages (to enable ClusterClass-based
creation of the management cluster and workload clusters respectively). One can
assume that there will always be a default set of ClusterClass and templates
on each Management Cluster deployed.

Note: To enable the deployment of ClusterClass package on the bootstrap cluster,
kapp-controller is now installed into the bootstrap cluster as well.

0 comments on commit e9b8087

Please sign in to comment.