CDK For Terraform: MS Hosted Windows Build Agent

CDK For Terraform: MS Hosted Windows Build Agent

Greetings my fellow Technology Advocates and Specialists.

This is Chapter #3 of my Terraform CDK (Cloud Development Kit) Series.

In this Session, I will walk you through If CDK (Cloud Development Kit) for Terraform is available in Microsoft Hosted Windows Build Agent.

OBJECTIVES:-

#
TOPICS

1.
If Chocolatey Package Manager is installed in Microsoft Hosted Windows Build Agent.

2.
If Terraform is installed in Microsoft Hosted Windows Build Agent. If not, Pipeline will install and then validate.

3.
If Node is installed in Microsoft Hosted Windows Build Agent.

4.
If Yarn is installed in Microsoft Hosted Windows Build Agent.

5.
If CDK for Terraform is installed in Microsoft Hosted Windows Build Agent. If not, Pipeline will install and then validate.

REQUIREMENTS:-

Azure Subscription.
Azure DevOps Organisation and Project.
Service Principal with Required RBAC ( Contributor) applied on Subscription or Resource Group(s).
Azure Resource Manager Service Connection in Azure DevOps.

CODE REPOSITORY:-

Terraform CDK Series with Azure:-

Greetings to my fellow Technology Advocates and Specialists.

In this Session, I talk and run Demo on TERRAFORM CDK SERIES in below TECH COMMUNITIES:-

NAME OF THE TECH COMMUNITIES:-

Global Azure – 2024

DATE
TOPICS
CONTENT

17.04.2024
CDK for Terraform – Quickstart
https://dev.to/arindam0310018/cdk-for-terraform-quickstart-1h3e

18.09.2022
CDK for Terraform – Setup & Configure
https://dev.to/arindam0310018/cdk-for-terraform-setup-configure-f42

05.05.2024
CDK For Terraform: MS Hosted Windows Build Agent
https://dev.to/arindam0310018/cdk-for-terraform-ms-hosted-windows-build-agent-3mon

05.05.2024
CDK For Terraform: MS Hosted Linux Build Agent
https://dev.to/arindam0310018/cdk-for-terraform-ms-hosted-linux-build-agent-1egi

So, here goes the answer:
“No, Terraform and CDK for Terraform DOES NOT come installed by default in Microsoft Hosted Windows Build Agent.”

PIPELINE CODE SNIPPET:-

AZURE DEVOPS YAML PIPELINE (azure-pipelines-with-CDK-For-Terraform-Win-v1.0.yml):-

trigger:
none

######################
#DECLARE VARIABLES:-
######################
variables:
ServiceConnection: amcloud-cicd-service-connection
BuildAgent_Win: windows-latest
envName: NonProd

#########################
# Declare Build Agents:-
#########################
pool:
vmImage: $(BuildAgent_Win)

###################
# Declare Stages:-
###################

stages:

– stage: TEST_CDK_FOR_TERRAFORM_ON_WINDOWS
jobs:
– job: TEST_CDK_FOR_TERRAFORM_ON_WINDOWS
displayName: TEST CDK FOR TERRAFORM ON WINDOWS
steps:

##################################################
# Test CDK for Terraform in Windows Build Agent:-
##################################################
– task: AzureCLI@2
displayName: Test CDK for Terraform on Windows
inputs:
azureSubscription: $(ServiceConnection)
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
echo “##########################################################”
$choco_ver = choco -v
echo “The latest chocolatey version installed is: $choco_ver”
echo “##########################################################”

echo “Terraform is NOT INSTALLED!.”
echo ” Proceed to installation…”
echo “##########################################################”
choco install terraform -y
$tf_validate_install = terraform -v
echo “##########################################################”
echo “The latest terraform version installed is: $tf_validate_install”
echo “##########################################################”

$node_ver = node –version
echo “The latest node version installed is: $node_ver”
echo “##########################################################”

$yarn_ver = yarn –version
echo “The latest yarn version installed is: $yarn_ver”
echo “##########################################################”

echo “CDK for Terraform is NOT INSTALLED!.”
echo “Proceed to installation…”
npm install –global cdktf-cli@latest
npm install @cdktf/provider-azurerm
echo “##########################################################”
$cdktf_validate_install = cdktf –version
echo “The latest cdktf version installed is: $cdktf_validate_install”
echo “##########################################################”

Now, let me explain each part of YAML Pipeline for better understanding.

PART #1:-

BELOW FOLLOWS PIPELINE VARIABLES CODE SNIPPET:-

######################
#DECLARE VARIABLES:-
######################
variables:
ServiceConnection: amcloud-cicd-service-connection
BuildAgent_Win: windows-latest
envName: NonProd

NOTE:-

1. Please change the values of the variables accordingly.

2. The entire YAML pipeline is build using Variables. No Values are Hardcoded.

PART #2:-

This is a Single Stage Pipeline – TEST_CDK_FOR_TERRAFORM_ON_WINDOWS (with 1 Pipeline Task):-

###################
# Declare Stages:-
###################

stages:

– stage: TEST_CDK_FOR_TERRAFORM_ON_WINDOWS
jobs:
– job: TEST_CDK_FOR_TERRAFORM_ON_WINDOWS
displayName: TEST CDK FOR TERRAFORM ON WINDOWS
steps:

PIPELINE TASK #1:-:-

1. Validate Chocolatey Package Manager.

2. Install and validate Terraform.

3. Validate Node.

4. Validate Yarn.

5. Install and validate CDK for Terraform.

##################################################
# Test CDK for Terraform in Windows Build Agent:-
##################################################
– task: AzureCLI@2
displayName: Test CDK for Terraform on Windows
inputs:
azureSubscription: $(ServiceConnection)
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
echo “##########################################################”
$choco_ver = choco -v
echo “The latest chocolatey version installed is: $choco_ver”
echo “##########################################################”

echo “Terraform is NOT INSTALLED!.”
echo ” Proceed to installation…”
echo “##########################################################”
choco install terraform -y
$tf_validate_install = terraform -v
echo “##########################################################”
echo “The latest terraform version installed is: $tf_validate_install”
echo “##########################################################”

$node_ver = node –version
echo “The latest node version installed is: $node_ver”
echo “##########################################################”

$yarn_ver = yarn –version
echo “The latest yarn version installed is: $yarn_ver”
echo “##########################################################”

echo “CDK for Terraform is NOT INSTALLED!.”
echo “Proceed to installation…”
npm install –global cdktf-cli@latest
npm install @cdktf/provider-azurerm
echo “##########################################################”
$cdktf_validate_install = cdktf –version
echo “The latest cdktf version installed is: $cdktf_validate_install”
echo “##########################################################”

NOW ITS TIME TO TEST!!!

TEST CASES:-

1. Pipeline executed successfully.

2. Terraform Installed and Validated Successfully.

3. Node and Yarn version validated Successfully.

4. CDK for Terraform Installed and Validated Successfully.

Hope You Enjoyed the Session!!!

Stay Safe | Keep Learning | Spread Knowledge

Leave a Reply

Your email address will not be published. Required fields are marked *