# Terraform CI Infra

This folder contains configuration for terraform based deployments.

## Nomad

Application orchestration - Nomad
- ./1n_nmd/

## AWS

Testbed deployment - Amazon AWS
- ./2n_aws_c5n/
- ./3n_aws_c5n/

### Getting Started

Tested setup:
- Install and configure prerequisities as specified.

- OPTIONAL: Enable logging
  Terraform does not have logging enabled by default, to enable logging
  to stderr, set up TF_LOG variable with specified loglevel:
  Available loglevels: TRACE, DEBUG, INFO, WARN, ERROR

    export TF_LOG="LOGLEVEL"

  It is also possible to store logged output to a file by setting up
  TF_LOG_PATH variable:
    export TF_LOG_PATH="path/to/logfile"

- Run Terraform in a given root module folder depending on chosen testbed
  topology. Terraform will deploy and configure instances and other resources,
  all of these resources can be later identified on AWS via Environment tag.
  By default, Environment tag "CSIT-AWS" is used.
  Example:
    cd fdio.infra.terraform/2n_aws_c5n/
    terraform init
    terraform apply

  This will deploy environment with default values, you can check the defaults
  in ./2n_aws_c5n/main.tf and ./2n_aws_c5n/variables.tf files

  If you would like to change some of these values, you can:
  1) Set up TF_VAR_* environment variables prior to running 'terraform apply':
      export TF_VAR_testbed_name="testbed1"

  2) Use '-var=varname=value' flag when running 'terraform apply':
      terraform apply -var=testbed_name=testbed1

  Note:
  Only variables defined in variables.tf file of the root module can be
  changed using these methods.

- Run the tests
  1) To run some tests use the VPP performance bootstrap script, e.g:
      cd ../resources/libraries/bash/entry
      ./bootstrap_vpp_perf.sh csit-vpp-perf-mrr-daily-master-2n-aws

  2) To run only selected tests based on TAGS, export environment variables
     before running the test suite and run a verify JOB, e.g:
      export GERRIT_EVENT_TYPE="comment-added"
      export GERRIT_EVENT_COMMENT_TEXT="1cAND64bANDmrrANDethip4-ip4base"
      ./bootstrap_vpp_perf.sh csit-vpp-perf-verify-master-2n-aws

- To clean up the AWS environment and remove all used resources, run:
    terraform destroy

## Azure

Testbed deployment - Microsoft Azure
- ./3n_azure_fsv2/