@@ -386,7 +386,7 @@ local ExtensionsStep(with_e2e=true) =
386
386
IMAGE_REGISTRY: local_registry,
387
387
QEMU_EXTRA_DISKS: '1' ,
388
388
SHORT_INTEGRATION_TEST: 'yes' ,
389
- EXTRA_TEST_ARGS: '-talos.extensions.testtype= qemu' ,
389
+ EXTRA_TEST_ARGS: '-talos.extensions.qemu' ,
390
390
});
391
391
392
392
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-
656
656
});
657
657
local e2e_capi = Step('e2e-capi' , depends_on=[capi_docker], environment=creds_env_vars);
658
658
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
+ );
673
677
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
+ );
685
689
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
+ );
697
701
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
+ );
699
710
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' ,
713
719
],
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' )];
716
737
717
738
local e2e_azure = Step('e2e-azure' , depends_on=[e2e_capi], environment=creds_env_vars);
718
739
local e2e_gcp = Step('e2e-gcp' , depends_on=[e2e_capi], environment=creds_env_vars);
@@ -727,11 +748,12 @@ local e2e_trigger(names) = {
727
748
728
749
local e2e_pipelines = [
729
750
// 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' ]),
731
753
Pipeline('e2e-gcp' , default_pipeline_steps + [capi_docker, e2e_capi, e2e_gcp]) + e2e_trigger(['e2e-gcp' ]),
732
754
733
755
// 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' ]),
735
757
Pipeline('cron-e2e-gcp' , default_pipeline_steps + [capi_docker, e2e_capi, e2e_gcp], [default_cron_pipeline]) + cron_trigger(['thrice-daily' , 'nightly' ]),
736
758
];
737
759
0 commit comments