docs

Host Your Plural Console with Plural Cloud

Let us manage your Plural instance, and connect it to Kubernetes clusters running in your Cloud

Overview

Plural Cloud provides a hybrid deployment model where we take over management of the Plural control plane, including its DB, high availability and other operational requirements, and you register clusters in your cloud to be remotely operated. The Plural Cloud instance works the same as any other Plural instance, described in our Architecture overview. Plural Cloud also supports two main tenancy modes:

  • Shared - your cloud instance is hosted on a set of shared Kubernetes clusters and shared Postgres servers for minimal cost
  • Dedicated - your cloud instance gets a dedicated Kubernetes cluster and database, allowing maximal scalability and isolating your data fully from other tenants

One key differentiator of the hybrid Plural architecture is that we can manage infrastructure in your cloud without requiring us to store your keys on our servers. This is because the Plural control plane stores all declarative state of what needs to be deployed, but the actual action is performed by our agent that runs in either the management cluster or the leaf clusters you'll create in your cloud environment. Those clusters are usually wired with best practice cloud IAM solutions like EKS IRSA or GKE Workload Identity.

In addition, Plural Cloud comes with these key integrations built in by default:

  • Log aggregation - ultimately persisted to Elasticsearch and hosted by us with Logstash preconfigured
  • Scale-out Prometheus - fully compliant Prometheus API, again hosted by us, with a vmetrics agent preconfigured by us
  • AI - we automatically provide a working AI endpoint for your environment
  • GitHub Integration - you can install our GitHub App and immediately use Plural to generate PRs and other SCM-related tasks

These are not terribly hard to provision in our self-hosted version either, but they do need to be managed by the user in each case.

Setup

The Cloud setup flow is relatively straightforward: go to https://app.plural.sh/create-cluster and fill out a wizard that looks like:

Once you select Plural Cloud, you'll see a wizard like the below:

After filling out the wizard, it'll take about 2-3 minutes to instantiate your cluster. From there, you can log into your Plural Cloud instance and connect it to your GitHub and AWS/GCP/Azure infrastructure.

Setup Wizard

After logging in, you should be presented with a wizard something like this:

The setup wizard will cover three main things:

  • Setting up a connection to your SCM provider. The default is to install our GitHub App, which is the easiest overall flow, but you can provide an access token manually as well.
  • Setting up a webhook against your SCM provider. This is used to gather statuses of PRs and for the Pull Request Workflow for Plural Stacks. It is optional and you can skip it if your access token or app install wasn't granted the necessary permissions.
  • Instructing you to run plural up --cloud to set up your initial management cluster.

The "plural up --cloud" command

The plural up --cloud command will initialize a git repository and run a sequence of Terraform commands to connect your cloud environment to Plural Cloud. In particular, it will:

  • Set up an initial GitOps repo with our default, production ready configurations. This includes a ton of useful stuff, including:
    • initializes a service-of-services structure to set up full GitOps management
    • initializes the Plural Service Catalog, with quick deployments and configuration of a lot of useful tools, like a dev + prod EKS fleet, Elasticsearch for logging, scale-out Prometheus with VictoriaMetrics, and Grafana backed by RDS
    • is the assumed repo structure for the How to Use Plural Guide
  • Set up a minimal management EKS Cluster. This is there primarily so Plural Cloud can operate without requiring you to send us any cloud credentials to our servers.

The Terraform and scripting should be entirely self-contained and take about 10 minutes to run to completion (it can be longer for AWS). It's also worth noting that the cloud and region for plural up --cloud can be different from the one used for your Plural instance; your infrastructure is entirely self-contained. We also never ingress to your environment nor capture your cloud keys, a core aspect of the Plural Cloud architecture.

Cleaning Up Your Environment

If you were testing and want to clean up your environment, there are two steps:

  • Remove any infrastructure managed by Plural. This should involve:
    • Delete the Plural Stacks you set up. Be sure to do this via a GitOps process, not the UI, as our operator will recreate the stack if you do not.
    • Delete the services that might also spawn resources, especially those that create load balancers.
    • This is often doable by reverting the PRs we generate to provision that infra.
  • From there, run plural down --cloud.

Next Steps

We strongly recommend you check out our How To Guide once your Console is set up, as it'll get you acquainted with a ton of the features of Plural.