From 7c1141874afb1c90262225ec80e9f81b00f00447 Mon Sep 17 00:00:00 2001 From: PoAn Yang Date: Wed, 10 Jul 2024 14:37:07 +0800 Subject: [PATCH] feat: support master branch terraform-provider-harvester Signed-off-by: PoAn Yang --- config.yml | 5 ++++- harvester_e2e_tests/fixtures/terraform.py | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/config.yml b/config.yml index fd0955ad9..b4743a339 100644 --- a/config.yml +++ b/config.yml @@ -31,7 +31,10 @@ image-cache-url: '' terraform-scripts-location: 'terraform_test_artifacts' # Rancher provider version, leave empty for the latest version. e.g. '' or '3.1.1'. terraform-provider-rancher: '' -# Harvester provider version, leave empty for the latest version. e.g. '' or '0.6.3'. +# Harvester provider version: +# '' for the latest released version. +# '0.0.0-dev' for the latest version from master branch. +# '0.6.3' for the specific version. terraform-provider-harvester: '' # Backup Target S3 diff --git a/harvester_e2e_tests/fixtures/terraform.py b/harvester_e2e_tests/fixtures/terraform.py index 5e0907475..84cd20841 100644 --- a/harvester_e2e_tests/fixtures/terraform.py +++ b/harvester_e2e_tests/fixtures/terraform.py @@ -257,6 +257,23 @@ def initial_provider(self, kubeconfig, provider_version): provider_source="harvester/harvester", provider_version=provider_version )) + if provider_version == "0.0.0-dev": + docker_plugin_path = "/root/.terraform.d/plugins/terraform.local/local" + docker_plugin_tf = "harvester/0.0.0-dev/linux_amd64/terraform-provider-harvester_v0.0.0-dev" + local_plugin_path = "~/.terraform.d/plugins/registry.terraform.io" + local_plugin_tf = "harvester/harvester/0.0.0-dev/linux_amd64" + rv = run( + f"rm -rf ~/.terraform.d/plugins/registry.terraform.io/harvester/harvester &&" + f" mkdir -p {local_plugin_path}/{local_plugin_tf} &&" + f" docker run --name harv-tf-master-head" + f" -v {local_plugin_path}/{local_plugin_tf}:/_tf" + f" rancher/terraform-provider-harvester:master-head-amd64" + f' bash -c "cp {docker_plugin_path}/{docker_plugin_tf} /_tf/" &&' + f" docker rm harv-tf-master-head", + shell=True, stdout=PIPE, stderr=PIPE, cwd=self.workdir + ) + assert not remove_ansicode(rv.stderr) and 0 == rv.returncode + return self.execute("init") def save_as(self, content, filename, ext=".tf"):