Skip to content

Commit 6d36269

Browse files
Docs for Plural Cloud (#486)
Make docs changes to highlight and further explain benefits of Plural Cloud, and guide users to it as the default.
1 parent 979f81c commit 6d36269

File tree

11 files changed

+119
-24
lines changed

11 files changed

+119
-24
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ yarn-install: .PHONY
99
web: ## runs the docs site locally
1010
yarn dev
1111

12+
routes:
13+
yarn generate:route-index
14+
1215
sync-docs: sync-console-crd-docs sync-operator-crd-docs sync-liquid-docs
1316

1417
sync-console-crd-docs:

generated/routes.json

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@
2525
},
2626
"/getting-started/first-steps": {
2727
"relPath": "/getting-started/first-steps/index.md",
28-
"lastmod": "2025-03-12T14:59:41.000Z"
28+
"lastmod": "2025-07-14T14:28:27.000Z"
2929
},
3030
"/getting-started/first-steps/cli-quickstart": {
3131
"relPath": "/getting-started/first-steps/cli-quickstart.md",
32-
"lastmod": "2025-05-08T12:32:16.000Z"
32+
"lastmod": "2025-07-14T14:28:27.000Z"
3333
},
3434
"/getting-started/first-steps/existing-cluster": {
3535
"relPath": "/getting-started/first-steps/existing-cluster.md",
3636
"lastmod": "2025-03-27T19:09:28.000Z"
3737
},
3838
"/getting-started/first-steps/plural-cloud": {
3939
"relPath": "/getting-started/first-steps/plural-cloud.md",
40-
"lastmod": "2025-03-12T14:59:41.000Z"
40+
"lastmod": "2025-07-14T14:28:27.000Z"
4141
},
4242
"/getting-started/how-to-use": {
4343
"relPath": "/getting-started/how-to-use/index.md",
@@ -53,23 +53,23 @@
5353
},
5454
"/getting-started/how-to-use/scm-connection": {
5555
"relPath": "/getting-started/how-to-use/scm-connection.md",
56-
"lastmod": "2025-03-12T14:59:41.000Z"
56+
"lastmod": "2025-07-14T14:28:27.000Z"
5757
},
5858
"/getting-started/how-to-use/workload-cluster": {
5959
"relPath": "/getting-started/how-to-use/workload-cluster.md",
6060
"lastmod": "2025-03-12T14:59:41.000Z"
6161
},
6262
"/getting-started/how-to-use/controllers": {
6363
"relPath": "/getting-started/how-to-use/controllers.md",
64-
"lastmod": "2025-03-12T14:59:41.000Z"
64+
"lastmod": "2025-07-14T14:28:27.000Z"
6565
},
6666
"/getting-started/how-to-use/observability": {
6767
"relPath": "/getting-started/how-to-use/observability.md",
68-
"lastmod": "2025-03-12T14:59:41.000Z"
68+
"lastmod": "2025-07-14T14:28:27.000Z"
6969
},
7070
"/getting-started/how-to-use/microservice": {
7171
"relPath": "/getting-started/how-to-use/microservice.md",
72-
"lastmod": "2025-03-12T14:59:41.000Z"
72+
"lastmod": "2025-07-14T14:28:27.000Z"
7373
},
7474
"/getting-started/how-to-use/pr-automation": {
7575
"relPath": "/getting-started/how-to-use/pr-automation.md",
@@ -79,6 +79,10 @@
7979
"relPath": "/getting-started/how-to-use/pipelines.md",
8080
"lastmod": "2025-03-12T14:59:41.000Z"
8181
},
82+
"/getting-started/how-to-use/cleaning-up": {
83+
"relPath": "/getting-started/how-to-use/cleaning-up.md",
84+
"lastmod": "2025-07-14T14:28:27.000Z"
85+
},
8286
"/getting-started/advanced-config": {
8387
"relPath": "/getting-started/advanced-config/index.md",
8488
"lastmod": "2025-03-12T14:59:41.000Z"
@@ -373,7 +377,7 @@
373377
},
374378
"/getting-started/quickstart": {
375379
"relPath": "/getting-started/first-steps/index.md",
376-
"lastmod": "2025-03-12T14:59:41.000Z"
380+
"lastmod": "2025-07-14T14:28:27.000Z"
377381
},
378382
"/deployments/architecture": {
379383
"relPath": "/overview/architecture.md",
@@ -389,15 +393,15 @@
389393
},
390394
"/deployments/cli-quickstart": {
391395
"relPath": "/getting-started/first-steps/cli-quickstart.md",
392-
"lastmod": "2025-05-08T12:32:16.000Z"
396+
"lastmod": "2025-07-14T14:28:27.000Z"
393397
},
394398
"/deployments/existing-cluster": {
395399
"relPath": "/getting-started/first-steps/existing-cluster.md",
396400
"lastmod": "2025-03-27T19:09:28.000Z"
397401
},
398402
"/getting-started/deployments": {
399403
"relPath": "/getting-started/first-steps/index.md",
400-
"lastmod": "2025-03-12T14:59:41.000Z"
404+
"lastmod": "2025-07-14T14:28:27.000Z"
401405
},
402406
"/how-to/set-up/mgmt-cluster": {
403407
"relPath": "/getting-started/how-to-use/mgmt-cluster.md",
@@ -409,23 +413,23 @@
409413
},
410414
"/how-to/set-up/scm-connection": {
411415
"relPath": "/getting-started/how-to-use/scm-connection.md",
412-
"lastmod": "2025-03-12T14:59:41.000Z"
416+
"lastmod": "2025-07-14T14:28:27.000Z"
413417
},
414418
"/how-to/set-up/workload-cluster": {
415419
"relPath": "/getting-started/how-to-use/workload-cluster.md",
416420
"lastmod": "2025-03-12T14:59:41.000Z"
417421
},
418422
"/how-to/set-up/controllers": {
419423
"relPath": "/getting-started/how-to-use/controllers.md",
420-
"lastmod": "2025-03-12T14:59:41.000Z"
424+
"lastmod": "2025-07-14T14:28:27.000Z"
421425
},
422426
"/how-to/deploy/pr-automation": {
423427
"relPath": "/getting-started/how-to-use/pr-automation.md",
424428
"lastmod": "2025-03-12T14:59:41.000Z"
425429
},
426430
"/how-to/deploy/microservice": {
427431
"relPath": "/getting-started/how-to-use/microservice.md",
428-
"lastmod": "2025-03-12T14:59:41.000Z"
432+
"lastmod": "2025-07-14T14:28:27.000Z"
429433
},
430434
"/how-to/deploy/pipelines": {
431435
"relPath": "/getting-started/how-to-use/pipelines.md",

pages/getting-started/first-steps/cli-quickstart.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ This guide goes over how to deploy your services with the Plural CLI. At the end
1212
- Deployed your code onto your clusters of choice.
1313
- Optionally updated any configurations and permissions for the clusters and services.
1414

15+
{% callout severity="info" %}
16+
If you want to get started quickly or want us to manage the Plural experience for you, we strongly recommend using [Plural Cloud](/getting-started/first-steps/plural-cloud).
17+
18+
We'll handle hosting Plural for you, but also it comes with automatic integration with Github and observability with Elastic and Prometheus set up by default. It should seriously reduce DevOps TCO, especially for resource-constrained teams.
19+
{% /callout %}
20+
1521
## Install the Plural CLI
1622

1723
The Plural CLI is available on Homebrew, a single line installation can be done with:

pages/getting-started/first-steps/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@ The general process of setting up your instance is pretty straightforward, and w
1717

1818
We think the easiest way to understand the workflow is to take a look at our intro video (It is about 14 minutes long):
1919

20-
{% embed url="https://www.youtube.com/watch?v=caDlvskRkAw&ab_channel=Plural" aspectRatio="16 / 9" /%}
20+
{% embed url="https://www.youtube.com/watch?v=sEb_gflm-ME" aspectRatio="16 / 9" /%}
2121

22-
This will give you a brief tour of using the `plural up` command to set up your management cluster, which you can use directly or can use as a starting point to rework the exact setup needed for your enterprise given security constraints and other considerations for your environment.
22+
This goes over the setup process for using Plural Cloud in particular, and also shows the `plural up` command and how it connects to your Plural Cloud instance. That said the workflow is very similar for self-hosted installs as well.
2323

2424
## Getting Started Docs
2525

2626
We also have thorough documentation to explain how to get your cluster up and running. We recommend using the following:
2727

28+
- {% doclink to="getting_started_first_steps_plural_cloud" %}Plural Cloud Quickstart{% /doclink %} - Explains how to get started quickly with Plural Cloud, ans some of the features it provides.
2829
- {% doclink to="getting_started_first_steps_cli_quickstart" %}CLI Quickstart{% /doclink %} - details of how to install the Plural Console either on an existing cluster using helm or also guides you through the `plural up` process.
2930
- {% doclink to="getting_started_first_steps_existing_cluster" %}Import An Existing Cluster{% /doclink %} - some of the main ways to import a cluster you've created into Plural's fleet manager. The main method is to simply use our CLI or to use our terraform provider.
3031
- [Terraform Docs](https://registry.terraform.io/providers/pluralsh/plural/latest/docs) - docs for our terraform provider.

pages/getting-started/first-steps/plural-cloud.md

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,16 @@ Plural Cloud provides a hybrid deployment model where we take over management of
1010
* Shared - your cloud instance is hosted on a set of shared k8s clusters and shared postgres servers for minimal cost
1111
* Dedicated - your cloud instance gets a dedicated k8s cluster and database, allowing maximal scalability and isolating your data fully from other tenants
1212

13-
One key differentiated aspect of the hybrid Plural architecture is we can manage infrastructure *in your cloud* without requiring us to *store your keys on our servers*. This is due to the fact that 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 at the end of the onboarding process. Those clusters are usually wired with best practice cloud IAM solutions like EKS IRSA or GKE Workload Identity.
13+
One key differentiated aspect of the hybrid Plural architecture is we can manage infrastructure *in your cloud* without requiring us to *store your keys on our servers*. This is due to the fact that 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.
14+
15+
In addition, Plural Cloud comes with these key integrations built in by default:
16+
17+
* Log aggregation - ultimately persisted to elasticsearch and hosted by us with logstash preconfigured
18+
* Scale-out Prometheus - fully compliant prometheus api, again hosted by us, with vmetrics agent preconfgured by us
19+
* AI - we automatically provide a working ai endpoint for your environment
20+
* Github Integration - you can simply install our Github App and immediately use Plural to generate PRs and other SCM-related tasks
21+
22+
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.
1423

1524
# Setup
1625

@@ -23,24 +32,45 @@ Once you select Plural Cloud, you'll see a wizard like the below:
2332
![](/assets/getting-started/cloud-wizard.png)
2433

2534

26-
After filling out the wizard, it'll take about 2-3 minutes to instantiate your cluster, from there, you'll need to perform two more steps, both of which will be explained in a modal in your new cloud instance:
35+
After filling out the wizard, it'll take about 2-3 minutes to instantiate your cluster, from there, you'll be given a wizard to finalize the setup of your instance.
2736

28-
* create an access token for the Plural CLI to use
29-
* run `plural up --cloud`
37+
## Setup Wizard
3038

39+
The setup wizard will cover two main things:
40+
41+
* 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.
42+
* Setting up a webhook against your SCM provider. This is used to gather statuses of PRs and for the [Pull Request Workflow](/plural-features/stacks-iac-management/pr-workflow) for Plural Stacks.
43+
* instructing your to run `plural up --cloud` to set up your initial management cluster.
3144

3245
## The "plural up --cloud" command
3346

34-
The `plural up --cloud` command will handle a few things:
47+
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:
3548

36-
* Setting up an initial GitOps repo with our default, production ready configurations. This includes a ton of useful stuff, including:
49+
* Set up an initial GitOps repo with our default, production ready configurations. This includes a ton of useful stuff, including:
3750
- initializes a service-of-services structure to set up full GitOps management
3851
- 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 victoria metrics, and Grafana backed by RDS
3952
- is the assumed repo structure for the [How to Use Plural Guide](/getting-started/how-to-use)
40-
* Setting 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.
53+
* 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.
54+
55+
56+
The terraform and scripting should be entirely self-contained, and should take about 10 or so minutes to run to completion (can be longer for AWS). It's also worth noting that the cloud and region for `plural up --cloud` can be different than 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.
57+
58+
## Cleaning Up Your Environment
59+
60+
If you were simply testing and want to clean up your environment there are basically two steps:
61+
62+
* Remove any infrastructure managed by Plural. This should involve:
63+
* 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**.
64+
* Delete the services that might also spawn resources, especially those that create load balancers.
65+
* This is often doable by simply reverting the PRs we generate to provision that infra.
66+
* from there run `plural down --cloud`.
4167

68+
{% callout severity="warn" %}
69+
There are two main gotchas to be aware of:
4270

43-
The terraform and scripting should be entirely self-contained, and should take about 15 or so minutes to run to completion (can be longer for AWS). It's also worth noting that the cloud and region for `plural up --cloud` can be different than the one used for your Plural instance, your infrastructure is entirely self contained.
71+
* You must run `plural down --cloud` if you're connected via Plural cloud, otherwise there's a `plural_cluster` resource that needs to be manually removed from tf state.
72+
* If you do not properly clean up the resources Plural created before deleting your management cluster with `plural down --cloud`, **you will have dangling resources that need to be manually deleted.** Plural actually does a great job of being able to destroy resources, but it is up to the user to know what they created and what they need to delete.
73+
{% /callout %}
4474

4575
## Next Steps
4676

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: Cleaning Up
3+
description: How to deprovision everything you created with Plural
4+
---
5+
6+
# Cleaning Up Your Environment
7+
8+
If you were simply testing and want to clean up your environment there are basically two steps:
9+
10+
* Remove any infrastructure managed by Plural. This should involve:
11+
* 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**.
12+
* Delete the services that might also spawn resources, especially those that create load balancers.
13+
* This is often doable by simply reverting the PRs we generate to provision that infra.
14+
* from there run `plural down` or `plural down --cloud` if you were using Plural Cloud.
15+
16+
{% callout severity="warn" %}
17+
There are two main gotchas to be aware of:
18+
19+
* You must run `plural down --cloud` if you're connected via Plural cloud, otherwise there's a `plural_cluster` resource that needs to be manually removed from tf state.
20+
* If you do not properly clean up the resources Plural created before deleting your management cluster with `plural down --cloud`, **you will have dangling resources that need to be manually deleted.** Plural actually does a great job of being able to destroy resources, but it is up to the user to know what they created and what they need to delete.
21+
{% /callout %}
22+
23+
## The plural down command
24+
25+
The `plural down` command is actually a simple wrapper around what is effectively:
26+
27+
```sh
28+
cd terraform/mgmt && terraform init && terraform destroy
29+
```
30+
31+
If for whatever reason it isn't working for you, you can always try to fall back to terraform manually.
32+
33+
{% callout severity="warn" %}
34+
Fundamentally, it simply destroys the infrastructure of your management cluster. That's why it must be run at the end of the process of destroying the infrastructure Plural creates, otherwise you get in a reverse chicken-egg situation.
35+
36+
37+
Usually to destroy all those resources, you should be able to go to your plural infra repo, and find them being declared in the `/bootstrap` folder.
38+
{% /callout %}

pages/getting-started/how-to-use/controllers.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ description: Setting up your edge networking on a cluster, and learn a bit about
55

66
# Setting the stage
77

8+
{% callout severity="info" %}
9+
If you're using Plural Cloud, this will be configured for you by default!
10+
{% /callout %}
11+
812
A very common problem a user will need to solve when setting up a new cluster is getting edge networking set up. This includes solving a few main concerns:
913

1014
* Ingress - this sets up an ingress controller for load balancing incoming HTTP requests into the microservices on your cluster

pages/getting-started/how-to-use/microservice.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ spec:
6464
kind: GitRepository
6565
name: cd-demo
6666
namespace: infra
67-
helm:
67+
helm: # the /helm folder is a working helm chart, so we can optionally add helm values overrides in line and our deployment operator will respect it.
6868
values:
6969
image:
7070
repository: ghcr.io/pluralsh/plrl-cd-test

pages/getting-started/how-to-use/observability.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ description: Set up log aggregation with Elastic and Scale out Prometheus with V
55

66
# Setting the Stage
77

8+
{% callout severity="info" %}
9+
If you're using Plural Cloud, this will be configured for you by default!
10+
{% /callout %}
11+
812
If you're actually going to use this infrastructure in earnest, you'll need some form of monitoring and observability. Plural integrates directly with a number of observability providers, but the easiest *and cheapest* to get going quickly is to use our most streamlined setup, namely:
913

1014
* Victoria Metrics - a scale-out, prometheus-compatible time series datastore, with a feature rich agent, vmagent. This gives you unified metrics observability

pages/getting-started/how-to-use/scm-connection.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ Plural has the ability to spawn pull requests, post review comments, and other f
1313

1414
To get this working you'll first need to give your Plural Console scoped access tokens to your SCM.
1515

16+
{% callout severity="info" %}
17+
If you're using Plural Cloud, this should have been installed for you by default as part of the setup wizard.
18+
{% /callout %}
19+
1620
# Prerequisites
1721
Some things you'll need to run this tutorial:
1822

0 commit comments

Comments
 (0)