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.
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.
The CRds that the operator is handling are currently living in these groups and versions.
Property | Value |
---|---|
API group |
|
API version |
|
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
|
Cluster |
When a Cluster object is created:
When a Cluster object is deleted:
|
Proxy |
Manages the deployment and configuration of an Inlets server per Syn Kubernetes cluster. Details tbd |
-
Operator SDK - https://github.com/operator-framework/operator-sdk