resources: # Automation scripts repo - name: az_vnet_tf_repo type: gitRepo integration: "drship_github" versionTemplate: sourceName: "devops-recipes/prov_azure_vnet_terraform" branch: master # Azure credentials - name: az_vnet_tf_creds type: integration integration: "drship_azure" # Terraform State - name: az_vnet_tf_state type: state # Output of Virtual Network provisioning - name: az_vnet_tf_info type: params versionTemplate: params: SEED: "initial_version" jobs: # Provision Azure Virtual Network with Terraform - name: prov_azure_vnet_tf type: runSh steps: - IN: az_vnet_tf_repo - IN: az_vnet_tf_state switch: off - IN: az_vnet_tf_creds switch: off - TASK: name: prov_vnet runtime: options: env: - resource_group_name: "demo_rg_tf" - resource_group_location: "eastus" - vnet_name: "demo_vnet_tf" - vnet_location: "eastus" - AZURE_SUBSCRIPTION_ID: "65fe9858-6094-445a-a5c0-50932470d6e1" script: - pushd $(shipctl get_resource_state "az_vnet_tf_repo") - export AZURE_CLIENT_ID=$(shipctl get_integration_resource_field az_vnet_tf_creds "appid") - export AZURE_CLIENT_SECRET=$(shipctl get_integration_resource_field az_vnet_tf_creds "password") - export AZURE_TENANT_ID=$(shipctl get_integration_resource_field az_vnet_tf_creds "tenant") - shipctl copy_file_from_resource_state az_vnet_tf_state terraform.tfstate . - shipctl replace terraform.tfvars - terraform init - terraform plan -var-file=terraform.tfvars - terraform apply -auto-approve -var-file=terraform.tfvars - OUT: az_vnet_tf_info overwrite: true - OUT: az_vnet_tf_state on_success: script: - shipctl put_resource_state_multi az_vnet_tf_info "versionName=$vnet_name" "resource_group_name=$resource_group_name" "nic_id=$(terraform output nic_id)" always: script: - shipctl copy_file_to_resource_state terraform.tfstate az_vnet_tf_state - popd flags: - azure_vnet - azure - terraform