jason-johnson / azure-pipelines-tasks-terraform

Azure Pipelines extension for Terraform
MIT License
121 stars 52 forks source link

Feature: Support workload identity federation and managed identity service connections #359

Closed jaredfholgate closed 11 months ago

jaredfholgate commented 11 months ago

This PR is to support service connections configured for managed identity or workload identity federation.

This will be a non-breaking change for existing users leveraging the service principal scheme.

Testing Evidence:

In order to run this test, the following steps were followed:

  1. Compiled and packaged the extension as per the steps HERE.
  2. Removed the public extension from the organisation.
  3. Published the extension to the market place, shared it to the organisation and installed it in the organisation.
  4. Deployed the Service Connection, Managed Identity, etc using this example code: https://github.com/Azure-Samples/azure-devops-terraform-oidc-ci-cd
  5. Updated the oidc.yml pipeline to include the Terraform task steps (see below).
  6. Ran the pipeline.

Pipeline Code

image

Test Extension

image

Service Connection

image

Terraform Init

image

Terraform Apply

image
jaredfholgate commented 11 months ago

This PR replaces: https://github.com/jason-johnson/azure-pipelines-tasks-terraform/pull/354

jason-johnson commented 11 months ago

Looks good, all tests passing.