From 71b6e6d728160960e71918391a9b0544d08a4e94 Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Tue, 23 Jul 2024 12:43:37 +0300 Subject: [PATCH 01/10] Minimal infrastructure documentation updated. The minimal infrastructure documentation now guides us through setting up all the application docker containers that host the infrastructure, the connectivity and application access, the dev environment, creating a project from archetypes, running and testing the project locally, setting up the GitLab CI/CD pipeline, and finally building, deploying and pushing artifacts. Shell file removed as it is no longer needed. docker-compose updated to work with nginx, nexus, gitlab, and a custom gitlab-runner. .m2/settings.xml added to the infrastructure folder. gitlab-runner Dockerfile added with openjdk, maven and nodejs on top. nginx configuration changed. Fixed #162 Signed-off-by: Ivan Zdravkov --- .gitignore | 2 + infrastructure/.m2/settings.xml | 62 ++ infrastructure/docker-compose.yml | 109 ++-- infrastructure/etc/hosts | 6 - infrastructure/gitlab-runner/Dockerfile | 20 + .../iac-for-vrealize-configurator.sh | 314 ----------- infrastructure/nginx/conf.d/main.conf | 54 ++ infrastructure/nginx/conf.d/nginx.conf | 58 -- infrastructure/nginx/nginx.conf | 6 + infrastructure/readme.md | 528 ++++++++++-------- infrastructure/ubuntu/Dockerfile | 27 - infrastructure/ubuntu/entrypoint | 22 - 12 files changed, 496 insertions(+), 712 deletions(-) create mode 100644 infrastructure/.m2/settings.xml delete mode 100755 infrastructure/etc/hosts create mode 100644 infrastructure/gitlab-runner/Dockerfile delete mode 100755 infrastructure/iac-for-vrealize-configurator.sh create mode 100755 infrastructure/nginx/conf.d/main.conf delete mode 100755 infrastructure/nginx/conf.d/nginx.conf create mode 100755 infrastructure/nginx/nginx.conf delete mode 100644 infrastructure/ubuntu/Dockerfile delete mode 100755 infrastructure/ubuntu/entrypoint diff --git a/.gitignore b/.gitignore index 4d7142310..7c7a8f799 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,5 @@ typescript/vrotsc-annotations/package-lock.json .vscode/* .flattened-pom.xml + +infrastructure/.m2/repository diff --git a/infrastructure/.m2/settings.xml b/infrastructure/.m2/settings.xml new file mode 100644 index 000000000..3c4043057 --- /dev/null +++ b/infrastructure/.m2/settings.xml @@ -0,0 +1,62 @@ + + + + + nexus + admin + VMware1! + + + + + nexus + * + Mirror of Central Repository + https://repo1.maven.org/maven2/ + + + + + nexus + + + releases + pscoe + http://infra.corp.local/nexus/repository/maven-releases/ + + true + + + false + + + + snapshots + pscoe + http://infra.corp.local/nexus/repository/maven-snapshots/ + + false + + + true + + + + + + packaging + + com.vmware.pscoe.build + keystore.example + 2.41.0 + target/${keystoreArtifactId}-${keystoreVersion}/private_key.pem + target/${keystoreArtifactId}-${keystoreVersion}/cert.pem + VMware1! + + + + + nexus + packaging + + diff --git a/infrastructure/docker-compose.yml b/infrastructure/docker-compose.yml index 07949ebe4..afc697561 100755 --- a/infrastructure/docker-compose.yml +++ b/infrastructure/docker-compose.yml @@ -1,85 +1,88 @@ -version: "3" services: - # NGINX reverse proxy server nginx: - image: nginx:1.18.0 + image: nginx container_name: nginx restart: always networks: infranet: ipv4_address: 172.18.0.10 ports: - - "80:80" - - "443:443" + - 80:80 # Web Interface hostname: "infra.corp.local" volumes: - - "./nginx/conf.d:/etc/nginx/conf.d" - - "./nginx/vhost.d:/etc/nginx/vhost.d" - - "./nginx/html:/usr/share/nginx/html" - - "./nginx/certs:/etc/nginx/certs:ro" - - "./nginx/proxy.conf:/etc/nginx/proxy.conf:ro" - - "/var/log/nginx:/var/log/nginx" - # GitLab CE Git repository manager + - "./nginx:/etc/nginx/" + nexus: + image: klo2k/nexus3 # Mac + #image: sonatype/nexus3 # Linux + container_name: nexus + hostname: "nexus.corp.local" + environment: + NEXUS_CONTEXT: nexus + networks: + infranet: + ipv4_address: 172.18.0.11 + extra_hosts: + - "gitlab.corp.local:172.18.0.12" + ports: + - 8081:8081 # Web Interface + volumes: + - "nexus-data:/var/sonatype/work" + restart: always + ulimits: + nproc: 65535 + nofile: + soft: 32000 + hard: 40000 gitlab: - image: gitlab/gitlab-ce:12.10.3-ce.0 + image: yrzr/gitlab-ce-arm64v8 # Mac + #image: gitlab/gitlab-ce # Linux container_name: gitlab-ce restart: always environment: GITLAB_OMNIBUS_CONFIG: | - external_url "http://infra.corp.local/gitlab" + external_url 'http://infra.corp.local/gitlab' networks: infranet: - ipv4_address: 172.18.0.11 + ipv4_address: 172.18.0.12 extra_hosts: - - "infra.corp.local:" + - "infra.corp.local:172.18.0.10" ports: - - "127.0.0.1:8080:80" + - 8082:80 # Web Interface + - 8022:22 # SSH hostname: "gitlab.corp.local" volumes: - - "/srv/gitlab/config:/etc/gitlab" - - "/srv/gitlab/logs:/var/log/gitlab" - - "/srv/gitlab/data:/var/opt/gitlab" - # GitLab CI Runner for CI/CD integration + - "gitlab-config:/var/gitlab/config" + - "gitlab-data:/var/gitlab/data" + - "gitlab-log:/var/gitlab/log" gitlab-runner: - image: pscoelab/vrbt-gitlab-runner:latest + image: gitlab-runner # Custom image build from the gitlab-runner directory container_name: gitlab-runner restart: always hostname: "gitlab-runner.corp.local" - networks: - infranet: - ipv4_address: 172.18.0.12 - extra_hosts: - - "infra.corp.local:172.18.0.10" - - "gitlab.corp.local:172.18.0.11" - - "artifactory.corp.local:172.18.0.13" - volumes: - - "/srv/gitlab-runner/config:/etc/gitlab-runner" - - "/srv/gitlab-runner/m2:/home/gitlab-runner/.m2" - - "/srv/gitlab-runner/opt:/var/opt" - - "/var/run/docker.sock:/var/run/docker.sock" - # JFrog Artifactory OSS for artifact management - artifactory: - image: docker.bintray.io/jfrog/artifactory-oss:6.19.1 - container_name: artifactory - hostname: "artifactory.corp.local" networks: infranet: ipv4_address: 172.18.0.13 extra_hosts: - - "gitlab.corp.local:172.18.0.11" + - "infra.corp.local:172.18.0.10" + - "nexus.corp.local:172.18.0.11" + - "gitlab.corp.local:172.18.0.12" ports: - - 127.0.0.1:8081:8081 + - 2811:2811 volumes: - - /data/artifactory:/var/opt/jfrog/artifactory -# Add extra Java options by uncommenting the following lines -# environment: -# - EXTRA_JAVA_OPTIONS=-Xmx4g - restart: always - ulimits: - nproc: 65535 - nofile: - soft: 32000 - hard: 40000 + - "./.m2:/home/gitlab-runner/.m2" + - "gitlab-runner-config:/var/gitlab-runner/config" + - "gitlab-runner-opt:/var/gitlab-runner/opt" + - "/var/run/docker.sock:/var/run/docker.sock" +volumes: + nexus-data: {} + gitlab-config: {} + gitlab-data: {} + gitlab-log: {} + gitlab-runner-config: {} + gitlab-runner-opt: {} networks: - infranet: - external: true + infranet: + driver: bridge + ipam: + config: + - subnet: 172.18.0.0/24 diff --git a/infrastructure/etc/hosts b/infrastructure/etc/hosts deleted file mode 100755 index 8646d574c..000000000 --- a/infrastructure/etc/hosts +++ /dev/null @@ -1,6 +0,0 @@ -# vRA IaaC START SECTION -127.0.0.1 infra.corp.local -172.18.0.11 gitlab.corp.local -172.18.0.12 gitlab-runner.corp.local -172.18.0.13 artifactory.corp.local -# vRA IaaC END SECTION diff --git a/infrastructure/gitlab-runner/Dockerfile b/infrastructure/gitlab-runner/Dockerfile new file mode 100644 index 000000000..ccf8f0b1d --- /dev/null +++ b/infrastructure/gitlab-runner/Dockerfile @@ -0,0 +1,20 @@ +FROM gitlab/gitlab-runner:latest + +RUN apt-get update +RUN apt-get install -y curl +RUN apt-get install -y openjdk-17-jdk +RUN apt-get install -y software-properties-common +RUN apt-get install -y maven + +# Install Node.js (npm is included in the package) +RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - +RUN apt-get install -y nodejs + +# Print the versions +RUN node -v +RUN npm -v +RUN mvn -v +RUN java --version + +# Clean up the package lists to reduce image size +RUN rm -rf /var/lib/apt/lists/* diff --git a/infrastructure/iac-for-vrealize-configurator.sh b/infrastructure/iac-for-vrealize-configurator.sh deleted file mode 100755 index ea28e4c67..000000000 --- a/infrastructure/iac-for-vrealize-configurator.sh +++ /dev/null @@ -1,314 +0,0 @@ -#!/bin/bash - -CONFIG_START_SECTION="# vRA IaaC START SECTION" -CONFIG_END_SECTION="# vRA IaaC END SECTION" - -NGINX_CONTAINER="nginx" -GITLAB_CONTAINER="gitlab-ce" -GITLAB_RUNNER_CONTAINER="gitlab-runner" -ARTIFACTORY_CONTAINER="artifactory" - -LOG_DIR="/var/log/vmware/iac-for-vrealize" -LOG_FILE=$LOG_DIR/"iac-for-vrealize-configurator.log" -SLEEP_TIME=10 -CURL_RETRY_COUNT=3 - -DOCKER_NETWORK="infranet" - -ETC_HOSTS_FILE="/etc/hosts" -NGINX_FOLDER="nginx/" -JFROG_FILE="/bin/jfrog" - -function pullDockerImages() -{ - log "Pulling Docker images..." - - declare -a services=( - "nginx" - "gitlab" - "artifactory" - ) - - for service in "${services[@]}" - do - log "Pulling service '$service'..." - docker-compose pull "$service" |& tee -a $LOG_FILE & - wait - done -} - -function createDockerImages() -{ - log "Creating Docker image for GitLab CI Runner..." - - cd ubuntu - docker build -t ubuntu-gitlab-runner:latest . |& tee -a $LOG_FILE - cd - -} - -function createDockerNetworking() -{ - log "Creating Docker network '$DOCKER_NETWORK'..." - docker network create --subnet=172.18.0.0/24 $DOCKER_NETWORK |& tee -a $LOG_FILE -} - -function removeDockerNetworking() -{ - log "Removing Docker network '$DOCKER_NETWORK'..." - docker network rm $DOCKER_NETWORK |& tee -a $LOG_FILE -} - -function removeDockerContainers() -{ - log "Removing Docker containers..." - - declare -a containers=( - $NGINX_CONTAINER - $GITLAB_CONTAINER - $GITLAB_RUNNER_CONTAINER - $ARTIFACTORY_CONTAINER - ) - - for container in "${containers[@]}" - do - log "Removing container '$container'..." - docker rm -f "$container" |& tee -a $LOG_FILE & - wait - done -} - -function appendHostsFile() -{ - checkIfConfigExists $ETC_HOSTS_FILE $CONFIG_START_SECTION - local returnCode=$? - - if [ $returnCode -eq 0 ]; then - log "/File etc/hosts contains custom configuration. Skipping..." - else - createBackupFile $ETC_HOSTS_FILE - - log "Apending /etc/hosts config..." - cat "etc/hosts" >> $ETC_HOSTS_FILE - fi -} - -function setPermissionsToNginx() -{ - log "Setting 755 permissions to NGINX payload folder..." - chmod -R 755 $NGINX_FOLDER -} - -function copyDocsToNginx() -{ - log "Copying documentation files into NGINX payload folder..." - cd .. - cp -rv docs/. infrastructure/nginx/html/home |& tee -a $LOG_FILE - cd - -} - -function installClarity() -{ - log "Installing Clarity dependency into NGINX..." - cd nginx/html/home - npm install |& tee -a $LOG_FILE - cd - -} -function copyPluginsToPayload() -{ - log "Copying plugins to NGINX payload..." - cd .. - cp -rv artifacts/vscode/. infrastructure/nginx/html/home/payload |& tee -a $LOG_FILE - cd - -} - -function installJFrogCLI() -{ - if [ -f $JFROG_FILE ]; then - log "JFrog CLI already exists. Skipping installation..." - else - log "Installing JFrog CLI..." - - cd /bin - curl --retry $CURL_RETRY_COUNT -fL https://getcli.jfrog.io | sh |& tee -a $LOG_FILE - cd - - fi -} - -function setJFrogPermissions() -{ - log "Setting JFrog permissions..." - - mkdir -p /data/artifactory - chown -R 1030:1030 /data/artifactory -} - -function removeJFrogCLI() -{ - log "Removing JFrog CLI..." - rm $JFROG_FILE -} - -function startServices() -{ - log "Starting services..." - docker-compose up -d |& tee -a $LOG_FILE - - log "Running containers:" - docker ps -} - -function clean() -{ - log "Start cleaning old configuration..." - - # Check network config - checkIfConfigExists $ETC_HOSTS_FILE $CONFIG_START_SECTION - - local returnCode=$? - if [ $returnCode -eq 0 ]; then - log "Hosts file contains custom configuration. Removing custom configuration..." - removeLinesFromFile $ETC_HOSTS_FILE $CONFIG_START_SECTION $CONFIG_END_SECTION - else - log "Hosts file does not contain custom configuration. Skipping..." - fi - - # Clean Docker stuff - removeDockerContainers - removeDockerNetworking - - # Clean third-party software - removeJFrogCLI - - log "Old configuration cleaned. Data folders and Docker images remain. Please clean them manually." -} - -function install() -{ - log "Start installation of vRA Infrastructure as a Code solution..." - - pullDockerImages - createDockerImages - createDockerNetworking - - appendHostsFile - copyDocsToNginx - installClarity - copyPluginsToPayload - setPermissionsToNginx - - installJFrogCLI - setJFrogPermissions - startServices - - # Wait for containers to be ready - log "Sleeping for ${SLEEP_TIME} seconds..." - sleep $SLEEP_TIME - - log "Infrastructure setup completed." -} - -# ----------HELPER METHODS---------- - -# Creates a backup file for the specified filename -# param1 - file name with path -function createBackupFile() -{ - local fileToBackup=$1 - local backupFile="$fileToBackup"".backup" - - log "Backing up file '$fileToBackup' to '$backupFile'..." - cp $fileToBackup $backupFile -} - -# Checks if the provided string is contained in the file -# param1 - file name -# param2 - string to search for -checkIfConfigExists() -{ - local fileName=$1 - local searchString=$2 - - grep -iw "$fileName" -e "$searchString" > /dev/null - local returnCode=$? - - if [ $returnCode -eq 0 ]; then - log "Config in file $fileName exists." - return 0; - else - log "Config in file $fileName does not exist." - return 1; - fi -} - -# Remove lines from file enclosed between [start-line, end-line] -# param3 - File -# param1 - Start line -# param2 - End line -function removeLinesFromFile() -{ - local file=$1 - local startLine=$2 - local endLine=$3 - - sed -i "/$startLine\b/,/$endLine\b/d" "$file" -} - -function printHelp() -{ - cat << EOF -DESCRIPTION -Install and configure vRA infrastructure as a Code solution - -OPTIONS ---install Cleans any previous installations and installs the solution. ---clean Cleans the appliance from previous installations. Data folders and downloaded images will remain. ---help Prints this help. -EOF -} - -function createLogFile() -{ - mkdir -p $LOG_DIR - - if [ ! -f "$LOG_FILE" ]; then - log "Creating log file '$LOG_FILE'..." - touch $LOG_FILE - fi -} - -log() -{ - local text=$@ - local COLOR='\033[0;33m' - local NO_COLOR='\033[0m' - - echo -e "${COLOR}[$(date)]: ${COLOR}$text${NO_COLOR}" - echo -e "[$(date)]: $text" >> $LOG_FILE -} - -# Main -createLogFile -PARAMETER=$1 - -if [ -z "$PARAMETER" ]; then - log "Empty parameter'. Please use --help for more info." - exit 1 -fi - -if [ "$PARAMETER" = "--install" ]; then - log "----------Starting script with '$PARAMETER' parameter----------" - clean - install - exit 0 -elif [ "$PARAMETER" = "--clean" ]; then - log "----------Starting script with '$PARAMETER' parameter----------" - clean - exit 0 -elif [ "$PARAMETER" = "--help" ]; then - log "----------Starting script with '$PARAMETER' parameter----------" - printHelp - exit 0 -else - log "Invalid parameter '$PARAMETER'. Please use --help for more info." - exit 1 -fi \ No newline at end of file diff --git a/infrastructure/nginx/conf.d/main.conf b/infrastructure/nginx/conf.d/main.conf new file mode 100755 index 000000000..d07000ff6 --- /dev/null +++ b/infrastructure/nginx/conf.d/main.conf @@ -0,0 +1,54 @@ +server { + server_name .infra.corp.local; + + root /etc/nginx/html/home; + index index.html; + + listen 80; + + location /payload { + autoindex on; + } + + location / { + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + client_max_body_size 40M; + } + + location /nexus { + proxy_pass http://host.docker.internal:8081/nexus; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + client_max_body_size 40M; + } + + location /gitlab { + proxy_pass http://host.docker.internal:8082/gitlab/; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + client_max_body_size 40M; + } + + location /gitlab-runner { + proxy_pass http://host.docker.internal:2811/; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + client_max_body_size 40M; + } +} diff --git a/infrastructure/nginx/conf.d/nginx.conf b/infrastructure/nginx/conf.d/nginx.conf deleted file mode 100755 index d7015ee5d..000000000 --- a/infrastructure/nginx/conf.d/nginx.conf +++ /dev/null @@ -1,58 +0,0 @@ -server { - server_name .infra.corp.local; - root /usr/share/nginx/html/home; - - listen 80; - #listen 443 ssl; - #ssl_certificate /etc/nginx/certs; - #ssl_certificate_key /etc/nginx/certs; - - #ssl_session_timeout 5m; - - #ssl_protocols TLSv1; - #ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; - #ssl_prefer_server_ciphers on; - -location /payload { - autoindex on; -} - -location /gitlab { - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Server $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - - proxy_pass http://172.18.0.11/gitlab; - client_max_body_size 40M; - } - - location /artifactory { - if ($http_x_forwarded_proto = '') { - set $http_x_forwarded_proto $scheme; - } - - ## Application specific logs - ## access_log /var/log/nginx/artifactory.jfrog.com-access.log timing; - ## error_log /var/log/nginx/artifactory.jfrog.com-error.log; - rewrite ^/$ /artifactory/webapp/ redirect; - rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect; - chunked_transfer_encoding on; - client_max_body_size 0; - - proxy_read_timeout 900; - proxy_pass_header Server; - proxy_cookie_path ~*^/.* /; - - if ( $request_uri ~ ^/artifactory/(.*)$ ) { - proxy_pass http://172.18.0.13:8081/artifactory/$1; - } - - proxy_pass http://172.18.0.13:8081/artifactory/; - proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port/artifactory; - proxy_set_header X-Forwarded-Port $server_port; - proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } -} diff --git a/infrastructure/nginx/nginx.conf b/infrastructure/nginx/nginx.conf new file mode 100755 index 000000000..8cfb340b9 --- /dev/null +++ b/infrastructure/nginx/nginx.conf @@ -0,0 +1,6 @@ +events {} +http { + include conf.d/main.conf; + + large_client_header_buffers 4 16k; +} diff --git a/infrastructure/readme.md b/infrastructure/readme.md index 9ee9fd854..0bb4fe770 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -1,247 +1,311 @@ -# Build Tools for VMware Aria - -**Build Tools for VMware Aria** provides set of infrastructure components supporting source control, artifact managment, build system and wiki to the vRrealize engineers. - -## Table of Contents -1. [Photon](#Photon) -2. [NGINX](#NGINX) -3. [Installation](#Installation) -4. [Uninstallation](#Uninstallation) -5. [GitLab CE](#GitLab) -6. [JFrog Artifactory OSS](#Artifactory) - -## Platform Requirements - -* Platform Server - - Hardware - - CPU Cores 4 - - Memory 8 GB - - Storage 40 GB - - Operating System - - Photon OS - - Software - - Docker - - GitLab CE (Docker Container) - - GitLab Runner (Docker Container) - - Artifactory OSS (Docker Container) - - Nginx (Docker Container) - - Firewall - - Inbound - - 80 - - 443 - - Outbound - - vRSCLM:[443:80] - - vRA:[443:80] - - vRO:[443:80] - -* Development Workstation - - Could be developer laptop, desktop or jumphost - - Firewall - - Outbound - - Build Tools for VMware Aria Server:[80, 443] - - vRSCLM:[443:80] - - vRA:[443:80] - - vRO:[443:80] - - -## Photon -PhotonOS is an open source minimalist Linux container host optimized for cloud-native applications, cloud platforms -and VMware infrastructure. Photon OS provides a secure run-time environment for efficiently running containers. - -### Requirements -Preprovisioned [Photon OS 2.0](https://vmware.github.io/photon/) with the following software packages pre-installed: -* [Docker-compose](https://docs.docker.com/compose/install/#install-compose) (>= 1.18.0) - * It is important to configure docker host to automatically start after reboot - ``` - systemctl start docker - systemctl enable docker - ``` -* NPM (>= 5.3.0) -* ZIP, UNZIP and TAR (```tdnf install zip unzip tar```) -* Preconfigured networking -* Resolvable hostnames for GitLab, Artifactory, CI Runner (check **Install**) section) -* Temporary access to internet during the installation -* Propper resource sizing based on the load (number of users, projects, pipelines, artifacts, etc) +# Contents +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) + - [Installation](#installation) + - [Validation](#validation) +- [Running the Infrastructure](#running-the-infrastructure) +- [Application Setup](#application-setup) + - [GitLab](#gitlab) + - [GitLab Runner](#gitlab-runner) + - [Nexus](#nexus) +- [Environment Setup](#environment-setup) +- [Project Setup](#project-setup) +- [Conclusion](#conclusion) -## NGINX -NGINX is a web server that is used as a reverse proxy that exposes all of the needed services to the outside world. -The use of NGINX reverse proxy simplifies service management configuration, adds security and central SSL management (SSL termination occurs on the proxy) and provides unified access logging and a simple user portal. Certain caching performance benefits may also apply even with default configuration. +# Introduction -The default configured ports for NGINX are **80/443**. +This file serves as a guide to create a minimal infrastructure example using containers. We will be using [Docker Compose](https://docs.docker.com/compose/) to orchestrate the following containers: -### NGINX and Network Configuration -The default NGINX configuration file can be found in **nginx/conf.d/nginx.conf**. +- [nginx](https://hub.docker.com/_/nginx) +- `Nexus` + - [sonatype/nexus3](https://hub.docker.com/r/sonatype/nexus3/) for Linux. + - [klo2k/nexus3](https://hub.docker.com/r/klo2k/nexus3) for M1+ Mac. +- `GitLab` + - [gitlab/gitlab-ce](https://hub.docker.com/r/gitlab/gitlab-ce) for Linux. + - [yrzr/gitlab-ce-arm64v8](yrzr/gitlab-ce-arm64v8) for M1+ Mac. +- [gitlab/gitlab-runner](https://hub.docker.com/r/gitlab/gitlab-runner) -The networking stack is constructed as follows: -Docker network **infranet 172.18.0.0/24**: -* 172.18.0.10 - NGINX proxy server -* 172.18.0.11 - gitlab.corp.local (GitLab CE) -* 172.18.0.12 - gitlab-runner.corp.local (GitLab CI Runner) -* 172.18.0.13 - artifactory.corp.local (JFrog Artifactory) +Using these applications, the infrastructure will support source control, running the build pipeline as well as hosting and serving the artifact packages, which are all the minimal requirements to have an [Aria Build Tools](../README.md) project. -On the internal network, the vRA IaaC Web Portal will respond to **infra.corp.local**. -The services are available on the following URLs: -* [Gitlab](http://infra.corp.local/gitlab) -* [Artifactory](http://infra.corp.local/artifactory) -* [VSCode Extension](http://infra.corp.local/vscode) -* [vRo Extension](http://infra.corp.local/vro) -* [Help](http://infra.corp.local/help) +We will also be guiding you through configuring the applications and setting up a new project and building it end-to-end. -The NGINX reverse proxy is used in this situation to forward the traffic to the specified container. None of the services and their corresponding ports are exposed to the outside world - they "live" inside the Docker container network. +Please contribute back to this document if you find out of date contents or have other ways to improve it. -The hostnames and IPs are fully configurable. If the hostnames or IPs change you should update **etc/hosts** file, **docker-compose.yml** and the NGINX config file located in ``nginx/conf.d/nginx.conf`` as they use and inject the hostnames and IP addresses into the containers internal DNS resolver. +# Prerequisites ## Installation - -### Infrastructure Folder Contents -The infrastructure package contains the following items: -* **etc** folder: contains the needed configuration files for various services -* **nginx** folder: contains the needed files for the NGINX web server -* **docker-compose.yml** file that is used to describe the Docker services -* **iac-for-vrealize-configurator.sh** bootstrap script for the infrastructure - -### Installation Instructions -1. Deploy the package into the PhotonOS appliance. -2. Open the **docker-compose.yml** file and locate the following string: ``infra.corp.local:`` -3. Change the value of **** with the IP address of the Docker host. -3.1 In case Photon OS needs to use http proxy add on top of the **docker-compose.yml** file the following line ``` ARG http_proxy=```. This will make the proxy available during the build phase but not container runtime. -4. Navigate to the installation script ```iac-for-vrealize-configurator.sh``` located at: ```/path/to/package/infrastructure/``` -5. Assign execution permissions to the script -6. Execute the script with the following options: ```iac-for-vrealize-configurator.sh --install```. This will trigger the installation process. -7. If the script finishes succesfully execute the following command to validate if all docker containers have started: ```docker ps``` -8. There should be containers named **nginx, gitlab-ce, gitlab-runner, artifactory** -9. Some of the services (for example the GitLab portal) require couple of minutes for starting so they would not be imidiatelly available after the startup procedure. -10. You can check the log file of the installer located in: ```/var/log/vmware/iac-for-vrealize/iac-for-vrealize-configurator.log``` - -## GitLab CE -When you first open the GitLab you will be prompted to set a password for the **root** account. -After that you will be able to login as root, create users, groups, repositories and manage the portal. - -### Register GitLab CI Runner -1. Login with administrator privileges in Gitlab -2. Navigate to **Admin Area > Runners** -3. Copy the registration token for the runners -4. Login to the PhotonOS Docker host and execute the following command: -```docker exec -it gitlab-runner gitlab-runner register``` -5. Follow the instruction to register the runner with the Gitlab instance -6. When prompted with **Please enter the executor** use **shell** as a type of runner -7. Use the internal gitlab URL, e.g. http://infra.corp.local/gitlab by default - -## JFrog Artifactory OSS -JFrog Artifactory is a Universal Repository Manager supporting all major packaging formats, build tools and CI servers. - -### Create Default Password and Maven Repo -When you first open JFrog Artifactory you will be prompted to create a password for the default **admin** user and a default repo. -Choose **Maven** as a type of repo to create and Artifactory will create the default Maven repositories. - -### Configuring JFrog CLI for artifact deployment - -* JFrog CLI will already be installed by the installation script. -* Run the command ``jfrog rt config`` to initiate the initial configuration of the CLI and follow the steps: - * ``Artifactory server ID:`` - Leave this empty - * ``Artifactory URL`` - Provide the internal artifactory url, e.g. http://infra.corp.local/artifactory by default - * ``API key (leave empty for basic authentication):`` - Either enter an API key for authentication or leave empty - * ``User: `` - Enter user for basic authentication (default user **admin**) - * ``Password: `` - Enter password for basic authentication (password configured in **Create Default Password**) - -### Uploading toolchain artifacts to Artifactory -_Note that the libs-release, libs-snapshot etc. are the default Maven repositories created by JFrog's **Quick Setup** shown at -first login. This guide assumes that this **Quick Setup** has been executed._ -1. Create a local repository in artifactory to contain the toolchain artifacts, e.g. **pscoe-local** and add it to the virtual release repository (e.g. **libs-release**) -3. Unzip **iac-maven-repository.zip** found at **artifacts/maven/** path relative to the root of the toolchain bundle to a folder, e.g. **import/** -4. Go to the directory where you have unzipped the archive. Your working directory should contain the "com" folder and the **archetype-catalog.xml** file, e.g.: -```bash -root@photon-G6H8GzV2j [ ~/toolchain/import ]# ls -archetype-catalog.xml com -``` -5. Then, run the following command ``jfrog rt u --recursive=true --flat=false ./ pscoe-local``, where **pscoe-local** should be the name of the repository you've created at step #1. -6. Examine the output of the command. It should look something similar to this: +Before proceeding, make sure you have the following installed on your system: +- [Docker](https://www.docker.com/get-started/) - Important to configure the docker host to automatically start after reboot and add docker to PATH. + ``` + systemctl start docker + systemctl enable docker + export PATH=$PATH:~/.docker/bin + ``` +- [Docker Compose](https://docs.docker.com/compose/install/#install-compose) - Should be bundled with `Docker Desktop`. +- [Open JDK 17](https://openjdk.org/install/) +- [Maven](https://maven.apache.org/index.html) +- [NodeJS 14.21.03](https://nodejs.org/en/download/package-manager) +- [npm 6.14.18](https://nodejs.org/en/download/package-manager) - Should be bundled with `NodeJS`. + +## Validation +Validate all of the prerequisites are available in the Terminal: ``` -Uploading artifact: /path/to/artifact/some-artifact.jar -{ - "status": "success", - "totals": { - "success": 1, - "failure": 0 - } -} +docker -v +node -v +npm -v +mvn -v +java --version ``` -## Upload vRO artifacts to Artifactory -First you need access to a vRO appliance to get the vRO dependencies for the toolchain in your artifactory. -1. Get all vRO artifacts on the local machine. Run: -``` -wget --no-check-certificate --recursive --no-parent --reject "index.html*" https://:/vco-repo/com/ -wget --no-check-certificate --recursive --no-parent --reject "index.html*" https://:/vco-repo/com/vmware/o11n/mojo/pkg/ -wget --no-check-certificate --recursive --no-parent --reject "index.html*" https://:/vco-repo/com/vmware/o11n/pkg -``` -2. Create a new local repository (e.g. **vro-local**) and add it to the virtual release repository (e.g. **libs-release**). -3. Navigate to the root folder of the downloaded repository on the local filesystem - at the same level as the **com** directory. E.g.: -```bash -root@photon-G6H8GzV2j [ ~/192.168.71.1/vco-repo ]# ls -com -``` -4. Import the vro artifacts to the selected repository, for example: +The latest versions used to test this guide are as follows: ``` -jfrog rt u --recursive true --flat false ./ vro-local +Docker version 27.0.3 +NodeJS version 14.21.3 +npm version 6.14.18 +Apache Maven 3.6.3 +Maven home: /usr/share/maven +Javaversion: 17.0.12, vendor:Ubuntu,runtime: /usr/lib/jvm/java-17-openjdk-arm64 +Default locale:en_US, platform encoding:ANSI_X3.4-1968 +OS name: "linux",version: "6.6.32-linuxkit",arch:"aarch64", family: "unix" +openjdk 17.0.12 2024-07-16 +OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu220.04) +OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu220.04, mixed mode, sharing) ``` +# Running the Infrastructure + +To get started, follow the steps below: + +1. Clone the repository containing the existing resources: + ``` + git clone https://github.com/vmware/build-tools-for-vmware-aria.git + ``` + +2. Navigate to the `infrastructure` folder: + ``` + cd infrastructure + ``` + +3. Create the custom Maven GitLab Runner image by executing: + ``` + docker build -t gitlab-runner ./gitlab-runner + ``` + +4. Open the [docker-compose.yml](docker-compose.yml) file: + - Depending on your host OS uncomment the `image` property under the `gitlab` and `nexus` services either tagged with `# Mac` or `# Linux`. + - `OPTIONAL` Check the IPs and port forwarding options for each of the containers and make sure they work for your specific setup. Leaving them as-is should work, provided you don't have port collisions with other applications. In case you change the ports, you will also need to make the changes in the nginx configuration file [nginx/conf.d/main.conf](./nginx/conf.d/main.conf). + +5. Run the [docker-compose.yml](docker-compose.yml) file: + ```bash + docker compose up -d + ``` + +6. Validate the containers are created: + ```bash + docker ps + ``` + + The results should look something like this: + ``` + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + eec4f06c5e88 nginx "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp nginx + dc46763483f0 klo2k/nexus3 "/__cacert_entrypoin…" 5 minutes ago Up 5 minutes 0.0.0.0:8081->8081/tcp nexus + 42630f6121ad yrzr/gitlab-ce-arm64v8 "/assets/wrapper" 5 minutes ago Up 5 minutes 0.0.0.0:8022->22/tcp, 0.0.0.0:8082->80/tcp gitlab-ce + 17ba02a491e8 gitlab/gitlab-runner "/usr/bin/dumb-init …" 5 minutes ago Up 5 minutes 0.0.0.0:2811->2811/tcp gitlab-runner + ``` + +7. Wait until all containers are up and running, which might take a few minutes: + - nginx - [localhost](http://localhost) + - Nexus - [localhost:8081](http://localhost:8081) + - GitLab - [localhost:8082](http://localhost:8082) + - GitLab Runner - [localhost:2811](http://localhost:2811) (*no http web interface*) + +8. Add the nginx container endpoint to your `hosts` file. + - Docker provides an internal DNS server in user-defined networks (infranet) to resolve container names to their internal IP addresses. Since your nginx and GitLab services are part of the infranet network, they can communicate using their Docker defined hostnames. -### Configure permissions for local cache for the Anonymous user -1. Login into Artifactory with admin privileges -2. Navigate to **Admin > Permissions** -3. Click the **New** button -4. Add a name for the permissions (for example: Anonymous Cache) -5. Add all repositories into the **Selected Repositories** list view -6. Skip the groups section -7. On the **Users** section add **Anonymous** user -8. Give **Deploy/Cache, Annotate, Read** permissions -9. Click **Save & Finish** - -## Managing the Docker services -The services are managed with docker-compose. - -Initial startup is trigered from the installation script with the command: ```docker-compose up -d```. -This will kickstart the creation of the containers and will boot them up. - -After that you can use the following management commands (executed from the directory of the docker-compose file): -* ```docker-compose start``` - will start all containers for all services in the docker-compose file -* ```docker-compose stop``` - will stop all containers for all services in the docker-compose file -* ```docker-compose restart```- will restart all containers for all services in the docker-compose file - -* ```docker-compose up -d``` - this will recreate all Docker containers -* ```docker-compose down``` - this will stop all containers and delete them - -## Uninstalling the solution -To uninstall the solution run the following command: -```../infrastructure/iac-for-vrealize-configurator.sh --clean``` - -This will remove: -* All running containers for the solution - NGINX, GitLab, GitLab CI Runner, Artifactory -* Docker network **infranet** -* JFrog CLI -* Custom configuration from **/etc/hosts** file - -No persistent container data is deleted - if you want to fully delete all data you should -delete the files located in the following locations: - -NGINX: -* ./nginx/conf.d -* ./nginx/vhost.d -* ./nginx/html -* ./nginx/certs -* ./nginx/proxy.conf -* /var/log/nginx - -GitLab: -* /srv/gitlab/config -* /srv/gitlab/logs -* /srv/gitlab/data - -GitLab Runner: -* /srv/gitlab-runner/config - -Artifactory: -* /data/artifactory - -# Next step -- Configure developer **[Build Tools for VMware Aria Workstation](./setup-workstation.md)** + - We are going to be accessing the containers from the nginx reverse proxy. For this you need to manually edit the /etc/hosts file on your host machine: + + - Add the following records to the `/etc/hosts` file. + ``` + 127.0.0.1 infra.corp.local + ``` + + - You should now be able to access the containers via: + - nginx - [infra.corp.local](http://infra.corp.local) + - Nexus - [infra.corp.local/nexus](http://infra.corp.local/nexus) + - GitLab - [infra.corp.local/gitlab](http://infra.corp.local/gitlab) + - GitLab Runner - [infra.corp.local/gitlab-runner](http://infra.corp.local/gitlab-runner) (*no http web interface*) + +# Application Setup + +## GitLab +1. Grab the GitLab `root` password: + ``` + sudo docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password + ``` + *This file will be deleted 24 hours after a container restart* + +2. Login at [http://infra.corp.local/gitlab/users/sign_in](http://infra.corp.local/gitlab/users/sign_in) with: + ``` + account: root + password: *password from previous step* + ``` +3. Change the root user password at [http://infra.corp.local/gitlab/admin/users/root/edit](http://infra.corp.local/gitlab/admin/users/root/edit) + +## GitLab Runner +1. Go to [http://infra.corp.local/gitlab/admin/runners](http://infra.corp.local/gitlab/admin/runners) +2. Click on `New instance runner` +3. Enter any tag, for instance `maven` and optionally select `Run untagged jobs` and press `Create runner` +4. Copy the code snippet in `Step 1`, which contains your AUTH_TOKEN and should look something like the following: + ``` + gitlab-runner register --url http://infra.corp.local/gitlab --token + ``` +5. Append it to `docker exec -it gitlab-runner` and execute on your host: + ``` + docker exec -it gitlab-runner gitlab-runner register --url http://infra.corp.local/gitlab --token + ``` +6. Follow the setup process by providing the following: + - GitLab instance URL: leave `default` and press Enter + - Enter a name for the runner: input `Maven` or leave `default` and press Enter + - Enter an executor - input `shell` and press Enter +7. Go back to [http://infra.corp.local/gitlab/admin/runners](http://infra.corp.local/gitlab/admin/runners) and validate the runner is `Online` + +## Nexus +1. Grab the Nexus `admin` password: + ``` + docker exec nexus sh -c 'cat /nexus-data/admin.password && echo' + ``` +2. Login at [http://infra.corp.local/nexus/](http://infra.corp.local/nexus/) with: + ``` + account: admin + password: *password from previous step* + ``` +3. Follow the initial setup wizard instructions: + - Enter new `admin` password + - Disable anonymous access + +# Environment Setup +1. Follow the [Getting Started](../docs/versions/latest/General/Getting%20Started/) guides to setup your local environment. +2. Edit your local `~/.m2/settings.xml` by using the repository provided [settings.xml](./.m2/settings.xml). It should contain: + - A nexus server authentication under `servers` with id `nexus` with your Nexus username and password. + - A `Maven Central` mirror under `mirrors` with id `nexus`. + - A profile under `profiles` with id `nexus` with `releases` and `snapshots` repositories. + - A profile under `profiles` with id `packaging`. + +3. Get back to the root of this repository: + ``` + cd .. + ``` +4. Execute the following: + ``` + mvn clean install -f common/keystore-example/pom.xml + mvn clean install -f maven/npmlib/pom.xml + mvn clean install -f pom.xml + mvn clean install -f maven/base-package/pom.xml + mvn clean install -f packages/pom.xml + mvn clean install -f maven/typescript-project-all/pom.xml + mvn clean install -f maven/repository/pom.xml + ``` + +# Project Setup +1. Create a repository called `demo` at [http://infra.corp.local/gitlab/projects/new#blank_project](http://infra.corp.local/gitlab/projects/new#blank_project). +2. Setup your local git environment and follow the `Command line instructions` listed in your new repo to clone it. +3. Open a terminal and `cd` to the repository directory. +4. Generate a project by running: + ``` + mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-ts-vra-ng-archetype -DarchetypeVersion= -DgroupId=local.corp -DartifactId=demo -DlicenseTechnicalPreview=false -DoutputDirectory=../ + ``` + where `` is the last released version or any specific version you want, i.e. `2.41.0`. + + You might also want to change the specific archetype to best fit your specific use-case. Check out the archetype templates available at [com.vmware.pscoe.o11n.archetypes](https://central.sonatype.com/namespace/com.vmware.pscoe.o11n.archetypes). +5. Validate the command generates the appropriate project files. +6. Validate you can build and test the project locally: + ``` + mvn clean package + mvn test + ``` + You might need to comment: + ``` + + local.corp + vro + 1.0.0-SNAPSHOT + package + + ``` + in `vra`'s `pom.xml` in order to successfully build and test. + +7. Configure the GitLab pipeline by creating a new file in the root of the repository named `.gitlab-ci.yml`: + ``` + stages: + - setup + - build + - test + - install + + variables: + BUILD_OPTS: >- + -Dhttps.protocols=TLSv1.2 + -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository + -DskipTests=true + DEPLOY_OPTS: >- + -Dhttps.protocols=TLSv1.2 + -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository + -DskipTests=true + -Dbuild.number=$CI_PIPELINE_IID + -Dsurefire.useSystemClassLoader=false + -Pbundle-with-installer + -DoutputDirectory=target + -DartifactName=artifact.zip + -U + --batch-mode + + dynamic_variables: + stage: setup + script: + - echo "GROUP_ID=$(mvn help:evaluate -Dexpression=project.groupId -q -DforceStdout)" >> build.env + - echo "ARTIFACT_ID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)" >> build.env + - echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> build.env + artifacts: + expire_in: 3 hours + reports: + dotenv: build.env + + build: + stage: build + script: + - mvn $BUILD_OPTS clean package + + test: + stage: test + script: + - mvn test + + install: + stage: install + needs: ["dynamic_variables"] + script: + - mvn $DEPLOY_OPTS clean package + artifacts: + paths: + - vra/target/*.zip + - vro/target/*.zip + name: "$GROUP_ID.$ARTIFACT_ID-$PROJECT_VERSION-$CI_PIPELINE_IID" + expire_in: 1 month + ``` + *For more information about the GitLab pipelines, see the pipeline documentation at [https://docs.gitlab.com/ee/ci/](https://docs.gitlab.com/ee/ci/)* + +8. Commit and push your git repository changes +9. Validate `GitLab` runs the pipelines successfully: + - Head to [http://infra.corp.local/gitlab/root/demo/-/pipelines](http://infra.corp.local/gitlab/root/demo/-/pipelines) and wait for all of the `setup`, `build`, `test` and `install` steps to run successfully on the the pipeline run you just triggered by pushing in Step #8. + - After done, check that you can see the `install:archive` artifact from the successful pipeline outputs (*download button on the right side of the run*) or by going to the artifacts page at [http://infra.corp.local/gitlab/root/demo/-/artifacts](http://infra.corp.local/gitlab/root/demo/-/artifacts) + - Pressing the `install:archive` artifact or downloading the *.zip* directly should start a download of the `local.corp.demo-1.0.0-SNAPSHOT-1.zip` install bundle. +10. You can continue by: + - following the [Bundle Installer Guide](../docs/archive/doc/markdown/use-bundle-isntaller.md) to push your package to your `Aria` instance manually. + - adding a new `profile` in the [settings.xml](./.m2/settings.xml) for your `Aria` instance and then executing `mvn package vrealize:push -P` which will push your changes directly to a life environment. Follow the [Push](../docs/archive/doc/markdown/use-workstation-vra-ng-project.md#Push) section of your specific archetype documentation at [docs/archive/doc/markdown](../docs/archive/doc/markdown/). + +# Conclusion +This concludes the setup. You now have a fully operational end-to-end architecture to support the [Build Tools for Aria](../README.md), create, build and push projects and run pipelines that produce install bundles. + +*This is not intended as a production environment, but as an educational sandbox. You should setup your proper and persistent development and production environments in a similar fashion.* + +***Please contribute to keeping this up to date!*** diff --git a/infrastructure/ubuntu/Dockerfile b/infrastructure/ubuntu/Dockerfile deleted file mode 100644 index 13f0d2bbc..000000000 --- a/infrastructure/ubuntu/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM ubuntu:bionic - -ADD https://github.com/Yelp/dumb-init/releases/download/v1.0.2/dumb-init_1.0.2_amd64 /usr/bin/dumb-init -RUN chmod +x /usr/bin/dumb-init - -RUN apt-get update -y && \ - apt-get upgrade -y && \ - apt-get install -y vim && \ - apt-get install -y dnsutils && \ - apt-get install -y iputils-ping && \ - apt-get install -y curl && \ - apt-get install -y openjdk-8-jre-headless && \ - apt-get install -y openjdk-8-jdk-headless && \ - apt-get install -y maven && \ - curl --retry 3 -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | bash && \ - apt-get install -y gitlab-ci-multi-runner && \ - curl --retry 3 -L https://deb.nodesource.com/setup_10.x | bash && \ - apt-get install -y nodejs - -ADD entrypoint / -RUN chmod +x /entrypoint - -RUN install -d -o gitlab-runner -g gitlab-runner /home/gitlab-runner - -VOLUME ["/etc/gitlab-runner", "/home/gitlab-runner"] -ENTRYPOINT ["/usr/bin/dumb-init", "/entrypoint"] -CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] \ No newline at end of file diff --git a/infrastructure/ubuntu/entrypoint b/infrastructure/ubuntu/entrypoint deleted file mode 100755 index b5423eb20..000000000 --- a/infrastructure/ubuntu/entrypoint +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# gitlab-ci-multi-runner data directory -DATA_DIR="/etc/gitlab-runner" -CONFIG_FILE=${CONFIG_FILE:-$DATA_DIR/config.toml} -# custom certificate authority path -CA_CERTIFICATES_PATH=${CA_CERTIFICATES_PATH:-$DATA_DIR/certs/ca.crt} -LOCAL_CA_PATH="/usr/local/share/ca-certificates/ca.crt" - -update_ca() { - echo "Updating CA certificates..." - cp "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" - update-ca-certificates --fresh >/dev/null -} - -if [ -f "${CA_CERTIFICATES_PATH}" ]; then - # update the ca if the custom ca is different than the current - cmp --silent "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" || update_ca -fi - -# launch gitlab-ci-multi-runner passing all arguments -exec gitlab-ci-multi-runner "$@" From cf425987c7d4025cd13e6103712aecd22ad40a96 Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Fri, 13 Sep 2024 13:36:47 +0300 Subject: [PATCH 02/10] Containers up and running for Linux --- infrastructure/docker-compose.yml | 30 +++++++------- infrastructure/nginx/conf.d/main.conf | 6 +-- infrastructure/readme.md | 56 +++++++++++++-------------- 3 files changed, 44 insertions(+), 48 deletions(-) diff --git a/infrastructure/docker-compose.yml b/infrastructure/docker-compose.yml index afc697561..e9ebd56e1 100755 --- a/infrastructure/docker-compose.yml +++ b/infrastructure/docker-compose.yml @@ -5,26 +5,26 @@ services: restart: always networks: infranet: - ipv4_address: 172.18.0.10 + ipv4_address: 172.19.0.10 ports: - 80:80 # Web Interface hostname: "infra.corp.local" volumes: - "./nginx:/etc/nginx/" nexus: - image: klo2k/nexus3 # Mac - #image: sonatype/nexus3 # Linux + image: sonatype/nexus3 # Linux + #image: klo2k/nexus3 # Mac container_name: nexus hostname: "nexus.corp.local" environment: NEXUS_CONTEXT: nexus networks: infranet: - ipv4_address: 172.18.0.11 + ipv4_address: 172.19.0.11 extra_hosts: - - "gitlab.corp.local:172.18.0.12" + - "gitlab.corp.local:172.19.0.12" ports: - - 8081:8081 # Web Interface + - 8081:8081 # Web Interfac volumes: - "nexus-data:/var/sonatype/work" restart: always @@ -34,8 +34,8 @@ services: soft: 32000 hard: 40000 gitlab: - image: yrzr/gitlab-ce-arm64v8 # Mac - #image: gitlab/gitlab-ce # Linux + image: gitlab/gitlab-ce # Linux + #image: yrzr/gitlab-ce-arm64v8 # Mac container_name: gitlab-ce restart: always environment: @@ -43,9 +43,9 @@ services: external_url 'http://infra.corp.local/gitlab' networks: infranet: - ipv4_address: 172.18.0.12 + ipv4_address: 172.19.0.12 extra_hosts: - - "infra.corp.local:172.18.0.10" + - "infra.corp.local:172.19.0.10" ports: - 8082:80 # Web Interface - 8022:22 # SSH @@ -61,11 +61,11 @@ services: hostname: "gitlab-runner.corp.local" networks: infranet: - ipv4_address: 172.18.0.13 + ipv4_address: 172.19.0.13 extra_hosts: - - "infra.corp.local:172.18.0.10" - - "nexus.corp.local:172.18.0.11" - - "gitlab.corp.local:172.18.0.12" + - "infra.corp.local:172.19.0.10" + - "nexus.corp.local:172.19.0.11" + - "gitlab.corp.local:172.19.0.12" ports: - 2811:2811 volumes: @@ -85,4 +85,4 @@ networks: driver: bridge ipam: config: - - subnet: 172.18.0.0/24 + - subnet: 172.19.0.0/24 diff --git a/infrastructure/nginx/conf.d/main.conf b/infrastructure/nginx/conf.d/main.conf index d07000ff6..a81d0f655 100755 --- a/infrastructure/nginx/conf.d/main.conf +++ b/infrastructure/nginx/conf.d/main.conf @@ -20,7 +20,7 @@ server { } location /nexus { - proxy_pass http://host.docker.internal:8081/nexus; + proxy_pass http://172.19.0.11:8081/nexus; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -31,7 +31,7 @@ server { } location /gitlab { - proxy_pass http://host.docker.internal:8082/gitlab/; + proxy_pass http://172.19.0.12/gitlab/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; @@ -42,7 +42,7 @@ server { } location /gitlab-runner { - proxy_pass http://host.docker.internal:2811/; + proxy_pass http://172.19.0.13/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; diff --git a/infrastructure/readme.md b/infrastructure/readme.md index 0bb4fe770..b639b22e0 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -25,7 +25,7 @@ This file serves as a guide to create a minimal infrastructure example using con - [yrzr/gitlab-ce-arm64v8](yrzr/gitlab-ce-arm64v8) for M1+ Mac. - [gitlab/gitlab-runner](https://hub.docker.com/r/gitlab/gitlab-runner) -Using these applications, the infrastructure will support source control, running the build pipeline as well as hosting and serving the artifact packages, which are all the minimal requirements to have an [Aria Build Tools](../README.md) project. +Using these applications, the infrastructure will support source control, running the build pipeline as well as hosting and serving the artifact packages, which are all the minimal requirements to have an [Build Tools for VMware Aria](../README.md) project. We will also be guiding you through configuring the applications and setting up a new project and building it end-to-end. @@ -35,18 +35,20 @@ Please contribute back to this document if you find out of date contents or have ## Installation Before proceeding, make sure you have the following installed on your system: -- [Docker](https://www.docker.com/get-started/) - Important to configure the docker host to automatically start after reboot and add docker to PATH. +- [Docker Engine](https://docs.docker.com/engine/install/) - Important to configure the docker host to automatically start after reboot and add docker to PATH. ``` systemctl start docker systemctl enable docker export PATH=$PATH:~/.docker/bin ``` -- [Docker Compose](https://docs.docker.com/compose/install/#install-compose) - Should be bundled with `Docker Desktop`. +- [Docker Compose](https://docs.docker.com/compose/install) - [Open JDK 17](https://openjdk.org/install/) -- [Maven](https://maven.apache.org/index.html) -- [NodeJS 14.21.03](https://nodejs.org/en/download/package-manager) +- [Maven](https://maven.apache.org/) +- [NodeJS 14.21.03](https://nodejs.org/en/download/package-manager) - Use the nvm version for your OS. - [npm 6.14.18](https://nodejs.org/en/download/package-manager) - Should be bundled with `NodeJS`. +For Linux, besides Docker, you can use GitLab Runner's [Dockerfile](/infrastructure/gitlab-runner/Dockerfile) RUN commands to setup your environment. + ## Validation Validate all of the prerequisites are available in the Terminal: ``` @@ -57,7 +59,7 @@ mvn -v java --version ``` -The latest versions used to test this guide are as follows: +The latest versions used to test this guide on Ubuntu are as follows: ``` Docker version 27.0.3 NodeJS version 14.21.3 @@ -82,7 +84,7 @@ To get started, follow the steps below: 2. Navigate to the `infrastructure` folder: ``` - cd infrastructure + cd build-tools-for-vmware-aria/infrastructure ``` 3. Create the custom Maven GitLab Runner image by executing: @@ -93,13 +95,23 @@ To get started, follow the steps below: 4. Open the [docker-compose.yml](docker-compose.yml) file: - Depending on your host OS uncomment the `image` property under the `gitlab` and `nexus` services either tagged with `# Mac` or `# Linux`. - `OPTIONAL` Check the IPs and port forwarding options for each of the containers and make sure they work for your specific setup. Leaving them as-is should work, provided you don't have port collisions with other applications. In case you change the ports, you will also need to make the changes in the nginx configuration file [nginx/conf.d/main.conf](./nginx/conf.d/main.conf). + +5. Add the nginx container and the docker internal host endpoints to your `hosts` file. + - Docker provides an internal DNS server in user-defined networks (infranet) to resolve container names to their internal IP addresses. Since your nginx and GitLab services are part of the infranet network, they can communicate using their Docker defined hostnames. + + - We are going to be accessing the containers from the nginx reverse proxy. For this you need to manually edit the /etc/hosts file on your host machine: + + - Add the following records to the `/etc/hosts` file. + ``` + 127.0.0.1 infra.corp.local + ``` -5. Run the [docker-compose.yml](docker-compose.yml) file: +6. Run the [docker-compose.yml](docker-compose.yml) file: ```bash docker compose up -d ``` -6. Validate the containers are created: +7. Validate the containers are created: ```bash docker ps ``` @@ -113,27 +125,11 @@ To get started, follow the steps below: 17ba02a491e8 gitlab/gitlab-runner "/usr/bin/dumb-init …" 5 minutes ago Up 5 minutes 0.0.0.0:2811->2811/tcp gitlab-runner ``` -7. Wait until all containers are up and running, which might take a few minutes: - - nginx - [localhost](http://localhost) - - Nexus - [localhost:8081](http://localhost:8081) - - GitLab - [localhost:8082](http://localhost:8082) - - GitLab Runner - [localhost:2811](http://localhost:2811) (*no http web interface*) - -8. Add the nginx container endpoint to your `hosts` file. - - Docker provides an internal DNS server in user-defined networks (infranet) to resolve container names to their internal IP addresses. Since your nginx and GitLab services are part of the infranet network, they can communicate using their Docker defined hostnames. - - - We are going to be accessing the containers from the nginx reverse proxy. For this you need to manually edit the /etc/hosts file on your host machine: - - - Add the following records to the `/etc/hosts` file. - ``` - 127.0.0.1 infra.corp.local - ``` - - - You should now be able to access the containers via: - - nginx - [infra.corp.local](http://infra.corp.local) - - Nexus - [infra.corp.local/nexus](http://infra.corp.local/nexus) - - GitLab - [infra.corp.local/gitlab](http://infra.corp.local/gitlab) - - GitLab Runner - [infra.corp.local/gitlab-runner](http://infra.corp.local/gitlab-runner) (*no http web interface*) +8. Wait until all containers are up and running, which might take a few minutes: + - nginx - [infra.corp.local](http://infra.corp.local) + - Nexus - [infra.corp.local/nexus](http://infra.corp.local/nexus) + - GitLab - [infra.corp.local/gitlab](http://infra.corp.local/gitlab) + - GitLab Runner - [infra.corp.local/gitlab-runner](http://infra.corp.local/gitlab-runner) (*no http web interface*) # Application Setup From 44a17facba31070cf2755d868ad2b28be882f183 Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Fri, 20 Sep 2024 11:14:12 +0300 Subject: [PATCH 03/10] Landing page simplified and build tools build section dropped Signed-off-by: Ivan Zdravkov --- infrastructure/.m2/settings.xml | 2 +- infrastructure/nginx/html/home/css/style.css | 86 ++++++++++-- infrastructure/nginx/html/home/help.html | 97 ------------- .../nginx/html/home/images/artifactory.png | Bin 8420 -> 0 bytes .../nginx/html/home/images/beige_paper.png | Bin 24280 -> 0 bytes .../images/binding_light/binding_light.png | Bin 21447 -> 0 bytes .../binding_light/binding_light_@2X.png | Bin 30459 -> 0 bytes .../html/home/images/cloud-client-logo.png | Bin 20761 -> 0 bytes .../nginx/html/home/images/gitlab.png | Bin 17985 -> 0 bytes .../nginx/html/home/images/help.png | Bin 3330 -> 0 bytes .../nginx/html/home/images/maven-logo.png | Bin 23852 -> 0 bytes .../nginx/html/home/images/vmware-logo.png | Bin 101111 -> 0 bytes .../nginx/html/home/images/vro-logo.jpg | Bin 5611 -> 0 bytes .../nginx/html/home/images/vscode-icon.png | Bin 86995 -> 0 bytes .../html/home/images/workstation-logo.png | Bin 8767 -> 0 bytes infrastructure/nginx/html/home/index.html | 132 +++++++----------- infrastructure/nginx/html/home/package.json | 14 -- .../nginx/html/home/scripts/helpPage.js | 66 --------- .../nginx/html/home/scripts/indexPage.js | 30 ---- infrastructure/readme.md | 17 +-- 20 files changed, 124 insertions(+), 320 deletions(-) delete mode 100644 infrastructure/nginx/html/home/help.html delete mode 100755 infrastructure/nginx/html/home/images/artifactory.png delete mode 100755 infrastructure/nginx/html/home/images/beige_paper.png delete mode 100755 infrastructure/nginx/html/home/images/binding_light/binding_light.png delete mode 100755 infrastructure/nginx/html/home/images/binding_light/binding_light_@2X.png delete mode 100644 infrastructure/nginx/html/home/images/cloud-client-logo.png delete mode 100755 infrastructure/nginx/html/home/images/gitlab.png delete mode 100755 infrastructure/nginx/html/home/images/help.png delete mode 100755 infrastructure/nginx/html/home/images/maven-logo.png delete mode 100755 infrastructure/nginx/html/home/images/vmware-logo.png delete mode 100755 infrastructure/nginx/html/home/images/vro-logo.jpg delete mode 100755 infrastructure/nginx/html/home/images/vscode-icon.png delete mode 100644 infrastructure/nginx/html/home/images/workstation-logo.png delete mode 100644 infrastructure/nginx/html/home/package.json delete mode 100644 infrastructure/nginx/html/home/scripts/helpPage.js delete mode 100644 infrastructure/nginx/html/home/scripts/indexPage.js diff --git a/infrastructure/.m2/settings.xml b/infrastructure/.m2/settings.xml index 3c4043057..79697daa5 100644 --- a/infrastructure/.m2/settings.xml +++ b/infrastructure/.m2/settings.xml @@ -48,7 +48,7 @@ com.vmware.pscoe.build keystore.example - 2.41.0 + 2.42.0 target/${keystoreArtifactId}-${keystoreVersion}/private_key.pem target/${keystoreArtifactId}-${keystoreVersion}/cert.pem VMware1! diff --git a/infrastructure/nginx/html/home/css/style.css b/infrastructure/nginx/html/home/css/style.css index 35a224f92..dda9a03ee 100644 --- a/infrastructure/nginx/html/home/css/style.css +++ b/infrastructure/nginx/html/home/css/style.css @@ -1,14 +1,72 @@ -.iac-component .card-img { - margin: 25px; -} - -.clr-icon.clr-clarity-logo { - background-image: url(../images/vmware-logo.png); - height: 36px; - width: 120px !important; - margin-right: 11px; -} - -pre { - padding:10px; -} \ No newline at end of file +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + background-color: #f4f4f4; +} +.container { + width: 80%; + margin: auto; + overflow: hidden; +} +header { + background: #333; + color: #fff; + padding-top: 30px; + min-height: 70px; + border-bottom: #77aaff 3px solid; +} +header a { + color: #fff; + text-decoration: none; + text-transform: uppercase; + font-size: 16px; +} +header ul { + padding: 0; + list-style: none; +} +header li { + float: left; + display: inline; + padding: 0 20px 0 20px; +} +header #branding { + float: left; +} +header #branding h1 { + margin: 0; +} +header nav { + float: right; + margin-top: 10px; +} +.content { + padding: 20px; + background: #fff; + margin-top: 20px; +} +.content h2 { + color: #333; +} +.content ul { + list-style: none; + padding: 0; +} +.content ul li { + padding: 10px; + background: #f4f4f4; + margin-bottom: 10px; +} +.content ul li a { + color: #333; + text-decoration: none; + display: block; +} +footer { + background: #333; + color: #fff; + text-align: center; + padding: 10px; + margin-top: 20px; +} diff --git a/infrastructure/nginx/html/home/help.html b/infrastructure/nginx/html/home/help.html deleted file mode 100644 index bb19e01ee..000000000 --- a/infrastructure/nginx/html/home/help.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Build Tools for VMware Aria - - - - - - - - - - -
- Home - Help -
-
-
-
- -
- - -
-
- - diff --git a/infrastructure/nginx/html/home/images/artifactory.png b/infrastructure/nginx/html/home/images/artifactory.png deleted file mode 100755 index e34383f4d3269e419d00fc93d3f7e88f9f74adb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8420 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

&W$53$0c4KJprItsLdDhZtp`_&) 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 Y0YqqsUoC7--T(jq07*qoM6N<$f@|~qKL7v# diff --git a/infrastructure/nginx/html/home/images/binding_light/binding_light.png b/infrastructure/nginx/html/home/images/binding_light/binding_light.png deleted file mode 100755 index b1d977a0ea8c34fb52a9911ce841ed73f74e397b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21447 zcmV(oK=HqcP)BGar!NI}n>+8b8!s_bkzrVk`ySu)=zP-J@yu7^Z?CiR_y1BWzx3{;r zxVY}_?zXnJ?d|Qfw6wLgwXw0Wv$M0PZ`1Su08-0IL_t(|UM={?(xz$BG6>@CmsYpd z>QS$bh|H|2PjvU3|8b4|(__X4*ue$^b#+=jd-sAx@1>)(vGRcnZkvB3-Rl5NqJLm_ zfle?2@)wQ4c#ZzO3L*7?&UHgNJ1BIzN`gDpG}4x+miit7E09M%+-A*o+qoirtGG&t zHK9*J)&Oe=bD=X@pJ{-usJ>rlo8D7-_gy_vZ9+=Dv4o<+BN6hj!wo;rPTW&at&}Lp!k&KMG5a z*goacD#0Q+*E*i5je2d;wct>QH~w56%dbkQ+$bEXQlp>RZBgbN({N9X@Lzv96$yqV z*9n{aKr25aDzj-qCBma&=I~!(?rj;EHMwQ8n)3}o*LCMHTeOza=7sJK^WT`+VAbH! z53`M|Z^pCMs|kti;@S9quo^WT2zw!^VY(b)i9!Qi!JP0aQSWVHuLyL%n)EdTDk0Th zQClxn!_s67?dU4l>kN9YsyPQv1 z>bJIE*85Z5Kc?z7h9R0!jB0s}Wr*Dw&3LoZ;Kt+U)_7?-{#!S#Rf`*>NN1ZCYebw} z`_hf{{piPAQ7aE^KPt$1#alVfd5rjw=WtJt(~6=&y)Q#GP7cW$hu-MgV?kvtfBTCJ z39P+RuMLw-KCshkRq6_Ds2|X`2XCOp7{gWb(7KowVFt%!Y(=pvn)E03OnRM5s&!Xq zaO#V-iH=+|=Q#V#>?*ix@oJ+1baa3=B6D)jk(uvMTncT1E)Yhm31JCN^ZST^$?nkZ zqeIr+0o0hAY`S8`$HnZ$Tsz!xIT(sSy0g-3iIxP))M@82sK9QsZN5{u!7U0gLJ5r>-I}Z> z{U%WBtPXSy+BlDYaregKL1#Zl^=MxHjMTRJTyRLfjnpd>r}_73mS~jVf8K^kkrFM- zJxY#h=+zYu`lYn`EKzbVc8pd0fEq1)YPtfRTeoG8elGpiwR?erR0w2cmk92Ijz zZ#1dxaS!1GY39(B_p1)lB>;b})PWC_l-!`bHKnJ@G1jsVCPnv-j5}H5^T0X43fy9X za=M^Wcw7a)z3$1cs_IC8o678=p&U{f0Tiw7E)b7I6=vtWYuFoCD>ajcRGR#=zk>{q z2F8#$-*q}Z- zQ`xq0>h)AdCDZ>-H;81l*k+7li;okn6nSN(eqNEz6Qc@an_f5HsBkp1TKJ~CoR6t< z@*mXz4v%HCA9#(kN}txbIsWPoZR5o+b5$xUz1-oy$02Sj*k zy!sVnts522P7kX`t!u)dD`oWEFb52s-3>4LQP>{LiRuF>*-P!H=4HV1FjcE}EMaiu ziff3-lzs=`mC0sI-+=XD@yS0z)IZsk2t4n8(DX>A`>|Tr5uU#4UhkbnbR4>OHCNC4 zqsZ$pD+?1I4U$cWRi!T%;Xzuwb6hKUrvLya7#I3EsPY^wNC)K-n1$JpX)~duPp)VG zm@FQ1btYr3FM%QdR94Rh;_4D~d>~+My}eGXA>kQXv|U19!BL52PUHryFUBYB8D^aq zedX49-QjrhS=Y^z*x}|KK{xE!xKGx7sz;9!`V+iCDLTI0ck7QoBu}V^xhb9|J#?l$ z&4)sF?om=yk3ULxpZF8`=yrJ+r66ynZK_U@Ix!AONw+9kC)|3-zuwQ@MirDw&w<*t zZ-zAV__Ja;^w{UV^W&fQ*cWLK|5eKbQTwYmLl-{J(44$Pd#v~vyEgI~UGr^}GBNH^ z-hpzG)_%C?Y4xHw5om;VFvI(udTML^zaGMR_D1F1TR)i^E(k1p{}zbIie+t^K6AFL zsy!Ds)ViOq!EerS>`YhvM1B83rJm+1W!ISDv5QdOBhz9ZXL(-rey?upy=g_Qx<}nA~?M z+w}5*42=(y5)Ik{)y?^A`KS#i|7L8i>>a(J9egwD_HM^zUxu}J-!7~E)VM|%7!W-N#Dl>7@qu%TSCYV8Is^_SK>#3^>+cerv zYrNpASnWVKH4?PK4jSa1wA13u5OC+U+R7B>DE@F9@A>%=- zRf7y^n)K0{xVYn>R_%w>r-Dcx6{#1+QLn9ieWq8`jbgdcxH_f0D4G`6wDfk)=ZnVp zPp@3ta~nex++O;&)UC|7k*28DsXD(?+fX}b)sjS@m#7VM|37*K3sts0=W zO0w_2NHNIk8-g)tV3Q6L3b9)su$q<0#9ryNxip%=Z&u9CJsNsy=r0Q4Zx|w|z{?dP z99MN?H>w}vwFT~$FS^u@^iwJAFXMWb+*RL7cpA`tkTiB0?8gW93g44e zFC(KHzjaiPrX%_N&!hiR14h|ZUxrgpg4ocp1Zh~Q)U-i0^bsFXFtj8CO^sP&=pMT5 z!(W0!wqq#mZ98N5kJv?V+xqixa2AH71GAS7{znU2UD`1vqqh|qWF^1_wAxlkV(iS+ zXpr4+9@>=&R-5-%U2>@xu1rDn(7hW-V=xQh!DviS9k+n7B#aCiJ*vL?+im!AOO0xq zV`8HDcM4>9-BUs>wKpM)wb`>+Q+K(eyVV>47PV>E_5#?&Q9lTx9c7Me33Su{{9Iox zD$Z_wFG+JdGYqRjm|2zD=%6g9s-wNABDom$J|JxGm(-5udW4bG@^=ztO+wgdHL7`%OHJAg45hzu zzhD)-#NGxg({otwzttSaY85NLIG*@hUFtJL@lj}8>70`EceT!{rE~PFY<+yRpJ*F@ zMlVCvw5ECFx5i9OkkK@P{`ag#dK$c?FQImkMOKuPURB z*bU)%7!CT8cu{Z10@V7(*mbQyiEzNw{3TGTQj*l~E{=OAr2bXTR}~j1;ZE%LS~mmr zqiz)9jfRHWlT_nBCY=AS#}y(v#<8E~^H*v6T}f)!TGTv=R+2x}eeE7YTMvg*gK5`C zY@rlHQS*`eh_(4AKEfb426`_0OZj2dYYdB`MnRM`5}FA4O)|Pk>2^eO%LtXuy0ujA z==K*hHM$4V?~XOowo-q>4+!#vM4F*+CimO_u z+g=vKH>3_w)EQSbKHLf7=+Wt^11fufS<@0GSS=as&9Nt)Lh}F-A~WUGI?~yy;5Lo# zN5M8P$WSxgJ3IXlQ*N12+i2gJFuM2Z4#~Lw8v;FdwA`z?v$0<4#kF^UFZEtB(|CDi zzovo7Dg)9*5CXh%-mo1FWWqvB|D?$wg-XH>@JX|+pQ@WV+o;n}s+UfNAQ$ebJ|7&+ zvzhncs`280qyVn6^3LFGh5FU0wp$~eOKBRbZs;SahMQP*YLQ2Sw%25z9$`e(lXixGzSUIYzv#Rt~7PQUW!wnsVEt zKj+&kccMk0Iv!uu`5neK4GPU-j@77@hJF)OMM3-F<57XkN1f>=f%QT}eBFRtJLUL7Q1sYR z`9;BO`Qt%bZ5Oy1?@J*jK4;Xxr}jSN_&yg#=TVV9nS*&KLng3*9nXu~6D$BPkI*>dvzk&E!bkpPr0#Oz`I;cNNsne>ck6^)8|kSdCi=#EHoGb)<+*S#OzA+<wmt9!ns6uRwis)v#Z23ytx2Q&nyns5NEciBN2=;e?I~&BX2VuT7>BC^n&AFe zZvvW~hHe);e3cKFJMkpIo$%wCao zDJ*a%IN6LfRynrDeK2dFbu$C;Q72OdRFB>LNdSe_bRg4eSgikLV_Tn*mbFsHbNV3Z zlUnAb+26+PRQFL;Dqct9)XPM1Z-2Z*h@zpzhjQvI$){D*e120u+UfOpi)Im0Lh+53 zMvoIqYgI$5D$?55s#np{vQlY^=52CQH0t1Kcuw)rO8q_f+Ze9i#^}|+k0u{YeMsG` z>DAZG_n>YbZtIgpMrUV}`0zH@dNm=}C7RmsuC(L1OjbCBh!!x}9gy)n#$XuS31z+~yIR&(vo8J%VYWBHBcz5YW%r*;V*gQE+Ri&&0 zx^^$@?W-6r)bH5z-f%@58gFaVI-?p4a>_lCH@@AS;d;g`5b&b#LLlyF}aF?mblx8ya*9#}JM+9RrVzzG7BO7^TRK`q7<@y>;mn zs29#R^C5ca&_{f?*RWu1`TP&s7VT0Ey@?IUNb)OuF3%yNkC%+w`Cn-7_-Zx7>W8d`pcH;}&!*RX8-BMz#_$?*EB3Z#S$Jw_RPXXDHJ#w%6n+}_ z9x`{ecRDGU{f@p8JaY@ba}vB8htn7sdsf*cegVo1lJ!5xjpsY17CMn>-j|)Nm?u*n zuxp)1cvqzlePx89n7cJi(kMo;PE|N-b~7ns7{2#;W-Auej)e%uEtq$|zsj@XhhjrT zw|>q~cY@7fF1wgm6Hj!)byt}Hx7!0`uUg)BMvjk!vMX}R?M<@y$uB*BrJ%UaU#8L4 zdEX#Gqsb`+Jq|tK-x$zXzTPvw4nI`0KTP$g&CQTT`K}9Qb82kWJ`TAu6z_LOwcskA z#=3iFYB>}qhu5B~#(*7-2?k^9|Gh#691U*6&%OJJavwyip_|%0e!5ZkoYLD+nzRQf= zJ+k>INn14DJcEwp!B%bM&SvZg+8w%p>9kMG@2Y}HB=n@psSOn{dgDCaOfF{boj2y6 zk*Zps;*vvsWsV-*#q!#66wjqknaseMTAVh>qT-{_aHl-SMuIef4N}v zU3LUuKTxSVZf_r|OI&nw77~RcfmlIfigK z{m3BJ2Z5+e594R^2CAWjP3P@L1*47Jk!sxZzH^c1PjT-JbmshxBp=Ms*NBihf0VqK zhhos&H6c}8D`zz2*PV*d5-bXJ+Ojo$A)@6^0qHQ7q*HnATqnO;?PuTaGs6iqz^|$@ zon&Am{c`(>Fw#ySdCMV)~<_{&;4zEw5yZvORc&8&24v zdD0p=#D?(Yn}SNCz1sj1bcWnuQ3@SC^y28}u7r>}j&6TBg zD@Jp(*NHG9Fu5*R@|a4$2rCeOE;KN8O-#oBy%R-O&!n4RbOk0uW{I)k9wP>P|O zp+x0XgN;_9s&(}WVanATlJCtMU7f4to`|Z&m3cOksY_=S*n-ZWE0-f$<<6Gdp6(5r zNa|&W8!devj%pGY7hc5Q?pULfp4wHbG5#5KD;)dW$QFO6SM$8Jq*OJiGRg7lc${bI z`=s75s{K#gTS=`-QE+x7<8Y6;y`{g`pu~tWH^E11*TEg5>&MbYs3xe$z0}=glrn!W z_*7``7$-gbJGH7pvLK@})w*t;>~#_k6T+=?9(W5I=`cD?R1XRjIA-pVI}SjSE;)N& zdGmKj;rD7kG<+~`$=hthC;=`KZ`G5Yq$n-XlFKJs1bxN0c2^Q@T>w zF%6eTgWX_OJrkur`Dx!N*8My3=-AlMCf$)aLuCys=TN)efH-wQ-vjrkH*b1ot??)5 z?p?24t#ytJa=juu`)x`IonKOVZ2rck(ijmc_%jvGbg(6KJ&qG1Je~d0)Wg5%qxlih zYNbw$nn<;Eyyam75ffEtBh)9!P$W{b6eU=v+`PTi2it2t`cgj;?8Dkeh4N~umhOe^)hGpE#@DotM>!g89ZmN?Pl{QtK<4q+9@ zK<(d`5_&cMj8IAqv8WN#7(W!rgmax=13#yqW_7Bk`??RSn}lO)`$3C99=;vDitp`E zeYa+9@}!bImcsGTK5K z{&ue(t%Jd)Q4(pWaEd^HnPx?AnfqO1)P#5|#B4#o)ZV|;|!Ph<5) z(-T{GA89af{X6Jhja0$Z>dE=q@9J(St#x8bzfe*ch6fSzd1(O8GLyXoz4Ljf42)G3 zX7h@+dUDXRT|+&O0rJ zfbv!XVd&i=T88x3`e-`cjQIS}k6%u8SbIHiWz5E){b~Fw4jAdvy`AvsZt31?VKGqCl@1)CfU+O-TL*U35ESPjfvb%DN~J`SRR+vhR}*iK|}EZ0x6ZA>?JQa^V*l7J4Rn zJgYT_@-$}w7=7UF-YHG0z7AA7>9(Fj@r_+Llqbz(p3xFHoR$k&8>twEb#HHIZeA(6w~(b)hm%HPB-QXRYWX)$$~3B|RyPA~uY3ElQ>0Gt zYq-`C>q*j5?80~k8H##AS`VU!CsiYC)L1xnjd2^y`p99|k*#-_xTLxM-uw>pCU<_2 zY$4QXAZ_>DSmdnl+kD?iLJ#Z{y2`t029R1I01pe_hZj3s5MyDk+jGOtqt0`UXk3Po ze%t(0%^SeI&U=FFwf4HDP}dk7YO2_(~*$c?ol&x)+}G~8h;Gz3SXHH9*Sz?u|! zzuShB2Ab`muPlSE6bqiV+iv}PE`7sZXWXqzH67dmn6fQ+Ev5O}HByv7gyV`KhGyuG z8{!x`l|=c^mDUNp7lrXa038WJgo=;la&f13Dh#s=$%R@H;j@hzxTCbcWo$(YoN zHcqd;w7`)|40;cJ{y zR0UnFg#GMdE&2Mo4FIl#4NMs|bEbxdKw;GIJ~b6MrF$|Dc=18*sVNmK3o)4>&`7k< zrJ>`~6rFldM_apRXvqAS13qetTs2ykYHKTNyiv{ugUN2jL%1#mYSxBKQ$IcNU3&@` z9AiV9YV!4DDZ$sC=kG*am16h&x_i-VYI|gtDsyC-u{Rs-gijP__GUpsErvNKRcl=b z1#K>V+Y>;F7Su{=M}!lldhU}si}4CJbhHFJxOsGVBKJPsaE&R<6dER?^zAY{e}>G! z#5ru+QTd%Wah6hO3X+B@j)92bb5yYMWLg;#HgbA;dpFN6eo}t09kXeEv=Cr<3Ep{uOS20qiZh7!vUH+F{we z5mz3{l(KoDYbT??VY8A6v>o{JI|P-#x!3{r?{9?T5Y(+uQFj+&1-RYoi-ZD0QiryT59+a$KG;4WLuW*^F_n&@csQR$7A|eYTjs4j~LTO z41McFd^kZ8EvkS7(j3G;|r3>Kf>D60!Up3izYm3*l2NqBw@DKGFWh0IT6$1 zI=0jp!(KNJh9OzJ1H>m=)5PX7`$_CN|9iF;iwfZiSpn`#PhELn*6{fZHb9Gi8ts>j zG^#l3^r+(;?QR!mg2tE$ft0Q;R42R+b02UY=#6LYi`49cZK*2xK2}u)R;XdZnCwoW zVM`T9C(efZ7LYIm0+$zvVI*oQ)Ye{m5^4Za#nyItgK^2U)mEd9i{UwsKkv>N!5Q^m z9X=JS1xJJuenr1b`!C`4cldQPth8BU9Y<2#LrLzN+z)gUmI)%I?cFGlCai59gxcP&2gR1h zeiQYG=cSGu*DNu}tCHIfTq4e^zgK|xovSo1<9pIQ!7DG?!lk&w`0|E3QhIO=AEqwM z6$YX}c(XxAdJA=}A!Z89=aBk(A8nnD8*sUxRVKY%H&-)oV`Gw;_6zqQ)lat6UOEvs zyVFc#NWr`Az28IXcWCfP+9yce@tzj;xbq0$8+0WT&0Bj&IKk z-iW^&Q{G@qb}c&6mD&yUx^cQZ?Pw8zF<8=wW)1-@`Z|@~mhb-4U6l=_7c`%lbCLi>hz5mQAVvA z4Dq$K7%ailFVye$X9%bUQoC_>P)vTC*MG8MUb%V}I)Jc2)wRpEeOUcY6Q#Pc%9GZZ z9#qq{@)ZcL`JG+YxG-~273d$`8is*XmB*!Ebmx{(-rrYnz{r8XI?vcpVO)_=z3bjEH zRKU-aI6a?t?LuW67)#aR62q)87IhREqI0 zCW~}-0k(_m9Q5i@7TdlvyIQ5L+v-0EbsbtApx@%5?NpITxKEp&fsNb2Y!@hQMGm^si}A?^GMZFfs1 z(MuDmj*!&C7dD2(>eT|8>f`f6PMG1WKKR~7nX^;V4l8Lf8b z0kNh|)Z7i@SW=9tS6QYu-gJHZn~o-^=wrL}ij~6Dl;s1%N~*17 z+}bveZ~1j(6|KZ{sMIw0Zk&>G@9cTIqzS9o<=3ZL-6*2&)$g{feG-8PefK&lT1Skp zYCL#oA8$uD9j<@X%lEzecbRUNIw1!i%B~X+LxSm)yZSGVoG&&~o36IUoU+*>dRRz zjemlgfCS$-FrcipHFX-^SGNZqU!)%OOkperuBZTGX`Ks&GB_BWCzEy7>M?FPjaXDQ z3f4&KpuVSnf7JhnDlZF(D#OC#4WerKsM<5dV~*{n{4ro@MK1>u* zOC?IjG2B`s1KPC`W#4YOIYKvOrO@`<+k|!TO6IkhW7GW^`B--~R?|dn)KkRK;-j~N zBx$e?khbev+#19-hy;|*{P6JJ!x^P&1arfaLmvH}Ek2TUTOOD$Z`I%`TOS5C*EbLu z`{qEk9}H*WmU6AFGMM@LReS1EBn=G((%%0{(dN2YP>3dzw*7fhWntyL*5NTdjSqS? zxU%_xH(b4vGZ#h1QE^)c#1j?xBIFWu59{8-59+H=4EuPcDwJt_uZmGhJ21tH>uMI* zLilimZ5Er^KceP9N!4aEtjJsV5wMjJV~MSrJtbPT)|-VQYbh_cF$5^Xr1ywmUG<{(9n)g|Rzb!78tGW|Z{Cfrw5d9XlTI-w8@v<_}FzPkZB&;UfD~ z4fbXCVD~;V8Av87MVK}G;y0Id1oirTwe(NYf9pG4v=9*V$z|EYSsU^=;qQZvsSY}| ztX=NJXx77FoU78x1*k%X5ynr^F#$hNT$#e7sXSr5!`!vh4AjE2DG(2X(6XU>no4Fk zaWmN@@HNq658(ON*AvFZ2S3pZF1DeE(`4HE0dL0&Ksxb-na`4fAsGRf#s@6d-`>Mu zME$hf7WuuWfA=TgPR<(o|!F940D~DV^f`PmGIu$=po$waw!ne|-BW&-JhL z_A80H;^1Susn4V$jr|oP^&c*-UZf0N5XFr^P1TmdCY8=t8I}}PT5et>x9vR0a};-5fi;A}y(!PYOL}sc zg&wHulZEbdquQq|#)7kQC?vzIEkPd4Wgqj!n^WL9VJPSrJtqLlm|1J})j9j#B5mF( znoF3QI@KA!9-bw|K!A^$wAZ4s>8;hz0<97wcT>_$HlIXwu9YS|KM(f+Rc|}r3$>tf z>^iw>G*7y_k7s3oN!x6SSPOb8WAtoRUOMZCJlDnyVb*y*k-oI=ODH_1s^d$?Swh>&rcqOS$4-AWKfUV8LR%gS#1vEsYw%L*>+IbYzXi)WJcEdjkIZ zS#+t+lD?Rv_Q0xaFO`UX2%09mRQWy3G1l@6N37b0r|&R+AU1A{X8Oc1c(sPM--j6Xeu4tYD`Vk zSyw9b+7+&E6&w9f$$R6J&-|eF2lJPXJu~!}jn=8TG5{$=97I312mZ~-TlevWs@9Dq zqON1&@R0OiHp@m2gV6$}8qj4`s`KEY4$2#@H7Un4hJacIhyqBjC?sqz3dNmW`V18 z`pA0I%grzXrs&AgHyi)uf03>-e&;TL*5W+5A+Y~4CtUZXr^1!j3drzp4k2*F$Ha%2 z?*np#@4i+s9E)3eTKjUoL2kIcv4~eP+*YTiu#Ti|PbE-OI26W44|jatY#h<`Xcdd% zc8yI#!(eVF(6-mDuNF1OCa4cgr;Q4t(ueZD{_JmJmv1Yv zlLgB!w@&(0Sj8y0$EHToY#-6?0r;ls3s$}=k4mLf&)YfMfsBONh5Zfasx5X8d)YG+ zY1|T!-AVRtbR@S^dHLeYQ$36^wUBi%Pfet)(sl02pR16eg}eOhMh}oXvDL{gJf?Sw z$y`YSKSSkHQC()Y@6x%Xbf9{AVGfXJ*WM2|Y7|Y8*9o`puV;&{ zt(G(Nv6H5f)}KvQw}%o;lR105+D=9DIr=!{UaDz99QB6`vV^!)YVyn9qU4gn#s9e5 zTZs$H%FUABWIvT_qE(9@SF2XUA*ef!0qx&>994hjL(X1hdE4GDJt;f2Rvnkzb~T2# zMt_UN`!-Y$&D?LvbU`i{5}{0ARii^)ldz{*OHI4h6T{cnlzC?UE_EHW@cmiuQZILp zH_;q^o~DG5W2$GE^~*B_aeN1&wLT$o*k-3HE2bNXbJ9wqkU62dFWjn*2`vGMJ|F2~ zoK1OEF{auZoWWETor$QI#z9zMUbs&t*o z4fp&sQ`M3FdGlX7c?Gx}I`9|tYV1WUVBGD^>WU~Ph8KnX>2w4EQ19g{A@V>TL#bxw zc;7((G?lIp-s<_wze~O0IV&h@_LhkpMaa}$$FMY=>d{~R-qxLPRQC8&NqgO+i+%lZ ztIpVsQgzYBDT^v`wEuJGLCkQkTcu8M{REk=R+Zu7`g}cNgE$2B%N!@)&wFehGO`-G z{@~c`sf8Nmd72p7F zY^W+4IB-Urko?v?;Y(6RUmRBdVC^QYLKptl42S4zS8ap&qWgSmk}WGXc-mXC1{9qG z_bTb#>cv>3ES^)n2`^R~mEIr8Etk*kpIALA!rQFLqpNJ5=Mi_9M;olI(Bzb1K2xco zM*^F)Qqm;}=-I#n^|Y}ed?%Q&4Hmmi?Ugks!q?1_QD^tZS=_5g3|;<^uZ?~f8;0B# zh0O{qI}>-;rCp#)?pq5FyAV~V)R<61YUps6ht>u!J)4J@dts8Bze2GwWH2qnZ176j z5Jq2l4sCKa*qf`ZnT1(nRrD=ZMms8sLQ1wpc>H7kXTTw7Z~7d%*!e|W>xib&f8D%l zv|6cAp&xmevKq?qfqv=K4Wrnbf{gQUR;ocO^*9t+NFOrd|81@wz3B&VQJ zw5naMI1-ha2g|7W(~X9mS6nddA5Fc%L)K|EGaDVw*LM{`AIF0e;)v+#kim&V^~x(5T;cZ3}1{jlnb_!#6Bg@DPKlRc_21KtxW-n(Peu24+6TfHGgdu5edxIh7s3w#aB@n7vNSExhUs z$V!@TIsOjpad|xS9)AKV`vdgO0s7G}IRpoyMEeCF?*OkYs3cRUXO&>*;nWr}C_ffz z;_j#f704ikS_gqkc)bW%s;ZzxW_K+}fH+b@MX2pMNgVUhf z$|&YDOyrWIGwOl?6j5XCU9t#!dngvnpU>G11eQ|5IkZgyh*i)ytesoSpgInu35e$n zncuDn0PX-VAr9@V#IY^2YXd;fnb{x zTCtg+jgGsS1+a=j1!uqMiR7Gv=G+BYzV}FRf353h=n#&b?x1>xL0k0UO zPRt*L8MCP8le(Ee{}Bd8Nz;_cnm=u|CBF?eFSv66nQTPLw7%5!ylpVdx-f0TCYE4MJy|Lr^=M zFci%5n9c1LGrioe*aJX#owYyf^SZ?CVEs#AT=|+N?RaYa8(jo?6K|Y1;+|0S3@nE! z`($^(WVK-FK@-!If#oly5gPCr903Iz7r-#l?G?pmjtI6lMi5VX31?WyAx(fyAbz3vI%~yn^NkN1HY^Yr8s9+MQmDa75ZZgc z*Bk71ijiMr9-z~?On#?8x;s&3{=IYQ-G!qa2m-83+GD6Qp)j>F!QQ&{&jf11n5Ug) zcrhigb3aHH4HA0?t9nLvfB#()_m2#3&7*=nljA4)emJCSyqh`7T#+Ca%+^4FX3TCY zpx$3D`Z$2I639z>e7laWK~v(@*it=HlF(UdC&GFAiD0nGJdihy&5L2t^kt3)ss9k# zjN}8d!3_^@GIgW)jy_iqW02eX5peSdFwB>*R8;8bx@9aG!O1EnL{_!6BkG*4RSf%z z;?fqq^-2|j>mtH|;%dEhD|9qQ9%;~2a&F-q5|S%C5o0s$A@n?xM>QAPl2(57M1b8Q z`2o8LtSqRi=Uu^7jHG}Li*C%4jb_le=a{5vc#_n|Wm@>GbQak5tJBBr=c(5#oN=9J zyYER?xrTKd5iIk5alxWCooQzNjUZIkerg9umsJa$2m@PSLyQJnIgq>rINvyHLF1_6 zYi=`c-lTlHk-B?}K)Ip5ZB*RV*xLfF{g87-g>KS{c=>kTKtMW&z%#R0OAygq_29PO zvk1!J11u?lZh(?tH+MEPSa7T4`N4Ti%Jvh7U)XK}Dcf<2{b2*r6frzFof1rUpxUeYdL-idg$4A3ZQqg

M}SZV66>JG24HJd3uMmy6hk3l3sVE zsD+?f>IlfwY%8Myg`c$Mwby0=n?+GO9N)efpp!iEEnnEq4SD1Z*9S+$gWAM+zs@P@ zC2&THwtbfIwG7V?)jTG!)JFS@90JBunw7RrHny~^eRvy`_+;xHv17@DB19pZ@-Zou zJO))`rCY5m?ZsqVCNgtKb>J0>X56!NDU1R9xXb6o}ebHG0R z`tAICblseG`_-8+H4x&9?j-wnXn-vXgL3OX0Ic*SMVoa|CjQe*zSQ6-$kF}OJR$?;S>!CMfKE1-J>0CtU+mzVbfA5_xzqaLW# z&;dz@xtXNVz9}}a`vz|rzi`C7p)NMjs1imFp1blGzExPQW!A4lmV6`R>x zAdR&yelzJvl|$d8;%JA|>bq7jGA`9h_&Don2l%F7aL|(LS(B9cBuuf^dWXw5`NN%C9EovUy%)OAP;P^S;7m-3sb7S-7SP5e`c`=HhswU&5;J{NO> z`GgSWzxMC)(-$xrdQBus55!_hK*f&grUL6`f1J9av+@}t!`$2Vz}7tJb`f+cY@W7I zYl#x|11+1`+s`!IAiWB~x#EMI{Wd>*qHgvW{rId*+_n7j)sKwJp7T2GK(2%lx08^n zchlNgGe0);06WJ^6-F;^P68At`w<${_OLW57B6hE=64=EzT2}@1n*m0t+plL>fq=o zH!Fg)rd5n>e5!`#;L}YJfEh!Q{E|84R}IUvlhGkJmk>ehC?C$umN;v6#M`SVBKq(h z)>e_s&WHlx==jqrw^+UdgKn2DjPy@2JFhil$TZ#r!)671O(pi!4D^R@i-@m zE^mVDH7dmb=%Y(dfs{e+m!wUK(XoWvQJ}n%2WlWMaWR*{0|2og?cl)!!r`h|tz7Ny zM>BYxb&y($$qq$!;rb#j-STz@JLs=RBr{~78MAI`b^#o+XKRHncT1V5rvfDX>eOja z#J;&{WnB~1^}$Z3ZFK*~ONR!V4!-=NGrFJ4GwGw5ymIDk>#dy~_0_uiFt2?Fg=m%% zY|fw4o1ozyQ6LRP=Qegi*l9gUL+LnM&Z`S^^|Iyt=LKwJ6TTKC*XrGrysJxQ3U#`p~~U zt#b@SU9uUK+9k!6&7lseao`B{(o?#4U8X7-oLAS0TECYA!odssX<+tfr=RqEaq=6T zUbFALy?uEH?oEFwT(nDrYUsnR>79h$ifP+LzoZ4Py= zm+yY?=Yc?xcKOP-brj577sd<<#7Lm-eq{cvsouQ>S?62Lp8Rcpfzi{-#sqyP-|4~D|Ul29Qw9!pX ziHo=>ic1At*XL}RVw;w>`dkpLb=yH2zG?iYrh3(Ok{u{*XzaiBvljBv8Z zYjR9`C0xMw{Z*&2_k~fWf!S4PdZb^^c|9eUIeyJZ_}5YnIFJ{;PT>VWMe z46vrmEkRuL=~_5Fyg-h&$Cq1djXcXuuw(3iTAzA1peE4;@w6Kkkwm|3K&sNdKF1~V z*`+S4;F|K;4jF*J`=ooD9q!Q_{J3s*D(f$zj;c*0a&m+Sa3E<>=tP>~lk;3skf4Z$-vKi=N@`;8P%48IEJ zO-%VF7Chef0K6*p_cLU={}C()Z(j*!A^cXo^YhU*)UUZj|9DmGw;lWWs2IiX_XM6r zKc5xD{;RNl;Q=`B#9v?cSa@*_Xp6rq=oi-R*ZuRQm<5^>Dh1_)0Q3Pr9L7^#@E;^O zCGw77Kh0)H(}|8$;XjU_D?PjLP4LKG$<4@MueBMX3$s_`q%ryu!*)!H+T@ULykFQ4 z5WD|0KcF7BdvV6;b<&p>wyR?Du3JKXz@$&D?4tK8GJp2>h@f8fee`S{`0K!>99H52 zvGf+2C|s^=bG0C1@7i+xg{?=qARWc_4(GbqE`z};_~(F8e^DA*6W3@<*IRg}uEP5s c2U^rmK1;>l_!);*%0Hjc4B}Biv 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 Y!6n}(MEj)!kA`9JboFyt=akR{09@h%-~a#s diff --git a/infrastructure/nginx/html/home/images/help.png b/infrastructure/nginx/html/home/images/help.png deleted file mode 100755 index f98090337fa2d0ba311078e7847920b9293edc1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3330 zcmV+d4gKBi}jbaBAyGAS^ zpeV7^f`CzqpcH+S2R!)p{zmWfl{<6i7E0XAIdeFVci+r6zdK+5W*qc;v(y}|F=<_c zi?RyS=}=l6tv$Yy{c6rlbzk^8y*am&r{gpJkMHpup8qi|mi->%{NDgr zP=25GrtG9?J0?-@rQLi$GTYx>+LevBHzkIR-_+FfVgXp?a?-)e`{*B=$56NVooxY) z*D*fk!F-taHw|D>MImFg;3Zv~6*OMQyqLeZvgo%3;3MZl3O%w+ky~%H3UK}%bgVwQ zoXVV!+BSdFrm*a2L*~VQWByH-b1$+T)f}y{(apxkJVwl= zPZhHV>uE6nVHSK8{(-bS1FP9Bb7W-l%-vI@<>rWpfr{Bx(EI=byy0O3q=*`|?n6q; zOKla;Ky8>GbjXSpvmiQT*;Z!ffqf!>3U3oWDw?a_rO*>5#nxD#8FqHaC=3~y*Kfr; zOb)fhmU<_J-e1{6N+udrEDk+WMMm2qQc_r6V0oc)hiD$) zU>HDzq(o5_m;~C|wvpU!ry_vsrGu?zBh$myzHdup1=?9;;s6J|P*?zfi06rjhn=U@ z?myT_N!MSd7q0!mr>EZTN@b7FXg(ixCejjsNGutWxAnz}?5xq0!y=Cb3gtm%u^fO1gNuAy zxJSH}b$40-faporU!tOifwE-Hu@#m8+>y9d8ob)Ndvqne2i?vcuL&a7CGwraj<3=O z5Hd-W!+?V>GB7KgDU@=f6BopX6-RuYk3MT{2Oj?Upds*7T5jJNrwQVWT~mbFKc4yI z0T9_Nk>ZfCiz=QZaY0PE@ha80@;uKbWSp@CAYy@X;PnikMQbPiQk*5+g}_G$AX0+7 zA0y5t+e9GV%o(FR(d02`d7g(}M^wn&=r*+TWI)6^MNR`3K=_Fwb#63BQ1K+017eV( zRL**y+j?%3DFBaL{XvIb{dXzwAn0rAs-<4w&74s}0R6#J8*(hX z`KRre90(xnAdyFqQE;0*c=6`zK5ws}B#KLXS>=I+ksE6GUb6}4t!0cMMrPV{}a>RV>b+Y79(^E z=f_S=&;5)t@+K-`WvdW8wZZ1)&5x2i9{@$(2a?#HAVcLT?pw{dKUa~Fp+dG%`!~A> z*jlzRXWw+j+6+9u`QexITuD(wL|oP@aiD0C_b|fi9>bu?P1m!B>H?(KPo)OYu+^{F z3gZ6c8G$>`BzS13fZ*H2U-$xuz$ouwlvDUbb8B-HW%8P35Kk%~4qsyrh!Y|^(%G~i zKkz!329H@B%DQ>;L3H>4$P<`wYqU%TD1nrloo(5PRzU=K=Y9^dZRdF>w|E9M@-yBs z0f&E0vbW0S1ud&;(kU$?xK-Jif#xYss6M^Y&ca#mAg-@T;eS zg?3ki`w8V1EM$?EKycb|{%;REYq2fBoDkWG&ZeKXUTdSQTV%?3=VZ75qCQW?a7Ba# zwpXPyg`73FsMd9t>gr3_-?Yp=wzIPq+XBq-8#=P@-&@|@a%nGEbWmt-YXHJ4u#)|P z9GMt3m|_#!*#@E(+j@hi_Q_i(=tgU7+ks|epiEnFXb~Hy@6t}vAd1+T$F}4Az*GBo z=Qp>E3^b~RW!jb8OFmkxj{;&`qInQycb<2Dd%@y`w__ z+s0oBqS4_Ur4$Zcq?v|wOM4uqWr!qm5pY^wWtn5TB@U%c2Y9P#Ib?2!~WD^T36VOogX|*;+ubsKG zhYOxJh(|BCX9`9JywJllZ2?cOHU?=`-Rdl88BtQ(3X7c0-A7Z81?vK+f;b>VKU+6@ zXM4JM>kV>N->@9Mn!f8xex<5nrRY{?p@9`dhN;y`;cHAHA&`b)6>$?`s9T z#AosnNq;LKvQl5c?u$4PDpz2MN=(twh7l2i*zu{>1P|ZM-Sr&23l>4d$)u6%2HR7i z`m}O%x$w=eKea}hxXjYaG)BGw@?-++VO0YuI@kr>@`BKOPg=@K|U z{%^L)JR<=JurmrQMGf@#ThU!Orv zRp{0`ON^77GILFDbknuaP`nJ~ff&NIW#H*-b?R#jA2=z@n_4zHlxFn};H z7sY)eb;O@16RYbVQ|#>sntOT}O+V3(W*i$xgEw>$f;VZ)I0`wuM0n6!kDUukw+6^O znJWMm$IY?tyfB(ev6E!#m?4lw+PO(_x9Z(4VZK4_anE)DQj>Z+F+S}tnicroXZ9}U zB2WQyma*>g4uEq!}rF>5(VE92Uq-a z2+a*3ay*z<_9i2&$4V`YiJObc4V~=(kT_)y`H0ANa{!2OF+S!oa#0y%o*A~a1fZ%| zWVEx^aRpJ((hPuzbYom2bYOQv+qzog?ksOP1A9r&*fx6>7(r6AN5MoL#X$%jx9aU} z-VGMJk;}-WE=*k7jnyZL0=#BAjA&U8qs0JJeP=k{W=~%>ckjFWZQ6fnm!+D)W(DxM zf+=J1v*uuHGaYn*9;;W}wHSbED|!5Yg~9E*FWQU-OP-!hi3d~gSsB$2nOdl?58yj|_aAx^LBD=QcJbGWuh^sSpVc4Fms|4W#;3*MuW1wGuNE+E%dYco zhGRHCZX{6%d2blLWL0=x?hlf@o-}@Zd3!<8w0{xm`*IK)mtoYKtH1kkGVIzp zrS;>D>hDn)$-#T`>_Otry&?V5S^Y1G+*bd$$(_QQ53Alw^Rk#`JZTgn(@_ioXm9I# z%fBaoNF*l&Khjh0gIbOELc`zhd45d%dH`w}yc#I#wI@9HTpHN#v|WBIV)&f&Pv`#G zl$ROAMnOUW%r(SRWzh>qy{uvt>GVgS~@e98lU;j}GI5KD2^V13lyWVmqIyz3E zSvC83+CKh9dfbk^_mRr<67u`%_*;Dt2S+P{7^pf8pQZDGeEaR{i^Xdb6;SlXh(9^U z=`ULROqn_XUK-JtqiH7}hL4xW8tv~#n6RPXYyV^VY8R4GmWu=A`i@^&z3tC}t!6as ze<#yQ!~CMK8H>*$t#Q2{7(M>3C|Fh<M zBrDD6ne$S?$=6K1O*}(A?smjphhm}xG;kkI98Vn*8GWE@89W=nlB~y|C%oDz9a?1Q zr?e;J?l6Tw_qg>O=UpG2)%;Mx1vk63rf128FY@G#6Kvn`Gk5Iz%atv#c#tousrkQP z6qqfQBWC62?zRX|&xjAYGaAimd_3sP1pOTzA__qI;*D|bGuxdw+?Oc)7q{E+g$=us zeL@HQ_ysP1cQFt~ZD4VKH}ZE}EFeqEavKMy<1Pm{@0)yqejR?lx6Ed1y0FB};W3Fz zJiL?ofD1|K;kd`$N+rX<#U^`wHGWHlG|ESS|_^Xgc#DJP>l zP&f9QI)^Mf86IH-$<;qGHGi`&X$)r4F$_nrj)e-G-p_xe;4Svp@QuE_@Rm?eXxrUu z^B=dD!2R{HZN(4z@Cq8G`Fj+!u(TBa2zx9d+c3h$>cni7@5k)qv$3K59+WlN`yz2>s%ckl5qdwN6>^bQ9_NJzXdJ^RLSv>5T2 z-vse5`ySqYg2hXi+`M@j(J8}JdZkwCMN5|Hu5raF-jfW2D>%a^wg;bgDCYwygXq}B zN{pGAdh(77Swi%b=$p=7ppP`lqwGJapqF;_c`K2$e#LP;b<0m}ug*0hI2$DSdlUI# z6vPVx%NdDro{2u(#r#*VJtLES{zAYF3`F9Tx=2Lo{k&&(2$BJCA&)5 zm6#R}sXavdGS1aC5ozntLLWUVC=39Lw9D;#4)ZjtG^q?{rA6f{qX7YWnC6!${h^k} z!&diaUOf~}4tyWIzPm<0DSn*yUYGawrgaD1VdQdw$V5S4ckk=WN`;#|C!^_0uT5C? z!it)(^mNUZDxZqX3jGQH*ps`U#m(Yn^)?|k;I8RE`^(< zYbdwXaAL+ENbgI^aPgX^36CH*-f=vXVkSWQ`;w_L5v@6t?Y%NeEcBjVo_yosw$L7Z z2q99g3>2F*6)zIpa1@{7a0>eb;ASZPg+QUR;Q~ z_Jrx5cSgUHe1K_)1CwOUXdm3w;);7JRz$L0Sg`9Cp3U|>ge+c9?3r5C@dXX5lr-WAg^RTS+$7ntt zre&&LMn4B6Jan;9hR)mP&JF78lWGHTaUWg1rV^nCzjX}76Ba8#IAi* zf7)ol@Y}mZ5%^7_;1f1T`{bP#CBS8%PT<~vsm-GJzeE#eY$#IOrzuN#)6G*u1H-;g zwEBjAadDg1Og%xmCcT(5Z#?#kn}7T3<$4-x=+0O=7P-pzW1jeB)j$+f3h8-eaw@B+ zh&&JSCYtfvCzTqvG#%59RV5C$JU`fY9a;H45%BCp9m6S~P9p6kO_TSH%CY-V`X|jO zt;e*9`A%xf)6|~Nu>)YYzq^gSX>ngYy5F2;OOz&r(bemTQ+^=aTx?I-nyh0>aN5O} zITV!zMiZ1f$BX3>xi%}eB^?Tjb<6!Qh7Nsr|K8}hY!hIM=MUuWW`Ls0k;M8EpJr9fF?D`+h~?xh#1c3j zyZZRk@bBS-9c|jAdplNUm4*MF8p)^K!Rr?W+h^N`ZLm|iNnk-q zkKvRVCarInH0h1RGCL&)ag($+-94+YIDC8)?6DAxjjZ4%u>yq_gJDNyqFAA`9H{`H zH1smHME@G+zDMgv`gZ4^A(xP4BUeQs8k`p`u`<=Y9Ie2d=O5PrEs%|D*D=eui`+rJ zm5bhRQZD2k5U<&y)DffJc<;)e;2-Zpqc7Xf^@s9CFN9D9Z*#{!XRu@bc|~WI%h*a* z>(k1lVu)XJly1CXo5L7^T}y;u`5O^vC8SM=;7oG~7j6M+(W~qqGR-PQ%?V~ffJM$E zo%r?K@_qfq!Qs3dd(M8yDuD=TZpkjy%1eMg^O4GMk^X%m6s9s(Ld`?q-v%!z&M{9I zs^~aM71{gvMhe1JzQKu8@=-}ibGxx^+JoprA^o@h&kg?L`#r-)f?-B>XwFsY|I8@= zPxV1t=P#>~!UL^ZM$MSrK z+){EjsjL@Es%tP%SVjeI$&mxtNmL=w(gcZ(r5*V;E2N|ndu-duFL9(NrSx3OKIJmJ zj7ThV_gN2g>wGP7pi;^fI-VD@8F(e*2}H26bs-rRue^#)9S__p>9Gq?_LoqWx;5QA z2&Du6i>G)`{en{25y&)=$W7uh+rc)QgqY~qhr*$U{$x~Ex&&HfsX-Mu^~Ei~G|H`*Sv-xSW#PIvwQ@<-)clQ0jYjfBbY5(Ct zW%RnB1v2|eh@E{ux*gU4!W5Iqz4vxfmczi&)9#ZUsvZg*fJKVvKMO#@T;U1g11_#X zTTX!x_fu)TWAE?~lrA_NGdrWL+6`iE@X)gVEcvbC5+{ygKrdK;oT4qph{jQ7;#N{# z_!oYc?}`Ptw;XhAUmSM&vJK#YaX=Y`X~h?UM%){(i}p|ynCsM}pJKQV0(B09n*_CH zsG9MLeMGHsvI&OBBE zJ2Tl_b_Hw{NmlJ{Awh@l{^GwMDukzTzI;gLj*rEO&seqw39l_F1jDoEpvnx3^kmmr z!w(1?4b`~t0z(6q{7$0Nm4CY31P_&{{A?1XubT-qh6aq65*6E9X5u`c@x|Uvmukq$ zpjg3G!Q?%lk@bjtTCeaXqtyBn0(C$_M!LWH0L+0@P>+tNK4Zpy*C%sJj?M`dM3 z{=I>0BopCt)g4$6E}yP?byoNzi0)EI2oup|d)+PM<6N-OOn|0V|B>YTDDL1lo{uP{ zptDrLr&Tiv6?kyK2w~GR@j2m)6}T(-KK&=R_2+JF)V!(U1w7iKHGU6d20dn|+vdj! zGH3yY_J$6BZUDUZlg71`nLm2+>=oZU!b*4HSH zubEao!Ps6Ja0X!Od;%DT%Jgmu2gIl z*y|`~2~MgNZG7g#{B`l3T6gTMDpIi6YaBM7o5!Q#c8L@Hk zPV7#)1ZSzor5U-cwf(}gbNr_jW_X&?eXIS__s>`^JWmqmq25N;?1vBH6-VP z-y9t5JAY%NTy09NY`$`)z#=9HBp3B|CyNgKd_Z#gabb!*l`}au1zh?5SN;L!yrbrh zRF3kZ=F3E8&X8VYI<#tK0ac$dH^+Iy%)Ss%x3S9~?aw@Y3nP0Ta)`1-_2uyo{M;N% zegQeZmWNfgOJq>|Qv&L2Uh2od{kl5VhUa!Z4)4FgdC%#kM!?rnr$yF$`cj_DO< z3rvg%eT)MFxPn+z*O7`@itxnxFxh5!;(o?z>rJhaIzoow=+Tn`h(s(rG1o8d{_Ngt zKmWd2w?h>Y&-T6>$#eHpCR~yx|6k^(RjF`J+0OfHr-gYQ5x*TMnd$1qnP17>ff9OF zJOPLqF5{>2I^W&lp;rD5@-%$31ga}Y|_$bi${Itby7 z*yloWz5uM0Y~VRZsrpo`<^np>9L7`$Rc5U8%t&c|Kw9@HOP&~MpbNlSaBEtff9Pyq zs*j?#EXs;eU`mYr%>ev_-BU!gz^2LXh+zqQTEx^6${7@BcfMQ0DGp1@OZ+0ICrxws#GJqGFHrF3 zB{Cu4=dq^2jOqL=g(sx5I4Z#xI#Yz*dh|3ggY^J|xXN))q;LYPOnUM-7Cpfc3p6h8VZ;Bi(20b&_Q0kS}n>%b+@H$!kwo(#> zta80F8R`qhM|c2vO`VkcT90hFu@pxZFl#S9UDa)k4!h6qVHT;=Ue9eePJV6rVrxdk zgj)zR{Lfg}PHIbywiFg%#S3eiF$$ON4CSJ1(s{*Nj4LR3(C~yA?5Xl&?$S%ef*EcL zzD7xK-kDJmhCHOs*B+pNMfY!IbaPF4limyepo+GpHUH+?VnTB%EM!d9Rkfe@KOaNu z`nDgp6ktt;S_GtWZWM`3(baK9thn9Z336~;|JT1-Mt(%HMX?lNetbSApU-)6`!%$T zMj?pfO>w^8MkW?#sU0}2)yr4?S1xnkE{@qe&7)fHbvtj?jsecI8d^m=UKDl8`{m|5 z$Jm<5K1%4oxEFd2Bl2Y?Z>&(;y|#(LhhceK*{2(KGaii7KqO+SY`2LodEak&0eDF| z(nq%5g_UOf4`ROiW$tIta$OlBBe+i4)0+gInpega=WeWjt#XzVsFYONQfrYi(BF{u zgrGyK9#GQ;$i?bGH`a_Cp7=(7p>CmNxQxloxSxr(@0|WZ9b>MjG$WG(+qsGNJlaxI zKyx!iJ<=TzuZZ8T%Fg)F^7G9(7??fgu>?ik!qczC;o0a>p%m5{@2y1Thf(`Xw!$3V zp=(1V#JXh%bQyOI1%={ZdxcncY|bj{x)gT{+7{ck3<5z`w&|>ZOTwMS&_?35>bVf} zO6xTb^9b?Z_z)VQR^PO33q;m$Dc*_%@pXaaZ#d1S)3OilkHL_s%S&oyALxl7`H;^@ zD0h$Nj%745KKFXt6WhIhufJyl@-uoa6FUzhzfgiG6!pCjwgvDXVRzoAMtxpM0)tg+ zPmzR^NoFO}i=_)FK$X_N#MM{{~Ea0C_02}4~w~2sUgLMgX zNF_#6p?Aj;>nIxjf*@cl#6;A)#))FJXg@?=9afzhwN2quCo z_$QY1O_jxcqbZaR{&xQ0aT)@BOJD6$a(a4kYiKvjYH63=yuDEjvxgRN?#c=*A|eE7 z(?QLDl&pEH6)~fr!T4H(u1vM%`a_DKTT%VaSQz>A`-7n0^p~IR z`5trc(Nx*)eht><@??A^P%0_I9v76BfO_?INuj6OgC5=JhLGZ-gbVu#_tq47^i0kZ+D!pT}ZGu0$D3XCi zs*WrJNL9pA`9`nSg#-R zuikuL=rvJlE07$Div`h<4(^rye{mpcx-47^RS4JP8bi_jAL3-=ku0m)X#LZYg+H5 z=>46D1m!CJnd^(A;)8TmW?O$Ns3Ou#3|C)TpVFq-*&lzFI5izi*K!^88`H2x>vw;8 z&?KL~6JWl)vUm&M!@-U<#eEKVU`ZtUc%k_+-i1sswgC2XdLh34DDeU`m|c^-`SN?; z9M$+db_Tg${PC;n%=_*ehAT>LY+@M&>H7_7YL1hU)+#}uC!a?-rEl?7s`$1j@^2ij z35K@GSt07t*czb&2lk zs%6O=?|25Xn@a~EvMeKJqLIn*sh*#JIC;wbIw;qNN_mFF7DV>TOggxyULWQ&nZ7J- zbJPMKJK`T*g%@$jk7df zq;&>V%zWx`j|dlMJ6lwck*ZpQ3zy{cQIWqBe7!MU?6*;)vPH+8km>H%8*OOcE3>Ov+|!gB5>M6&j|ip6$M5iL=cBh1OT*( zDh0Qf=~iKXXYK*f7LL%xa{eh2bLk`>|9ECmXN4mrV%#hL);v0_9K#y>J?Uups0;1d zj9EM!u0vcAShOgqc}bsGsq|CsiuSQg6`S@>!hL@C$oCj@=t~m;2V1nQJplg$AtoTU z?^9Nusi8ah;`V_Cw6q&eVoc3#hrD$OUwDbe5FrcciNy$alw`zQHc6=x2P)HHRDv~I zK3*AZ;aZB|h+XDrhdZX_teW>rE$z} z4`UyM7PpSy4&%Wre{5D-hyosQ39G&7HI4T==aSfF1<=+gBk0B*$J~(Go!!s`q7CSk zGetGVWhPCZQhHe~_Lv{)GdrG>CjoSpUtDCW@ldva`%F^haC;f zIs~VSTID-`A^(`2NMqphzG02UW-3ID{C5;&E~lo}?s?~Zx?UUIF#4#r>e2Lq#yC*J z#1Z6ZQ$Gc6%ZIKZIWl6db7r?rvrEZI=W->{TVsnNgprrdWs)bMc@%-{(+rJ9;ZOQm zW6BGOJlud-jAhwN^L0{$5FKoLV;>s|wI^D=nrC$0+5QJ8EP>Gbn?qjiqw*4Zc&RN+a>l!MLQ`EsLbV#m zBBFmL}v*M9uM|i!TudbI1Hs(P-)*02b zgE*}OXA#H2uDGyq3dj;v%|1rdgWv?a*ctakSH{l@^-G`&w-`R5l7p(H_TZS&7^2ZL?cj6^*(>J)G`lLNgE{@JymLNL1R~f^?<<^PveeI zl#QhsBJZ;8RpTxr))fIk=da#6SV^fc-7N?;^kr2Uo` zUlL?i2HEBt`Y^dX+wp%tcwZ}cALmHedTMoQJWbsx<4#fWNI-Mat`!#yZBp~sC)#K7 zWHyvx4E^StvI<*U3RA+B^=wV%BUXXr`OUJ3k@b`cV@;(EZ4rmbctoR$Dr}0bj*?^A zn@bt`Sz&7c&taCj8J3Px&X%3fLtsXmeae`B%)70CP9UZgPxZtMk);Kq?d0Ov22}fJ z1Doc;?2XyW6_Vcon8>?Id>EN)M}2rjv1um(BNkxcGE(v@J3%S+^*P2X5wvauz)79` zA@5eCJDx76luiHOxvAFw%|6N`y7v&CBkIvvw;^eY3Nvq*B8gWlyLDYFd#e`hvQ~{q zJ&tTdS>%q#lYt@TT${N|d7CT4gkPTE#;Cweckpo|>3gly?kKeP z@zgR{Sf5JZ^dek?Gek-yj(enyTqP~r4@&nDrc9Z(BH=q&t2?iCg>i1*r z#A3Q0ZnnP6ODjMdW0_KOb_VgVYL?Rp7I7tA8x(25z0T?F_JGZ$!i13%71$~cTjb9l z+;@gQEF_T@+dt!FS54g$qAgPv0{{*Pjgx61Kc`caKCAjtrwsnP))-Lk${RdojSPT^ zmV~=hpXO9bnZsg&rqmRvmLr^aa!Ii#6E_Bn?N!MP=6eS->kJ@>Qe$}l{hGt<>FX>; zvW^nS=|@13V###<8snOZ8gAOPU0Js%Wt=FZ8JncBF?Od38A)BWct!{F^hZS(Hd5ey z$vt*-XzU~aIf-*CVX-+f3uoR>4c6}X6spG5=r(1G>Qx$x;L}56^JoK*5 z(AB=iC=H>JBbl9cF{UFg>&WtXwIGc_lrl6*blUV`xl}MJF~qdc_T+U2`}^YRC|&a- z@Za8H+Bj%*Q@PNVu9*-tEZ_OmpQCL6hI>Gwd2Ua^62(oFC6hvx4M9ynhi5Qf#KDna$%X4D3--A< z;Hafj)wa`~%9fQ&Mr~8@w;J{m!aevc?_F{Z9PrTEyvn$5Qko$aYmo0Jz?4 zMpN)7_VZmbclZ>L{FV^+n~IRBc1pxcS4k#q9Vp`E6HmJj&&Wa2&s>Y&efa58R0+EM zr9_9fQfXyfu`b7})SivPt0G&}AS@Le=x%~;ZA?$p#d!tlHB5ErYa-am^fS%n7NOXo zpUGmT5+i@#m^ITCrMx3WRoKkp%B3qi=$^Pe|D}KaQE$edl5auUU7gr9@~*nU1tKIm zjI0p1grW#VLa#~HUzvVC>sy7;3<@7f(i9qCC0bDn$ZR1sbLz%Fv~`-Ji&O5(_-1~x z1jpar0#N`NMe2QEyu&wp7DU|wc}g+4wwQm;GaLx!7qt!+qO2KI#TW+!kXo|7g(Ir= zY=c}=)ATXT+;(fh1wZif5N%uLpnsJaoqTKsQI4UV@?PGK6ULFqUgP%?+ zC?)6oRQ)NsLXKB}3^-!7Y4N$Syaz3eiUYnf*g(yzq3V#)mb0KVvkP40o`kV~2;{XT z|D|jeW%6aXXk9$66W&$_hOEyo95QW=OI+*beVwdIerWG>nJv_ove#&q<-x033YmgW zpCe)_Wy)02d3J61%Q_ijr9wHl0Sk!I=-VFgYys(fJKDE;ep~3v#M>)(hpT8eSk7I^ zPpjF|q&o|St8hHN*tY>{Pn7e0xegHPe%@3L0?Ypti=hQvTi)Ll)|N#bxO^Gk!HTVA z{5_3Op!HY8|O%zoGqI9<}ki zJM`%V@&O*Qszl~|&5QN=BBA2}UGWQKRcYM=I!{bZL%AUdUMccs(+rM|>*?<4$JZZyhDcE4g~`-H2bioL^^YgeQ?d}TW&#wKKk_VlearrOytI z_pc2St2%s3L#O1(3nZGSwiHgJyu6t6a%r9Rrks&}ppI4)+ho3V?$_8vGvA@bGXQ(W zd?Z;T9zj4zM1g4^FFK1Gv$x$x)g6#KHWRnarc6PCJiO1Yn#yq^_z z6lSKCrt2Yi|l(vZ=TG^ zn#N`2mTILa@Oc#BmKQAOe-{M%Cl)MzC>usvd7t?Tr=(TNarrf4`bSa-F5TP1s^g@# zDXP$-f3vwyC!yI`<7Jzge22o26=P2+LQGL*c$rhSYmX8e8+^obB+TC5AH1xM!BNAY zW0$M)4dFGV)u0q#qTkRxw-2tRWnpdtptX7D_Hs|1grb zrX?Z9Zi;#%d(XBQaZ_Vsg5eiB`!`vzxNpD1nrONtq74=qJoI7Z$hRdn!z5AB2vW*r zKH))9f^H*)^td??e>B*Pn#gL7&_dP(OHSrVv;FR30G;}4=!j{!rJEVt0ka9~hEhDe z+Bl{v2)KXjNeg|jQ2ukF$Q-n7mN)taq@sXejwbM3Cod5B1$UvMi^|k~IxC-8*!PvI z4r{YUgNDAWjwMg9HG^X(FcWXdjIa~lB5$Vaw_l7Ir!9H0zk~W?P){-VH#DE;*Uitz zcMn~2sR-JYO>z5zyd%3jh7+W8Kthvz(l-0bN@x8ODoHN4do*BxfH6h8loy9w!mas- zn941)TQJVpFyp;T^TZS`SRNz^X{YOVMH( zc}V-z&d zgd11XH???X4i{t1(GnV2CHXj56-%J85wO@5`S5OxjQe6~+M-kpPT{bH#HnnjOa$BT zh|-czH08l2WEbq+nkUKPDZAj6oQl$0#>HWZ%Wahcn{;-*h39`o5ah6-Mg_?>SHf`p z?i%({Dg>PAz|bw($9GVm;!~OSHOM>_x+gnoNMX!fn(10d#L~{k?i0I3MK8#@pLR}z zi@mfr?ai606n7>F0tmWZDYXIDyrxz!quR}t{#O@%{baO$lg57nx4F1R07fIwa=|yG zwUV;(HEQpxiEe80AvmY6E!v6Bcnf}}PEka(b{${UD<8kQ&cqlhTC=D%=d_}Fpd|=R8}VWO?BvUB!+2>XMN|Dc{u9a&GJPq22UJ+fTm5?O@ZVKzi1! zK1;{1bqC_~{nZlXR{Mp+Dfy!e_}9JN@>xGBr!RKxtr`(;mn6_6H z0Z=U9i)k=%9>rkjw3dY3feM+uZ^~(O%)FJ#jALg_=AAg;X~eXez$YXu1?@2qsDZub z*Cqh<;Et3Iu|jYmMvm41>m=c(fTUh*o4U-Gk!K)*yuZYd|)ck&SNyp0iaJ6gy3*Q(*`B0m0vD6G$(cB(1qbwAkX z*z+MP6Pi{$(@%=qYE0VN=9?1rU_n$MQ$4CS`whdBKZ(*BE;-l)m@KEyf?9wHSY&-V z;wT+@wC~vtehR!MV!%`dg9xZ$nu6JzBO1^u`tYR`B;fJFIVlYfU{&H7`b3OhgzJMjlNJ$URgnDnM-u}cmHjN|V2WkESZ7xPP{7~HcxZShx% zk+Cc}U{Drs9=D}Life$Oc30kdtARqk-pIu%mU{ZgsiXYe97p^V?=OTSBG*jEkT3A3 zwbOdff8in(vF9A`=g#$B?n+BsEMmISfy+VlC9D)|9Du{O&4R7z@M1s_lo2YA!c`g* zApvnnJlX|i$dEEDLp)H;ud9-c{AH|{Y3!3p4n-}#|6w77oKd_db8SLWkt|=i17Tp` z_{uunOx$d2Y}=6!mLS(4?z5KZ3%2l$wy$cqusCBy-3=F*45~j#(I8$)fSLfA-FDpQ-u}W!ea7+p2)I z3SIU)wfzbiWuK;_6KGpRB7)WTzzfLGT3WawONF~3hxWjaDLP!}%vKsszDl!xZ-9i> za%WZ)}s-yAaW;$Cfm_Pv1Ys#|-a0#v{#oM^tYhf6awuL!UD%1Z_l(MJ#QmQ0b+zSHc= zv4Y#k4VX6{iKnB|#oU`8T}efLWz=SkDE0>N9FmCxbkHsLE}ae-hHvks*;`7Xb~JD$ z0rp{WQz@r+*0R((tv2LF-*@Smc9kXuz5WQmVSAzWA7;$9-7F$XndPMH?A)VhrKzX5 z>(^rTY|T%j@38&>4ukjD;2=gow?-2^YqsAwWH z8_P@n#OaaXIJTVLF8hlfGJ4RIa|)w&o5xwsIlez1GpP9^N8B7{qQRTJJD-9ABZ}S` zEGq%ZpKv^yQ${wiAP0+?Hmz>V&=uYC(k@tLqOgS1WM|RRHyT8<8&@n2)(zOk{86>X z%;#h?&-6;I$+{@d!YT;OxGd5G87h7&W#G=rR;JpTaa`AkaI8r1Y)>OcS}=^LEg&la zG(#x#!PooG5r0&Axe;#s;_XcQ5BFXR)pt>wX?6paCxN2BVMM{0J5p7JOgv?>+Pdcc z1)nUaEXZe!sqk#mRSx+ut8jREF5b zX+MXMQVN>ynkwZLSPU~}#BfyeU7oNdc~;qdy&KwTce%Kw!2Qw-sHe%)1LtZ?-4#H zw4g_4a*60b2I2Zsx&L@gi*pYF@+OOeGIme7ZzdtpHbD)$w^A!*l*QtdrivhobJDi8 zTdAoCer`&t&I z>WB?{Aa8Q>drH8cN)W5N9R_*tmcR+oD)M;2EW4MP99BnR*7e?Jp1^kR1AIRE%%Y15Fo55nfK8Wk-Kc9 z+bmvUT1pF_4Wl^vXC1~se-5_M-BL3tvSwj11pe?rqUYMfxKwEli!)LM>HThDKXuDY zbQR)@jK>VgoT#|J2s8!$#s5}H%TX+T8a;qF~be1%nn3&`KwJiljX>x zmoCYGHqQ#}-`!FuJg^7FNg}}U=J4rUwh}=177WhGlXXk8;L4tJI=%#UI0QET&S%wr zKRYF*5UU9bZD;q#1wXTkE$RY-e;gX4#>WDtZX zltqbHo9s>-g&1}?!@aBxLx?66Ol-3Ytut%oW{J$9k!ib68fUCix*{X(&rj9FxLWEs z>k9uRHc?*97nvqgT(%NZC@`kf$*hJ`tY6jYQ`q2vEFaTqAgq?fsdG+LwhOu=`m7gQ zS@fL{qs`?vT(Z@4Zf6Y*@4#Kn7-es{5cDC7%*?w6bFiF}3i&}?MX-b6=VXkSmj%%h zTtVKMB<(2c)n6<@J0qK&;+d?C2&yRg7;%5vx!rFk>>ddPOJbtUCS4YozZX@0yS7|9 zvz*~~5HulE5$@>Kdk2fdIyu-D6|sr(pDJscs$iouS5@Ur?7^w13T1?$e0et`=xho8 zGO&Cpu=;wIn8jBI)*d;&u3u48LpS-AM9$B@2pJw=)NM+8Rf1s(1NbkRe_I=Ws8?6s z%kIceRCoo4|B|+|{l{+zGT&8Le5&y9QSfg7ON>RP9T4u(fXH^~$v7vNp1r!;x+ z+zuZu*wUS0l?rifj7R-`y{AW3ie7uC>#QCT_Kg&(H{=(e9|L@Iuuh{aElhsWD%gjm zIf6n1kIdwW-%!TT*=s@5A2VWgrG87(X6ovPo4K`M;PtUpA*(r9vp%n)Y_Maszt>Mk z*3*i|*mB3p(Hf9P%dQA_-plPdX}qmRI$nvbY6u%ne&}xU)OLapqDuT7R9pj&1L>^5 zW4FtQj>wxCrzouT3%$nNX|oZt`bt1tDCBYZx{^$WU8s?miYSszChHuTzc?Ty9GHMY zAb^dhmq(0im&-K{RC;aoWEp-4W`wMT!BxOr0CgPw;m{fdDh&1anz1+Hjhrr-_Klvq zC&dwBcX%3RUZRo}-b$Evco+MO<*imwcTNULH(be^GAxbZuba-220!~7td*UfT!J0? z!Prn`YC4w5pdhwsFQsgSu0?7xAq0$2@bTT%R(IwZ&R+3NnZz4$J#qTcLzcJ-UIDY< zzj?Ir<6^fdU6udTK;KDwlg0Dap*_V@V(u~C-K9tmOS?M+{P6m1ea7n$$o@T6J;rhI zmyaKZk=jzfI|$Z+e%#0`RBfqnJNTJQziIQd{uq`IX7>4}EQIE1jCzQDDO5ULJRYBY zpdS-E=-zWrm+UCUa95PGo_Zh>{-C~TWHx%Li zeDwiPY6AgXyBGURB@(&qn+|&)#u^tyJB-Z&!dwx}d`Qs?L^k}yr7?Wr=ps`l)HFez zHm;2Oc`I=z>9}(u^BoZF zHYU@yzS@`P`D&SDqRObS2^l?WW7fT1pVn6aQwiEzG#a`ekY|=7G=gUpS-y7DWzxz! zD`S%SB=IMdr2uM46_S#A=)1B~G}NP6nPbp_pQEuY!y_@S9fZU|XE6581iYgp3KchK zazzrm1Grpbg0!9-`jWhTwBj$qsu4b-ODg31Q{`ah#gn{l?w97~G&c#ZwLZAGh7?A~ zH}lv8Qbtpmw0>35DMq7+wS51y*iBZL2~h2FZ>pq=Nz>1*{^b{7b*-&FOnOpJmVbDC zG#T!|*;duUA+y&fH+e;}v$Cgz5||W^wXX^f2IVoX`j}*g80a@vKaz`XZ6Fx^&qQEO z*$$mHdc!~P+x9XH64AtbALwuQF-ey5)-4;OQ^s| z``slR%J4+CXlm-y$@nT`&k0xE8J^g{!!1NK`rPFp4(Y?=T;XEIe%Hc5?&|kF>`cJV zKCaN+i}3Hm^>GIJdnoGN^g=Sn91k_eOM^|i0SAIVHebo{st!=>(hP*8;4|M?f7;YJ3H9G~&h zO4^mn$ZP)r^l9xk-J2@ciGJI&~4zWeEOdH!5;S9$W z_+mGJ3CGayHQkX_JQU2bes`Vv>l;-oL{EFbK^y|4DU8p}MAeGtAYXkHS!-I<7a(wc zzngmAahH3_+t$8<`ZzVYQRQ^HSM4;_cm9M%T&uk`MqrndC0rhtA2;~6&WzqRO;D4= zhHQPsW@En@4gpNE;&OR%rdAtd>p3V27DccW2<6KRQKmI?KHt*UbwBCp_7&L0ZsrX& zE@Eb2FU~E9JqIYMdhL)`XT!u=S-dWMUF37WV*RgHzB8(+uIu(eMS5>i1QDbNNR=Wb ziu5ih2uSbJ2`!XFK|q=)RRjWxfb`x&5PNR|@3=PHw#J)g_ag%T32aQ2HnxDD#TiuxhGmQ^te#kjgiV=j|#uKU3tlk#XCT<%}%zhLRf@@1O9`A~#jPJRrJR z1-oqOo&jekYgqszteDy6q|YZrxp(>21vI3DIeRB9h2b?ue%9?)H?+(*2{TZjwSH>&C+=nHJe4knd zmqZEisnZMdf200$-fGVN!6#KAS>{PznC>n9Y|*S3If<*#$js1v2@dzxvz2_# z=5-i*dz(CEZO?N3i(`+9?bT)7BKuSMcX48beaJi-mLho9lZQR|&J7xU5$M|X~pF`r0M&h0WZFbTs{T#g?5uNt@CeN7hO4bLr@l9obE@r zs5L5h+VoIj0{?Q05QP;Z!By@+zw(QWfaKDlXikD)H#y5qesj{^kAu47bFbvX<-vch zYaVQ*3()>ZBF)MZj+LTbhA&QZ8x)oZp<22emFdQ}^^4!#-N}5#UA}^!*V3W5MrMIj z_E^!WWPED=V}88vcKRx5eO6@?i(}MdttXQ}+%sM-j?DLd9yQVY%b;M@U&V~nn^Qxg z3~H*rp>3l+R!S5LRE@xA9Io%+ju#5BcFJvm)Re_3&$!k;La!G97u1x;04(d#B zNtri7QJF!KcrpG`KUqDfU7FEInJYY6Q{wfst(Kx_Xu(^tMz0l-e6mlzVPRjJ>}Cx1 zxD~$)eNTM;v8UytxFNH@wWO;2jy-xzLoPD4o!5((y;J>uN&@B(`IDA#c~tB;Q!8Xx z?W)U{Z@r(%9cwRg-2|7XXDww35=>sl^F^n4`F?^v<`0?R6I^O=6*0p{Ru{0$rr7O& zELl-STr(jBuSCBI0d$&}l1<1z)%yCe!=VxFV-|}t@4iuEO`lB0UIq>6EO&4=B&!v^ zzPTvG#3W&r`(SKoNGqD^u8Fn~+vb!~e&E4cswM?#yRps<%&*?8QF>JWrz3K^xoourF_!T3w5Qo zVCiuuNx07>{j4mH8)ZYIzc0S6w0ZYKe)X#jgGtelU_LZd=0lC^4b*`ojW+OZFAw)z z4+Azv$^}fbs~8fz^C>YQ$GDFH>)zu(vr~a_?#)VRUQO2Z>y9UeDZzZPIU4vkC2PIA zYlnv^0K1c;c4k^e(a`))tH0(33Nk4>ehZ9U9JP7Q%J?$#>8wmPXtr+e7X@+1m&p#P zG4Ph?5$x+2x)$kQynCC(ccZwhA7Z$*{2PmsywBB6AF)tA+5H2>Mrrz1nm*yGbKo zMlL9?Xc6amqujbw;w(RB>BfsFvD32LsJqnA15O3=NoqC*E<@7m{uI2tFP)~!bP5#= zK6Ic2BUXjI$;=Aks|sQcSs0vZrgip1CfDQVeeM?42j%;}&5M%pew3Ka{os2awOuPE zL-Y?RP+?xqP+)v#PK|A~j<@b@!H&+%#01=^)(~NfnQ$H~mic`!7OQE;&bUb#A|)F% ze=M5;4!=46bcO$yY!Uz#wM-fRRPZ?ywX41n%|yV zUw@RmiTfqY6>xq${b|Lf{pHD%mgyM~E{n})VBfxk^4qK94gBv^j_feohfLojMR}Vc zmj-_-c9yoSBn#DawJ4JoEW}=I&=jh%^V6sgL>8$j?z*t}oT-!9Hn@O*p(3SM?wmII z>7Qiosp1@OXBfL3#7Afp@|bmL^WFCedG#nP=2zWMlemS8HfaAA)wA^2$UA!?do>pF zPL2$GiXFif9lHlwR85GMD0ji%i!KrBOwhw7J6+|8pd`U4fWs9!-LuyKPhKhnWt~#s0cw0*B>f7aTUk)gdt5N z-z~Z!J|we0GvKt2O4+ABxN{imc^?cbORsE5%KJq&BS8-(E7Wc&N(rSizBo!EOYv3O zyXc+Ch8*08e$KKurD8g}x;HcL{4-URHTw|>VDsZpi_-ZdYoNEGWT^E$htl|B(L@F* zn!x%ap9P*jQrPbppF>}4$@AD{{?_?K9R}x+&A*GTp?p)f8k6Zy^3f^;Rh2l-Q};h;64({Ddf9K9K8IU>mpg(rpEmD}$a#1+hxO%^Qcfi7?JHd#=ssr_$(uBe~rTkVcjREvo z;@q0;-72y7`onAO@VbU=rk{5_H$(Dxub1iXK;wFKi7|28 zAJh)IZzY&5b41-^1a1LwcbvylZKvCHMBK>Jy*!<<(&gDHLiac*QjXi{ugPUCMa3~M zK{&goG7{0pY@CzL`B~TLN*phm{3J-dAIx->jO*(`joTT>%sTUgjwU@U7dmQ(F^)SV zXi0BEF|OjNo!x~AgvkPV#WVVAthbxZ=Gzj0r=UZo%EWCi>E7q?m!vV=4{zif9pbDo zzQ6sFikDP7aCLC?ENa_hKG|(T8_( zO4nwCM#$sdy?dw0e;rUU)64E~Q`+8#q$9E_RmoyO3vY5eJ5`A9^_xU(tuG$FkIWTO z=!AStMmn;uL1}c(&uaoh73=9_{37JY4I{oTvUO(Ry0up*I3wP>-QaBDOs=Abr5NlF z%(U)LINkEpWY3{CF@OHJ2MZcL46g56+Az_O@~nEooNF|h*9pWCycgC7$_obKVqz(- zFPME!cXW_#$F9^2T%AxC>Wi(P6)3t+LG91k`q-r#vX_5JRElmde(JLPtYRnOtS1@L zJ;fDpRGoXKIDYL(fi*Y#dPvdVZgg$N1SXyW^ULd;LM1pGD@9i_&jjAXU9M}uffw@jg%m3O zq1^rH82d5cps1^ey@wkY-G=dlO3ksd%Wu8onu*^eSXHC+Z;YfjoSl_>AGV$N#ZmDc z2_>-{+^~}7%MR!f3Y$P3L<)U2rW^>ScL*7snG0L$UvSvy`Pv>R70u5`)3SZrvsE%% zMu@KSqhr*a74vs3A;HTr0K4bg1_B!PFUjZMQ+8jX#o3MRM#sk=3#{0iv#530sWLpV z>y^+O!_7K4xRJQ4u$Z&$=*ew2PK;t91hu1Trv$xda!z_vfy7Liq-@#rXIM?id#v_G z15c+^hTC2YzguFs$r5C2&iwU`{jaUoi-2C!Y$$`CSed=nB>(FDFDA0$am+9B<1-(^ z$X|FYf#R&nmHk7QZnYj*-Ru`N){;$B{Ky@|G#2wScGA;dFz}g?Q7luj{Zt_<{5;W8 zW&Bb=i4N5uoTzan3`MY3t=HzrV#8Y$6+xJ@42e!&=Ul(L(FaNCuDQed!p6n?nR;=q zb#Js}7)6n|&tel$EV$}b)k@SBjcqq#wR_0|$uS5{_?`4PfArcPR~aHq)S!C#e*jk! z_y67Ue*q3L+yB1iZ_9r`K55zLg}dz@Ms8$e1SwJpOO|fS%X>pg#kz9|ad#I%5RNNB zOHphutL?i0ucd?)h&!~K_gc0;10dk}g;$MUw-IN9-Y;t$DY9fer$b>iHOXTJiiz$O z&C%K^0-Ke(*t7f-AozSN_kP5s5dI=d%BgQ2MyG5y~%)W(izCFG*UON6WmI==?Pj&^yb@G5Wg1`sy zHbTN{s7I)i-I;n0;{2l730`u)JCPGx807CS0bJLU^_bkR9ty?pHm=}RZr{G09ey$u zhE`l?KfO!}_&_BNGYUG8$rZr|yxQ=8q_3?_(clSrfWA7PKnz`;E+nnU=MJa}-HTO= z*Z^oVLk8c(q~Z1HahDcIL%`)x4E6J?gu43rXQrmI``6%PP?`!FI2DwtkBqmy3Q0`{ z=_a^A>O477z8f1G$N;PFsi_$m4qpV8d~lE*j#m?;$Qn`6{%LPgn2qJvj0aYa_P^*{ zI9$CL#^U&o(^DCR@4+#2O^S2l<7qa?Os~m(M%WdX2Z)AaA`(N!IZa8@v$zoVxF@ut z^|caL=xweryE_|PN*DW`GBPqpXHN{WWD^~db|EO(`FRMdxb-YrA=NnBr-MQ-Q|g|J zd-|ZWd6N(C=>i1cK2brlRh*;*5WbhMk+>WuQn6T4TJbF}&-U?f&{9WKU1K8#=&2*T zKA44SC*$E#TGxwi-D`;_;|_jvygk808TF43S4=0ZVgjc(>{EV{O32j=*a;#lo4_gO z^_X?Zccr`do^JY%Sfl@@@e5;PDO-nBdQ~gmE|!woS`*=d)a{ln;@=MJMpNaMjq8Y5 zU85}>tjUGBP8$KAU4+0b#{;crii@Dr80kPOvo8DUZ1gR~K#!rCDG$@zzyV2~{{2QY z1`W6ZA-efdzK2kUwZ1eR;eraHktCPv>TFiu6JK7XtfUqe7Q#U51DQ`fJ;jKoU5w1` zu_18k^I_OQlKQ5`SwE^NkMz*J=9uMW`+ulAZ4Z{avIG8@UqT%WGgUUdC{=O{Px%*v zGLTe=4e5aH1a<{oun(;w8*%mMZko=T9%QE)b*=;+)0bmN)G)7c>=kS&#eh#+x%_%~ zgP|GHhQyjv^FUD>c(#xHfM?^JY~DiHemhz7K{w}VscA5Rr3!-w0Yv+2UN-yv{S;f+ zs04QD=#GvK7(&vikJ$@$&>h~b6)L||)p_1Fq-<5MG6knp%^elNVT0P|PeBPh02P-{ z>+9>Vn=Kx){c=PH&E7=k1aX@b8O)(^1sT?TgK`TO)#WEVPF-;<7n_EVzD&4Ne>&`G zp*I9S!!v^fZI?GD>lB@G-ri|+Sgd!SSTE1f{J^D<=j*HT0YJckLrHRVkeoKO2`25m zNNfaav%f@YB6&9~*3@;5R>gJ=WTmQFNTym%ce|pZV#xe^Z7mbZ*U!`laMo+Mv9;A_ zPJo8)O`#{#%&dDmqNsrBnF>Gwmz)6Br!lnmQhN7)n;0GtkF@~^;S3Gz6D~SZ5CCr$ zWT=d{_Kr)`?aV9ZVKk|5CKh>ENw3)^@bD)+0c;$8+P!kn5pm-LF$ZCC-I#kqY=;OPH3`jawsE;2x=od$12hD>7UCeBRyNI-d_t?xO+DQ^F zQtL9j{^mNZE%7|ioY(0@^(wfRH-;;D;*Kw|N7uy=_FZwXH7Y79d|UJx7Ja%+nw~); zE<6qgF3Qb~ef!;|kYH_-q7(4&*t{$+Z_yz%{x3f&^glN<6G8c^q$1#OmC7QEzaz*} z@$zU4nBKNcoO0^TH7LTW;QRV?0v5tgi=(5X>C#F|OHI_()vu(u{qbwJCVjbxMPgFq zhM$n#PL;bnp0F9tQgI#01Gif6yrLduLvaE12%MQd%&D|IxI{K;%EHw1ve@vdbEp9a z(aYw2eQe4xmEhx2*zk}HU>1ZwNP=Vo2SO*Tf+RgAt6+_?L3^{=Zi<0BljxTaXh18m zd}B@jgBcg{zs+Ff)e}9rtp`VFwY#5s+>zHlKXf;pKO(Gu1P;3I*$sYq$j=x{bjrc3 zQ|%VDk!NJ(Gqy97uJhErrdolI4XIv&wq|`6fJMY^?KfX4w?RM^fa_r!lbJ5iOspXM zq`p$p{^$Gf`?Yus0x^7%mX;Q_!nv?<+F)sE3AD6WgP+2J50Z6_A^Nef`T&?B2+8jW_MX5Ph@#p#4-6g zncf*4-vn9Wi*VW6n71;32Ia;4^jV_oRC`R-WUovr?ln2&t_-W-MW;MuizEQMb$T{8 z3&IwVv4YUgr(rV#PahVZ%BiOgUu!{4e`yp+ z_lQJ8Xbmr!RWF`~6`u9Z_puEPX8JF_C0o}kEib*5t}*EDKr)mvfmWW+=kq;#bdEKCt=#R!hT41Pr0GnDZGzm@B^a z3;cYm6f_1T5WZESSuu;+`<+Us4QuttALDF-S9cnHx334jh2QWnXH|WlUG7cvVC#7C z)sv9vvHr8NA}7;I>m2FbK9S0cpAGS^p1y-PpR|G&2??4+=Gi;tnwy&gjp4HhptH3M zY+(|&atr2Nj=P`mKk%8Pn31>`zj*(>v&(s)4OEYQp!hFoDHQqMtf9X%@e45106Lj+ z0bqHbSC~H6>FpKF&8{sYh9Z&tF++eA6%JbnI5={uzPLjSngiQN8w-n;VI{QY*~|hV zUGB1J<-^SB;-9re^u`x+hWBf^S>M5)ALLxAd)QZrjM$TT(!-auT1GA2v={*%&cT4J z!VbE4@VCW@agf;2Dn(_70dH3hf~{A^(#0$fX~T(uHJ|hX^lNOa)6%;wP0kSVX9fMY z8fAz|WkH)opQPz*r?y~D9j3h@r@8INtf)N56nTNx^J7hS#&ld==w-_vI4HaGsv(A7 z(`DFzK|^)x>(2M@-#_1hLsAtnu#~ts%D>4Bae-0+1H+#50#E0H(BfXGvg4&Q|+Z7eTy zOiroYl=s&_1^KDjyX9vcZ=iFUV$GMngAXT+tgTh@U>VjS!V}h^o`>tcxmDdYV7oKAn2g_-&23{P~kc|q>Zbu2tf&U+rokWx1V4Es*Jv}`UW8R^k ziD|tG;m=11;j(Vbpg(jd3i* z?uFqQi3r<(P{IlMMBM5Yx?`5=rsyK!+O04jy=?bHp9fyVpBIOePiKdBta5$3*~3j2 zo9AtWn70~FQ-`l_6BEHv;tCk(po&=@hkWCj^XF;lM9{n_Kq<@@JoB_?#u z=EQ0{E53}gNs~}Qw&U-$Vpivh92U0;&QazHn)SUjeb*dJ>*dju$&6e*U@|&_mn|3@m(MY6||*3I}xkoc3N;#lsC9 z92|yXN>jhJv^>Iedb_#xDn>EW#$Y+TJZ6SkcRcgb9vd;i*wiLArdi(0S<^e2rJ{%X$uH~5d{{Cmy+lBWLx z|9^DqzeMZ5!C%Y%YTJL?{I3`IpI{K(dqrBlBc!IU%J2HOXt}n!fm(&CZNz^8yt_{G diff --git a/infrastructure/nginx/html/home/images/vmware-logo.png b/infrastructure/nginx/html/home/images/vmware-logo.png deleted file mode 100755 index 805af0bd79d26d418c89d407f2214bed0aa8bd9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101111 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 z 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%0A%M#RYujn>hZ?8F+j9crw>@Sz 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 diff --git a/infrastructure/nginx/html/home/images/vro-logo.jpg b/infrastructure/nginx/html/home/images/vro-logo.jpg deleted file mode 100755 index 00b04633f772f237fc034c6c6dc0ace5353fd397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5611 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�vi#qt$Ogl1ne@B9Z6(H8V3K>n^DQ{B+l>Rb3B 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 OoI7*rH1U@k|NTF{btyUk diff --git a/infrastructure/nginx/html/home/images/workstation-logo.png b/infrastructure/nginx/html/home/images/workstation-logo.png deleted file mode 100644 index 48c5445a23ed023b0b9669c98dc6aa6f1da7300a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8767 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 - - - Build Tools for VMware Aria - - - - - - - - - -

-
- Home - Help -
-
-
- -
-
-
- - - -
- -
- -
-
-

- vRO Plugin -

-
-
+ + + + Infrastructure + + + +
+
+
+

Infrastructure Summary

+ +
+
+ +
+
+

About

+

You can follow Build Tools for VMware Aria's Infrastructure Setup Guide which provides instructions for setting up and running a series of containerized applications within a corporate infrastructure. It includes details on the specific Docker images used, the commands to start the containers, and the ports they map to on the host machine. The applications mentioned include Nginx, Nexus, GitLab, and GitLab Runner, each serving a different purpose within the development and deployment pipeline.

+

The document outlines the steps required to ensure all containers are up and running, providing specific URLs for accessing the web interfaces of Nginx, Nexus, and GitLab. It emphasizes the importance of waiting for all containers to be fully operational before proceeding with further setup or usage. This ensures that the infrastructure is correctly initialized and ready for use.

+

Additionally, the README includes sections dedicated to the setup and configuration of individual applications, such as GitLab. These sections contain more detailed instructions on configuring and managing each application, ensuring that users can effectively utilize the infrastructure for their development and deployment needs.

+ +

Containerized Applications

+ + + +
-
- - + +
+

Build Tools for VMware Aria 2024

+
+ diff --git a/infrastructure/nginx/html/home/package.json b/infrastructure/nginx/html/home/package.json deleted file mode 100644 index 05f5f9bcd..000000000 --- a/infrastructure/nginx/html/home/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "vrealize-toolchain", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - }, - "dependencies": { - "@clr/icons": "^0.11.0", - "@clr/ui": "^0.11.0" - }, - "author": "", - "license": "ISC" -} diff --git a/infrastructure/nginx/html/home/scripts/helpPage.js b/infrastructure/nginx/html/home/scripts/helpPage.js deleted file mode 100644 index 67ab06c52..000000000 --- a/infrastructure/nginx/html/home/scripts/helpPage.js +++ /dev/null @@ -1,66 +0,0 @@ -(function () { - var PLATFORM_DOC = "setup-platform.html"; - var WORKSTATION_DOC = "setup-workstation.html"; - var WORKSTATION_CLOUD_CLIENT_DOC = "setup-workstation-cloud-client.html"; - var WORKSTATION_MAVEN_DOC = "setup-workstation-maven.html"; - var WORKSTATION_VSCODE_DOC = "setup-workstation-vs-code-for-vro.html"; - - $(document).ready(function () { - $("#readme").hide(); - $("#readme .modal-footer .btn").click(function () { - $("#readme").hide(); - }); - $("#platform").click(function () { - showWaitDialog(); - loadReadme("platform"); - }); - - $("#workstation").click(function () { - showWaitDialog(); - loadReadme("workstation"); - }); - - $("#workstation-cloud-client").click(function () { - showWaitDialog(); - loadReadme("workstation-cloud-client"); - }); - - $("#workstation-maven").click(function () { - showWaitDialog(); - loadReadme("workstation-maven"); - }); - - $("#workstation-vs-code").click(function () { - showWaitDialog(); - loadReadme("workstation-vs-code"); - }); - }); - - function loadReadme(type) { - var filePath = null; - if (type == "platform") { - filePath = PLATFORM_DOC; - } else if (type == "workstation") { - filePath = WORKSTATION_DOC; - } else if (type == "workstation-cloud-client") { - filePath = WORKSTATION_CLOUD_CLIENT_DOC; - } else if (type == "workstation-maven") { - filePath = WORKSTATION_MAVEN_DOC; - } else if (type == "workstation-vs-code") { - filePath = WORKSTATION_VSCODE_DOC; - } - - $.get(filePath, function (html, status) { - if (status == "success") { - $("#readme .modal-body").html(html); - $("#readme").show(); - } else { - alert("Error loading info. Status: " + status); - } - }); - } - - function showWaitDialog() { - // TODO: progress - } -})(); \ No newline at end of file diff --git a/infrastructure/nginx/html/home/scripts/indexPage.js b/infrastructure/nginx/html/home/scripts/indexPage.js deleted file mode 100644 index ea1a0943f..000000000 --- a/infrastructure/nginx/html/home/scripts/indexPage.js +++ /dev/null @@ -1,30 +0,0 @@ -(function () { - var PAYLOAD_SERVER_PATH = "/payload"; - var PAYLOAD_PATH = "payload/"; - - $(document).ready(function () { - getFilesFromServer(PAYLOAD_SERVER_PATH); - }); - - function getFilesFromServer(path) { - $.get(path, function (data, status) { - if (status == "success") { - parseFilesFromWebPage(data); - } else { - console.log(); - } - }); - } - - function parseFilesFromWebPage(html) { - var document = $(html); - - // find all links ending with .dar - document.find("a[href$='.dar']").each(function () { - var url = $(this).attr('href'); - var downloadUrl = PAYLOAD_PATH + url; - - $("#vroFile").attr("href", downloadUrl); - }); - } -})(); \ No newline at end of file diff --git a/infrastructure/readme.md b/infrastructure/readme.md index b639b22e0..11cea132e 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -186,21 +186,6 @@ To get started, follow the steps below: - A `Maven Central` mirror under `mirrors` with id `nexus`. - A profile under `profiles` with id `nexus` with `releases` and `snapshots` repositories. - A profile under `profiles` with id `packaging`. - -3. Get back to the root of this repository: - ``` - cd .. - ``` -4. Execute the following: - ``` - mvn clean install -f common/keystore-example/pom.xml - mvn clean install -f maven/npmlib/pom.xml - mvn clean install -f pom.xml - mvn clean install -f maven/base-package/pom.xml - mvn clean install -f packages/pom.xml - mvn clean install -f maven/typescript-project-all/pom.xml - mvn clean install -f maven/repository/pom.xml - ``` # Project Setup 1. Create a repository called `demo` at [http://infra.corp.local/gitlab/projects/new#blank_project](http://infra.corp.local/gitlab/projects/new#blank_project). @@ -210,7 +195,7 @@ To get started, follow the steps below: ``` mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-ts-vra-ng-archetype -DarchetypeVersion= -DgroupId=local.corp -DartifactId=demo -DlicenseTechnicalPreview=false -DoutputDirectory=../ ``` - where `` is the last released version or any specific version you want, i.e. `2.41.0`. + where `` is the last released version or any specific version you want, i.e. `2.42.0`. You might also want to change the specific archetype to best fit your specific use-case. Check out the archetype templates available at [com.vmware.pscoe.o11n.archetypes](https://central.sonatype.com/namespace/com.vmware.pscoe.o11n.archetypes). 5. Validate the command generates the appropriate project files. From 6f795197148bf6483541e528ade74c4a1183712b Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Fri, 20 Sep 2024 11:50:32 +0300 Subject: [PATCH 04/10] Small additions to the infrastructure readme --- infrastructure/readme.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/infrastructure/readme.md b/infrastructure/readme.md index 11cea132e..b6092bfaa 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -181,12 +181,18 @@ To get started, follow the steps below: # Environment Setup 1. Follow the [Getting Started](../docs/versions/latest/General/Getting%20Started/) guides to setup your local environment. -2. Edit your local `~/.m2/settings.xml` by using the repository provided [settings.xml](./.m2/settings.xml). It should contain: +2. Edit your local `~/.m2/settings.xml` by using the repository provided [settings.xml](/infrastructure/.m2/settings.xml). It should contain: - A nexus server authentication under `servers` with id `nexus` with your Nexus username and password. - A `Maven Central` mirror under `mirrors` with id `nexus`. - A profile under `profiles` with id `nexus` with `releases` and `snapshots` repositories. - A profile under `profiles` with id `packaging`. + You can also copy it directly from the example [settings.xml](/infrastructure/.m2/settings.xml): + ``` + mkdir -p ~/.m2 + cp .m2/settings.xml ~/.m2/settings.xml + ``` + # Project Setup 1. Create a repository called `demo` at [http://infra.corp.local/gitlab/projects/new#blank_project](http://infra.corp.local/gitlab/projects/new#blank_project). 2. Setup your local git environment and follow the `Command line instructions` listed in your new repo to clone it. @@ -196,15 +202,15 @@ To get started, follow the steps below: mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-ts-vra-ng-archetype -DarchetypeVersion= -DgroupId=local.corp -DartifactId=demo -DlicenseTechnicalPreview=false -DoutputDirectory=../ ``` where `` is the last released version or any specific version you want, i.e. `2.42.0`. - - You might also want to change the specific archetype to best fit your specific use-case. Check out the archetype templates available at [com.vmware.pscoe.o11n.archetypes](https://central.sonatype.com/namespace/com.vmware.pscoe.o11n.archetypes). + + You might also want to change the specific archetype to best fit your specific use-case. Check out the archetype templates available at [com.vmware.pscoe.o11n.archetypes](https://central.sonatype.com/namespace/com.vmware.pscoe.o11n.archetypes), some of them might need additional dependencies like `Powershell` or `Python`. 5. Validate the command generates the appropriate project files. 6. Validate you can build and test the project locally: ``` mvn clean package mvn test ``` - You might need to comment: + You might need to comment out the following passage: ``` local.corp From ed7bdb2d731853ef899dc211f9f66f6ba6b57c3e Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Fri, 20 Sep 2024 12:15:35 +0300 Subject: [PATCH 05/10] Improve the Infrastructure readme semantics Signed-off-by: Ivan Zdravkov --- infrastructure/readme.md | 93 ++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/infrastructure/readme.md b/infrastructure/readme.md index b6092bfaa..7b514e358 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -1,28 +1,29 @@ -# Contents +# Minimal Infrastructure + +## Contents - [Introduction](#introduction) - [Prerequisites](#prerequisites) - - [Installation](#installation) - - [Validation](#validation) + * [Installation](#installation) + * [Validation](#validation) - [Running the Infrastructure](#running-the-infrastructure) - [Application Setup](#application-setup) - - [GitLab](#gitlab) - - [GitLab Runner](#gitlab-runner) - - [Nexus](#nexus) + * [GitLab](#gitlab) + * [GitLab Runner](#gitlab-runner) + * [Nexus](#nexus) - [Environment Setup](#environment-setup) - [Project Setup](#project-setup) - [Conclusion](#conclusion) -# Introduction - +## Introduction This file serves as a guide to create a minimal infrastructure example using containers. We will be using [Docker Compose](https://docs.docker.com/compose/) to orchestrate the following containers: - [nginx](https://hub.docker.com/_/nginx) - `Nexus` - - [sonatype/nexus3](https://hub.docker.com/r/sonatype/nexus3/) for Linux. - - [klo2k/nexus3](https://hub.docker.com/r/klo2k/nexus3) for M1+ Mac. + * [sonatype/nexus3](https://hub.docker.com/r/sonatype/nexus3/) for Linux. + * [klo2k/nexus3](https://hub.docker.com/r/klo2k/nexus3) for M1+ Mac. - `GitLab` - - [gitlab/gitlab-ce](https://hub.docker.com/r/gitlab/gitlab-ce) for Linux. - - [yrzr/gitlab-ce-arm64v8](yrzr/gitlab-ce-arm64v8) for M1+ Mac. + * [gitlab/gitlab-ce](https://hub.docker.com/r/gitlab/gitlab-ce) for Linux. + * [yrzr/gitlab-ce-arm64v8](yrzr/gitlab-ce-arm64v8) for M1+ Mac. - [gitlab/gitlab-runner](https://hub.docker.com/r/gitlab/gitlab-runner) Using these applications, the infrastructure will support source control, running the build pipeline as well as hosting and serving the artifact packages, which are all the minimal requirements to have an [Build Tools for VMware Aria](../README.md) project. @@ -31,12 +32,12 @@ We will also be guiding you through configuring the applications and setting up Please contribute back to this document if you find out of date contents or have other ways to improve it. -# Prerequisites +## Prerequisites -## Installation +### Installation Before proceeding, make sure you have the following installed on your system: - [Docker Engine](https://docs.docker.com/engine/install/) - Important to configure the docker host to automatically start after reboot and add docker to PATH. - ``` + ```bash systemctl start docker systemctl enable docker export PATH=$PATH:~/.docker/bin @@ -49,9 +50,9 @@ Before proceeding, make sure you have the following installed on your system: For Linux, besides Docker, you can use GitLab Runner's [Dockerfile](/infrastructure/gitlab-runner/Dockerfile) RUN commands to setup your environment. -## Validation +### Validation Validate all of the prerequisites are available in the Terminal: -``` +```bash docker -v node -v npm -v @@ -60,7 +61,7 @@ java --version ``` The latest versions used to test this guide on Ubuntu are as follows: -``` +```text Docker version 27.0.3 NodeJS version 14.21.3 npm version 6.14.18 @@ -73,36 +74,36 @@ openjdk 17.0.12 2024-07-16 OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu220.04) OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu220.04, mixed mode, sharing) ``` -# Running the Infrastructure +## Running the Infrastructure To get started, follow the steps below: 1. Clone the repository containing the existing resources: - ``` + ```bash git clone https://github.com/vmware/build-tools-for-vmware-aria.git ``` 2. Navigate to the `infrastructure` folder: - ``` + ```bash cd build-tools-for-vmware-aria/infrastructure ``` 3. Create the custom Maven GitLab Runner image by executing: - ``` + ```bash docker build -t gitlab-runner ./gitlab-runner ``` 4. Open the [docker-compose.yml](docker-compose.yml) file: - - Depending on your host OS uncomment the `image` property under the `gitlab` and `nexus` services either tagged with `# Mac` or `# Linux`. + - Depending on your host OS uncomment the `image` property under the `gitlab` and `nexus` services either tagged with `## Mac` or `## Linux`. - `OPTIONAL` Check the IPs and port forwarding options for each of the containers and make sure they work for your specific setup. Leaving them as-is should work, provided you don't have port collisions with other applications. In case you change the ports, you will also need to make the changes in the nginx configuration file [nginx/conf.d/main.conf](./nginx/conf.d/main.conf). - + 5. Add the nginx container and the docker internal host endpoints to your `hosts` file. - Docker provides an internal DNS server in user-defined networks (infranet) to resolve container names to their internal IP addresses. Since your nginx and GitLab services are part of the infranet network, they can communicate using their Docker defined hostnames. - We are going to be accessing the containers from the nginx reverse proxy. For this you need to manually edit the /etc/hosts file on your host machine: - Add the following records to the `/etc/hosts` file. - ``` + ```text 127.0.0.1 infra.corp.local ``` @@ -117,7 +118,7 @@ To get started, follow the steps below: ``` The results should look something like this: - ``` + ```text CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES eec4f06c5e88 nginx "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp nginx dc46763483f0 klo2k/nexus3 "/__cacert_entrypoin…" 5 minutes ago Up 5 minutes 0.0.0.0:8081->8081/tcp nexus @@ -131,32 +132,32 @@ To get started, follow the steps below: - GitLab - [infra.corp.local/gitlab](http://infra.corp.local/gitlab) - GitLab Runner - [infra.corp.local/gitlab-runner](http://infra.corp.local/gitlab-runner) (*no http web interface*) -# Application Setup +## Application Setup -## GitLab +### GitLab 1. Grab the GitLab `root` password: - ``` + ```bash sudo docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password ``` *This file will be deleted 24 hours after a container restart* 2. Login at [http://infra.corp.local/gitlab/users/sign_in](http://infra.corp.local/gitlab/users/sign_in) with: - ``` + ```text account: root password: *password from previous step* ``` 3. Change the root user password at [http://infra.corp.local/gitlab/admin/users/root/edit](http://infra.corp.local/gitlab/admin/users/root/edit) -## GitLab Runner +### GitLab Runner 1. Go to [http://infra.corp.local/gitlab/admin/runners](http://infra.corp.local/gitlab/admin/runners) 2. Click on `New instance runner` 3. Enter any tag, for instance `maven` and optionally select `Run untagged jobs` and press `Create runner` 4. Copy the code snippet in `Step 1`, which contains your AUTH_TOKEN and should look something like the following: - ``` + ```bash gitlab-runner register --url http://infra.corp.local/gitlab --token ``` 5. Append it to `docker exec -it gitlab-runner` and execute on your host: - ``` + ```bash docker exec -it gitlab-runner gitlab-runner register --url http://infra.corp.local/gitlab --token ``` 6. Follow the setup process by providing the following: @@ -165,13 +166,13 @@ To get started, follow the steps below: - Enter an executor - input `shell` and press Enter 7. Go back to [http://infra.corp.local/gitlab/admin/runners](http://infra.corp.local/gitlab/admin/runners) and validate the runner is `Online` -## Nexus +### Nexus 1. Grab the Nexus `admin` password: - ``` + ```bash docker exec nexus sh -c 'cat /nexus-data/admin.password && echo' ``` 2. Login at [http://infra.corp.local/nexus/](http://infra.corp.local/nexus/) with: - ``` + ```text account: admin password: *password from previous step* ``` @@ -179,7 +180,7 @@ To get started, follow the steps below: - Enter new `admin` password - Disable anonymous access -# Environment Setup +## Environment Setup 1. Follow the [Getting Started](../docs/versions/latest/General/Getting%20Started/) guides to setup your local environment. 2. Edit your local `~/.m2/settings.xml` by using the repository provided [settings.xml](/infrastructure/.m2/settings.xml). It should contain: - A nexus server authentication under `servers` with id `nexus` with your Nexus username and password. @@ -188,30 +189,30 @@ To get started, follow the steps below: - A profile under `profiles` with id `packaging`. You can also copy it directly from the example [settings.xml](/infrastructure/.m2/settings.xml): - ``` + ```bash mkdir -p ~/.m2 cp .m2/settings.xml ~/.m2/settings.xml ``` -# Project Setup +## Project Setup 1. Create a repository called `demo` at [http://infra.corp.local/gitlab/projects/new#blank_project](http://infra.corp.local/gitlab/projects/new#blank_project). 2. Setup your local git environment and follow the `Command line instructions` listed in your new repo to clone it. 3. Open a terminal and `cd` to the repository directory. 4. Generate a project by running: - ``` + ```bash mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-ts-vra-ng-archetype -DarchetypeVersion= -DgroupId=local.corp -DartifactId=demo -DlicenseTechnicalPreview=false -DoutputDirectory=../ ``` where `` is the last released version or any specific version you want, i.e. `2.42.0`. - + You might also want to change the specific archetype to best fit your specific use-case. Check out the archetype templates available at [com.vmware.pscoe.o11n.archetypes](https://central.sonatype.com/namespace/com.vmware.pscoe.o11n.archetypes), some of them might need additional dependencies like `Powershell` or `Python`. 5. Validate the command generates the appropriate project files. 6. Validate you can build and test the project locally: - ``` + ```bash mvn clean package mvn test ``` You might need to comment out the following passage: - ``` + ```text local.corp vro @@ -222,7 +223,7 @@ To get started, follow the steps below: in `vra`'s `pom.xml` in order to successfully build and test. 7. Configure the GitLab pipeline by creating a new file in the root of the repository named `.gitlab-ci.yml`: - ``` + ```yml stages: - setup - build @@ -289,8 +290,8 @@ To get started, follow the steps below: 10. You can continue by: - following the [Bundle Installer Guide](../docs/archive/doc/markdown/use-bundle-isntaller.md) to push your package to your `Aria` instance manually. - adding a new `profile` in the [settings.xml](./.m2/settings.xml) for your `Aria` instance and then executing `mvn package vrealize:push -P` which will push your changes directly to a life environment. Follow the [Push](../docs/archive/doc/markdown/use-workstation-vra-ng-project.md#Push) section of your specific archetype documentation at [docs/archive/doc/markdown](../docs/archive/doc/markdown/). - -# Conclusion + +## Conclusion This concludes the setup. You now have a fully operational end-to-end architecture to support the [Build Tools for Aria](../README.md), create, build and push projects and run pipelines that produce install bundles. *This is not intended as a production environment, but as an educational sandbox. You should setup your proper and persistent development and production environments in a similar fashion.* From ef0231df124a492911934ff44c3dbf15371a5d25 Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Fri, 20 Sep 2024 12:36:47 +0300 Subject: [PATCH 06/10] Fix list identation Signed-off-by: Ivan Zdravkov --- infrastructure/readme.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/infrastructure/readme.md b/infrastructure/readme.md index 7b514e358..d9bfea86f 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -3,13 +3,13 @@ ## Contents - [Introduction](#introduction) - [Prerequisites](#prerequisites) - * [Installation](#installation) - * [Validation](#validation) + - [Installation](#installation) + [Validation](#validation) - [Running the Infrastructure](#running-the-infrastructure) - [Application Setup](#application-setup) - * [GitLab](#gitlab) - * [GitLab Runner](#gitlab-runner) - * [Nexus](#nexus) + - [GitLab](#gitlab) + - [GitLab Runner](#gitlab-runner) + - [Nexus](#nexus) - [Environment Setup](#environment-setup) - [Project Setup](#project-setup) - [Conclusion](#conclusion) @@ -19,11 +19,11 @@ This file serves as a guide to create a minimal infrastructure example using con - [nginx](https://hub.docker.com/_/nginx) - `Nexus` - * [sonatype/nexus3](https://hub.docker.com/r/sonatype/nexus3/) for Linux. - * [klo2k/nexus3](https://hub.docker.com/r/klo2k/nexus3) for M1+ Mac. + - [sonatype/nexus3](https://hub.docker.com/r/sonatype/nexus3/) for Linux. + - [klo2k/nexus3](https://hub.docker.com/r/klo2k/nexus3) for M1+ Mac. - `GitLab` - * [gitlab/gitlab-ce](https://hub.docker.com/r/gitlab/gitlab-ce) for Linux. - * [yrzr/gitlab-ce-arm64v8](yrzr/gitlab-ce-arm64v8) for M1+ Mac. + - [gitlab/gitlab-ce](https://hub.docker.com/r/gitlab/gitlab-ce) for Linux. + - [yrzr/gitlab-ce-arm64v8](yrzr/gitlab-ce-arm64v8) for M1+ Mac. - [gitlab/gitlab-runner](https://hub.docker.com/r/gitlab/gitlab-runner) Using these applications, the infrastructure will support source control, running the build pipeline as well as hosting and serving the artifact packages, which are all the minimal requirements to have an [Build Tools for VMware Aria](../README.md) project. From cad6e00770d6c2d124dbe0be11523f66c8514f79 Mon Sep 17 00:00:00 2001 From: Ivan Zdravkov Date: Fri, 20 Sep 2024 15:06:44 +0300 Subject: [PATCH 07/10] nvm linked --- infrastructure/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/readme.md b/infrastructure/readme.md index d9bfea86f..bc17878c8 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -45,7 +45,7 @@ Before proceeding, make sure you have the following installed on your system: - [Docker Compose](https://docs.docker.com/compose/install) - [Open JDK 17](https://openjdk.org/install/) - [Maven](https://maven.apache.org/) -- [NodeJS 14.21.03](https://nodejs.org/en/download/package-manager) - Use the nvm version for your OS. +- [NodeJS 14.21.03](https://nodejs.org/en/download/package-manager) - Recommended to use [nvm](https://github.com/nvm-sh/nvm) to manage Node versions. - [npm 6.14.18](https://nodejs.org/en/download/package-manager) - Should be bundled with `NodeJS`. For Linux, besides Docker, you can use GitLab Runner's [Dockerfile](/infrastructure/gitlab-runner/Dockerfile) RUN commands to setup your environment. From 5fd09b10b8eaa9eec3ba1fccc58da7e9de414b2e Mon Sep 17 00:00:00 2001 From: Venelin Bakalov Date: Tue, 8 Oct 2024 14:44:56 +0300 Subject: [PATCH 08/10] Update keystore generation procedure --- .../Setting Up Local Environment.md | 52 ++++++++++++------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/docs/versions/latest/General/Getting Started/Setting Up Local Environment.md b/docs/versions/latest/General/Getting Started/Setting Up Local Environment.md index 80a56069e..96cd79f00 100644 --- a/docs/versions/latest/General/Getting Started/Setting Up Local Environment.md +++ b/docs/versions/latest/General/Getting Started/Setting Up Local Environment.md @@ -39,33 +39,49 @@ There are several things that need to be in place before you can use the Build T #### Java Keystore -Java keystore used for signing packages build time. +Java keystore is used for signing packages build time. -```shell -# Create new Keystore -keytool -keystore package.jks -genkey -alias _dunesrsa_alias_ -storepass 'VMware1!' -keyalg RSA +#### Create private key and certificate -# Delete default alias -keytool -delete -alias _dunesrsa_alias_ -keystore package.jks -storepass 'VMware1!' +The process creates an archive called **archetype.keystore-1.0.0** (artifact name + version) containing the generated files (**archetype.keystore**, **cert.pem**, **private_key.pem** ). The archive needs to be deployed on the artifact manager. -# Generate new Key -keytool -genkey -keyalg RSA -keysize 2048 -alias _dunesrsa_alias_ -keystore package.jks -storepass 'VMware1!' -validity 3650 -dname 'CN=Project,OU=Department,O=Company,L=City,ST=State,C=XX,emailAddress=administrator@vsphere.local' +```sh +mkdir -p ~/cert/archetype.keystore-1.0.0 +cd ~/cert/archetype.keystore-1.0.0 -## Optional ## +## Create the certificates and fill in the required country,state,location,organization details ... +openssl req -newkey rsa:2048 -new -x509 -days 3650 -keyout private_key.pem -out cert.pem +keytool -genkey -v -keystore archetype.keystore -alias _dunesrsa_alias_ -keyalg RSA -keysize 2048 -validity 10000 -# Generate Certificate Signing Request -keytool -certreq -alias _dunesrsa_alias_ -keypass 'VMware1!' -keystore package.jre -storepass 'VMware1!' -file packageCertRequest.csr +cd ~/cert +zip archetype.keystore-1.0.0.zip -r archetype.keystore-1.0.0 +``` +`Note:` Its very important to note that "Email" field should be EMPTY, otherwise the vRO import will break with 400 OK error -# Import the signed certificate -keytool -importcert -alias _dunesrsa_alias_ -keypass 'VMware1!' -file packageCertRequest.crt -keystore package.jks -storepass 'VMware1!' +`Note:` JKS is a propriatary format specific to the particular JVM provider. When running above commands, ensure the keytool used is the one under the JVM that Maven would use (check with `mvn -v`). -# Export/Backup Certificate -keytool -exportcert -alias _dunesrsa_alias_ -keystore package.jks -storepass 'VMware1!' -file packageCertExport -``` +#### Deploy the keystore artifact -> **Note**: Mind the single quotes in the examples above on Windows - those might be part of the passowrd depending on which interpreter (shell) you are using. Correct the string literal and escaping appropriately for your case. +The artifact should be deployed to any path as long as the **settings.xml** file points to it. -**Note**: JKS is a propriatary format specific to the particular JVM provider. When running above commands, ensure the keytool used is the one under the JVM that Maven would use (check with `mvn -v`). +Example: +- artifact group ID: com.clientname.build +- artifact ID: archetype.keystore +- artifact version: 1.0.0 +- **keystorePassword** and **vroKeyPass** passwords need to be replaced with the values used during the key generation process above +- settings section: +```xml + + com.clientname.build + archetype.keystore + target/${keystoreArtifactId}-${keystoreVersion}/archetype.keystore + 1.0.0 + {{keystorePassword}} + target/${keystoreArtifactId}-${keystoreVersion}/private_key.pem + target/${keystoreArtifactId}-${keystoreVersion}/cert.pem + {{vroKeyPass}} + +``` #### Global Configuration (*settings.xml*) From 7eaaf1b15dd0167fe251d30e91524220dd0f8d5e Mon Sep 17 00:00:00 2001 From: Venelin Bakalov Date: Tue, 8 Oct 2024 15:48:14 +0300 Subject: [PATCH 09/10] Reflect comments on settings.xml setup Signed-off-by: Venelin Bakalov --- infrastructure/.m2/settings.xml | 17 ++++++++++++++--- infrastructure/readme.md | 10 +++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/infrastructure/.m2/settings.xml b/infrastructure/.m2/settings.xml index 79697daa5..6e71244b5 100644 --- a/infrastructure/.m2/settings.xml +++ b/infrastructure/.m2/settings.xml @@ -2,10 +2,15 @@ - nexus + releases admin VMware1! + + snapshots + admin + VMware1! + @@ -18,10 +23,16 @@ nexus + + + http://infra.corp.local/nexus/repository/maven-releases/ + http://infra.corp.local/nexus/repository/maven-snapshots/ + + releases - pscoe + maven-releases http://infra.corp.local/nexus/repository/maven-releases/ true @@ -32,7 +43,7 @@ snapshots - pscoe + maven-snapshots http://infra.corp.local/nexus/repository/maven-snapshots/ false diff --git a/infrastructure/readme.md b/infrastructure/readme.md index bc17878c8..3f3d2cf7c 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -253,10 +253,10 @@ To get started, follow the steps below: - echo "GROUP_ID=$(mvn help:evaluate -Dexpression=project.groupId -q -DforceStdout)" >> build.env - echo "ARTIFACT_ID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)" >> build.env - echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> build.env - artifacts: - expire_in: 3 hours - reports: - dotenv: build.env + ## artifacts: + ## expire_in: 3 hours + ## reports: + ## dotenv: build.env build: stage: build @@ -266,7 +266,7 @@ To get started, follow the steps below: test: stage: test script: - - mvn test + - mvn -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository test install: stage: install From 608211a7c8e1017d6e55a66ecb4e063b31831bdb Mon Sep 17 00:00:00 2001 From: Venelin Bakalov Date: Wed, 9 Oct 2024 15:45:33 +0300 Subject: [PATCH 10/10] Update local repo maven option Signed-off-by: Venelin Bakalov --- infrastructure/readme.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/infrastructure/readme.md b/infrastructure/readme.md index 3f3d2cf7c..ad1b2e567 100755 --- a/infrastructure/readme.md +++ b/infrastructure/readme.md @@ -231,13 +231,15 @@ To get started, follow the steps below: - install variables: + LOCAL_REPO: >- + -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository BUILD_OPTS: >- -Dhttps.protocols=TLSv1.2 - -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository + $LOCAL_REPO -DskipTests=true DEPLOY_OPTS: >- -Dhttps.protocols=TLSv1.2 - -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository + $LOCAL_REPO -DskipTests=true -Dbuild.number=$CI_PIPELINE_IID -Dsurefire.useSystemClassLoader=false @@ -250,13 +252,13 @@ To get started, follow the steps below: dynamic_variables: stage: setup script: - - echo "GROUP_ID=$(mvn help:evaluate -Dexpression=project.groupId -q -DforceStdout)" >> build.env - - echo "ARTIFACT_ID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)" >> build.env - - echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> build.env - ## artifacts: - ## expire_in: 3 hours - ## reports: - ## dotenv: build.env + - echo "GROUP_ID=$(mvn help:evaluate $LOCAL_REPO -Dexpression=project.groupId -q -DforceStdout)" >> build.env + - echo "ARTIFACT_ID=$(mvn help:evaluate $LOCAL_REPO -Dexpression=project.artifactId -q -DforceStdout)" >> build.env + - echo "PROJECT_VERSION=$(mvn help:evaluate $LOCAL_REPO -Dexpression=project.version -q -DforceStdout)" >> build.env + artifacts: + expire_in: 3 hours + reports: + dotenv: build.env build: stage: build @@ -266,7 +268,7 @@ To get started, follow the steps below: test: stage: test script: - - mvn -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository test + - mvn $LOCAL_REPO test install: stage: install