How to parse Terraform Plan Status Code for your Spinnaker Pipeline Logic


Introduction

When using Armory's Terraform Plan stage - you can use SpEL (Pipeline Expression) to retrieve the exitcode. 

  • 0 = Succeeded with empty diff (no changes)
  • 1 = Error
  • 2 = Succeeded with non-empty diff (changes present)
${#stage("Terraform Plan").outputs.status.code}

The pipeline expression can be used in a "Check Preconditions" stage in order to assert a particular value for the status code before proceeding or terminating the pipeline. 

Alternatively, the expression can be used in the "Execution Options" under a "Manual Judgment" stage so you can bypass the Manual Judgement stage when you want to automatically apply a change.

Prerequisites

Armory Terraformer enabled

Instructions

Check out this video for a demonstration:

As Tested On Version

Armory 2.20+