From d978af14177d3b2ab6bb089990607db82d834c4e Mon Sep 17 00:00:00 2001 From: Mads Hartmann Date: Wed, 26 Oct 2022 07:50:41 +0000 Subject: [PATCH] Use dev/preview:create-preview in Werft --- .werft/jobs/build/prepare.ts | 41 +++++++++++++++++++----------------- dev/preview/BUILD.yaml | 20 +++++++++--------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/.werft/jobs/build/prepare.ts b/.werft/jobs/build/prepare.ts index 755ae80934600e..37758fb1da3b23 100644 --- a/.werft/jobs/build/prepare.ts +++ b/.werft/jobs/build/prepare.ts @@ -101,33 +101,36 @@ async function createVM(werft: Werft, config: JobConfig) { const cpu = config.withLargeVM ? 12 : 6; const memory = config.withLargeVM ? 24 : 12; - // set some common vars for TF - // We pass the GCP credentials explicitly, otherwise for some reason TF doesn't pick them up - const commonVars = `GOOGLE_BACKEND_CREDENTIALS=${GCLOUD_SERVICE_ACCOUNT_PATH} \ - GOOGLE_APPLICATION_CREDENTIALS=${GCLOUD_SERVICE_ACCOUNT_PATH} \ - TF_VAR_kubeconfig_path=${GLOBAL_KUBECONFIG_PATH} \ - TF_VAR_preview_name=${config.previewEnvironment.destname} \ - TF_VAR_vm_cpu=${cpu} \ - TF_VAR_vm_memory=${memory}Gi \ - TF_VAR_vm_storage_class="longhorn-gitpod-k3s-202209251218-onereplica"` + // -replace=... forces recreation of the resource + const planArgs = config.cleanSlateDeployment ? "-replace=harvester_virtualmachine.harvester" : "" + + const environment = { + // We pass the GCP credentials explicitly, otherwise for some reason TF doesn't pick them up + "GOOGLE_BACKEND_CREDENTIALS": GCLOUD_SERVICE_ACCOUNT_PATH, + "GOOGLE_APPLICATION_CREDENTIALS": GCLOUD_SERVICE_ACCOUNT_PATH, + "TF_VAR_kubeconfig_path": GLOBAL_KUBECONFIG_PATH, + "TF_VAR_preview_name": config.previewEnvironment.destname, + "TF_VAR_vm_cpu": `${cpu}`, + "TF_VAR_vm_memory": `${memory}Gi`, + "TF_VAR_vm_storage_class": "longhorn-gitpod-k3s-202209251218-onereplica", + "TF_CLI_ARGS_plan": planArgs + } + + const variables = Object + .entries(environment) + .filter(([_, value]) => value.length > 0) + .map(([key, value]) => `${key}="${value}"`) + .join(" ") if (config.cleanSlateDeployment) { werft.log(prepareSlices.BOOT_VM, "Cleaning previously created VM"); - // -replace=... forces recreation of the resource - await execStream(`${commonVars} \ - TF_CLI_ARGS_plan="-replace=harvester_virtualmachine.harvester" \ - ./dev/preview/workflow/preview/deploy-harvester.sh`, - {slice: prepareSlices.BOOT_VM} - ); + await execStream(`${variables} leeway run dev/preview:create-preview`, {slice: prepareSlices.BOOT_VM}); } werft.log(prepareSlices.BOOT_VM, "Creating VM"); try { - await execStream(`${commonVars} \ - ./dev/preview/workflow/preview/deploy-harvester.sh`, - {slice: prepareSlices.BOOT_VM} - ); + await execStream(`${variables} leeway run dev/preview:create-preview`, {slice: prepareSlices.BOOT_VM}); } catch (err) { werft.currentPhaseSpan.setAttribute("preview.created_vm", false); werft.fail(prepareSlices.BOOT_VM, new Error(`Failed creating VM: ${err}`)) diff --git a/dev/preview/BUILD.yaml b/dev/preview/BUILD.yaml index 4fc76cd10ff173..2c0db330e05521 100644 --- a/dev/preview/BUILD.yaml +++ b/dev/preview/BUILD.yaml @@ -11,22 +11,22 @@ scripts: - name: create-preview description: Provisions a new preview environment script: | - export TF_VAR_dev_kube_path="/home/gitpod/.kube/config" - export TF_VAR_dev_kube_context="dev" - export TF_VAR_harvester_kube_path="/home/gitpod/.kube/config" - export TF_VAR_harvester_kube_context="harvester" - export TF_VAR_preview_name="$(previewctl get-name)" - export TF_VAR_vm_cpu=6 - export TF_VAR_vm_memory=12Gi - export TF_VAR_vm_storage_class="longhorn-gitpod-k3s-202209251218-onereplica" + export TF_VAR_dev_kube_path="${TF_VAR_dev_kube_path:-/home/gitpod/.kube/config}" + export TF_VAR_dev_kube_context="${TF_VAR_dev_kube_context:-dev}" + export TF_VAR_harvester_kube_path="${TF_VAR_harvester_kube_path:-/home/gitpod/.kube/config}" + export TF_VAR_harvester_kube_context="${TF_VAR_harvester_kube_context:-harvester}" + export TF_VAR_preview_name="${TF_VAR_preview_name:-$(previewctl get-name)}" + export TF_VAR_vm_cpu="${TF_VAR_vm_cpu:-6}" + export TF_VAR_vm_memory="${TF_VAR_vm_memory:-12Gi}" + export TF_VAR_vm_storage_class="${TF_VAR_vm_storage_class:-longhorn-gitpod-k3s-202209251218-onereplica}" ./workflow/preview/deploy-harvester.sh - name: delete-preview description: Delete an existing preview environment script: | export DESTROY=true - export TF_VAR_kubeconfig_path="/home/gitpod/.kube/config" - export TF_VAR_preview_name="$(previewctl get-name)" + export TF_VAR_kubeconfig_path="${TF_VAR_kubeconfig_path:-/home/gitpod/.kube/config}" + export TF_VAR_preview_name="${TF_VAR_preview_name:-$(previewctl get-name)}" ./workflow/preview/deploy-harvester.sh - name: deploy-gitpod