From b08111d089161103d759d2e14552efe8a804f292 Mon Sep 17 00:00:00 2001 From: Israel Fruchter Date: Thu, 8 Aug 2024 19:33:03 +0300 Subject: [PATCH] feature(gce_builder): update to use sct runner 1.8 * update gce_build to have versioned name for template and labels * add docs part, on how to update the runner image (cherry picked from commit 370abe155ad3dbbbf0f0a69fc775957404c7a3eb) --- docs/sct-runners.md | 24 ++++++++++++++++++++++++ sdcm/utils/gce_builder.py | 10 +++++----- vars/getJenkinsLabels.groovy | 8 ++++---- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/docs/sct-runners.md b/docs/sct-runners.md index 02287238ec..f0c4e135c1 100644 --- a/docs/sct-runners.md +++ b/docs/sct-runners.md @@ -22,3 +22,27 @@ hydra --execute-on-runner `cat sct_runner_ip` [Any hydra commands] hydra is syncing the whole SCT directory with rsync, try to make sure there's no huge files in SCT directory, because that would slow it down + + +### process of updating sct runner images + +1. update code in sct_runner.py, give it a new version number +2. Build all images + ```bash + + ./sct.py create-runner-image -c aws -r eu-west-2 -z a + + ./sct.py create-runner-image -c gce -r us-east1 -z a + SCT_GCE_PROJECT=gcp ./sct.py create-runner-image -c gce -r us-east1 -z a + SCT_GCE_PROJECT=gcp-local-ssd-latency ./sct.py create-runner-image -c gce -r us-east1 -z a + + ./sct.py create-runner-image -c azure -r eastus -z a + ``` +3. update version on `aws_builder.py` and `gce_builder.py` +4. build jenkins configuration with new sct runner image + ```bash + ./sct.py configure-jenkins-builders -c gce + ./sct.py configure-jenkins-builders -c aws + ``` + +5. update `vars/getJenkinsLabels.groovy` with the new labels created in step 1 diff --git a/sdcm/utils/gce_builder.py b/sdcm/utils/gce_builder.py index d9710d0ecf..6863d4a01f 100644 --- a/sdcm/utils/gce_builder.py +++ b/sdcm/utils/gce_builder.py @@ -65,7 +65,7 @@ instanceConfiguration.setRetentionTimeMinutesStr("6") instanceConfiguration.setLaunchTimeoutSecondsStr("300") instanceConfiguration.setRunAsUser("jenkins") -instanceConfiguration.setSshConfiguration(SshConfiguration.builder().customPrivateKeyCredentialsId("6e17c350-0a47-4a59-b0b9-7e64f1c35a65").build()) +instanceConfiguration.setSshConfiguration(SshConfiguration.builder().customPrivateKeyCredentialsId("user-jenkins_scylla_test_id_ed25519.pem").build()) gcpCloud.addConfiguration(instanceConfiguration) @@ -88,10 +88,10 @@ class GceBuilder: It creates a launch template based on sct-runner image, and adds configuration needed in Jenkins to use it """ + VERSION = 'v2' - def __init__(self, region: GceRegion, number=1): + def __init__(self, region: GceRegion): self.region = region - self.number = number self.jenkins_info = KeyStore().get_json("jenkins.json") self.runner = GceSctRunner(region_name=self.region.region_name, availability_zone="a") @@ -102,11 +102,11 @@ def __init__(self, region: GceRegion, number=1): @cached_property def name(self): # example: gce-sct-project-1-us-east1-qa-builder - return f"gce-{self.region.project}-{self.region.region_name}-qa-builder" + return f"gce-{self.region.project}-{self.region.region_name}-qa-builder-{self.VERSION}" @cached_property def jenkins_labels(self): - return f"gcp-{self.region.project}-builders-{self.region.region_name}-template" + return f"gcp-{self.region.project}-builders-{self.region.region_name}-template-{self.VERSION}" def _add_cloud_configuration_to_jenkins(self): click.echo(f"{self.region.project}: {self.region.region_name}: add_cloud_configuration_to_jenkins") diff --git a/vars/getJenkinsLabels.groovy b/vars/getJenkinsLabels.groovy index 003be6bfc3..eb718628ac 100644 --- a/vars/getJenkinsLabels.groovy +++ b/vars/getJenkinsLabels.groovy @@ -24,10 +24,10 @@ def call(String backend, String region=null, String datacenter=null, String loca 'aws-eu-central-1': 'aws-sct-builders-eu-central-1-v3-asg', 'aws-us-east-1' : 'aws-sct-builders-us-east-1-v3-asg', 'aws-us-west-2' : 'aws-sct-builders-us-west-2-v3-asg', - 'gce-us-east1': "${gcp_project}-builders-us-east1-template", - 'gce-us-west1': "${gcp_project}-builders-us-west1-template", - 'gce-us-central1': "${gcp_project}-builders-us-central1-template", - 'gce': "${gcp_project}-builders-us-east1-template", + 'gce-us-east1': "${gcp_project}-builders-us-east1-template-v2", + 'gce-us-west1': "${gcp_project}-builders-us-west1-template-v2", + 'gce-us-central1': "${gcp_project}-builders-us-central1-template-v2", + 'gce': "${gcp_project}-builders-us-east1-template-v2", 'aws': 'aws-sct-builders-eu-west-1-v3-asg', 'azure-eastus': 'aws-sct-builders-us-east-1-v3-asg']