You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Set the values for the variables by writing to the var file - azure-secret.tfvars
az login
az account list
# note the id as <SUBSCRIPTION_ID> and tenantId as <TENANT_ID> from the output of previous command# generate an azure service principal with contributor permissions, if you don't already have one:
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/<SUBSCRIPTION_ID>"# note the appId as <CLIENT_ID> and password as <CLIENT_SECRET> from the output of previous command# assign user access administrator role permissions
az ad sp show --id "<appId from previous step>"
az role assignment create --role "User Access Administrator" --assignee-object-id "<objectId from previous step>"# copy the template variable filecd infra/azure
cp azure.tfvars azure-secret.tfvars
# subscription, tenant and service principal variables# substitute the value for <SUBSCRIPTION_ID> by replacing PLACEHOLDER in the following command:
sed -i 's|<SUBSCRIPTION_ID>|PLACEHOLDER|g' azure-secret.tfvars
# for e.g., the command to substitute the value for <SUBSCRIPTION_ID> with 794a7d2a-565a-4ebd-8dd9-0439763e6b55 as PLACEHOLDER looks like this:# sed -i 's|<SUBSCRIPTION_ID>|794a7d2a-565a-4ebd-8dd9-0439763e6b55|g' azure-secret.tfvars# substitute the value for <TENANT_ID> by replacing PLACEHOLDER in the following command:
sed -i 's|<TENANT_ID>|PLACEHOLDER|g' azure-secret.tfvars
# substitute the value for <CLIENT_ID> by replacing PLACEHOLDER in the following command:
sed -i 's|<CLIENT_ID>|PLACEHOLDER|g' azure-secret.tfvars
# substitute the value for <CLIENT_SECRET> by replacing PLACEHOLDER in the command
sed -i 's|<CLIENT_SECRET>|PLACEHOLDER|g' azure-secret.tfvars
# prefix, environment and location variables# these 3 variables help in naming the azure resources# for e.g., resource group name: <PREFIX>-<ENVIRONMENT>-rg01# for e.g., aks cluster name: <PREFIX>-<ENVIRONMENT>-aks01# substitute the value for <PREFIX> by replacing PLACEHOLDER in the following command:# PLACEHOLDER e.g. "fortosi" or "cicd" etc.
sed -i 's|<PREFIX>|PLACEHOLDER|g' azure-secret.tfvars
# substitute the value for <ENVIRONMENT> by replacing PLACEHOLDER in the command# PLACEHOLDER e.g. "demo" or "play" or "poc" or "dev" or "test" etc.
sed -i 's|<ENVIRONMENT>|PLACEHOLDER|g' azure-secret.tfvars
# substitute the value for <LOCATION> by replacing PLACEHOLDER in the command# PLACEHOLDER e.g. "australiaeast" or "southeastasia" or "centralus" or "westeurope" etc.# run this command to know more:# az account list-locations -o table
sed -i 's|<LOCATION>|PLACEHOLDER|g' azure-secret.tfvars
# substitute the value for <NODE_VM_SIZE> by replacing PLACEHOLDER in the command# PLACEHOLDER e.g. "Standard_B2s" or "Standard_B2ms" or "Standard_DS2_v2" etc. with ssd disk capabilities indicated by 's'# run this command to know more:# az vm list-sizes --location "<LOCATION>" -o table
sed -i 's|<NODE_VM_SIZE>|PLACEHOLDER|g' azure-secret.tfvars
# substitute the value for <NODE_COUNT> by replacing PLACEHOLDER in the command# PLACEHOLDER e.g. 1 or 2 etc.# choose 1 if you are learning and then later scale out more from azure portal
sed -i 's|<NODE_COUNT>|PLACEHOLDER|g' azure-secret.tfvars
# verify the auzure-secret.tfvars file by displaying its content
cat azure-secret.tfvars
# output should be something like this
subscription_id="794a7d2a-565a-4ebd-8dd9-0439763e6b55"
tenant_id="<removed as secret>"
client_id="<removed as secret>"
client_secret="<removed as secret>"
prefix="fortosi"
environment="demo"
location="australiaeast"
vm_size="Standard_B2s"
vm_count=1
# if there is a correction needed then use text editor 'nano' to update the file and then press ctrl+x after you are done editing
nano azure-secret.tfvars
- Deploy infrastructure
cd infra/azure
# initialise terraform providers
terraform init
# execute infrastructure provisioning command
terraform apply -var-file=azure-secret.tfvars
# if terraform throws any error, it may be due to dns name conflicts with already deployed infrastructure in the chosen azure location.# try to workaround these errors by changing the values of the variable - prefix or environment or location in the variable values file - azure-secret.tfvars# use text editor 'nano' to update the file and then press ctrl+x after you are done editing
nano azure-secret.tfvars
Browse the AKS cluster
az aks get-credentials -n <PREFIX>-<ENVIRONMENT>-aks01 -g <PREFIX>-<ENVIRONMENT>-rg01
az aks browse -n <PREFIX>-<ENVIRONMENT>-aks01 -g <PREFIX>-<ENVIRONMENT>-rg01
Destroy environment
cd infra/azure
terraform destroy -var-file=azure-secret.tfvars