This project contains Terraform scripts to provision the Microsoft Azure Cloud infrastructure resources that are required to deploy SAS Viya 4 product offerings. Here is a list of resources that this project can create:
- Azure resource group(s): primary resource group and AKS resource group
- Virtual network, network security groups, and network security rules
- Managed Azure Kubernetes Service (AKS) cluster
- System and User AKS Node pools with required Labels and Taints
- Infrastructure to deploy SAS Viya CAS in SMP or MPP mode
- Storage options for SAS Viya - NFS Server (Standard) or Azure NetApp Files (HA)
- Azure DB for PostgreSQL, optional
- Azure Container Registry, optional
This project helps you to automate the cluster-provisioning phase of SAS Viya deployment. To learn about all phases and options of the SAS Viya deployment process, see Getting Started with SAS Viya and Azure Kubernetes Service in SAS Viya Operations.
Once the cloud resources are provisioned, use the viya4-deployment project to deploy SAS Viya 4 in your cloud environment. For more information about SAS Viya 4 requirements and documentation for the deployment process, refer to the SAS® Viya® 4 IT Operations Guide.
Use of these tools requires operational knowledge of the following technologies:
This project supports two options for running Terraform scripts:
-
Terraform installed on your local machine
-
Using a Docker container to run Terraform
For more information, see Docker Usage. Using Docker to run the Terraform scripts is recommended.
Access to an Azure Subscription and an Identity with the Contributor role are required.
- Terraform - v1.0.0
- kubectl - v1.21.7
- jq - v1.6
- Azure CLI - (optional - useful as an alternative to the Azure Portal) - v2.24.2
When you have prepared your environment with the prerequisites, you are ready to obtain and customize the Terraform scripts that will set up your Kubernetes cluster.
Run the following commands from a terminal session:
# clone this repo
git clone https://github.com/sassoftware/viya4-iac-azure
# move to the project directory
cd viya4-iac-azure
The Terraform process manages Microsoft Azure resources on your behalf. In order to do so, it needs your Azure account information and a user identity with the required permissions. See Terraform Azure Authentication for details.
Terraform scripts require variable definitions as input. Review and modify default values to meet your requirements. Create a file named
terraform.tfvars
to customize any input variable value documented in the CONFIG-VARS.md file.
To get started, you can copy one of the example variable definition files provided in the ./examples
folder. For more information about the
variables that are declared in each file, refer to the CONFIG-VARS.md file.
You have the option to specify variable definitions that are not included in terraform.tfvars
or to use a variable definition file other than
terraform.tfvars
. See Advanced Terraform Usage for more information.
Create and manage the required cloud resources. Perform one of the following steps, based on whether you are using Docker:
- run Terraform directly on your workstation
- run the Docker container (recommended)
See the Troubleshooting page for information about possible issues that you might encounter.
We welcome your contributions! See CONTRIBUTING.md for information about how to submit contributions to this project.
This project is licensed under the Apache 2.0 License.