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 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.
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.