Install using the helper script

Deploy a self-hosted Private Cloud Director on-premises using the go.pcd.run/onprem helper script.

Overview

The go.pcd.run/onprem helper script automates the on-premises deployment of self-hosted Private Cloud Director. It handles environment preparation tasks that the Install requires you to complete separately, including OpenSSL installation, swap configuration, kernel settings, and package dependencies, so you can deploy with fewer steps.

Use this method if you want a faster path to a running management plane on a network-connected environment. For air-gapped deployments, see Air Gapped Installation.

Prerequisites

Before running the script, ensure your environment meets the following requirements. Most prerequisites from the Pre-requisites are handled automatically by the script. Only the following are required upfront:

  • Passwordless sudo: The user running the script must have passwordless sudo configured.

  • SSH keys: SSH key-based access must be set up so that the host running the script can connect to all master and worker nodes without a password prompt.

You also need a Platform9 user agent key. Your Platform9 sales engineer provides this key before installation.

Step 1: Set environment variables

The script requires a set of environment variables to run. Export the required variables and any optional ones that apply to your environment.

Replace all values in <> with your environment-specific values.

# Required
export USER_AGENT_KEY="<YOUR_USER_AGENT_KEY>"

# Optional — defaults shown
export SSH_KEY_PATH="<SSH_KEY_PATH>"           # Default: "${HOME}/.ssh/id_rsa"
export SSH_USER="<SSH_USER>"                   # Default: current user
export PCD_VERSION="<PCD_VERSION>"             # Default: "latest"

# Optional — proxy settings
export HTTPS_PROXY=""
export HTTP_PROXY=""
export NO_PROXY=""

# Optional — custom storage and options overrides
export AIRCTL_CUSTOM_CSI_FILES_PATH="<PATH_TO_DIR>"             # Required for custom storage class
export AIRCTL_OPTIONS_OVERRIDES_FILE_PATH="<PATH_TO_JSON_FILE>" # Required for options.json overrides

Step 2: Deploy PCD

Choose one of the following methods. Both methods require the environment variables from Step 1 to be exported first.

Method 1: Environment variable-based installation

Export your deployment parameters as environment variables, then run the script. Replace all values in <> with your environment-specific values.

To derive the full list of available environment variables, refer to the airctl configure flag list in the Airctl Reference. Each long flag maps to an environment variable by prepending AIRCTL_, converting to uppercase, and replacing hyphens with underscores. For example, --du-fqdn becomes AIRCTL_DU_FQDN.

After exporting your variables, run the script:

Method 2: Flag-based installation

Pass deployment parameters directly to the script as flags. Replace all values in <> with your environment-specific values.

For the full list of supported flags, see Configuration Commands in the Airctl Reference.

circle-info

NOTE

The basic environment variables from Step 1, including USER_AGENT_KEY are required regardless of which method you use

Proxy configuration (optional)

If your environment routes traffic through a network proxy, export the proxy variables before running the script. Replace all values in <> with your environment-specific values.

The NO_PROXY list must include all master node IPs, worker node IPs, EXTERNAL_IP4, and MASTER_VIP4, along with any other addresses that should bypass the proxy.

Custom CSI storage backend (optional)

By default, the script uses hostpath-provisioner as the storage provider. To use a custom CSI storage backend instead, complete the following steps before running the script.

  1. Create a directory and place your custom StorageClass YAML files in it.

  2. Export the path to that directory:

  1. Set the storage provider to custom using the appropriate variable or flag for your chosen method:

    • Environment variable: AIRCTL_STORAGE_PROVIDER="custom"

    • Flag: --storage-provider custom

circle-exclamation

Overriding default options.json (optional)

To customize storage classes per component or adjust management plane deployment settings, you can override fields in the default options.json.

  1. Create a JSON file containing only the fields you want to add or override.

  2. Export the path to that file before running the script:

circle-info

NOTE

This variable cannot be passed as a flag to the script. It must be exported as an environment variable.

Last updated

Was this helpful?