@@ -386,7 +386,7 @@ local ExtensionsStep(with_e2e=true) =
386386 IMAGE_REGISTRY: local_registry,
387387 QEMU_EXTRA_DISKS: '1' ,
388388 SHORT_INTEGRATION_TEST: 'yes' ,
389- EXTRA_TEST_ARGS: '-talos.extensions.testtype= qemu' ,
389+ EXTRA_TEST_ARGS: '-talos.extensions.qemu' ,
390390 });
391391
392392 local step_targets = [extensions_build, extensions_artifacts, extensions_patch_manifest, e2e_extensions];
@@ -656,63 +656,84 @@ local capi_docker = Step('e2e-docker', depends_on=[load_artifacts], target='e2e-
656656});
657657local e2e_capi = Step('e2e-capi' , depends_on=[capi_docker], environment=creds_env_vars);
658658
659- local e2e_aws_prepare = Step(
660- 'cloud-images' ,
661- depends_on=[
662- load_artifacts,
663- ],
664- environment=creds_env_vars {
665- CLOUD_IMAGES_EXTRA_ARGS: '--name-prefix talos-e2e --target-clouds aws --architectures amd64 --aws-regions us-east-1' ,
666- },
667- extra_commands=[
668- 'make e2e-aws-prepare' ,
669- 'az login --service-principal -u "$${AZURE_CLIENT_ID}" -p "$${AZURE_CLIENT_SECRET}" --tenant "$${AZURE_TENANT_ID}"' ,
670- 'az storage blob upload-batch --overwrite -s _out --pattern "e2e-aws-generated/*" -d "${CI_COMMIT_SHA}${DRONE_TAG//./-}"' ,
671- ]
672- );
659+ local E2EAWS(target) =
660+ local extensions_artifacts = [step for step in ExtensionsStep(with_e2e=false )];
661+ local depends_on = if std.startsWith (target, 'nvidia' ) then [load_artifacts] + extensions_artifacts else [load_artifacts];
662+ local test_num_nodes = if std.startsWith (target, 'nvidia' ) then 4 else 6 ;
663+ local extra_test_args = if std.startsWith (target, 'nvidia' ) then '-talos.extensions.nvidia' else '' ;
664+
665+ local e2e_aws_prepare = Step(
666+ 'e2e-aws-prepare' ,
667+ depends_on=depends_on,
668+ environment=creds_env_vars {
669+ IMAGE_REGISTRY: local_registry,
670+ E2E_AWS_TARGET: target,
671+ },
672+ extra_commands=[
673+ 'az login --service-principal -u "$${AZURE_CLIENT_ID}" -p "$${AZURE_CLIENT_SECRET}" --tenant "$${AZURE_TENANT_ID}"' ,
674+ 'az storage blob upload-batch --overwrite -s _out --pattern "e2e-aws-generated/*" -d "${CI_COMMIT_SHA}${DRONE_TAG//./-}"' ,
675+ ]
676+ );
673677
674- local tf_apply = TriggerDownstream(
675- 'tf-apply' ,
676- 'e2e-talos-tf-apply' ,
677- ['siderolabs/contrib@main' ],
678- params=[
679- 'BUCKET_PATH=${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
680- 'TYPE=aws' ,
681- 'AWS_DEFAULT_REGION=us-east-1' ,
682- ],
683- depends_on=[e2e_aws_prepare],
684- );
678+ local tf_apply = TriggerDownstream(
679+ 'tf-apply' ,
680+ 'e2e-talos-tf-apply' ,
681+ ['siderolabs/contrib@main' ],
682+ params=[
683+ 'BUCKET_PATH=${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
684+ 'TYPE=aws' ,
685+ 'AWS_DEFAULT_REGION=us-east-1' ,
686+ ],
687+ depends_on=[e2e_aws_prepare],
688+ );
685689
686- local e2e_aws_tf_apply_post = Step(
687- 'e2e-aws-download-artifacts' ,
688- with_make=false ,
689- environment=creds_env_vars,
690- extra_commands=[
691- 'az login --service-principal -u "$${AZURE_CLIENT_ID}" -p "$${AZURE_CLIENT_SECRET}" --tenant "$${AZURE_TENANT_ID}"' ,
692- 'az storage blob download -f _out/e2e-aws-talosconfig -n e2e-aws-talosconfig -c ${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
693- 'az storage blob download -f _out/e2e-aws-kubeconfig -n e2e-aws-kubeconfig -c ${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
694- ],
695- depends_on=[tf_apply],
696- );
690+ local e2e_aws_tf_apply_post = Step(
691+ 'e2e-aws-download-artifacts' ,
692+ with_make=false ,
693+ environment=creds_env_vars,
694+ extra_commands=[
695+ 'az login --service-principal -u "$${AZURE_CLIENT_ID}" -p "$${AZURE_CLIENT_SECRET}" --tenant "$${AZURE_TENANT_ID}"' ,
696+ 'az storage blob download -f _out/e2e-aws-talosconfig -n e2e-aws-talosconfig -c ${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
697+ 'az storage blob download -f _out/e2e-aws-kubeconfig -n e2e-aws-kubeconfig -c ${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
698+ ],
699+ depends_on=[tf_apply],
700+ );
697701
698- local e2e_aws = Step('e2e-aws' , depends_on=[e2e_aws_tf_apply_post], environment=creds_env_vars);
702+ local e2e_aws = Step(
703+ 'e2e-aws' ,
704+ depends_on=[e2e_aws_tf_apply_post],
705+ environment=creds_env_vars {
706+ TEST_NUM_NODES: test_num_nodes,
707+ EXTRA_TEST_ARGS: extra_test_args,
708+ }
709+ );
699710
700- local tf_destroy = TriggerDownstream(
701- 'tf-destroy' ,
702- 'e2e-talos-tf-destroy' ,
703- ['siderolabs/contrib@main' ],
704- params=[
705- 'TYPE=aws' ,
706- 'AWS_DEFAULT_REGION=us-east-1' ,
707- ],
708- depends_on=[e2e_aws],
709- when={
710- status: [
711- 'failure' ,
712- 'success' ,
711+ local tf_destroy = TriggerDownstream(
712+ 'tf-destroy' ,
713+ 'e2e-talos-tf-destroy' ,
714+ ['siderolabs/contrib@main' ],
715+ params=[
716+ 'BUCKET_PATH=${CI_COMMIT_SHA}${DRONE_TAG//./-}' ,
717+ 'TYPE=aws' ,
718+ 'AWS_DEFAULT_REGION=us-east-1' ,
713719 ],
714- },
715- );
720+ depends_on=[e2e_aws],
721+ when={
722+ status: [
723+ 'failure' ,
724+ 'success' ,
725+ ],
726+ },
727+ );
728+
729+ local step_targets = [e2e_aws_prepare, tf_apply, e2e_aws_tf_apply_post, e2e_aws, tf_destroy];
730+ local targets = if std.startsWith (target, 'nvidia' ) then extensions_artifacts + step_targets else step_targets;
731+
732+ targets;
733+
734+
735+ local e2e_aws = [step for step in E2EAWS('default' )];
736+ local e2e_aws_nvidia_oss = [step for step in E2EAWS('nvidia-oss' )];
716737
717738local e2e_azure = Step('e2e-azure' , depends_on=[e2e_capi], environment=creds_env_vars);
718739local e2e_gcp = Step('e2e-gcp' , depends_on=[e2e_capi], environment=creds_env_vars);
@@ -727,11 +748,12 @@ local e2e_trigger(names) = {
727748
728749local e2e_pipelines = [
729750 // regular pipelines, triggered on promote events
730- Pipeline('e2e-aws' , default_pipeline_steps + [e2e_aws_prepare, tf_apply, e2e_aws_tf_apply_post, e2e_aws, tf_destroy]) + e2e_trigger(['e2e-aws' ]),
751+ Pipeline('e2e-aws' , default_pipeline_steps + e2e_aws) + e2e_trigger(['e2e-aws' ]),
752+ Pipeline('e2e-aws-nvidia-oss' , default_pipeline_steps + e2e_aws_nvidia_oss) + e2e_trigger(['e2e-aws-nvidia-oss' ]),
731753 Pipeline('e2e-gcp' , default_pipeline_steps + [capi_docker, e2e_capi, e2e_gcp]) + e2e_trigger(['e2e-gcp' ]),
732754
733755 // cron pipelines, triggered on schedule events
734- Pipeline('cron-e2e-aws' , default_pipeline_steps + [e2e_aws_prepare, tf_apply, e2e_aws_tf_apply_post, e2e_aws, tf_destroy] , [default_cron_pipeline]) + cron_trigger(['thrice-daily' , 'nightly' ]),
756+ Pipeline('cron-e2e-aws' , default_pipeline_steps + e2e_aws, [default_cron_pipeline]) + cron_trigger(['thrice-daily' , 'nightly' ]),
735757 Pipeline('cron-e2e-gcp' , default_pipeline_steps + [capi_docker, e2e_capi, e2e_gcp], [default_cron_pipeline]) + cron_trigger(['thrice-daily' , 'nightly' ]),
736758];
737759
0 commit comments