Skip to content

Latest commit

 

History

History
84 lines (57 loc) · 2.15 KB

explanation.adoc

File metadata and controls

84 lines (57 loc) · 2.15 KB

Explanations

What does the operator do exactly?

The main interaction point with the operator is through the API. The operator’s job is to keep inventory about all the clusters and tenants that are managed using SYN. It will also bootstrap the Vault secrets and Git repositories necessary for SYN to work correctly.

Operator Common

The first iteration is a single Operator consisting of several controllers, sharing CR Go structs as the objects depend on each other. A later iteration could split these controllers into their own Operator if it makes sense then. The Operator will be implemented using the operator-sdk in Go.

Handled CRDs

The CRds that the operator is handling are currently living in these groups and versions.

Property Value

API group

syn.tools

API version

v1alpha1

CRD Description

Tenant

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

GitRepo

Git repository management (CRUD repositories on GitLab, GitHub and Gitea). Lieutenant manages the CR objects and queries the status fields to get the status.

The Operator manages the following objects:

GitRepo

  • Create Git repository

    • By default on git.vshn.net GitLab

    • Supported are GitLab, GitHub and Gitea APIs

    • SSH key delivered by Steward is configured as deploy key

  • Delete Git repository

  • Update Git repository when configuration changes

    • Only SSH deploy key change supported

Cluster

When a Cluster object is created:

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

  • a Proxy object is created to provision an Inlets endpoint for the cluster

When a Cluster object is deleted:

  • All created objects are deleted by ownerReference mechanisms

Proxy

Manages the deployment and configuration of an Inlets server per Syn Kubernetes cluster.

Details tbd