Skip to content

Setup Working Environment

As mentioned in Planning and Prerequisites that it is a good practice that you have a dedicated machine for managing infrastructure and perform installation.

This guide will assumed that you are working on the machine, called 🟫 Bastion Host.

Which will go through these setups:

  • CLI Tools Preparation
  • Working Directory Preparation

💡 Before proceed, Make sure you are connected to Bastion Host in anyway possible, i.e SSH, Privileged Access Management Console, etc.

Set of tools that required to install on your Linux Bastion Host before you proceed

For managing Container Images and performing local container operations.

Reference: Install Docker Engine on Ubuntu

Terminal window
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh

For interacting with Kubernetes Clusters.

Reference: Install Tools/Install and Set Up kubectl on Linux

Terminal window
# Install and Set Up kubectl on Linux w/ Binary
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm kubectl

For managing Helm Charts and performing Helm Operations.

Reference: Installing Helm - Helm Docs

Terminal window
# Install and Set Up kubectl on Linux w/ Binary
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
rm get_helm.sh

Small Utilities for Web Request Invoking.

Terminal window
sudo apt install -y curl wget

Small Utilities for Zipping and Unzipping .zip Archival Files.

Terminal window
sudo apt install -y zip unzip

A Small Utility for Manipulating Tarball Archival Files.

Terminal window
sudo apt install tar

A Small Utility for Manipulating S3-compatible Storage.

Terminal window
wget -O mc https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv $(pwd)/mc /usr/local/bin/mc

A Small Utility for Manipulating JSON files.

Terminal window
wget https://github.com/jqlang/jq/releases/latest/download/jq-linux-amd64 -O /usr/local/bin/jq
chmod +x /usr/local/bin/jq

A Small Utility for Manipulating YAML files.

Terminal window
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq
chmod +x /usr/local/bin/yq

Suggest that stay on User Home Directory and create a special directory and work within it, named opstella-installation as to prevent from implementation sprawling.

While you following installation instruction, all of the files will be stored here.

Terminal window
mkdir -p $HOME/opstella-installation/{assets,shell-values,kubeconfigs,helm-charts,helm-values,images,opstella-configs}

There are images, scripts, binary file(s), etc.

Download the latest release (Use .tar.gz): Necessary Assets/Releases on git.opsta.io

And then extract it to the assets of Working Directory.

Terminal window
tar xzvf orion-assets-*.tar.gz -C $HOME/opstella-installation/assets --strip-components=1

It should be in the following structure

$ ls $HOME/opstella-installation/assets
files kubernetes-manifests scripts
$ ls $HOME/opstella-installation/assets/**
files:
opstella-logo.svg
... (deducted)
kubernetes-manifests:
opstella-keycloak-theme.yaml
... (deducted)
scripts:
opstella-core-init.sh vault-init.sh
... (deducted)

Store any Container Images in tarball files in the following directory. *

$HOME/opstella-installation/images/**.tar

Store any Helm Charts in tarball files in the following directory. *

$HOME/opstella-installation/helm-charts/**.tgz

Store any Helm Values in the following directory.

$HOME/opstella-installation/helm-values/**.yaml

Store any Opstella Configuration YAML Files, include any customization from Downloaded Assets, in the following directory.

$HOME/opstella-installation/opstella-configs/**


* Used in Air-gapped Environment

As you proceed throughout the guide, your directory should looks like this.

  • Directory~
    • Directoryopstella-installation
      • Directoryassets
        • Directoryfiles
          • opstella-logo.svg
        • Directorykubernetes-manifests
          • opstella.yaml
        • Directoryscripts
          • script.sh
      • Directoryhelm-charts
        • postgresql-15.5.38.tgz
        • keycloak-21.8.0.tgz
      • Directoryhelm-values
        • postgresql-keycloak-full-values.yaml
        • keycloak-full-values.yaml
      • Directoryimages
        • bitnami-postgresql-16.4.0-debian-12-r14.tar
        • bitnami-keycloak-24.0.5-debian-12-r8.tar
      • Directorykubeconfigs
        • management_cluster.yaml
        • nonprod_cluster.yaml
        • prod_cluster.yaml
      • Directoryopstella-configs
        • opstella-core-init.sh
        • opstella-backend-tag-on-premise.yaml

Finished?

Use the below navigation to proceed