From d286dac334ba593227aa7b2f65cb6b28f8ea754d Mon Sep 17 00:00:00 2001 From: lemaitre-aneo <91961298+lemaitre-aneo@users.noreply.github.com> Date: Mon, 22 May 2023 09:41:35 +0200 Subject: [PATCH] Fix doc dead links --- .../1.installation/1.linux/0.prerequisites.md | 16 -- .../1.linux/2.verify-installation.md | 13 +- .../1.installation/1.linux/3.deploy-script.md | 269 ++++++++++++++++++ .../2.windows/2.wsl2-with-genie.md | 10 +- .../how-to-configure-authentication.md | 2 +- .docs/content/2.guide/default-images.md | 16 +- README.md | 2 +- 7 files changed, 284 insertions(+), 44 deletions(-) create mode 100644 .docs/content/1.installation/1.linux/3.deploy-script.md diff --git a/.docs/content/1.installation/1.linux/0.prerequisites.md b/.docs/content/1.installation/1.linux/0.prerequisites.md index d18fd6d0a..17717bac6 100644 --- a/.docs/content/1.installation/1.linux/0.prerequisites.md +++ b/.docs/content/1.installation/1.linux/0.prerequisites.md @@ -4,22 +4,6 @@ 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 diff --git a/.docs/content/1.installation/1.linux/2.verify-installation.md b/.docs/content/1.installation/1.linux/2.verify-installation.md index c0a2f8e80..47606c5e3 100644 --- a/.docs/content/1.installation/1.linux/2.verify-installation.md +++ b/.docs/content/1.installation/1.linux/2.verify-installation.md @@ -41,10 +41,11 @@ http://:5000 ## Samples -There are three scripts that can be used in order to verify the installation of ArmoniK : +There these scripts that can be used in order to verify the installation of ArmoniK : * [Symphony Like](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/symphony_like.sh) -* [Symphony Like End to End](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/symphony_endToendTests.sh). +* [Unified](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/unified_api.sh) +* [Stress Test](https://github.com/aneoconsulting/ArmoniK.Samples/tree/main/tools/tests/stress-tests.sh) ::alert{type="info"} @@ -66,18 +67,12 @@ git clone https://github.com/aneoconsulting/ArmoniK.Samples.git ./Source/ArmoniK ### Execute Samples -* Execute [tools/tests/symphony_like.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/symphony_like.sh) from the **root** repository: +* Execute [tools/tests/symphony_like.sh](https://github.com/aneoconsulting/ArmoniK.Samples/blob/main/tools/tests/symphony_like.sh) from the **root** repository: ```bash tools/tests/symphony_like.sh ``` -* Execute [tools/tests/symphony_endToendTests.sh](https://github.com/aneoconsulting/ArmoniK/blob/main/tools/tests/symphony_endToendTests.sh) from the **root** - repository: - - ```bash - tools/tests/symphony_endToendTests.sh - ``` ::alert{type="info"} You can check the logs using Seq. diff --git a/.docs/content/1.installation/1.linux/3.deploy-script.md b/.docs/content/1.installation/1.linux/3.deploy-script.md new file mode 100644 index 000000000..cd35582c2 --- /dev/null +++ b/.docs/content/1.installation/1.linux/3.deploy-script.md @@ -0,0 +1,269 @@ +# Table of contents + +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Install Kubernetes](#install-kubernetes) +- [Script bash](#script-bash) + +# Introduction + +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](../utils/scripts/deploy-dev-test-infra.sh) + +The infrastructure is composed of: + +* Addons for Kubernetes: + * Keda + * Metrics server +* Storage: + * ActiveMQ + * MongoDB + * Redis +* Monitoring: + * ArmoniK metrics exporter + * Grafana + * Node exporter + * Prometheus + * Seq server for structured log data of ArmoniK. +* ArmoniK: + * AdminGUI + * Control plane + * Compute plane: polling agent and workers + * Ingress + +# Prerequisites + +The following software or tool should be installed upon your local Linux machine: + +* If You have Windows machine, You have to install [WSL 2](../docs/wsl2.md) +* [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](../docs/k3s.md). + +# Script bash all-in-one + +From the **root** of the repository, position yourself in directory `infrastructure/utils/scripts/`: + +```bash +cd infrastructure/utils/scripts +``` + +- To see the usage command: + ```bash + ./deploy-dev-test-infra.sh -h + ``` +- To deploy for the first time all infrastructure: + ```bash + ./deploy-dev-test-infra.sh -m deploy-all + ``` +- To redeploy all infrastructure: + ```bash + ./deploy-dev-test-infra.sh -m redeploy-all + ``` +- To destroy all infrastructure: + ```bash + ./deploy-dev-test-infra.sh -m destroy-all + ``` +- To clean and delete all generated files from all deployment: + ```bash + ./deploy-dev-test-infra.sh --clean all + ``` + +If You want to deploy each resource independently: + +- To deploy Keda: + ```bash + ./deploy-dev-test-infra.sh -m deploy-keda + ``` +- To deploy Metrics server: + ```bash + ./deploy-dev-test-infra.sh -m deploy-metrics-server + ``` +- To deploy storage: + ```bash + ./deploy-dev-test-infra.sh -m deploy-storage + ``` +- To deploy monitoring: + ```bash + ./deploy-dev-test-infra.sh -m deploy-monitoring + ``` +- To deploy ArmoniK: + ```bash + ./deploy-dev-test-infra.sh -m deploy-armonik + ``` + +If You want to redeploy each resource independently: + +- To redeploy Keda: + ```bash + ./deploy-dev-test-infra.sh -m redeploy-keda + ``` +- To redeploy Metrics server: + ```bash + ./deploy-dev-test-infra.sh -m redeploy-metrics-server + ``` +- To redeploy storage: + ```bash + ./deploy-dev-test-infra.sh -m redeploy-storage + ``` +- To redeploy monitoring: + ```bash + ./deploy-dev-test-infra.sh -m redeploy-monitoring + ``` +- To redeploy ArmoniK: + ```bash + ./deploy-dev-test-infra.sh -m redeploy-armonik + ``` + +If You want to destroy each resource independently: + +- To destroy Keda: + ```bash + ./deploy-dev-test-infra.sh -m destroy-keda + ``` +- To destroy Metrics server: + ```bash + ./deploy-dev-test-infra.sh -m destroy-metrics-server + ``` +- To destroy storage: + ```bash + ./deploy-dev-test-infra.sh -m destroy-storage + ``` +- To destroy monitoring: + ```bash + ./deploy-dev-test-infra.sh -m destroy-monitoring + ``` +- To destroy ArmoniK: + ```bash + ./deploy-dev-test-infra.sh -m destroy-armonik + ``` + +If You want to clean and delete generated files from each deployment independently: + +- To clean Keda: + ```bash + ./deploy-dev-test-infra.sh --clean keda + ``` +- To clean Metrics server: + ```bash + ./deploy-dev-test-infra.sh --clean metrics-server + ``` +- To clean storage: + ```bash + ./deploy-dev-test-infra.sh --clean storage + ``` +- To clean monitoring: + ```bash + ./deploy-dev-test-infra.sh --clean monitoring + ``` +- To clean ArmoniK: + ```bash + ./deploy-dev-test-infra.sh --clean armonik + ``` + +If You want to deploy ArmoniK components on specific Kubernetes namespace, You execute the following command: + +```bash +./deploy-dev-test-infra.sh -m deploy-all --namespace +``` + +If the `host_path` for shared storage for ArmoniK workers is not `${HOME}/data`, You can deploy the infrastructure as +follows: + +```bash +./deploy-dev-test-infra.sh -m deploy-all --host-path +``` + +If You have a NFS filesystem as shared storage for ArmoniK workers, You deploy the infrastructure as follows: + +```bash +./deploy-dev-test-infra.sh \ + -m deploy-all \ + --host-path \ + --nfs-server-ip \ + --shared-storage-type NFS +``` + +If You want to change container image and/or tag of control plane, polling agent, worker or metrics exporter: + +```bash +./deploy-dev-test-infra.sh \ + -m deploy-all \ + --control-plane-image \ + --polling-agent-image \ + --worker-image \ + --metrics-exporter-image \ + --core-tag \ + --worker-tag +``` + +where `--core-tag ` allows to update the container tag for ArmoniK Core (control plane, polling agent and +metrics exporter). + +If You change the max, min or idle replicas in the HPA of the compute plane: + +```bash +./deploy-dev-test-infra.sh \ + -m deploy-all \ + --hpa-min-compute-plane-replicas \ + --hpa-max-compute-plane-replicas \ + --hpa-idle-compute-plane-replicas \ + --compute-plane-hpa-target-value +``` + +where `` is the target value for the number of messages in the queue. + +**Warning:** `` must be less than `` ! + +If You change the max, min or idle replicas in the HPA of the control plane: + +```bash +./deploy-dev-test-infra.sh \ + -m deploy-all \ + --hpa-min-control-plane-replicas \ + --hpa-max-control-plane-replicas \ + --hpa-idle-control-plane-replicas \ + --control-plane-hpa-target-value +``` + +where `` is the target value in percentage for the CPU and memory utilization. + +**Warning:** `` must be less than `` ! + +If You want to change logging level for ArmoniK components: + +```bash +./deploy-dev-test-infra.sh -m deploy-all --logging-level +``` + +If You want to activate the TLS: + +```bash +./deploy-dev-test-infra.sh -m deploy-all --with-tls +``` + +If You want to activate the mTLS: + +```bash +./deploy-dev-test-infra.sh -m deploy-all --with-mtls +``` + +If You want to deactivate the ingress with NGINX: + +```bash +./deploy-dev-test-infra.sh -m deploy-all --without-nginx +``` + +### [Return to the infrastructure main page](../README.md) + +### [Return to the project main page](../../README.md) \ No newline at end of file diff --git a/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md b/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md index 076eb0dd1..ef903765e 100644 --- a/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md +++ b/.docs/content/1.installation/2.windows/2.wsl2-with-genie.md @@ -16,15 +16,7 @@ You must have installed WSL2 and Ubuntu before continuing. If you haven't, pleas ## Install genie -To install `genie`: - -```bash -./infrastructure/utils/scripts/installation/install-genie.sh -``` - -::alert{type="info"} -Please, read the script `install-genie.sh` before executing it. -:: +To install `genie` please refer to https://arkane-systems.github.io/wsl-transdebian/ Finally, in order to avoid some issues, you need to mask some services. diff --git a/.docs/content/2.guide/1.how-to/how-to-configure-authentication.md b/.docs/content/2.guide/1.how-to/how-to-configure-authentication.md index bb9c45bd4..5fcd1ae73 100644 --- a/.docs/content/2.guide/1.how-to/how-to-configure-authentication.md +++ b/.docs/content/2.guide/1.how-to/how-to-configure-authentication.md @@ -132,7 +132,7 @@ The JSON authentication configuration file must have the following format (note } ``` -To know more about permission strings, please refer to [this document](https://github.com/aneoconsulting/ArmoniK.Core/blob/main/Documentation/articles/authentication.md#user-permissions). Please note that the ```Username``` and ```RoleName``` **MUST** be uniquely defined. A badly defined json may fail silently. +Please note that the ```Username``` and ```RoleName``` **MUST** be uniquely defined. A badly defined json may fail silently. The resulting configuration is stored in the MongoDB database. If the database is restarted when MongoDB isn't setup with a persistent volume or if the database is emptied it needs to be repopulated by relaunching the authentication-in-database job. In a local deployment, this can be achieved using the following shell command: diff --git a/.docs/content/2.guide/default-images.md b/.docs/content/2.guide/default-images.md index 65f914cc1..2251185b6 100644 --- a/.docs/content/2.guide/default-images.md +++ b/.docs/content/2.guide/default-images.md @@ -5,15 +5,15 @@ The all-in-one terraform deployments support to omit the image names and tags in the tfvars. -If the image name is omitted, a default image name is used, specified directly in [`variables.tf`](../infrastructure/quick-deploy/localhost/all/variables.tf). +If the image name is omitted, a default image name is used, specified directly in [`variables.tf`](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/quick-deploy/localhost/all/variables.tf). If the image tag is omitted, the default tag for this very image is used. -The default tags are defined in [`versions.tfvars.json`](../versions.tfvars.json). +The default tags are defined in [`versions.tfvars.json`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json). -For all ArmoniK images, the default tag correspond to the version (in [`armonik_versions`](../versions.tfvars.json#L2...L9) variable) of the ArmoniK component that generates the image (in [`armonik_images`](../versions.tfvars.json#L10...L36) variable). -For third-party images, the default tag of an image is defined in [`image_tags`](../versions.tfvars.json#L37...L58) variable. +For all ArmoniK images, the default tag correspond to the version (in [`armonik_versions`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json#L2...L9) variable) of the ArmoniK component that generates the image (in [`armonik_images`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json#L10...L36) variable). +For third-party images, the default tag of an image is defined in [`image_tags`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json#L37...L58) variable. -You are still be able to specify custom image names and/or image tags in your tfvars if you want, without needing to modify [`versions.tfvars.json`](../versions.tfvars.json). -If you try to use an image name that is not listed in [`versions.tfvars.json`](../versions.tfvars.json), you are required to also specify a tag for this image. +You are still be able to specify custom image names and/or image tags in your tfvars if you want, without needing to modify [`versions.tfvars.json`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json). +If you try to use an image name that is not listed in [`versions.tfvars.json`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json), you are required to also specify a tag for this image. ## Examples @@ -44,7 +44,7 @@ All the examples are for the all-in-one local deployment for mongodb, with the f } ``` -Specifying the image and its version within the tfvars (ex: [`parameters.tfvars`](../infrastructure/quick-deploy/aws/all/parameters.tfvars)) +Specifying the image and its version within the tfvars (ex: [`parameters.tfvars`](https://github.com/aneoconsulting/ArmoniK/blob/main/infrastructure/quick-deploy/aws/all/parameters.tfvars)) ## Use the default image and tag @@ -96,7 +96,7 @@ control_plane = { ### Special case of the workers -There is no default image for the workers, but you can still omit the tag if the image is listed in [`versions.tfvars.json`](../versions.tfvars.json): +There is no default image for the workers, but you can still omit the tag if the image is listed in [`versions.tfvars.json`](https://github.com/aneoconsulting/ArmoniK/blob/main/versions.tfvars.json): ```terraform compute_plane = { diff --git a/README.md b/README.md index 67300ae9b..952bde7a5 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ The current version of ArmoniK uses the tags listed in [armonik-versions.txt](./ # ArmoniK deployment All instructions to build, deploy and test ArmoniK software on Linux are described -in [ArmoniK deployment](./infrastructure/README.md) +in [ArmoniK deployment](https://aneoconsulting.github.io/ArmoniK/installation) # How to run ArmoniK.Samples