From 81046b8caadcce177bc31e9edf9fecaeedb03a24 Mon Sep 17 00:00:00 2001 From: "Nicolas GRUEL (ANEO)" Date: Tue, 30 May 2023 15:40:28 +0200 Subject: [PATCH 01/19] fix: Re-add powershell script for ArmoniK deployment on WSL (Ubuntu 22.04) --- .../armonik_dev_environment.ps1 | 239 ++++++++++++++++++ .../shell/armonik_installation.sh | 61 +++++ .../shell/armonik_requirements.sh | 26 ++ tools/wsl_installation/shell/systemd_wsl.sh | 6 + tools/wsl_installation/shell/test_armonik.sh | 24 ++ .../shell/ubuntu_requirements.sh | 32 +++ 6 files changed, 388 insertions(+) create mode 100644 tools/wsl_installation/armonik_dev_environment.ps1 create mode 100644 tools/wsl_installation/shell/armonik_installation.sh create mode 100644 tools/wsl_installation/shell/armonik_requirements.sh create mode 100644 tools/wsl_installation/shell/systemd_wsl.sh create mode 100644 tools/wsl_installation/shell/test_armonik.sh create mode 100644 tools/wsl_installation/shell/ubuntu_requirements.sh diff --git a/tools/wsl_installation/armonik_dev_environment.ps1 b/tools/wsl_installation/armonik_dev_environment.ps1 new file mode 100644 index 000000000..1c075e14d --- /dev/null +++ b/tools/wsl_installation/armonik_dev_environment.ps1 @@ -0,0 +1,239 @@ +<# + .SYNOPSIS + ArmoniK dev environment installation on Windows + + .DESCRIPTION + This script will allow ArmoniK dev to create a fast development + environment tailored for ArmoniK. + The script will, at least on a regular windows, open a new window + with Ubuntu WSL. In this window you will create a user by giving a username and a password. + This user will be `sudo` user. + In the original powershell window, you have to answer to three questions: + * the username which should be the username defined above + * the password which should be the username defined above + * the name of the branch that will be deployed + You can specify the variable `diskpath` to change the location of the virtual disk + + .PARAMETER diskpath + Folder in which to install the virtual disk. If not specified, the default path is used. + + .PARAMETER vmversion + Version of Ubuntu to install. If unspecified, the version used is `Ubuntu-22.04`. You can check the list of available WSL versions with + PS> wsl --list --online + + .EXAMPLE + PS> Set-ExecutionPolicy Bypass -Scope Process -Force; .\armonik_dev_environnement.ps1 + PS> armonik_dev_environnement.ps1 + + .EXAMPLE + PS> Set-ExecutionPolicy Bypass -Scope Process -Force; .\armonik_dev_environnement.ps1 + PS> armonik_dev_environnement.ps1 -diskpath D:\WSL + + .EXAMPLE + PS> Set-ExecutionPolicy Bypass -Scope Process -Force; .\armonik_dev_environnement.ps1 + PS> armonik_dev_environnement.ps1 -diskpath D:\WSL -vmversion Ubuntu-22.04 + + #> + +param ($diskpath, $vmversion, $k3s_version_pre_211) + +if (-Not $k3s_version_pre_211){ + $k3s_version = "" +} +else { + $k3s_version = "v1.23.9+k3s1" +} + +if (-Not $vmversion){ + $vmversion = 'Ubuntu-22.04' +} + +function Move-Disk { + # Stop wsl + wsl --shutdown + + # Create directory, do nothing if it exists + mkdir $diskpath -Force + + $tarpath = Join-Path -Path $diskpath -ChildPath tmp.tar + + # Export to tar + Write-Host "Exporting to tar..." + wsl --export $vmversion $tarpath + + # Unregister old + wsl --unregister $vmversion + + # Import in new path + Write-Host "Importing to new location..." + wsl --import $vmversion $diskpath $tarpath + + # Remove tar + Remove-Item $tarpath + + $config_exe = $vmversion.Replace(".", "").Replace("-", "") + + # Change default user back to what it was + Push-Location $env:LOCALAPPDATA\Microsoft\WindowsApps + Invoke-expression "$config_exe config --default-user $ubuntu_user" + Pop-Location +} + +# Test if Powershell Core is installed +$Pwsh = Get-Command -Name pwsh.exe -ErrorAction SilentlyContinue +if (-Not $Pwsh) { + Write-Host "Please install PowerShell Core https://github.com/PowerShell/PowerShell" + Exit +} + +# Test if Docker Desktop is running +try { + $docker_desktop_inst = Get-Process com.docker.service -ea Stop + Write-Host "WARNING: Please disable Docker Desktop service." + Write-Host "WSL with systemd is needed to run kubernetes." + Write-Host "There are an incompatibility if Docker Desktop is also running." + Write-Host "Stopping the service need Administrative access." + Write-Host "In an elevated powershell you can run the following command:" + Write-Host "Stop-Service com.docker.service" -ForegroundColor Green + Exit +} +catch {} + +$available_installs = wsl --list --online +$available_installs = $available_installs.split() -like "Ubuntu*" | Sort-Object | Get-Unique +if($vmversion -notin $available_installs){ + Write-Host "The demanded version $vmversion is not available" + Write-Host "This deployment script only supports Ubuntu installations" + Write-Host "Available installations are :" $available_installs -Separator "`n - " + Exit +} + +# Test if WSL with ubuntu image has been previously installed +$wsl_output = wsl --list --quiet | Out-String +$ubuntu_exist = $vmversion -in $wsl_output.Split() +if ($ubuntu_exist) { + Write-Host "WSL $vmversion exist. This script will not touch this installation." + Write-Host "You can save it and re-install it with the commande:" + Write-Host "wsl --export $vmversion .tar" + Write-Host "After saving it. You can unregister this WSL and use this script." + Write-Host "wsl --unregister $vmversion" -ForegroundColor Green + Exit +} + +# Environments variables + +$pathfile = Convert-Path $PWD +$pathfile = $pathfile.Replace(":","") +$pathlist = $pathfile.Split("\") +$pathlist[0] = $pathlist[0].Substring(0).ToLower() +$pathname = $pathlist[0..($pathlist.Count-1)] -join "/" +$pathname = -join("/mnt/", $pathname, "/shell") + +# Note: to export a previous WSL based on Ubuntu +# wsl --export Ubuntu Ubuntu_with_armorik.tar + +# installation Windows Subsystem Linux (WSL) +# Note: +# That will open a new powershell terminal. +# This terminal will open the linux wsl and ask +# to give a user name and password. +# This credentials will be the ones with the administrative +# power. +# It is advised to use the same username on the linux and +# windows plateform or this script will have to be adapted. + +Write-Host "The script will create a Windows Subsytem Linux using the $vmversion image." +wsl --install -d $vmversion +Write-Host "Wait until the WSL is configured to answer the question." -ForegroundColor Yellow +$ubuntu_user = Read-Host -Prompt "Which username did you use for your wsl installation" +Write-Host "Username that will be use for the next steps: $ubuntu_user" + +$ubuntu_password = Read-Host -Prompt "Which password did you use for your wsl installation" -AsSecureString +$ubuntu_password = [Runtime.InteropServices.Marshal]::PtrToStringAuto( + [Runtime.InteropServices.Marshal]::SecureStringToBSTR($ubuntu_password)) + + + ## Move virtual disk if the option is specified + if($diskpath) { + Write-Host "Moving installation to the specified disk path : $diskpath" + Move-Disk + Write-Host "WSL installation succesfully moved" +} + +## Install requirements + +## Note: the sed command is used to convert the end of line to unix ones +wsl -d $vmversion cp $pathname/ubuntu_requirements.sh /tmp +wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/ubuntu_requirements.sh +wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S bash /tmp/ubuntu_requirements.sh $ubuntu_user" +#wsl -d $vmversion rm /tmp/ubuntu_requirements.sh + +# Genie installation to have a systemd on the Ubuntu wsl image +wsl -d $vmversion cp $pathname/systemd_wsl.sh /tmp +wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/systemd_wsl.sh +wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S bash /tmp/systemd_wsl.sh" +wsl -d $vmversion rm /tmp/systemd_wsl.sh +wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S systemctl disable getty@tty1.service multipathd.service multipathd.socket ssh.service" +wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S systemctl mask systemd-remount-fs.service" + + +# ArmoniK +Write-Host "ArmoniK requirements installation (docker, k3s, terraform)" +wsl -d $vmversion cp $pathname/armonik_requirements.sh /tmp +wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/armonik_requirements.sh +wsl -d $vmversion bash -c "echo $ubuntu_password | sudo -S bash /tmp/armonik_requirements.sh $ubuntu_user $k3s_version" +#wsl -d $vmversion rm /tmp/armonik_requirements.sh + +# Ask if the dev want to continue on the armonik installation or not +$armonik_installation = ($v = Read-Host "Do you to continue on the ArmoniK installation part (Y/n)") ? $v : "y" +if ($armonik_installation.substring(0,1).toupper() -eq "n") { + Exit +} else { + Write-Host "Docker, k3s, terraform and just installed on WSL" +} + +Write-Host "The ArmoniK installation is available for every tag and branches available on Github" +Write-Host "Available branches:" +$available_branches=git branch -a +foreach ($branch_name in $available_branches) + {Write-Host $branch_name} +$armonik_branch = Read-Host -Prompt "Which branch do you want to use?" +Write-Host "ArmoniK branch that will be use for the next steps: $armonik_branch" +# TODO: parse the $available_branches, give a number using the actual one (with a * in front) as default + +Write-Host "ArmoniK installation" +wsl -d $vmversion cp $pathname/armonik_installation.sh /tmp +wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/armonik_installation.sh +wsl -d $vmversion bash /tmp/armonik_installation.sh $armonik_branch +#wsl -d $vmversion rm /tmp/armonik_installation.sh + +# Obtain the information on the ArmoniK installation +wsl -d $vmversion kubectl get po -n armonik +wsl -d $vmversion kubectl get svc -n armonik + +# Get WSL host IP adress +$wsl_ip = (wsl -d $vmversion hostname -I).trim().split()[0] +Write-Host "WSL Machine IP: ""$wsl_ip""" + +# Open seq webserver in default browser +$seq_url = -join("http://", $wsl_ip, ":5000/seq") +Start-Process $seq_url + +# Open ArmoniK Gui in default browser +$gui_url = -join("http://", $wsl_ip, ":5000/") +Start-Process $gui_url + +# Test installation + +# Ask if the dev want to continue on the armonik installation or not +$armonik_tests = Read-Host -Prompt "Do you to launch the ArmoniK.Samples unified and symphony (Y/n)" +if ($armonik_tests.substring(0,1).toupper() -eq "n") { + Exit +} + +# Launch integrations tests +Write-Host "Launch integration test" +wsl -d $vmversion cp $pathname/test_armonik.sh /tmp +wsl -d $vmversion sed -i -e "'s/\r$//'" /tmp/test_armonik.sh +wsl -d $vmversion bash /tmp/test_armonik.sh $armonik_branch +#wsl -d $vmversion rm /tmp/test_armonik.sh diff --git a/tools/wsl_installation/shell/armonik_installation.sh b/tools/wsl_installation/shell/armonik_installation.sh new file mode 100644 index 000000000..c3b45a4f6 --- /dev/null +++ b/tools/wsl_installation/shell/armonik_installation.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# usage: armonik_installation.sh + +if [ -z "$1" ] +then + echo "Usage: $0 " + exit 1 +fi + +# Clone ArmoniK github repository (with submodule) +git config --global core.autocrlf +if [ ! -d $HOME/ArmoniK ] +then + git clone --recurse-submodules https://github.com/aneoconsulting/ArmoniK $HOME/ArmoniK +fi +cd $HOME/ArmoniK + +git checkout -b arm_install $1 + +# change branch +#while ! git rev-parse --quiet --verify $branch_name > /dev/null +#do +# echo "Branch available:"; +# git branch -a +# echo "Name of the branch you want to use (without the path)?" +# read branch_name +# git checkout $branch_name +#done + +# Change directory to use Makefile for quick deployement +cd $HOME/ArmoniK/infrastructure/quick-deploy/localhost + +# source envvars.sh +export ARMONIK_KUBERNETES_NAMESPACE=armonik +export ARMONIK_SHARED_HOST_PATH=$HOME/data +export ARMONIK_FILE_STORAGE_FILE=HostPath +export ARMONIK_FILE_SERVER_IP="" +export KEDA_KUBERNETES_NAMESPACE=default +export METRICS_SERVER_KUBERNETES_NAMESPACE=kube-system + +# Created shared storage +mkdir -p "${ARMONIK_SHARED_HOST_PATH}" +# ArmoniK installation +# ArmoniK full deployment + +#make deploy-all # does not work with version v2.8.4 + +echo "Kubernetes name space creation" +make create-namespace + +echo "Keda deployment" +make deploy-keda + +echo "Storage creation: ActiveMQ, MongoDB, Redis" +make deploy-storage +echo "ArmoniK storage information are store in $PWD'/storage/generated/storage-output.json'" +echo "Monitoring deployment" +make deploy-monitoring +echo "ArmoniK monitoring information are store in $PWD'/monitoring/generated/monitoring-output.json'" +echo "Deploy ArmoniK" +make deploy-armonik diff --git a/tools/wsl_installation/shell/armonik_requirements.sh b/tools/wsl_installation/shell/armonik_requirements.sh new file mode 100644 index 000000000..0a1940e7e --- /dev/null +++ b/tools/wsl_installation/shell/armonik_requirements.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# usage: armonik_requirements.sh + +set -ex + +# install the pre-requisite need for ArmoniK not available on Ubuntu 22.04 (k3s, terraform) + +# k3s + +## change mode in kubernet installation: https://github.com/k3s-io/k3s/issues/389 +curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$2 sh -s - --write-kubeconfig-mode 644 --docker --write-kubeconfig ~/.kube/config + +# copy k3s config file from /root to /home/$USER +cp -r $HOME/.kube /home/$1 +chown -R $1:$1 /home/$1/.kube + +systemctl enable k3s +systemctl start k3s + +# Terraform +curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add - +apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main" + +apt update +apt -y install terraform + diff --git a/tools/wsl_installation/shell/systemd_wsl.sh b/tools/wsl_installation/shell/systemd_wsl.sh new file mode 100644 index 000000000..c6b848c02 --- /dev/null +++ b/tools/wsl_installation/shell/systemd_wsl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# turn on systemd on ubuntu 22.04 or above +echo $'[boot]\nsystemd=true' > /etc/wsl.conf diff --git a/tools/wsl_installation/shell/test_armonik.sh b/tools/wsl_installation/shell/test_armonik.sh new file mode 100644 index 000000000..77ebe28fc --- /dev/null +++ b/tools/wsl_installation/shell/test_armonik.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -x +export CPIP=$(kubectl get svc control-plane -n armonik -o custom-columns="IP:.spec.clusterIP" --no-headers=true) +export CPPort=$(kubectl get svc control-plane -n armonik -o custom-columns="PORT:.spec.ports[*].port" --no-headers=true) +export Grpc__Endpoint=http://$CPIP:$CPPort + +# cd $HOME/ArmoniK/ +# if [ -d source/ArmoniK.Extensions.Csharp ] +# then +# git submodule update --init --recursive +# else +# git clone https://github.com/aneoconsulting/ArmoniK.Extensions.Csharp.git source/ArmoniK.Extensions.Csharp +# fi + +cd $HOME/ArmoniK/ +if [ -d source/ArmoniK.Samples ] +then + git submodule update --init --recursive +else + git clone https://github.com/aneoconsulting/ArmoniK.Samples.git +fi + +bash ArmoniK.Samples/tools/tests/symphony_like.sh -e $Grpc__Endpoint pTask 1000 +bash ArmoniK.Samples/tools/tests/unified_api.sh -e $Grpc__Endpoint pTask 1000 \ No newline at end of file diff --git a/tools/wsl_installation/shell/ubuntu_requirements.sh b/tools/wsl_installation/shell/ubuntu_requirements.sh new file mode 100644 index 000000000..011144bc9 --- /dev/null +++ b/tools/wsl_installation/shell/ubuntu_requirements.sh @@ -0,0 +1,32 @@ +#!/usr/bin/bash +# usage: $0 + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +set -e + +apt update +apt -y dist-upgrade +apt -y install lsb-release jq make git python3-pip +apt -y install python-is-python3 + +# dotnet 6.0 installation +apt -y install dotnet-sdk-6.0 dotnet6 + +# Install gpg to add needed repositories +apt -y install gnupg software-properties-common +apt -y install curl lsb-release software-properties-common apt-transport-https gnupg + +# Install docker (from Ubuntu repository) +apt -y install docker.io + +## Create docker group and add user +echo "Create docker group and add user " $1 +addgroup docker +adduser $1 docker + +# To be able to test armonik_core only install just +snap install --edge --classic just From 0370e2eb841d798429d66505fdf7be12486ab054 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 18 Jul 2023 15:31:34 +0200 Subject: [PATCH 02/19] added entries to glossary --- .docs/content/0.armonik/1.glossary.md | 61 +++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 36cf29745..a54693550 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -1,5 +1,13 @@ # Glossary +Here is an alphabetically sorted list to help you understand every term you might encounter in the ArmoniK project: + +## ActiveMQ +Open source message broker written in Java used as the jobs queue database. + +## CLA +Contributor License Agreement, Contribution agreement in the form of a license that everyone contributing to a given project must sign. One CLA is to be signed per repository. + ## Client User-developed software that communicates with the ArmoniK Control Plane to submit a list of tasks to be executed (by one or several workers) and retrieves results and error. @@ -26,25 +34,57 @@ Input data for a given task that depends on another unique task. Data dependenci Expression designating the set of software components running the various storage and database systems within ArmoniK. -## Kubernetes +## Fluentbit +Log and metrics monitoring tool, optimized for scalable environments. +For more information, check [Fluentbit's documentation](https://docs.fluentbit.io/manual) + +## HPA +Horizontal Pod Autoscaler : a Kubernetes module to automatically update the workload to balance the resources/tasks ratio as much as possible. + +## KEDA + +Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. +For more information, check [KEDA's documentation](https://keda.sh/docs/) + +## Grafana + +Data visualization web application. +For more information, check [Grafana's documentation](https://grafana.com/docs/) + +## gRPC + +Open source framework capable of running on different platforms, computer or server, and can communicate between these different environments . Remote Procedure Call was made by Google originally. +For more information, check [gRPC's website](https://grpc.io/docs/) + +## Ingress + +API object that manages external access to the services in a cluster, typically HTTP. Ingress may provide load balancing, SSL termination and name-based virtual hosting. + +## Kubernetes Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) (see Kubernetes [documentation](https://kubernetes.io/docs/home/#:~:text=Kubernetes%20is%20an%20open%20source,and%20management%20of%20containerized%20applications.)). ## MongoDB -MongoDB is a document database designed for ease of application development and scaling (see MongoDB [documentation](https://www.mongodb.com/docs/manual/)). +MongoDB is a document database designed for ease of application development and scaling +For more information, check [MongoDB's documentation](https://www.mongodb.com/docs/manual/). ## Node In the context of Kubernetes, a node is a machine that runs containerized workloads as part of a Kubernetes cluster. A node can be a physical or virtual machine hosted in the cloud or on-premise. +## NuGet + +The name can be used to refer to the **package manager** using the .NET framework or the **packages** themselves. These packages contain code from other developers that you may download and use. +For more information, check the [NuGet documentation](https://learn.microsoft.com/en-us/nuget/) + ## Partition Logical segmentation of the Kubernetes cluster's pool of machines to distribute workloads according to usage. This feature is provided and handled by ArmoniK. ## Payload -Input data for a task that does not depend on any other task. +Input data for a task that does not depend on any other task. It contains data, the task itself, and metadata, the state of the task. ## Pod @@ -52,7 +92,12 @@ Pods are the smallest deployable units of computing that one can create and mana ## Polling agent -Former term for scheduling agent. +Former name of the scheduling agent. + +## Prometheus + +Toolkit that collects and stores time series data from the different systems. These data can be visualized with Grafana for monitoring. +For more information, check [Prometheus documentation](https://prometheus.io/docs/introduction/overview/) ## Redis @@ -66,6 +111,11 @@ Containerized software cohabiting with a worker within a pod, running a specific A session is a logical container for tasks and associated data (task statut, results, errors, etc). Every task is submitted within a session. An existing session can be resumed to retrieve data or submit new tasks. When a session is cancelled, all associated executions still in progress are interrupted. +## Seq + +Logs aggregator software. Used in ArmoniK to determine the status of tasks and identify errors in the Control Plane if they occur. +For more information, check [Seq's documentation](https://docs.datalust.co/docs) + ## Submitter Containerized software in charge of submitting tasks, i.e., writing the corresponding data to the various databases (queue, Redis and MongoDB). @@ -77,3 +127,6 @@ Atomic computation taking one or several input data and outputting one or severa ## Worker User-developed containerized software capable of performing one or several tasks depending on its implementation. A worker can simply take input data and perform calculations on it to return a result. A worker can also submit new tasks that will be self-performed, or by different workers, other instances of itself. + +## Workload +Set of computational tasks From b9dea82eff44ec1becd0df3619bbeb1de02dedfe Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Wed, 19 Jul 2023 15:34:44 +0200 Subject: [PATCH 03/19] added links to some definitions --- .docs/content/0.armonik/1.glossary.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index a54693550..814e3615f 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -5,9 +5,13 @@ Here is an alphabetically sorted list to help you understand every term you migh ## ActiveMQ Open source message broker written in Java used as the jobs queue database. +For more information, check [ActiveMQ documentation](https://activemq.apache.org/) + ## CLA Contributor License Agreement, Contribution agreement in the form of a license that everyone contributing to a given project must sign. One CLA is to be signed per repository. +You may read the CLA [here](https://gist.github.com/svc-cla-github/d47e32c1e81248bde8fee5aec9c8f922) + ## Client User-developed software that communicates with the ArmoniK Control Plane to submit a list of tasks to be executed (by one or several workers) and retrieves results and error. @@ -41,6 +45,8 @@ For more information, check [Fluentbit's documentation](https://docs.fluentbit.i ## HPA Horizontal Pod Autoscaler : a Kubernetes module to automatically update the workload to balance the resources/tasks ratio as much as possible. +For more information, check [Kubernetes documentation about HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) + ## KEDA Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. @@ -60,9 +66,13 @@ For more information, check [gRPC's website](https://grpc.io/docs/) API object that manages external access to the services in a cluster, typically HTTP. Ingress may provide load balancing, SSL termination and name-based virtual hosting. +For more information, check [Kubernetes documentation about Ingress](https://kubernetes.io/fr/docs/concepts/services-networking/ingress/) + ## Kubernetes -Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) (see Kubernetes [documentation](https://kubernetes.io/docs/home/#:~:text=Kubernetes%20is%20an%20open%20source,and%20management%20of%20containerized%20applications.)). +Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) + +For more information, check [Kubernetes documentation](https://kubernetes.io/docs/home/) ## MongoDB From 825584e65b14f3aa88b1d2ba15e12e20cb1a1fb8 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Wed, 19 Jul 2023 15:58:45 +0200 Subject: [PATCH 04/19] changed ingress link --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 814e3615f..e2720ec7b 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -66,7 +66,7 @@ For more information, check [gRPC's website](https://grpc.io/docs/) API object that manages external access to the services in a cluster, typically HTTP. Ingress may provide load balancing, SSL termination and name-based virtual hosting. -For more information, check [Kubernetes documentation about Ingress](https://kubernetes.io/fr/docs/concepts/services-networking/ingress/) +For more information, check [Kubernetes documentation about Ingress](https://docs.nginx.com/nginx-ingress-controller/intro/overview/) ## Kubernetes From 61af7f58d9646b6292f85b4b7071aac80e2b1816 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Fri, 21 Jul 2023 09:24:24 +0200 Subject: [PATCH 05/19] fixed some lint errors --- .docs/content/0.armonik/1.glossary.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index e2720ec7b..9507b5b6f 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -3,11 +3,13 @@ Here is an alphabetically sorted list to help you understand every term you might encounter in the ArmoniK project: ## ActiveMQ + Open source message broker written in Java used as the jobs queue database. For more information, check [ActiveMQ documentation](https://activemq.apache.org/) ## CLA + Contributor License Agreement, Contribution agreement in the form of a license that everyone contributing to a given project must sign. One CLA is to be signed per repository. You may read the CLA [here](https://gist.github.com/svc-cla-github/d47e32c1e81248bde8fee5aec9c8f922) @@ -39,10 +41,12 @@ Input data for a given task that depends on another unique task. Data dependenci Expression designating the set of software components running the various storage and database systems within ArmoniK. ## Fluentbit + Log and metrics monitoring tool, optimized for scalable environments. For more information, check [Fluentbit's documentation](https://docs.fluentbit.io/manual) ## HPA + Horizontal Pod Autoscaler : a Kubernetes module to automatically update the workload to balance the resources/tasks ratio as much as possible. For more information, check [Kubernetes documentation about HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) @@ -60,6 +64,7 @@ For more information, check [Grafana's documentation](https://grafana.com/docs/) ## gRPC Open source framework capable of running on different platforms, computer or server, and can communicate between these different environments . Remote Procedure Call was made by Google originally. + For more information, check [gRPC's website](https://grpc.io/docs/) ## Ingress @@ -139,4 +144,5 @@ Atomic computation taking one or several input data and outputting one or severa User-developed containerized software capable of performing one or several tasks depending on its implementation. A worker can simply take input data and perform calculations on it to return a result. A worker can also submit new tasks that will be self-performed, or by different workers, other instances of itself. ## Workload + Set of computational tasks From df0187ca0bb76e8201d7b6061cd1d46bd6d09ce9 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Fri, 21 Jul 2023 09:33:40 +0200 Subject: [PATCH 06/19] fixed blank spaces at the end of some lines --- .docs/content/0.armonik/1.glossary.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 9507b5b6f..981c36444 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -51,7 +51,7 @@ Horizontal Pod Autoscaler : a Kubernetes module to automatically update the work For more information, check [Kubernetes documentation about HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) -## KEDA +## KEDA Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. For more information, check [KEDA's documentation](https://keda.sh/docs/) @@ -69,19 +69,19 @@ For more information, check [gRPC's website](https://grpc.io/docs/) ## Ingress -API object that manages external access to the services in a cluster, typically HTTP. Ingress may provide load balancing, SSL termination and name-based virtual hosting. +API object that manages external access to the services in a cluster, typically HTTP. Ingress may provide load balancing, SSL termination and name-based virtual hosting. For more information, check [Kubernetes documentation about Ingress](https://docs.nginx.com/nginx-ingress-controller/intro/overview/) -## Kubernetes +## Kubernetes -Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) +Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) For more information, check [Kubernetes documentation](https://kubernetes.io/docs/home/) ## MongoDB -MongoDB is a document database designed for ease of application development and scaling +MongoDB is a document database designed for ease of application development and scaling. For more information, check [MongoDB's documentation](https://www.mongodb.com/docs/manual/). ## Node From 46ee04480051dd84fe74f8256197f4d7934a3521 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 14:26:44 +0200 Subject: [PATCH 07/19] all in one doc and links modifications --- .../{1.installation.md => 1.deployment.md} | 2 +- .../1.linux/2.all-in-one-deployment.md | 48 ++++++++++++++++ ...installation.md => 3.verify-deployment.md} | 2 +- ...{3.deploy-script.md => 4.deploy-script.md} | 2 +- .../3.aws/aws-all-in-one-deployment.md | 57 +++++++++++++++++++ .docs/content/2.guide/populate-database.md | 2 +- 6 files changed, 109 insertions(+), 4 deletions(-) rename .docs/content/1.installation/1.linux/{1.installation.md => 1.deployment.md} (99%) create mode 100644 .docs/content/1.installation/1.linux/2.all-in-one-deployment.md rename .docs/content/1.installation/1.linux/{2.verify-installation.md => 3.verify-deployment.md} (91%) rename .docs/content/1.installation/1.linux/{3.deploy-script.md => 4.deploy-script.md} (99%) create mode 100644 .docs/content/1.installation/3.aws/aws-all-in-one-deployment.md diff --git a/.docs/content/1.installation/1.linux/1.installation.md b/.docs/content/1.installation/1.linux/1.deployment.md similarity index 99% rename from .docs/content/1.installation/1.linux/1.installation.md rename to .docs/content/1.installation/1.linux/1.deployment.md index b29bbfea7..2f1fc8372 100644 --- a/.docs/content/1.installation/1.linux/1.installation.md +++ b/.docs/content/1.installation/1.linux/1.deployment.md @@ -1,4 +1,4 @@ -# Installation +# Deployment Now that prerequisites are installed, you can install ArmoniK. In order to do that, we provide a script to deploy all the infrastructure in one command. diff --git a/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md b/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md new file mode 100644 index 000000000..e8aa3c63d --- /dev/null +++ b/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md @@ -0,0 +1,48 @@ +# All in one deployment + + +If you want to deploy ArmoniK with all the cloud services, this section is for you. + +::alert{type="info"} +This deployment is for development purposes. +:: +## Deploy + +To launch the deployment, go to the [`infrastructure/quick-deploy/localhost/all`](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/quick-deploy/localhost/all) directory : + + +If you want to deploy on AWS, go to the dedicated section on [`AWS`](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/quick-deploy/aws/all) + +Execute the following command: + +```bash +make +``` + +or + +```bash +make deploy +``` + +## Configuration + +All parameters are contained in [`parameters.tfvars`](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/quick-deploy/localhost/all/parameters.tfvars) + +::alert{type="info"} +By default, all the cloud services are set to launch. To see what kind of parameters are available, read [`variables.tf`](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/quick-deploy/localhost/all/variables.tf) +:: + +You can specify a custom parameter file. When executing the `make` command, you may use the `PARAMETERS_FILE` option to set the path to your file. + +```bash +make PARAMETERS_FILE=my-custom-parameters.tfvars +``` + +## Destroy + +To destroy the deployment, type: + +```bash +make destroy +``` diff --git a/.docs/content/1.installation/1.linux/2.verify-installation.md b/.docs/content/1.installation/1.linux/3.verify-deployment.md similarity index 91% rename from .docs/content/1.installation/1.linux/2.verify-installation.md rename to .docs/content/1.installation/1.linux/3.verify-deployment.md index 6442bcb75..8cb881783 100644 --- a/.docs/content/1.installation/1.linux/2.verify-installation.md +++ b/.docs/content/1.installation/1.linux/3.verify-deployment.md @@ -1,6 +1,6 @@ # Verify Installation -After [installing ArmoniK](./1.installation.md), it is time to execute some simple tests to check that everything is working as expected. In order to do that, the ArmoniK team is providing three simple tests to verify that the deployment went well. +After [installing ArmoniK](./1.deployment.md), it is time to execute some simple tests to check that everything is working as expected. In order to do that, the ArmoniK team is providing three simple tests to verify that the deployment went well. ## Seq diff --git a/.docs/content/1.installation/1.linux/3.deploy-script.md b/.docs/content/1.installation/1.linux/4.deploy-script.md similarity index 99% rename from .docs/content/1.installation/1.linux/3.deploy-script.md rename to .docs/content/1.installation/1.linux/4.deploy-script.md index 8e1b7b0f3..569fd67f5 100644 --- a/.docs/content/1.installation/1.linux/3.deploy-script.md +++ b/.docs/content/1.installation/1.linux/4.deploy-script.md @@ -3,7 +3,7 @@ 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](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/utils/scripts/deploy-dev-test-infra.sh) -You can find [prerequisites here](./0.prerequisites.md) and [installation instructions here](./1.installation.md) +You can find [prerequisites here](./0.prerequisites.md) and [installation instructions here](./1.deployment.md) # Script bash diff --git a/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md b/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md new file mode 100644 index 000000000..4116efb85 --- /dev/null +++ b/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md @@ -0,0 +1,57 @@ +# AWS all in one deployment + +Deploying on AWS is similar to deploying on localhost but with the necessity to deploy an S3 bucket first. + +## Generate S3 bucket key +Execute the following command to generate a prefix key: + +```bash +make bootstrap-deploy PREFIX= +``` + +To deploy, simply execute the following command: +```bash +make deploy PREFIX= +``` + +Note : after the deployment, you can retrieve the prefix key in the prefix file: `/generated/.prefix` + +To destroy the deployment, execute the following command: + +```bash +make destroy PREFIX= +``` + +To destroy the AWS prefix key, execute the following command: + +```bash +make bootstrap-destroy PREFIX= +``` + +## Accessing Kubernetes cluster + +To access your Kubernetes cluster, execute the following command after entering your settings in the 3 angle brackets: + +```bash +aws --profile ​ eks update-kubeconfig --region --name ​ +``` + +or simply enter the following command: + +```bash +export KUBECONFIG=/generated/kubeconfig +``` + +## Configuration + +All parameters are contained in [`parameters.tfvars`](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/quick-deploy/aws/all/parameters.tfvars) + +::alert{type="info"} +By default, all the cloud services are set to launch. To see what kind of parameters are available, read [`variables.tf`](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/quick-deploy/aws/all/variables.tf) +:: + +You can specify a custom parameter file. When executing the `make` command, you may use the `PARAMETERS_FILE` option to set the path to your file. + +```bash +make PARAMETERS_FILE=my-custom-parameters.tfvars +``` \ No newline at end of file diff --git a/.docs/content/2.guide/populate-database.md b/.docs/content/2.guide/populate-database.md index f02339c30..03a86bd00 100644 --- a/.docs/content/2.guide/populate-database.md +++ b/.docs/content/2.guide/populate-database.md @@ -8,7 +8,7 @@ This guide is useful for the [Admin GUI](https://github.com/aneoconsulting/Armon ## Prerequisites -You need to have a running ArmoniK cluster. If you don't have one, please follow the [Getting Started](../1.installation/1.linux/1.installation.md) guide. +You need to have a running ArmoniK cluster. If you don't have one, please follow the [Getting Started](../1.installation/1.linux/1.deployment.md) guide. ## Functioning From a463c5620d56ccd91d4eb24e196ddbfcf96f9757 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 14:52:19 +0200 Subject: [PATCH 08/19] re upload of the all in one doc lint fixes --- .../1.linux/2.all-in-one-deployment.md | 14 +++++++------- .../3.aws/aws-all-in-one-deployment.md | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md b/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md index e8aa3c63d..989fd809e 100644 --- a/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md +++ b/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md @@ -4,22 +4,22 @@ If you want to deploy ArmoniK with all the cloud services, this section is for you. ::alert{type="info"} -This deployment is for development purposes. +This deployment is for development purposes. :: -## Deploy -To launch the deployment, go to the [`infrastructure/quick-deploy/localhost/all`](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/quick-deploy/localhost/all) directory : +## Deploy +To launch the deployment, go to the [`infrastructure/quick-deploy/localhost/all`](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/quick-deploy/localhost/all) directory: -If you want to deploy on AWS, go to the dedicated section on [`AWS`](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/quick-deploy/aws/all) +If you want to deploy on AWS, go to the dedicated section on [`AWS`](https://github.com/aneoconsulting/ArmoniK/tree/main/infrastructure/quick-deploy/aws/all) -Execute the following command: +Execute the following command: ```bash make ``` -or +or ```bash make deploy @@ -37,7 +37,7 @@ You can specify a custom parameter file. When executing the `make` command, you ```bash make PARAMETERS_FILE=my-custom-parameters.tfvars -``` +``` ## Destroy diff --git a/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md b/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md index 4116efb85..8b9324388 100644 --- a/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md +++ b/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md @@ -10,6 +10,7 @@ make bootstrap-deploy PREFIX= ``` To deploy, simply execute the following command: + ```bash make deploy PREFIX= ``` @@ -54,4 +55,4 @@ You can specify a custom parameter file. When executing the `make` command, you ```bash make PARAMETERS_FILE=my-custom-parameters.tfvars -``` \ No newline at end of file +``` From 07eb9b6b43d2f57be5bc27eea856c45f4a841ef7 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 15:15:43 +0200 Subject: [PATCH 09/19] lint fixes --- .docs/content/1.installation/1.linux/2.all-in-one-deployment.md | 1 - .docs/content/1.installation/3.aws/aws-all-in-one-deployment.md | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md b/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md index 989fd809e..269f2b79f 100644 --- a/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md +++ b/.docs/content/1.installation/1.linux/2.all-in-one-deployment.md @@ -1,6 +1,5 @@ # All in one deployment - If you want to deploy ArmoniK with all the cloud services, this section is for you. ::alert{type="info"} diff --git a/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md b/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md index 8b9324388..58e4c6516 100644 --- a/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md +++ b/.docs/content/1.installation/3.aws/aws-all-in-one-deployment.md @@ -3,6 +3,7 @@ Deploying on AWS is similar to deploying on localhost but with the necessity to deploy an S3 bucket first. ## Generate S3 bucket key + Execute the following command to generate a prefix key: ```bash From b79930e1afd80e47aaae6ea97d5d2b0065a786b4 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 15:30:24 +0200 Subject: [PATCH 10/19] added glossary as it was in previous PR --- .docs/content/0.armonik/1.glossary.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 981c36444..d7d838712 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -51,11 +51,6 @@ Horizontal Pod Autoscaler : a Kubernetes module to automatically update the work For more information, check [Kubernetes documentation about HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) -## KEDA - -Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. -For more information, check [KEDA's documentation](https://keda.sh/docs/) - ## Grafana Data visualization web application. @@ -73,6 +68,10 @@ API object that manages external access to the services in a cluster, typically For more information, check [Kubernetes documentation about Ingress](https://docs.nginx.com/nginx-ingress-controller/intro/overview/) +## KEDA + +Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. +For more information, check [KEDA's documentation](https://keda.sh/docs/) ## Kubernetes Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) From 95c64d3910938ed3ce5ba62ffd32ca2aa8159d1c Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 15:34:12 +0200 Subject: [PATCH 11/19] fixed space above entry --- .docs/content/0.armonik/1.glossary.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index d7d838712..68b430b16 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -72,6 +72,7 @@ For more information, check [Kubernetes documentation about Ingress](https://doc Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. For more information, check [KEDA's documentation](https://keda.sh/docs/) + ## Kubernetes Kubernetes is an open source container orchestration engine for automating deployment, scaling and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/about)) From 3003762aeefbb086e4c67ad8a071126a2dc599d0 Mon Sep 17 00:00:00 2001 From: pmilaneo <132438256+pmilaneo@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:24:15 +0200 Subject: [PATCH 12/19] Update .docs/content/0.armonik/1.glossary.md Co-authored-by: Dylan Brasseur <103190315+dbrasseur-aneo@users.noreply.github.com> --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 68b430b16..5b9959fbf 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -4,7 +4,7 @@ Here is an alphabetically sorted list to help you understand every term you migh ## ActiveMQ -Open source message broker written in Java used as the jobs queue database. +Open source message broker written in Java used as the tasks queue. For more information, check [ActiveMQ documentation](https://activemq.apache.org/) From 4ee695e7418c051bae2e0161d5dd61717f2656f8 Mon Sep 17 00:00:00 2001 From: pmilaneo <132438256+pmilaneo@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:24:27 +0200 Subject: [PATCH 13/19] Update .docs/content/0.armonik/1.glossary.md Co-authored-by: Dylan Brasseur <103190315+dbrasseur-aneo@users.noreply.github.com> --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 5b9959fbf..8b185af76 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -47,7 +47,7 @@ For more information, check [Fluentbit's documentation](https://docs.fluentbit.i ## HPA -Horizontal Pod Autoscaler : a Kubernetes module to automatically update the workload to balance the resources/tasks ratio as much as possible. +Horizontal Pod Autoscaler : a Kubernetes module to automatically update the amount of resources to allocate based on the current workload. For more information, check [Kubernetes documentation about HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) From 5f5750168a26d6278e11f5171b2389b0a6248ad7 Mon Sep 17 00:00:00 2001 From: pmilaneo <132438256+pmilaneo@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:24:42 +0200 Subject: [PATCH 14/19] Update .docs/content/0.armonik/1.glossary.md Co-authored-by: Dylan Brasseur <103190315+dbrasseur-aneo@users.noreply.github.com> --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 8b185af76..01e23d6b9 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -53,7 +53,7 @@ For more information, check [Kubernetes documentation about HPA](https://kuberne ## Grafana -Data visualization web application. +Data visualization web application. Used to monitor resources and statistics in ArmoniK For more information, check [Grafana's documentation](https://grafana.com/docs/) ## gRPC From a3c2dd0bbce5cc4c7c29f63da05621d6440c6026 Mon Sep 17 00:00:00 2001 From: pmilaneo <132438256+pmilaneo@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:56:51 +0200 Subject: [PATCH 15/19] Update .docs/content/0.armonik/1.glossary.md Co-authored-by: Dylan Brasseur <103190315+dbrasseur-aneo@users.noreply.github.com> --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 01e23d6b9..b22a5103e 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -70,7 +70,7 @@ For more information, check [Kubernetes documentation about Ingress](https://doc ## KEDA -Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. +Kubernetes Event-driven Autoscaler : this component exposes custom metrics external to Kubernetes so that the HPA can have access to it. For more information, check [KEDA's documentation](https://keda.sh/docs/) ## Kubernetes From 320a18ec1814814ec42b6db4c7b1c4f60fe0c298 Mon Sep 17 00:00:00 2001 From: pmilaneo <132438256+pmilaneo@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:57:12 +0200 Subject: [PATCH 16/19] Update .docs/content/0.armonik/1.glossary.md Co-authored-by: Dylan Brasseur <103190315+dbrasseur-aneo@users.noreply.github.com> --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index b22a5103e..d53691987 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -99,7 +99,7 @@ Logical segmentation of the Kubernetes cluster's pool of machines to distribute ## Payload -Input data for a task that does not depend on any other task. It contains data, the task itself, and metadata, the state of the task. +Input data for a task that does not depend on any other task. This is the actual binary input of a task. ## Pod From d65193c6783d78b0333700fb3a05e88f1fca451b Mon Sep 17 00:00:00 2001 From: pmilaneo <132438256+pmilaneo@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:57:33 +0200 Subject: [PATCH 17/19] Update .docs/content/0.armonik/1.glossary.md Co-authored-by: Dylan Brasseur <103190315+dbrasseur-aneo@users.noreply.github.com> --- .docs/content/0.armonik/1.glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index d53691987..f21e4ca4c 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -128,7 +128,7 @@ A session is a logical container for tasks and associated data (task statut, res ## Seq -Logs aggregator software. Used in ArmoniK to determine the status of tasks and identify errors in the Control Plane if they occur. +Logs aggregator software. Used in ArmoniK to identify and aggregate errors and information from the different components. For more information, check [Seq's documentation](https://docs.datalust.co/docs) ## Submitter From 9a29f126a608b1ced9306452e8b273fd6869661b Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 17:04:29 +0200 Subject: [PATCH 18/19] updated glossary --- .docs/content/0.armonik/1.glossary.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 68b430b16..3a31c8f84 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -4,7 +4,7 @@ Here is an alphabetically sorted list to help you understand every term you migh ## ActiveMQ -Open source message broker written in Java used as the jobs queue database. +Open source message broker written in Java used as the tasks queue. For more information, check [ActiveMQ documentation](https://activemq.apache.org/) @@ -47,13 +47,14 @@ For more information, check [Fluentbit's documentation](https://docs.fluentbit.i ## HPA -Horizontal Pod Autoscaler : a Kubernetes module to automatically update the workload to balance the resources/tasks ratio as much as possible. +Horizontal Pod Autoscaler : a Kubernetes module to automatically update the amount of resources to allocate based on the current workload. For more information, check [Kubernetes documentation about HPA](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) ## Grafana -Data visualization web application. +Data visualization web application. Used to monitor resources and statistics in ArmoniK. + For more information, check [Grafana's documentation](https://grafana.com/docs/) ## gRPC @@ -70,7 +71,8 @@ For more information, check [Kubernetes documentation about Ingress](https://doc ## KEDA -Kubernetes Event-driven Autoscaler : this component is in charge of deploying containers according to events and payloads. Like the name implies, it can scale up or down. +Kubernetes Event-driven Autoscaler : this component exposes custom metrics external to Kubernetes. The HPA can have accesss to it + For more information, check [KEDA's documentation](https://keda.sh/docs/) ## Kubernetes @@ -99,7 +101,7 @@ Logical segmentation of the Kubernetes cluster's pool of machines to distribute ## Payload -Input data for a task that does not depend on any other task. It contains data, the task itself, and metadata, the state of the task. +Input data for a task that does not depend on any other task. This is the actual binary input of a task. ## Pod @@ -116,7 +118,9 @@ For more information, check [Prometheus documentation](https://prometheus.io/doc ## Redis -Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker and streaming engine. Redis provides data structures such as strings, hashes, lists, sets and sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster (see [Redis documentation](https://redis.io/docs/about/)). In ArmoniK, Redis is used as a key-value cache for task data (such as payloads and results). +Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker and streaming engine. Redis provides data structures such as strings, hashes, lists, sets and sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster (see [Redis documentation](https://redis.io/docs/about/)). + +In ArmoniK, Redis is used as a key-value cache for task data (such as payloads and results). ## Scheduling agent @@ -128,7 +132,8 @@ A session is a logical container for tasks and associated data (task statut, res ## Seq -Logs aggregator software. Used in ArmoniK to determine the status of tasks and identify errors in the Control Plane if they occur. +Logs aggregator software. Used in ArmoniK to identify and aggregate errors and information from the different components. + For more information, check [Seq's documentation](https://docs.datalust.co/docs) ## Submitter From 97d3dd24127afc1cffa1e3078b0960f3177c3a71 Mon Sep 17 00:00:00 2001 From: pmilaneo Date: Tue, 1 Aug 2023 17:19:40 +0200 Subject: [PATCH 19/19] final merge --- .docs/content/0.armonik/1.glossary.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.docs/content/0.armonik/1.glossary.md b/.docs/content/0.armonik/1.glossary.md index 9022bfb16..e3f75b2d0 100644 --- a/.docs/content/0.armonik/1.glossary.md +++ b/.docs/content/0.armonik/1.glossary.md @@ -53,12 +53,8 @@ For more information, check [Kubernetes documentation about HPA](https://kuberne ## Grafana -<<<<<<< HEAD -Data visualization web application. Used to monitor resources and statistics in ArmoniK. - -======= Data visualization web application. Used to monitor resources and statistics in ArmoniK ->>>>>>> d65193c6783d78b0333700fb3a05e88f1fca451b + For more information, check [Grafana's documentation](https://grafana.com/docs/) ## gRPC @@ -75,12 +71,8 @@ For more information, check [Kubernetes documentation about Ingress](https://doc ## KEDA -<<<<<<< HEAD Kubernetes Event-driven Autoscaler : this component exposes custom metrics external to Kubernetes. The HPA can have accesss to it -======= -Kubernetes Event-driven Autoscaler : this component exposes custom metrics external to Kubernetes so that the HPA can have access to it. ->>>>>>> d65193c6783d78b0333700fb3a05e88f1fca451b For more information, check [KEDA's documentation](https://keda.sh/docs/) ## Kubernetes @@ -141,10 +133,7 @@ A session is a logical container for tasks and associated data (task statut, res ## Seq Logs aggregator software. Used in ArmoniK to identify and aggregate errors and information from the different components. -<<<<<<< HEAD -======= ->>>>>>> d65193c6783d78b0333700fb3a05e88f1fca451b For more information, check [Seq's documentation](https://docs.datalust.co/docs) ## Submitter