docs

Bring your own K8s cluster

Bootstrap Plural on an existing cluster

Overview

If you want to use only our CD capabilities and keep full control of your Kubernetes setup, you can install a simplified version of Plural onto an existing Kubernetes cluster. We've made this a turnkey process, but there are some prerequisites, namely:

  • You'll need to create a Postgres database for state storage, and have a JDBC connection string for it ready of the form: postgres://<user>:<password>@<host>:5432/<db>
  • You'll need to have your network setup in place so that all clusters you want to deploy to can make outbound network connections to the ingress you configure for Plural CD. In general, this means setting up:
  • ingress-nginx - the ingress controller we've configured by default in the chart
  • cert-manager - the chart assumes cert-manager handles cert generation by default, but this can be disabled if you use a load-balancer-bound cloud cert manager
  • externaldns - to bind DNS entries to the hosts defined in the console's ingress

You are free to customize these at your own risk; usually it's not that challenging. The most likely potential gotcha is ensuring the connection stickiness configuration handles a migration to a different ingress controller from ingress-nginx.

Info:

If you're unfamiliar with how to set up these components for your cloud, we have several useful example Terraform setups at https://github.com/pluralsh/bootstrap/tree/main/existing.

They will walk you through effectively everything needed below

Bootstrapping

Make sure your kubeconfig is pointing to the management cluster you want to deploy to, then run the following:

plural login
plural cd control-plane

If you haven't already installed the Plural CLI, we have a Homebrew installation available here: