# Pre-installation Information

## Introduction

This article provides information on the Platform9 Edge Cloud (PEC) and an overview on how to install it in an On-Prem setting.

## Terminology

### KDU (Formerly called DU)

A Deployment Unit (DU) is a unit of deployment that typically represents a region for a given customer. You may also refer to this as the Platform9 Management Plane. The current version of DU runs as a virtual machine on a deployment host. Future versions of the product will include a containerized version of the same product, allowing for its deployment on Virtual machines in public or private clouds.

One of the important architectural goal behind this design is to allow for running clusters even when the management plane is not running. The current design allows for it, the details can be found in the [Architecture overview](https://platform9.com/docs/v5.3/PES/architecture-overview) section.

### Management Station or Deployment Host (DH)

One of the key prerequisite is a place to install different utilities and the DU. A management station or deployment host assumes that responsibility. The deployment host is a machine where DU can run and also has the necessary connectivity from which users can access all the Kubernetes nodes. This host can be a small workstation like Intel (Next Unit of Computing) NUC, or even share the space with one or more Kubernetes Nodes in the diagram.

## Node Prerequisites

### Multi Node Deployments

**Minimum**

Compute: 4 vCPU

Memory: 8GB

Disk: 150GB

**Recommended**

Compute: 8vCPU

Memory: 16GB

Disk: 180GB

### Single Node Deployments

**Minimum**

Compute: 8 vCPU

Memory: 16 GB

Disk: 150GB

**Recommended**

Compute: 12 vCPU

Memory: 16 GB

Disk: 180GB

### OS Prerequisites

**Centos** 7.5 / 7.6 / 7.7 / 7.8 / 7.9

**Redhat** 8.6

### Software

As mentioned earlier, the current version of Platform9 uses a Virtual Machine to host the DU/Management Plane, for that machine specifically we would need the few items

## VIP Requirements

We generally need 2 VIPs in the same L2 domain as the management nodes to deploy the management stack.

* VIP 1: **(required)** This is the IP where you can access the management DU's UI. This is configured as `externalIp` and/or `externalIpV6` in **airctl-config.yaml**.
* VIP 2: **(optional; only used for multi master clusters)** This is used to serve the management cluster’s API server. On multi-master clusters, this is configured as `masterIp` and/or `masterIpV6` in clusterSpec.yaml (pointed to by bootstrapCfgPath). For single-master clusters, it is simply the IP of the master node (no VIP). For multi-master, it becomes the VIP.

#### Proxy

{% hint style="info" %}
**Info**

If using a proxy in your environment, edit the /etc/yum/yum.conf file to add the proxy configuration as well as environment variable `HTTP_PROXY and HTTPS_PROXY`
{% endhint %}

{% tabs %}
{% tab title="None" %}

```none
proxy=http://mycache.mydomain.com:3128
```

{% endtab %}
{% endtabs %}

## Install Libvirt

Here, we install libvirt, then start it and finally verify it is functioning using the commands below.

{% tabs %}
{% tab title="Bash" %}

```bash
# Install Libvirt
yum -y install libvirt qemu-kvm
# Ensure Libvirt is running
systemctl start libvirtd
# make sure libvirt is working well
virsh list --all
# Add your user to the authentication of the libvirt.
sudo usermod --append --groups libvirt $USER
# Also give the qemu user access to your home directory where the state is kept
chmod a+x /home/$USER
```

{% endtab %}
{% endtabs %}

### Passwordless Sudo

Many operations require sudo access (for example, the installation of yum repos, docker etc.) Please ensure your hosts have passwordless sudo enabled.

### SSH Keys

For the KDU running inside the Virtual Machine, Platform9 tooling injects an SSH key at the first boot. Please generate those keys. The same key can be used for communicating with different hosts as well.

Make sure the created SSH key is also added to different hosts as *authorized\_keys*. Copy over the ssh public key into the other hosts and add to *\~/.ssh/authorized\_keys*

{% tabs %}
{% tab title="None" %}

```none
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh-copy-id -i ~/.ssh/id_rsa.pub centos@test-3-1
```

{% endtab %}
{% endtabs %}

## Download Artifacts

Platform9 publishes PEC artifacts as secured HTTP endpoints. These endpoints can be accessed via `curl` or `wget` or any other command line utility to download the artifacts.

{% hint style="info" %}
**Info**

To downloading these artifacts, contact a Platform9 Support, Solutions Architect or Sales Team member. They will provide you with the "*secret*" that can be added to the "`_user-agent_`" value and the appropriate release version,
{% endhint %}

**Download all artifacts**: You can download all artifacts using the following download script:

{% tabs %}
{% tab title="Bash" %}

```bash
wget https://raw.githubusercontent.com/platform9/support-locker/master/edge-stack/download.sh
chmod +x ./download.sh
```

{% endtab %}
{% endtabs %}

Once you’ve downloaded the script you can then run the script with the following options:

{% tabs %}
{% tab title="Bash" %}

```bash
./download.sh <secret-key> <release-version>
```

{% endtab %}
{% endtabs %}

* secret-key: ask Platform9 Support for this key
* release-version: The latest release version is available on the Platform9 Docs Website: <https://platform9.com/docs/PEC/pec-lts2-release>

Once all artifacts are downloaded, install them using:

{% tabs %}
{% tab title="Bash" %}

```bash
chmod +x ./install.sh
./install.sh <release-version>
```

{% endtab %}
{% endtabs %}

This copies all artifacts under */opt/pf9/airctl*.

For airgapped setups, please ensure each node for management cluster has the following Linux packages pre-installed:

{% tabs %}
{% tab title="Bash" %}

```bash
curl
gzip
net-tools
libcgroup-tools
```

{% endtab %}
{% endtabs %}

Once downloaded, the directory contains a list of .tar or .tar.gz files, an index file, and a simple install.sh file. Visit the [Artifacts](https://platform9.com/docs/PEC/artifacts) page to learn more about the downloaded artifacts.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platform9.com/self-managed-cloud-platform/5.7/pre-installation-information.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
