Skip to content

⚠️ Before You Start

The installation is packaged into a bash script hosted on Amazon S3. The process mainly involves downloading and executing the script.

Before running the installation script, certain environment variables and secrets need to be defined for the bash script runtime. These values are not set by default in the installation script.

Below is a list of shell environment variables that must be defined for the installation script. Default values are provided for some variables. If these values are set in the shell before executing the script, the default values will be overwritten.

Variable Default Value
DASH_SERVER_DOMAIN -
REGISTRY_PASSWORD -
RELEASE_VERSION Queries the __versions file on S3 to determine the latest version
REGISTRY_DOMAIN hub.docker.com
REGISTRY_USERNAME rootnetworks

Testing Environment Overwrite

In test environments, you must overwrite the Docker-related settings by defining the relevant environment variables. This is because the image versions for the test environment are hosted on an OCR container registry instead of Docker Hub, which is defined as the default in the container script.

Many other environment variables defined in the installation script that are not mentioned above. For more details, you can download the installation script and review it.


🏢 Production Environment

The installation script is divided into two parts:

  • The first script checks the OS environment, queries the latest version, and downloads the corresponding script from the URL.
  • The second script installs the necessary binaries, pulls the Docker images, and sets up the Docker Compose file.

Installation Flow Example:

  1. The user downloads and runs the script:
    files.ops2.net/edgehit/prod/EdgeHit-Controller/deploy/install.sh

  2. The script queries files.ops2.net/edgehit/prod/EdgeHit-Controller/deploy/__versions for the latest version. This URL contains a list of supported versions, which the script iterates through to identify the latest version.

  3. The script determines that the latest version is 1.34 and downloads the second script from files.ops2.net/edgehit/prod/EdgeHit-Controller/deploy/versions/1.34/install.sh, then executes it.

  4. The second script sets up all the installation binaries and configures the initial setup.

Note: All steps after Step 1 are automated. The system administrator only needs to set up the environment variables and run the first script to complete the installation of EdgeHit.

additional note

The EdgeHit Controller installation also act as a centrallized deployment controller that generates random string as managed Load Proxy and pass environment variable into Load Proxy during deployment. Given that the generated Script is used for deployment of Load-Proxy and Prometheus Server


🧪 Testing Environment

Deploying in Testing Environment uses the same procedure as Deploying in Production Environment. The only difference is that the version number is higher in testing Environment.

Such behavior is acheived by changing the /prod to /test while defining URL to fetch the first installation script. Example is shown below

  • When installing EdgeHit Controller in deployment Environment, Use
bash -c "$(==**`CURL`**== -fsSL https://files.ops2.net/edgehit/prod/EdgeHit-Controller/deploy/install.sh)"
./install-prometheus.sh
  • When installing in testing Environment, Use
bash -c "$(==**`CURL`**== -fsSL https://files.ops2.net/edgehit/test/EdgeHit-Controller/deploy/install.sh)"
./install-prometheus.sh

By changing the first download URL while installing EdgeHit Controller, the subsequent generated script will also uses script that corespond the the testing Environment.

Besides changing the URL , you also need to overwrite the Container Registry and Username. Testing images are deployed on Different Container Registry using different username. Refer to the command below:

export REGISTRY_DOMAIN="sjc.ocir.io"
export REGISTRY_USERNAME="axq9ho4mugcg/jenkins.development@rootnetworks.com"


All the other procedure are same as Production Environment. So is not further discussed here.