See https://f5.com/cloud for product details and https://registry.terraform.io/providers/volterraedge/volterra/latest/docs for Terraform provider useage.
This project provides an example CI/CD pipeline Load-Balancer deployment using F5 Distributed Cloud. For a functioning sentence application, please deploy the two following terraform configurations that together create an MCN demo application that spans two sites. The app is deployed as containers inside AWS EKS and Azure AKS:
- https://github.com/s-archer/volterra-quickdemos/tree/main/azure_site_aks_sentence
- https://github.com/s-archer/volterra-quickdemos/tree/main/aws_site_eks_colors
Note that the terraform state is stored in an Azure Storage Account. The key for the account (and the passphrase for the automation certificate) are stored as 'Actions' Secrets in the Github Repo.
-
- clone the repo
-
- update the
vars.auto-tfvars
file to suit your environment
api_p12_file
should point to the F5 Distributed Cloud credential (.p12 certificate)
- update the
-
- Modify the
backend "azurerm"
configuration inmain.tf
- Modify the
-
- In your GitHub repo, go to
Settings
>Security
>Secrets and variables
>Actions
and create twoRepository Secrets
:
AZURE_BACKEND_KEY
containing the key value to access the Azure Storage backend (the one defined inmain.tf
)VES_P12_PASSWORD
containing the passphrase for the F5 Distributed Cloud credential (.p12 certificate)
- In your GitHub repo, go to
-
- initate the create workflow:
git branch dev
git checkout dev
- make a code change (e.g. change the filename
lb_origin.tf.delete
tolb_origin.tf
) git add .
git commit -m "my message"
git push
-
- In the Github UI, create a Pull Request to merge
Dev
intomain
- The
terrafom-plan.yml
Github Actions workflow will run and output the plan.
- In the Github UI, create a Pull Request to merge
-
- Complete the merge, which triggers the
terrafom-apply.yml
Github Actions workflow to run- Terraform will create the LB and Origin
- Complete the merge, which triggers the
-
- initate the delete workflow:
git checkout dev
- change the filename
lb_origin.tf
tolb_origin.tf.delete
git add .
git commit -m "my message"
git push
-
- In the Github UI, create a Pull Request to merge
Dev
intomain
.
- The
terrafom-plan.yml
Github Actions workflow will run and output the plan.
- In the Github UI, create a Pull Request to merge
-
- Complete the merge, which triggers the
terrafom-apply.yml
Github Actions workflow to run- Terraform will delete the LB and Origin
- Complete the merge, which triggers the