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 26 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
Empty file.
2 changes: 2 additions & 0 deletions .docs/content/0.armonik/components/0.scaling/_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: Scaling
navigation.icon: ph:arrows-out-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
Copy link
Contributor

Choose a reason for hiding this comment

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

should be in the control plane if we speak about the one that tells the number of tasks in each status

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Metrics exporter

## Description

Metrics exporter is a tool that collects metrics from ArmoniK components and exposes them to Prometheus.

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

## Usage in ArmoniK
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Metrics server

## Description

Metrics server is a tool that collects metrics from Kubernetes components and exposes them to Prometheus.

::alert{type="info"}
You can learn more about metrics server [on the official website](https://kubernetes.io/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/#metrics-server).```
::

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

## Description

Node exporter is a tool that collects metrics from Kubernetes nodes and exposes them to Prometheus.

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

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

## Description

Fluentbit is a log collector that can be used to collect logs from containers and forward them to a log aggregator. It is a lightweight alternative to Fluentd.

::alert{type="info"}
You can learn more about Fluentbit [on the official website](https://fluentbit.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 the Control Plane [on the official documentation](https://aneoconsulting.github.io/ArmoniK.Core/).
::

## Usage in ArmoniK
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Polling agent
dbrasseur-aneo marked this conversation as resolved.
Show resolved Hide resolved

## Description

## Usage in ArmoniK
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Workers

## Description

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

## Description

Ingress is a Kubernetes resource that exposes HTTP and HTTPS routes from outside the cluster to services within the cluster.

::alert{type="info"}
You can learn more about Ingress [on the official documentation](https://kubernetes.io/docs/concepts/services-networking/ingress/) or in the [Nginx documentation](https://docs.nginx.com/nginx-ingress-controller/).
::

## Usage in ArmoniK
9 changes: 9 additions & 0 deletions .docs/content/0.armonik/components/3.armonik/4.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.

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

ArmoniK can be installed on Linux **locally**, on an **on-premise** cluster or on a cluster in a **cloud provider**.

::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.
::

<!-- TODO: Add about layers (how the project is split) -->
120 changes: 120 additions & 0 deletions .docs/content/1.installation/1.linux/0.prerequisites.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<!-- TODO: Create `collapse` or `spoiler` for requirement alert. @see https://elements.nuxt.space/globals/callout#callout -->

# 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](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/utils/scripts/installation/pre-requisites-installer.sh) from the root repository.

```bash
./infrastructure/utils/scripts/installation/prerequisites-installer.sh
```

::alert{type="info"}
Please, read the script before running it and make sure to have Docker Desktop disabled if you are on Windows.
::

::alert{type="warning"}
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.
::

## Programs

### 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)).
::

### Helm

ArmoniK uses Helm to deploy applications. You must have Helm installed on your machine. You can follow the [official documentation](https://helm.sh/docs/intro/install/) to install Helm on your machine.

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

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


::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/).
::
Loading