Operator Design

                   +--------------+
                   |Lieutenant API|
                   +-------+------+
                           |
Lieutenant Operator        v
/--------------------------+------------------------------\
|                                                         |
|                 +-----------------+              c1AB   |
|                 |Tenant     cBLU  |                     |
|                 +----+-------+----+                     |
|                      ^       |                          |
|                      |       |                          |
|          +-----------+       +--------+                 |
|          |Belongs to                  |                 |
|          |                            |                 |
|          |                            | Generates       |
|  +-------+---------+                  | Tenant          |
|  |Cluster   cBLU   |                  | configuration   |
|  +-------+---------+                  | Git repository  |
|          |                            |                 |
|          | Generates                  |                 |
|          | Cluster Catalog            |                 |
|          | Git repository             |                 |
|          v                            v                 |
|  +-------+--------+          +--------+-------+         |
|  |GitRepo   cBLU  |          |GitRepo    cBLU |         |
|  +----------------+          +----------------+         |
|                                                         |
\---------------------------------------------------------/

API Group and Version

The CRDs that the operator is handling are living in these groups and versions:

Property Value

API group

syn.tools

API version

v1alpha1

For more information about the CRDs have a look at our API documentation.

CRD Description

A high-level description about the idea behind the objects:

CRD Description

Tenant

When a Tenant is created:

  • a GitRepo object is created to create the tenant configuration repository.

When a Tenant object is deleted:

  • All created objects are deleted by ownerReference mechanisms

Cluster

When a Cluster object is created:

  • a GitRepo object is created to create the cluster catalog configuration repository.

When a Cluster object is deleted:

  • All created objects are deleted by ownerReference mechanisms

GitRepo

Git repository management. Currently supported is GitLab. Support for GitHub and Gitea is planned.

  • Create Git repository

    • SSH key delivered by Steward is configured as deploy key

  • Delete or archive Git repository

  • Update Git repository when configuration changes