Plural
Search…
Getting Started
Setting up your first cluster

1. Install Plural cli and dependencies

The Plural cli and dependencies are available using a package manager for your system. For Mac, we recommend using Homebrew; Windows users can utilize chocolatey.
Mac
curl
EC2 AMI
1
brew install pluralsh/plural/plural
Copied!
The brew tap will install plural, alongside terraform, helm and kubectl for you. If you've already installed any of those dependencies, you can add --without-helm, --without-terraform, or --without-kubectl
You can also download any of our vendored binaries via curl:
1
curl -L -o plural.o 'https://app.plural.sh/artifacts/plural/plural?platform={{plat}}&arch={{arch}}'
2
chmod +x plural.o
3
mv plural.o /usr/local/bin/plural
Copied!
replace {{plat}} and {{arch}} with any of:
plat
arch
mac
amd64
mac
arm64
windows
amd64
linux
amd64
All binaries can also be viewed in the artifacts tab of the plural repo on app.plural.sh. You can also find sha256 checksums for each there to guarantee file integrity
You will still need to ensure helm, terraform and kubectl are properly installed, you can find installers for each here
Once these are installed, you'll also need to add the helm push plugin like so
1
helm plugin install https://github.com/pluralsh/helm-push
Copied!
We have EC2 AMI's with plural cli installed, along with all cloud provider clis, terraform, helm and kubectl for those interested in creating a remote environment. A registry of the AMIs can be viewed here: https://github.com/pluralsh/plural-cli/blob/master/packer/manifest.json
If there's interest in images for GCP and Azure, please to give us a shout in our discord or feel free to open a github issue.
This doc gives more details on launching AMIs if you are unfamiliar: https://aws.amazon.com/premiumsupport/knowledge-center/launch-instance-custom-ami/. You'll want to select "Public images" within the ami search bar and you can use the ami id embedded in the artifact_id in our manifests, eg ami-0249247d5fc865089. Be sure to chose the one for the appropriate region.

2. Install and Configure Cloud Provider CLI

You should now install and configure your cloud provider cli (awscli, gcloud, az) if you have not done so already. This is also a good time to take care of some cloud setup tasks from your provider's console. Follow the provider-specific instructions below.
GCP
AWS
Azure
  • Follow the instructions here to install the gcloud cli.
  • Verify that the cli has been added to your $PATH
  • Create a new project in gcp via the cli:
1
gcloud projects create example-project-name
Copied!
  • Enable the Kubernetes Engine API for the project you just created.
  • Enable the Google DNS API for the project you just created.
  • Run gcloud init and follow the prompts to configure the gcloud cli and connect it to the project you just created.
  • Verify that your cli has been properly configured. It should look something like this. Make sure that your active configuration is set to the project you just created.
1
> gcloud config list
2
[compute]
3
region = us-east1
4
zone = us-east1-b
5
[core]
7
disable_usage_reporting = True
8
project = example-project-name
9
10
Your active configuration is: [example-project-name]
11
Copied!
  • If you have multiple projects in GCP and previously have configured your gcloud cli to point to a different project, run
1
gcloud auth application-default login
Copied!
to reset the application default credential and re-authorize the browser. Failure to do this could result in project requested not found errors further along.
  • Follow the instructions here to install your AWS cli.
  • Verify that the cli has been added to your $PATH
  • Follow the instructions here to configure your cli and connect it to your aws console
  • Verify that your cli has been properly configured by running
1
aws configure list
Copied!
  • You should see a set of values that looks like this:
1
Name Value Type Location
2
---- ----- ---- --------
3
profile <not set> None None
4
access_key ****************RUG2 shared-credentials-file
5
secret_key ****************hJUU shared-credentials-file
6
region us-east-2 config-file ~/.aws/config
Copied!
  • Follow the instructions here to install your Azure cli.
  • Follow the instructions here to sign into your Azure cli.

3. Register and Configure Domain Name

You need a registered domain that your Plural applications can be deployed to. You may use either:
  1. 1.
    onplural.sh subdomain backed by the Plural Domain Service (recommended). If you are choosing to use the Plural domain service, you don't need to do anything extra now. Simply follow the prompts further down.
  2. 2.
    your own domain or subdomain backed by one of the dns service providers we currently support:
    1. 1.
      Route53
    2. 2.
      Google Cloud DNS
    3. 3.
      Azure DNS
    For more instructions on how to setup a domain using one of these providers refer to our guide here.

4. Create and Initialize Plural Repo

Create a new Git repo to store your Plural installation in and name it whatever you want.
Currently we're limited to a one cluster to one repo mapping, but eventually that will be relaxed.
Clone your repo and then run from inside the repo:
1
plural init
Copied!
to log into plural, set the git attributes to configure encryption, and configure your cloud provider for this installation.
You will also be asked whether you want to use Plural's domain service and if so, what you want the subdomain to be. Here's an example of what it looks like below:
1
Do you want to use plural's dns provider: [Yn] Y
2
What do you want to use as your subdomain, must be a subdomain under onplural.sh: tryunitofwork.onplural.sh
Copied!
This process will generate a workspace.yaml file at the root of your repo that stores your cloud provider configuration information.

5. Install Plural Applications

To view the applications you can install on Plural, navigate to the explore tab at https://app.plural.sh/explore/public.
To actually install applications on Plural, the preferred method is to use our installation bundles. You can view the available bundles by navigating to the specific app on https://app.plural.sh or listing them via the cli using:
1
plural bundle list <app-name>
Copied!
If the app is paid, you should click on the bundle in the interface to ensure you set up all the subscriptions needed to install the application properly.
Once you've found the bundle you want and are ready to go, run this in the root of your repo:
1
plural bundle install <app-name> <bundle-name>
Copied!
You should be asked a lot of questions about how your app will be configured, including whether you want to enable Plural OIDC (single sign-on):
Unless you don't wish to use Plural as an identity provider due to internal company security requirements, you should enter (Y). This will enable you to use your existing app.plural.sh login information to log into all Plural-deployed applications.
Ultimately all the values you input at this step will be stored in a file called context.yaml at the root of your repo.

6. Build and Deploy Plural Applications

With all bundles installed, simply run:
1
plural build
2
plural deploy --commit "initial deploy"
Copied!
This will generate all deployment artifacts in the repo, then deploy them in dependency order.

7. Install Plural Admin Console

The plural admin console is a web application that serves as a control panel for all your plural applications. It:
  • manages automated upgrades delivered from the Kubernetes api
  • serves as a thin Grafana to visualize application metrics and logs
  • serves as a built-in k8s dashboard for all plural apps in the cluster, along with providing app-level health checking
  • is the touchpoint at which incidents can be filed with the owner of an application
The console is not a strict dependency, but it is highly recommended to install it. It can be installed and deployed like any other application on Plural. For more detailed instructions, please refer to this guide.
The admin console is separate from app.plural.sh which is primarily a package registry.

8. Log In to Plural Application

Once plural deploy has completed, you should be ready to log in to your application at {app-name}.{domain-name}.
The application urls will have been printed out to the terminal at the end of the plural deploy logs.
If you selected (Y) to using Plural's OIDC above, then you should be able to login with your app.plural.sh login credentials.
If you selected (N) to using Plural's OIDC, login credentials are available at{app-name}/helm/{app-name}/values.yaml. The key name should be pretty self-descriptive, for instance the initial admin password for the plural console is in a key named: console.secrets.admin_password.

9. Upgrade and deploy new apps

The full plural build && plural deploy commands are only necessary if you have a queue of multiple apps to be deployed that you need assistance with sequencing the installations. If there's just a single targeted application to deploy, simply do:
1
plural build --only ${app}
2
plural deploy --commit "updated ${app}"
Copied!

10. Uninstall Applications

To uninstall applications, you can use
1
plural destroy <app-name>
Copied!
This will do things like destroying terraform resources and emptying k8s namespaces, but it won't remove the application builds from your local repo, or the application configuration values from context.yaml.
Last modified 17h ago