In this section, you will Install the required OS packages necessary to complete the installation. The following steps assume you are using a Debian-based Linux distribution - Ubuntu is recommended.

Install Linux Text Editor

Ensure one of the following text editors is installed.

Install OS Packages

The following packages are required to install PrimeHub.

Install the packages.

# Install yq
$ sudo snap install yq
# Install Others
$ sudo apt update
$ sudo apt install -y make jq git curl netcat

Verify that the above tools were successfully installed.

$ make --version
GNU Make 3.81
...

$ jq --version
jq-1.6

$ yq --version
yq (<https://github.com/mikefarah/yq/>) version v4.32.2

$ git --version
git version 2.17.1

$ curl --version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
...

$ dpkg --list | grep netcat
ii  netcat-openbsd                   1.187-1ubuntu0.1                    amd64        TCP/IP swiss army knife

Install Helm Tools

Helm is used to manage, install, and upgrade PrimeHub.

Create a folder ~/bin and add it to your $PATH. This is where we will install Helm, and later kubectl.

$ mkdir -p ~/bin
$ echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc
$ source ~/.bashrc
# Install Helm
$ curl -LO <https://get.helm.sh/helm-v3.5.4-linux-amd64.tar.gz>
$ tar -zxvf helm-v3.5.4-linux-amd64.tar.gz
$ install linux-amd64/helm ~/bin
# Install helm-diff
$ helm plugin install <https://github.com/databus23/helm-diff>
# Install helmfile
$ curl -Lo helmfile <https://github.com/roboll/helmfile/releases/download/v0.138.7/helmfile_linux_amd64>
$ install helmfile ~/bin

Verify that Helm was successfully installed.

$ helm version
version.BuildInfo{Version:"v3.6.2", GitCommit:"ee407bdf364942bcb8e8c665f82e15aa28009b71", GitTreeState:"clean", GoVersion:"go1.16.5"}

$ helm diff version
HEAD

$ helmfile --version
helmfile version v0.139.9

Set NTP sync

NTP lets you automatically sync your system time with a remote server. The NTP can be used to update the clock on a machine with a remote server. This keeps your machine’s time accurate by syncing with servers that are known to have accurate times. NTP also keeps the clocks on several machines in sync, thus making it easier to match log entries for an event across multiple servers.