Skip to content

Commit 76feab1

Browse files
committed
Use custom Terraform provider release to generate schema.json.
Signed-off-by: Cem Mergenci <cmergenci@gmail.com>
1 parent fd908a6 commit 76feab1

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

Makefile

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ build.init: $(UP)
158158
# Setup Terraform for fetching provider schema
159159
TERRAFORM := $(TOOLS_HOST_DIR)/terraform-$(TERRAFORM_VERSION)
160160
TERRAFORM_WORKDIR := $(WORK_DIR)/terraform
161+
TERRAFORM_CLI_CONFIG_FILE := $(TERRAFORM_WORKDIR)/.terraformrc-custom
162+
TERRAFORM_PROVIDER := $(TOOLS_HOST_DIR)/registry.terraform.io/$(TERRAFORM_PROVIDER_SOURCE)/$(TERRAFORM_PROVIDER_VERSION)/$(SAFEHOST_PLATFORM)/terraform-provider-aws
163+
TERRAFORM_PROVIDER_RELEASE := v$(TERRAFORM_PROVIDER_VERSION)-upjet
161164
TERRAFORM_PROVIDER_SCHEMA := config/schema.json
162165

163166
$(TERRAFORM):
@@ -169,12 +172,21 @@ $(TERRAFORM):
169172
@rm -fr $(TOOLS_HOST_DIR)/tmp-terraform
170173
@$(OK) installing terraform $(HOSTOS)-$(HOSTARCH)
171174

172-
$(TERRAFORM_PROVIDER_SCHEMA): $(TERRAFORM)
175+
$(TERRAFORM_PROVIDER):
176+
@$(INFO) installing terraform provider $(SAFEHOST_PLATFORM)
177+
@mkdir -p $$(dirname $(TERRAFORM_PROVIDER))
178+
@curl -fsSL https://github.com/upbound/terraform-provider-aws/releases/download/$(TERRAFORM_PROVIDER_RELEASE)/terraform-provider-aws_$(TERRAFORM_PROVIDER_RELEASE)_$(SAFEHOST_PLATFORM).zip -o $(TERRAFORM_PROVIDER).zip
179+
@unzip $(TERRAFORM_PROVIDER).zip -d $$(dirname $(TERRAFORM_PROVIDER))
180+
@rm -fr $(TERRAFORM_PROVIDER).zip
181+
@$(OK) installing terraform provider $(SAFEHOST_PLATFORM)
182+
183+
$(TERRAFORM_PROVIDER_SCHEMA): $(TERRAFORM) $(TERRAFORM_PROVIDER)
173184
@$(INFO) generating provider schema for $(TERRAFORM_PROVIDER_SOURCE) $(TERRAFORM_PROVIDER_VERSION)
174185
@mkdir -p $(TERRAFORM_WORKDIR)
175186
@echo '{"terraform":[{"required_providers":[{"provider":{"source":"'"$(TERRAFORM_PROVIDER_SOURCE)"'","version":"'"$(TERRAFORM_PROVIDER_VERSION)"'"}}],"required_version":"'"$(TERRAFORM_VERSION)"'"}]}' > $(TERRAFORM_WORKDIR)/main.tf.json
176-
@$(TERRAFORM) -chdir=$(TERRAFORM_WORKDIR) init -upgrade > $(TERRAFORM_WORKDIR)/terraform-logs.txt 2>&1
177-
@$(TERRAFORM) -chdir=$(TERRAFORM_WORKDIR) providers schema -json=true > $(TERRAFORM_PROVIDER_SCHEMA) 2>> $(TERRAFORM_WORKDIR)/terraform-logs.txt
187+
@echo 'provider_installation { filesystem_mirror { path = "'"$(TOOLS_HOST_DIR)"'", include = ["hashicorp/aws"] }, direct { exclude = ["hashicorp/aws"] } }' > $(TERRAFORM_CLI_CONFIG_FILE)
188+
@TF_CLI_CONFIG_FILE=$(TERRAFORM_CLI_CONFIG_FILE) $(TERRAFORM) -chdir=$(TERRAFORM_WORKDIR) init -upgrade > $(TERRAFORM_WORKDIR)/terraform-logs.txt 2>&1
189+
@TF_CLI_CONFIG_FILE=$(TERRAFORM_CLI_CONFIG_FILE) $(TERRAFORM) -chdir=$(TERRAFORM_WORKDIR) providers schema -json=true > $(TERRAFORM_PROVIDER_SCHEMA) 2>> $(TERRAFORM_WORKDIR)/terraform-logs.txt
178190
@$(OK) generating provider schema for $(TERRAFORM_PROVIDER_SOURCE) $(TERRAFORM_PROVIDER_VERSION)
179191

180192
pull-docs:

0 commit comments

Comments
 (0)