Prerequisites

In order to install ArmoniK locally or on-premise, you must have a few of things installed on your machine.

Installation

You can easily install all of them using the ArmoniK prerequisites installer from the root repository.

shell
./infrastructure/utils/scripts/installation/prerequisites-installer.sh
Please, read the script before running it and make sure to have Docker Desktop disabled if you are on Windows.
We do not recommend you to manually install the pre-requisites for compatibility reasons. If you want to install them manually, please follow the prerequisites installer script.
You could encounter some issues with the execution of the prerequisites installer script. Please verify you've right permissions on the script. If not, you can use chmod +x <file|directory/*> to add the execution permissions.
# Add execution permissions to the prerequisites installer script
chmod +x ./infrastructure/utils/scripts/installation/prerequisites-installer.sh
# Add execution permissions to every script in the prerequisites directory
chmod +x ./infrastructure/utils/scripts/installation/prerequisites/*

Programs

Make

ArmoniK uses Make to run commands. You must have Make installed on your machine. You can follow the official documentation to install Make on your machine.

What is Make? Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program. Read more.

JQ

ArmoniK uses JQ to parse JSON. You must have JQ installed on your machine. You can follow the official documentation to install JQ on your machine.

What is JQ? jq is a lightweight and flexible command-line JSON processor. It is used for pretty-printing JSON data, extracting specific data from JSON documents, reformatting JSON documents, and more. Read more.

Python3

ArmoniK uses Python3 to run scripts. You must have Python3 installed on your machine. You can follow the official documentation to install Python3 on your machine.

What is Python3? Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects. Read more.

HCL2

ArmoniK uses HCL2 to parse Terraform files. You must have HCL2 installed on your machine. You can follow the official documentation to install HCL2 on your machine.

What is HCL2? HCL is a configuration language created by HashiCorp. It is used by several HashiCorp products, including Terraform, Nomad, and Consul. Read more.

jsonpath-ng

ArmoniK uses jsonpath-ng to parse JSON. You must have jsonpath-ng installed on your machine. You can follow the official documentation to install jsonpath-ng on your machine.

What is jsonpath-ng? jsonpath-ng is a Python implementation of JSONPath. Read more.

Terraform

ArmoniK uses Terraform to deploy infrastructure. You must have Terraform installed on your machine. You can follow the official documentation to install Terraform on your machine.

What is Terraform? Terraform is an open-source infrastructure as code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language, or optionally JSON. Terraform can manage existing and popular service providers as well as custom in-house solutions. Read more.

Docker

ArmoniK uses Docker to run containers. You must have Docker installed on your machine. You can follow the official documentation to install Docker on your machine.

What is Docker? Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines. Read more.

Helm

ArmoniK uses Helm to deploy applications. You must have Helm installed on your machine. You can follow the official documentation to install Helm on your machine.

What is Helm? Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters. Read more.

Kubernetes

If you plan to install ArmoniK for development purposes, you must install K3s instead of Kubernetes.

ArmoniK uses Kubernetes to orchestrate containers. You must have Kubernetes installed on your machine. You can follow the official documentation to install Kubernetes on your machine.

What is Kubernetes? Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Read more.

K3s

If you plan to use ArmoniK for production purposes, you must install Kubernetes instead of K3s.

ArmoniK uses K3s as it uses Kubernetes but for development environment.

What is K3s? K3s is a lightweight Kubernetes distribution built for production workloads in unattended, resource-constrained, remote locations or inside IoT appliances. Read more.

Kubectl

ArmoniK uses Kubectl to manage Kubernetes. You must have Kubectl installed on your machine. You can follow the official documentation to install Kubectl on your machine.

What is Kubectl? Kubectl is a command-line tool for controlling Kubernetes clusters. Read more.