Introduction
This document covers both Integrated Edge Cloud(IEC) Type 1 & 2.
Integrated Edge Cloud (IEC) focuses on the multi-architecture based solution on the Edge and Cloud computing areas. In this document, we will give an overview of IEC testing done in CI/CD.
This document is a successor of IEC Test Document R1.
Testing of the IEC platform is done in CI/CD using the validation labs described here.
The block diagram below represents how the 'terraform' template uses the join token to create a multi-node cluster. Once the terraform process is over, the test.sh script is run to validate the cluster set-up. If the setup was successful, the script must return the list of nodes.
CI/CD process :
The Jenkins freestyle job waits for events from the Gerrit-Event trigger plugin and initializes the terraform process. Once the process is done, a post-build task is used to push the build log to the nexus server. The following are the steps to set up the CI/CD job.
- Add Gerrit credentials under Manage Jenkins > Manage credentials > Add new credentials. Enter your Gerrit user name and password.
- Install Gerrit trigger plugin & post-build task plugin from > Manage Jenkins > Manage plugins > Available plugins.
- Create a new freestyle job and add your Gerrit account in the Source Code Management section. Enter the repository URL and select the credentials that were added in step 1.
- Add the following to the shell script under the 'Build' section. The following scripts are used to install terraform, exports TF_VAR for terraform purposes, installs LFtools, and initializes the terraform init, plan and apply processes.
wget https://releases.hashicorp.com/terraform/0.14.9/terraform_0.14.9_linux_amd64.zip unzip terraform_0.14.9_linux_amd64.zip sudo mv terraform /usr/local/bin/ terraform --help export TF_VAR_aws_region="us-east-2" export TF_VAR_aws_ami="ami-026141f3d5c6d2d0c" export TF_VAR_aws_instance="t4g.medium" export TF_VAR_vpc_id="" export TF_VAR_aws_subnet_id="" export TF_VAR_access_key="" export TF_VAR_secret_key="" export TF_LOG="TRACE" export TF_LOG_PATH="./tf.log" sudo apt-get update
sudo apt-get -y install python3-pip curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh export CRYPTOGRAPHY_DONT_BUILD_RUST=1 apt-get install build-essential libssl-dev libffi-dev pip3 install lftools cd /var/jenkins_home/workspace/gerrit-akraino/src/foundation/microk8s terraform init terraform plan terraform apply -auto-approve - Add the following to the post-build task. The post-build script is for pushing the build's log to the nexus server. Configure the SILO,
JENKINS_HOSTNAME, JOB_NAME etc.
echo "post build tasks" cat /var/jenkins_home/workspace/gerrit-akraino/src/foundation/microk8s/tf.log echo $BUILD_NUMBER NEXUS_URL=https://nexus.akraino.org SILO=gopaddle JENKINS_HOSTNAME=<hostName/IP> JOB_NAME=gerrit-akraino BUILD_URL="${JENKINS_HOSTNAME}/job/${JOB_NAME}/${BUILD_NUMBER}/" NEXUS_PATH="${SILO}/job/${JOB_NAME}/${BUILD_NUMBER}" lftools deploy logs $NEXUS_URL $NEXUS_PATH $BUILD_URL echo "Logs uploaded to $NEXUS_URL/content/sites/logs/$NEXUS_PATH"
The following steps are to configure the Gerrit-trigger plugin.
Create a folder ~/.ssh
Generate ssh key using ssh-keygen -m PEM
Register the id_rsa.pud key in the Gerrit account under settings > ssh keys > add new keys
Once the key is registered with the Gerrit account, test the connectivity with the following command.
ssh -p 29418 <UserName>@<HostName>