CNO components

CNO is an open source project mainly made up of several components and divided into:
- A Control Plane
- A Data Plane or CNO HUB
- A Command line interface
Control Plane
The control plane includes:
- The CNO UI
- The CNO API
- The CNO Database
- The CNO IAM
- The CNO Broker
- The CNO Notification
CNO API
The API module is the central component of the platform. It powers the CNO console, as well as the CNO client. The APIs provided are RESTful, HTTP JSON-based, and secured using TLS.
CNO UI
CNO provides a user interface to perform onboarding actions for users and manage clusters.
CNO Database
CNO uses an SQL database to store the different objects it manages.
CNO IAM
There is an IAM module to handle users authentication and management for the CNO platform.
CNO Broker
The API and the CNO cluster Agents communicate using a message broker, so that actions can be performed asynchronously.
CNO Notification
This module helps handle every notification actions needed on the CNO platform. It provides RESTful, HTTP JSON-based and TLS secured APIs.
Dataplane
The data plane has :
- The CNO Agent installed in each kubernetes Cluster
- The CNO Onboarding Operator
- The CNO CD Operator
CNO Onboarding Operator
The Onboarding Operator is the controller that handles the lifecycle of the CNO Custom Resources on the managed Cluster.
CNO CD Operator
CNO offers Continuous Deployment operations for users through the CD Operator. This operator handles the Custom Resources related to the CD actions provided by CNO.
CNO Agent
The Agent is the component responsible for taking instructions from the API, through the broker, and performing the necessary actions, like CNO Custom Resources creation on the managed cluster. The agent must be present on the cluster managed by CNO.
Command Line Interface
CNO CLI(cnoctl)
The CNO command-line tool, cnoctl, allows users to perform actions on the CNO platform.