Overview 🔗︎

This guide describes how to install a self-hosted production instance of the Banzai Cloud Pipeline platform into your environment. After completing the steps, you will have an environment applicable for production requirements.

Note: You do not need a production installation to evaluate the Banzai Cloud Pipeline platform. For a quick evaluation installation that you can delete without any problems, see the quick start guides.

After the installation, you will have a Banzai Cloud Pipeline platform running on a standard Kubernetes cluster of your choice.

Prerequisites 🔗︎

Before we start, there are a few items that you will need on the machine that will be used to manage the deployment (usually your laptop or a dedicated management machine).

  • macOS or Linux (x86_64) — most of the native tooling around Kubernetes is for these platforms, so is ours
  • Banzai CLI tool — the installation process depends heavily on the Banzai CLI tool
  • Docker 18.09+ — the heavy lifting of the deployment is managed by a Docker container
  • A customer-specific Pipeline installer image.

Banzai CLI tool 🔗︎

The installation process depends heavily on the Banzai CLI tool, which you will anyway like to use for everyday tasks in the Banzai Cloud world.

The quickest way to install the banzai-cli package for your environment is to run the following command:

curl https://getpipeline.sh | sh

on Linux You can also use our packages for the most popular Linux distributions. For more options, check our detailed Installation guide for Banzai CLI.

You will also need kubectl`, the command line tool for Kubernetes. Since most Linux distributions have outdated packages for kubectl, we recommend using the following one-liner, or other options from the Kubernetes documentation:
curl https://getpipeline.sh | sh -s -- kubectl.

on macOS: You can install Banzai CLI on macOS directly with Homebrew: brew install banzaicloud/tap/banzai-cli. The Homebrew formula for Banzai CLI also installs kubectl automatically.

Make sure that your Banzai CLI version is up-to-date.

Docker 🔗︎

The installer needs a recent version of the Docker container engine, at least version 18.09. If you don't already have it installed, follow the Docker docs for your platform.

Please note that the Docker daemon should be running, the docker command should be in the PATH, and the account used for the installation process should have the privileges needed to run containers (for Linux, check the post-installation steps).

For Docker for Mac, ensure that at least 3 CPU and 3 GiB of memory is allocated. You can check this on the Preferences > Advanced tab of Docker for Mac.

Infrastructure 🔗︎

You will need to provide a Kubernetes context that Banzai CLI can use to deploy Banzai Cloud Pipeline into. To have a highly available and durable installation, scale your cluster based on the following principles:

  • Have highly available Kubernetes control plane (at least three nodes in the etcd cluster, and two API servers behind HA load balancer).
  • Have at least two worker nodes that are ready to run Banzai Cloud Pipeline components, even if one of them breaks.
  • Allocate at least 8 CPU cores and 8 GiB memory for the components.
  • Take care of the durability and availability of the default storage class.

We assume that persistent volume claims for the default storage class, and load balancer service resources are fulfilled by an applicable controller.

You can choose from the following guides to create a PKE cluster at different providers:

You can also use managed Kubernetes services like GKE, but you need to alter your kubeconfig to use inlined token or certificate authentication for a service account, because authorization helpers are not supported by the installer.

You should check that the cluster context is selected correctly in the shell you will use for the installation by issuing a command like kubectl get nodes.

You will also need to set a DNS CNAME or A record pointing to the load balancer service endpoint.

Install Banzai Cloud Pipeline 🔗︎

  1. Initialize the workspace for the configuration of the Banzai Cloud Pipeline you install:

    banzai pipeline init --provider=k8s
    
  2. Check the values file that will be used for the configuration (~/.banzai/pipeline/default/values.yaml by default, use the --workspace flag to change).

  3. Set a fully qualified domain name that you can create later as the externalHost key of the values file. If you want to customize the installation, check the advanced configuration section.

  4. To start the deployment, run:

    banzai pipeline up
    

    The installation will deploy the components of Banzai Cloud Pipeline to the Kubernetes cluster.

Logging in with Banzai CLI 🔗︎

Your Banzai Cloud Pipeline instance is ready for use!

If the installation was successful, the last few lines of the output contains a user name and password that can be used for logging in.

The installer will give instructions for setting up the DNS record for your installation.

At the end you can log in to the new Pipeline instance.

A browser window will show up, and you'll be able to log in with the username and password from the output. After that, you can return to your console.

Next steps 🔗︎

To try the features of the platform, you will have to create a cluster first. To launch a PKE cluster in Amazon EC2, follow the Create a PKE cluster on AWS guide. Moreover, the advanced configuration section has specific guides and a detailed reference for the configuration of Banzai Cloud Pipeline.