Local Cluster Simulator Deployment

The following text describes how to deploy HEAppE Middleware and connect it to the Local HPC Simulator of the HPC. The Local HPC Simulator runs at Docker container and consists of the scripts that simulate the HPC environment to test the HEAppE Middleware.

Step 1: HEAppE environment setup - Prerequisites

  1. Local Environment (deploy on user machine)

    For running a test instance of HEAppE Middleware is necessary to have an operating system with Docker support and the computer must have at least 2 GB of free RAM.

    Software installation

2. HEAppE environment setup

These steps do as sudo user (recommended). In case of a misunderstanding of folder structure, please move to the end of this chapter and see folder validation scheme.

HEAppE Middleware installation procedure

This script will guide you through the entire HEAppE Middleware setup process with Local HPC Simulator of HPC. If you prefer to go through the process manually, follow the steps at Local HPC Simulator Deployment Expert Guide.

The script can be downloaded here: HEAppE-local-setup.sh

To run the script, execute the following commands in your console as a sudo user:

Running the HEAppE-local-setup.sh Script

This section provides examples of how to run the HEAppE-local-setup.sh script with and without data staging, along with explanations of each parameter.

With Data Staging

$ ./HEAppE-local-setup.sh \
    --project project2 \
    --secret-vault-password SecretPassword \
    --heappe-port 5000 \
    --db-port 6000 \
    --db-password Passw0rd \
    --local-hpc-port 48002 \
    --heappe-core-repo https://github.com/It4innovations/HEAppE.git \
    --heappe-core-branch master \
    --data-staging-port 5001 \
    --defaults

This command configures the script to include a data staging port. Below is a breakdown of each parameter:

  • --project project1: Sets the project name to project1. This name defines the directory structure for the project.

  • --secret-vault-password SecretPassword: Specifies the password (SecretPassword) for the secret vault, used to secure sensitive configuration data.

  • --heappe-port 5000: Assigns port 5000 for the HEAppE service.

  • --db-port 6000: Assigns port 6000 for the database service.

  • --db-password Passw0rd: Sets the password for the database to Passw0rd.

  • --local-hpc-port 48002: Assigns port 48002 for the local HPC (High-Performance Computing) simulator.

  • --heappe-core-repo https://github.com/It4innovations/HEAppE.git: Specifies the Git repository URL for the HEAppE core codebase.

  • --heappe-core-branch master: Uses the master branch of the HEAppE core repository.

  • --data-staging-port 5001: Assigns port 5001 for data staging, enabling data transfer or preparation services.

  • --defaults: Runs the script without user interaction, using default values for unspecified options.

Use this configuration when you need data staging functionality, such as transferring or preparing files for processing in an HPC environment.

Without Data Staging

$ ./HEAppE-local-setup.sh \
    --project project1 \
    --secret-vault-password SecretPassword \
    --heappe-port 5000 \
    --db-port 6000 \
    --db-password Passw0rd \
    --local-hpc-port 48002 \
    --heappe-core-repo https://github.com/It4innovations/HEAppE.git \
    --heappe-core-branch master \
    --defaults

Use this configuration when data staging is not required, simplifying the setup by omitting the data transfer/preparation service.

Script actions:
  1. Creation of the directory structure for the HEAppE Middleware.

  2. Preparation of the .env file for docker containers.

  3. Acquisition of the release of the HEAppE Middleware official repository and copy docker-compose files.

  4. Creation of the appsettings.json file.

  5. Creation of the appsettings-data.json file.

  6. Creation of the seed.njson file.

  7. Credentials Vault initialization and unsealing procedure.

  8. Inicialization the docker containers.

Note

The script creates the following directory structure:

/opt/heappe
├── confs
└── projects
    └── LocalHPCSimulatorHEAppE
        ├── app
        │   ├── keys
        │   ├── logs
        │   └── confs
        ├── heappe-core
        ├── ssh_agent
        │   └── keys
        └── docker_configurations
            └── .env

Warning

The script will ask you to provide the SA password for the SQL Server - which is deyployed in the docker container and HEAppE Middleware will use it to connect to the database. Please check the password policy of the Microsoft SQL Server. The password must meet the requirements of the SQL Server password policy.

Note

If everything is successfully deployed, HEAppE is available at http://localhost:5000 (Swagger at http://localhost:5000/swagger/index.html).

Local HPC simulator container is accessible by SSH over docker network or directly from the terminal. To get IP address of the docker container with Local HPC Simulator please run this command: docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' LocalHPC . Then you can ssh heappeclient@<IP>, password is pass.

And you can authenticate with the default credentials: admin/admin via the UserAndLimitationManagement/AuthenticateUserPassword endpoint.