Skip to content

This is the Stable version of the documentation. The latest version is experimental and under active development. You can use the version selector in the top-right menu to switch versions for this specific page, or click here to go to the latest version's homepage.

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:

💡 Prerequisite: Ensure you are connected to your Bastion Host (via SSH or a console) before proceeding with these steps.

This setup guide is divided into logical steps to get your environment ready for Opstella.

You need the following tools installed on your Linux Bastion Host to manage the installation and interact with the clusters.

1a. Basic Utilities (curl, wget, zip, unzip, tar)

Section titled “1a. Basic Utilities (curl, wget, zip, unzip, tar)”

These are essential for downloading and extracting assets.

Terminal window
sudo apt update
sudo apt install -y curl wget zip unzip tar

Used for managing container images and performing local operations.

Reference: Docker Installation Guide

Terminal window
# Install using the convenience script
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
rm get-docker.sh

The primary tools for interacting with Kubernetes and managing deployments.

Terminal window
# Install kubectl
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
# Install Helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
sudo ./get_helm.sh
rm get_helm.sh

Utilities for manipulating JSON/YAML and interacting with S3 storage.

Terminal window
# Install jq & yq
sudo wget https://github.com/jqlang/jq/releases/latest/download/jq-linux-amd64 -O /usr/local/bin/jq
sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq
sudo chmod +x /usr/local/bin/jq /usr/local/bin/yq
# Install mc (MinIO Client)
wget -O mc https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

To keep your installation organized, we recommend working within a dedicated directory. This prevents configuration files and assets from cluttering your home folder.

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

Core assets include the scripts and Kubernetes manifests provided by the Opstella team.

  1. Download the Assets Package: Visit the Releases page on git.opsta.io and download the latest .tar.gz release.

  2. Extract to the Workspace:

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

Once extracted, your assets directory should contain:

  • files/: Logos and other static resources.
  • kubernetes-manifests/: Pre-defined YAML configurations.
  • scripts/: Initialization and helper scripts (e.g., opstella-core-init.sh).

Step 4: Prepare Resources for Air-gapped Environments

Section titled “Step 4: Prepare Resources for Air-gapped Environments”

In an Air-gapped Environment, you must manually prepare the following resources and place them in their respective directories.

Pull and save required container images as .tar files.

  • Path: $HOME/opstella-installation/images/

Download charts from their respective repositories as .tgz files.

  • Path: $HOME/opstella-installation/helm-charts/

Some tools (like SonarQube) require external plugins that are usually downloaded on-the-fly. For air-gapped environments, you must manually download these and host them on an Internal HTTP Static File Server (e.g., Nginx, Apache).

Example: SonarQube OIDC Plugin

  • Original URL: https://github.com/vaulttec/sonar-auth-oidc/releases/download/v2.1.1/sonar-auth-oidc-plugin-2.1.1.jar
  • Action: Download this file and upload it to your internal server. Update your variables to point to your internal link: https://your-internal-server/sonar-auth-oidc-plugin-2.1.1.jar.

Finally, prepare the directories where you will store your custom configurations and cluster connection files.

Custom configuration files (values.yaml) for Helm releases.

  • Path: $HOME/opstella-installation/helm-values/

Modified YAML files or scripts based on the downloaded assets.

  • Path: $HOME/opstella-installation/opstella-configs/

Kubeconfig files for accessing your Management, Non-Prod, and Prod clusters.

  • Path: $HOME/opstella-installation/kubeconfigs/

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 (air-gapped)
        • postgresql-15.5.38.tgz
        • keycloak-21.8.0.tgz
      • Directoryhelm-values
        • postgresql-keycloak-full-values.yaml
        • keycloak-full-values.yaml
      • Directoryimages (air-gapped)
        • 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