Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: refactor pages and rewrite installation #1014

Merged
merged 27 commits into from
Apr 28, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
aeba8d8
docs: refactor pages and rewrite installation
esoubiran-aneo Apr 17, 2023
d61eada
docs: start writing about components
esoubiran-aneo Apr 19, 2023
c35360f
docs: continue the rework
esoubiran-aneo Apr 20, 2023
83e4191
docs: start adding genie section
esoubiran-aneo Apr 21, 2023
d7c1040
docs: finish windows sections
esoubiran-aneo Apr 21, 2023
ae2cbdc
docs: start updating scripts
esoubiran-aneo Apr 21, 2023
654cbbb
docs: installer in progress
esoubiran-aneo Apr 22, 2023
efa28e9
fix: remove a binary
esoubiran-aneo Apr 22, 2023
8216aaa
docs: add armonik deploy
esoubiran-aneo Apr 24, 2023
e544f1d
docs: update prerequisites title
esoubiran-aneo Apr 24, 2023
be7f7a9
docs: reorder files
esoubiran-aneo Apr 24, 2023
315b303
Merge branch 'main' into docs-refactor-pages
esoubiran-aneo Apr 24, 2023
271771f
Update .docs/content/0.armonik/components/3.armonik/1.control-plane.md
esoubiran-aneo Apr 24, 2023
5c25812
Update .docs/content/0.armonik/components/3.armonik/3.ingress.md
esoubiran-aneo Apr 24, 2023
a10d33f
Update .docs/content/1.installation/2.windows/2.wsl2-with-genie.md
esoubiran-aneo Apr 24, 2023
8df8dd3
Update .docs/content/1.installation/0.index.md
esoubiran-aneo Apr 24, 2023
3f128b2
Update .docs/content/1.installation/2.windows/2.wsl2-with-genie.md
esoubiran-aneo Apr 24, 2023
5789b67
Update infrastructure/utils/scripts/installation/prerequisites/instal…
esoubiran-aneo Apr 24, 2023
cc96d8f
Update .docs/content/1.installation/1.linux/0.prerequisites.md
esoubiran-aneo Apr 24, 2023
992d136
Apply suggestions from code review
esoubiran-aneo Apr 24, 2023
3d7de9b
docs: change using code review
esoubiran-aneo Apr 24, 2023
9549d2f
docs: add some todo for a next pr
esoubiran-aneo Apr 24, 2023
ac2de0d
Update .docs/content/0.armonik/components/2.monitoring/5.metrics-serv…
esoubiran-aneo Apr 25, 2023
9c1192e
Merge branch 'main' into docs-refactor-pages
esoubiran-aneo Apr 25, 2023
cf5c9d7
Update .docs/content/1.installation/2.windows/2.wsl2-with-genie.md
esoubiran-aneo Apr 28, 2023
d54884b
Merge branch 'main' into docs-refactor-pages
esoubiran-aneo Apr 28, 2023
c2169b2
Merge branch 'main' into docs-refactor-pages
dbrasseur-aneo Apr 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .docs/content/0.armonik/0.index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# ArmoniK
2 changes: 2 additions & 0 deletions .docs/content/0.armonik/_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: ArmoniK
navigation.icon: ph:house-duotone
11 changes: 11 additions & 0 deletions .docs/content/0.armonik/components/1.storage/1.apache-activemq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Apache ActiveMQ

## Description

Apache ActiveMQ is a message broker. It provides various features like queuing, point-to-point, publish-subscribe, clustering, and JMS.

::alert{type="info"}
You can learn more about ActiveMQ [on the official website](https://activemq.apache.org/).
::

## Usage in ArmoniK
11 changes: 11 additions & 0 deletions .docs/content/0.armonik/components/1.storage/2.mongodb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# MongoDB

## Description

MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need.

::alert{type="info"}
You can learn more about MongoDB [on the official website](https://www.mongodb.com/).
::

## Usage in ArmoniK
11 changes: 11 additions & 0 deletions .docs/content/0.armonik/components/1.storage/3.redis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Redis

## Description

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.

::alert{type="info"}
You can learn more about Redis [on the official website](https://redis.io/).
::

## Usage in ArmoniK
2 changes: 2 additions & 0 deletions .docs/content/0.armonik/components/1.storage/_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: Storage
navigation.icon: ph:database-duotone
11 changes: 11 additions & 0 deletions .docs/content/0.armonik/components/2.monitoring/1.seq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SEQ

## Description

SEQ is a log management tool that collects, indexes, and visualizes log data from any source.

::alert{type="info"}
You can learn more about SEQ [on the official website](https://datalust.co/seq).
::

## Usage in ArmoniK
11 changes: 11 additions & 0 deletions .docs/content/0.armonik/components/2.monitoring/2.grafana.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Grafana

## Description

Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB.

::alert{type="info"}
You can learn more about Grafana [on the official website](https://grafana.com/).
::

## Usage in ArmoniK
11 changes: 11 additions & 0 deletions .docs/content/0.armonik/components/2.monitoring/3.prometheus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Prometheus

## Description

Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company.

::alert{type="info"}
You can learn more about Prometheus [on the official website](https://prometheus.io/).
::

## Usage in ArmoniK
2 changes: 2 additions & 0 deletions .docs/content/0.armonik/components/2.monitoring/_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: Monitoring
navigation.icon: ph:chart-bar-duotone
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Controle Plane

## Description

::alert{type="info"}
You can learn more about Controle Plane [on the official documentation](https://aneoconsulting.github.io/ArmoniK.Core/).
esoubiran-aneo marked this conversation as resolved.
Show resolved Hide resolved
::

## Usage in ArmoniK
esoubiran-aneo marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Compute Plane

## Description

::alert{type="info"}
You can learn more about Compute Plane [on the official documentation](https://aneoconsulting.github.io/ArmoniK.Core/).
::

## Usage in ArmoniK
9 changes: 9 additions & 0 deletions .docs/content/0.armonik/components/3.armonik/3.admin-gui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Admin Gui

## Description

::alert{type="info"}
You can learn more about Admin Gui [on the official documentation](https://aneoconsulting.github.io/ArmoniK.Admin.GUI/).
::

## Usage in ArmoniK
2 changes: 2 additions & 0 deletions .docs/content/0.armonik/components/3.armonik/_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: ArmoniK
navigation.icon: ph:cpu-duotone
2 changes: 2 additions & 0 deletions .docs/content/0.armonik/components/_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: Components
navigation.icon: ph:bounding-box-duotone
4 changes: 3 additions & 1 deletion .docs/content/0.index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ main.fluid: false
---
cta:
- Get Started
- /guide
- /armonik
secondary:
- Open on GitHub →
- https://github.com/aneoconsulting/ArmoniK
Expand All @@ -21,3 +21,5 @@ ArmoniK
#description
The high throughput compute grid project using Kubernetes
::

<!-- TODO: Add boxes to explain why armonik is the best -->
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The best kind of todo

2 changes: 0 additions & 2 deletions .docs/content/1.guide/_dir.yml

This file was deleted.

9 changes: 9 additions & 0 deletions .docs/content/1.installation/0.index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Installation

ArmoniK can be installed on Linux **locally**, **on-premise** cluster or on **cloud provider**.
esoubiran-aneo marked this conversation as resolved.
Show resolved Hide resolved

::alert{type="info"}
- **Local** installation is **only for development purpose**. It is not recommended to use it in production.
- **On-premise** installation is **recommended for production** purpose.
- **Cloud** installation is **recommended for production** purpose.
::
108 changes: 108 additions & 0 deletions .docs/content/1.installation/1.linux/0.pre-requisites.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<!-- TODO: Create `collapse` or `spoiler` for requirement alert. @see https://elements.nuxt.space/globals/callout#callout -->

# Pre-requisites

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

::alert{type="info"}
You can [install ArmoniK on Windows using WSL2](../windows/0.installation-using-wsl2.md).
::


## Make

ArmoniK uses Make to run commands. You must have Make installed on your machine. You can follow the [official documentation](https://www.gnu.org/software/make/) to install Make on your machine.

::alert{type="info"}
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](https://en.wikipedia.org/wiki/Make_(software)).
::

## JQ

ArmoniK uses JQ to parse JSON. You must have JQ installed on your machine. You can follow the [official documentation](https://stedolan.github.io/jq/download/) to install JQ on your machine.

::alert{type="info"}
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](https://stedolan.github.io/jq/).
::

## Python3

ArmoniK uses Python3 to run scripts. You must have Python3 installed on your machine. You can follow the [official documentation](https://www.python.org/downloads/) to install Python3 on your machine.

::alert{type="info"}
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](https://en.wikipedia.org/wiki/Python_(programming_language)).
::

### HCL2

ArmoniK uses HCL2 to parse Terraform files. You must have HCL2 installed on your machine. You can follow the [official documentation](https://pypi.org/project/python-hcl2/) to install HCL2 on your machine.

::alert{type="info"}
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](https://en.wikipedia.org/wiki/HCL_(programming_language)).
::

### jsonpath-ng

ArmoniK uses jsonpath-ng to parse JSON. You must have jsonpath-ng installed on your machine. You can follow the [official documentation](https://pypi.org/project/jsonpath-ng/) to install jsonpath-ng on your machine.

::alert{type="info"}
What is jsonpath-ng? jsonpath-ng is a Python implementation of JSONPath. [Read more](https://pypi.org/project/jsonpath-ng/).
::

## Terraform

ArmoniK uses Terraform to deploy infrastructure. You must have Terraform installed on your machine. You can follow the [official documentation](https://learn.hashicorp.com/tutorials/terraform/install-cli) to install Terraform on your machine.

::alert{type="info"}
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](https://en.wikipedia.org/wiki/Terraform_(software)).
::

## Docker

ArmoniK uses Docker to run containers. You must have Docker installed on your machine. You can follow the [official documentation](https://docs.docker.com/engine/install/) to install Docker on your machine.

::alert{type="info"}
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](https://en.wikipedia.org/wiki/Docker_(software)).
::

## Kubernetes

::alert{type="danger"}
If you plan to install **ArmoniK for development purposes**, you must install [K3s](#k3s) instead of Kubernetes.
::

ArmoniK uses Kubernetes to orchestrate containers. You must have Kubernetes installed on your machine. You can follow the [official documentation](https://kubernetes.io/releases/download/) to install Kubernetes on your machine.

::alert{type="info"}
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](https://en.wikipedia.org/wiki/Kubernetes).
::

## K3s

::alert{type="info"}
If you plan to use **ArmoniK for production purposes**, you must install [Kubernetes](#kubernetes) instead of K3s.
::

In order to install K3s, you must run this command:

```bash
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config
```

If you have to uninstall K3s, you must run this command:

```bash
sudo /usr/local/bin/k3s-uninstall.sh
```

::alert{type="info"}
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](https://k3s.io/).
::

## Kubectl

ArmoniK uses Kubectl to manage Kubernetes. You must have Kubectl installed on your machine. You can follow the [official documentation](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) to install Kubectl on your machine.

::alert{type="info"}
What is Kubectl? Kubectl is a command-line tool for controlling Kubernetes clusters. [Read more](https://kubernetes.io/docs/reference/kubectl/overview/).
::
Original file line number Diff line number Diff line change
@@ -1,44 +1,18 @@
---
uid: all_in_one_deploy_linux
---
# Installation

# Ubuntu Linux 18.04 and 20.04 deployment
## Development Environment

Hereafter, You have instructions to deploy ArmoniK on dev/test environment upon your local machine with a simple deploy
script [deploy-dev-test-infra.sh] located in ArmoniK directory `infrastructure/utils/scripts/`.

The infrastructure is composed of:

* Storage:
* [ActiveMQ](https://activemq.apache)
* [MongoDB](https://www.mongodb.com/)
* [Redis](https://redis.com/)
* Monitoring:
* [Seq](https://datalust.co/) server for structured log data of ArmoniK.
* [Grafana](https://grafana.com/)
* [Prometheus](https://prometheus.io/)
* ArmoniK:
* Control plane
* Compute plane: polling agent and workers

# Prerequisites
<!-- TODO: Create 2 sections: manually and with a script -->
<!--
In order to deploy ArmoniK rapidly, we provide a script to deploy all the infrastructure in one command.
-->

The following software or tool should be installed upon your local Linux machine:
<!-- TODO: find the purpose of this script -->

* [Docker](https://docs.docker.com/engine/install/)
* [GNU make](https://www.gnu.org/software/make/)
* [JQ](https://stedolan.github.io/jq/download/)
* [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
* [Python](https://docs.python-guide.org/starting/install3/linux/) version 3
* [hcl2](https://pypi.org/project/python-hcl2/)
* [jsonpath-ng](https://pypi.org/project/jsonpath-ng/)
* [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)

# Install Kubernetes

You must have a Kubernetes on your local machine to install ArmoniK. If not, You can follow instructions in one of the following documentation [Install Kubernetes on dev/test local machine](k3s.md).
Hereafter, You have instructions to deploy ArmoniK on dev/test environment upon your local machine with a simple deploy
script [deploy-dev-test-infra.sh] located in ArmoniK directory `infrastructure/utils/scripts/`.

# Script bash all-in-one
## Script bash all-in-one

From the **root** of the repository, position yourself in directory `infrastructure/utils/scripts/` after cloning the [ArmoniK](https://github.com/aneoconsulting/ArmoniK) repository:

Expand Down Expand Up @@ -173,4 +147,4 @@ If You change the max or min replicas in the HPA of the compute plane:
-m deploy-all \
--hpa-min-replicas <HPA_MIN_REPLICAS> \
--hpa-max-replicas <HPA_MAX_REPLICAS>
```
```
Loading