CNO components

cno architecture picture

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.