Last active
November 24, 2021 16:35
-
-
Save davidlu1001/e832038299fff99d4a4b2c6a75d71b78 to your computer and use it in GitHub Desktop.
Makefile for Terraform to support include/exclude
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PLAN_OPTIONS ?= | |
APPLY_OPTIONS ?= | |
EXCLUDE ?= | |
INCLUDE ?= | |
# For Terraform 0.12 (using `-no-color` to avoid dealing with terminal color) | |
define PLAN_OPTIONS_EXCLUDE | |
$(shell terraform show -no-color current.plan | perl -nle 'if (/\s# (.*?)\s/) {print $$1}' | grep -E -v '$(1)' | sed -e 's/^/-target="/g' -e 's/$$/"/g' | xargs) | |
endef | |
define PLAN_OPTIONS_INCLUDE | |
$(shell terraform show -no-color current.plan | perl -nle 'if (/\s# (.*?)\s/) {print $$1}' | grep -E '$(1)' | sed -e 's/^/-target="/g' -e 's/$$/"/g' | xargs) | |
endef | |
plan_exclude: | |
terraform plan -out current.plan $(strip $(call PLAN_OPTIONS_EXCLUDE,$(EXCLUDE)) | |
plan_include: | |
terraform plan -out current.plan $(strip $(call PLAN_OPTIONS_INCLUDE,$(INCLUDE))) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment