Architecture
Overview

Uffizzi Platform Architecture

The following is a high-level overview of the various components that make up the Uffizzi platform.

Open Core Components

The following core components are common to all Uffizzi products, including Uffizzi Cloud, Uffizzi Enterprise, and Uffizzi Open Source. These components are all open source under the Apache License 2.0.


Uffizzi Architecture

Uffizzi API

The Uffizzi API implements the primary REST API for creating and managing ephemeral environments. It is a Ruby on Rails application that is available as a Docker image.
View source code (opens in a new tab)

Uffizzi Controller

The Uffizzi Controller is a smart proxy service that handles requests from Uffizzi API to the host Kubernetes API. It is a Golang application that installs on a host cluster in its own namespace.
View source code (opens in a new tab)

Uffizzi Cluster Operator

The Uffizzi Cluster Operator is a Kubernetes operator (opens in a new tab) for creating fully managed virtual clusters. It is a Golang application that is responsible for:

  • Creating a virtual cluster
  • Installing Helm and Source Controller in the virtual cluster
  • Creating Helm charts when mentioned in the UffizziCluster CRD
  • Exposing Ingress for the virtual cluster to connect
  • Exposing Services from within the virtual cluster
  • Enabling authentication for the Ingresses

View source code (opens in a new tab)

Uffizzi CLI

The Uffizzi CLI is a command line interface for interacting with the Uffizzi API. By default, it is configured to work with Uffizzi Cloud, but can be configured to work with Uffizzi Enterprise or Uffizzi Open Source.

View source code (opens in a new tab)

Uffizzi Cloud and Enterprise Components

The following components are exclusive to Uffizzi Cloud and Uffizzi Enterprise customers.

Role-based Access Control (RBAC)

Uffizzi Cloud and Uffizzi Enterprise support role-based access control (RBAC) for managing access to ephemeral environments. RBAC allows team administrators to create teams and assign roles to team members. Roles include:

  • Owner - Full access to all team resources
  • Admin - Full access to all team resources except for team management
  • Developer - Full access to all team resources except for team management and billing
  • View Only - Read-only access to all team resources

See Role-based Access Control for more information.

Cloud Dashboard

The Uffizzi Cloud Dashboard is a web-based user interface for managing ephemeral environments. From the dashboard, users can create virtual clusters, view deployment and application logs for troubleshooting, and manage their personal or team account.


Cloud Dashboard
Cloud Dashboard Create Team

Enterprise Operator

The Uffizzi Enterprise Operator is part of each Uffizzi Enterprise installation and includes premium features not included in the open-source Uffizzi Cluster Operator, most notably the ability to customize the cluster sleep / wake funtionality.

Control Plane vs. Data Plane

The Uffizzi control plane handles the management of ephemeral environments, including creating and destroying ephemeral environments and managing access control. The control plane consists of the Uffizzi API and its dependencies.

The data plane is responsible for receiving instructions from the control plane and implementing the actual process of creating or destroying ephemeral environments. The data plane is where the actual virtual clusters run and consists of the Uffizzi Controller and Uffizzi Cluster Operator.