Skip to content

Commit 19f4b8c

Browse files
[Integ-tests] Improve ARNs in integration tests to be compatible with other AWS partitions
AD test, Slurm accounting, and tranium tests are not changed. Because we do not need to let them run in other partitions for now Signed-off-by: Hanwen <[email protected]>
1 parent c7c1751 commit 19f4b8c

File tree

12 files changed

+26
-18
lines changed

12 files changed

+26
-18
lines changed

tests/integration-tests/clusters_factory.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
ClusterCreationError,
2424
dict_add_nested_key,
2525
get_cfn_events,
26+
get_arn_partition,
2627
get_stack_id_tag_filter,
2728
kebab_case,
2829
retrieve_cfn_outputs,
@@ -51,6 +52,7 @@ def __init__(self, name, ssh_key, config_file, region, custom_cli_credentials=No
5152
self.config_file = config_file
5253
self.ssh_key = ssh_key
5354
self.region = region
55+
self.partition = get_arn_partition(region)
5456
with open(config_file, encoding="utf-8") as conf_file:
5557
self.config = yaml.safe_load(conf_file)
5658
self.has_been_deleted = False

tests/integration-tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,7 @@ def _get_default_template_values(vpc_stack: CfnVpcStack, request):
774774
default_values["private_subnet_id"] = vpc_stack.get_private_subnet()
775775
default_values["private_subnet_ids"] = vpc_stack.get_all_private_subnets()
776776
default_values.update({dimension: request.node.funcargs.get(dimension) for dimension in DIMENSIONS_MARKER_ARGS})
777+
default_values["partition"] = get_arn_partition(default_values["region"])
777778
default_values["key_name"] = request.config.getoption("key_name")
778779

779780
if default_values.get("scheduler") in request.config.getoption("tests_config", default={}).get(

tests/integration-tests/tests/cli_commands/test_cli_commands.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,13 +310,13 @@ def _test_pcluster_export_cluster_logs(s3_bucket_factory, cluster):
310310
{
311311
"Action": "s3:GetBucketAcl",
312312
"Effect": "Allow",
313-
"Resource": f"arn:aws:s3:::{bucket_name}",
313+
"Resource": f"arn:{cluster.partition}:s3:::{bucket_name}",
314314
"Principal": {"Service": f"logs.{cluster.region}.amazonaws.com"},
315315
},
316316
{
317317
"Action": "s3:PutObject",
318318
"Effect": "Allow",
319-
"Resource": f"arn:aws:s3:::{bucket_name}/*",
319+
"Resource": f"arn:{cluster.partition}:s3:::{bucket_name}/*",
320320
"Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}},
321321
"Principal": {"Service": f"logs.{cluster.region}.amazonaws.com"},
322322
},

tests/integration-tests/tests/createami/test_createami.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,9 +377,10 @@ def _custom_resource(image_id):
377377
custom_resource_template.set_description("Create build image custom resource stack")
378378

379379
# Create a instance role
380+
partition = get_arn_partition(region)
380381
managed_policy_arns = [
381-
"arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore",
382-
"arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder",
382+
f"arn:{partition}:iam::aws:policy/AmazonSSMManagedInstanceCore",
383+
f"arn:{partition}:iam::aws:policy/EC2InstanceProfileForImageBuilder",
383384
]
384385

385386
policy_document = iam.Policy(

tests/integration-tests/tests/iam/test_iam.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from s3_common_utils import check_s3_read_resource, check_s3_read_write_resource, get_policy_resources
2525
from troposphere.iam import ManagedPolicy
2626
from troposphere.template_generator import TemplateGenerator
27-
from utils import generate_stack_name, wait_for_computefleet_changed
27+
from utils import generate_stack_name, get_arn_partition, wait_for_computefleet_changed
2828

2929
from tests.common.assertions import assert_no_errors_in_logs
3030
from tests.schedulers.test_awsbatch import _test_job_submission as _test_job_submission_awsbatch
@@ -291,7 +291,9 @@ def _get_resource_name_from_resource_arn(resource_arn):
291291
@pytest.mark.usefixtures("os", "instance")
292292
def test_iam_policies(region, scheduler, pcluster_config_reader, clusters_factory):
293293
"""Test IAM Policies"""
294-
cluster_config = pcluster_config_reader(iam_policies=["arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"])
294+
cluster_config = pcluster_config_reader(
295+
iam_policies=[f"arn:{get_arn_partition(region)}:iam::aws:policy/AmazonS3ReadOnlyAccess"]
296+
)
295297
cluster = clusters_factory(cluster_config)
296298
remote_command_executor = RemoteCommandExecutor(cluster)
297299

@@ -365,7 +367,7 @@ def test_iam_resource_prefix(
365367
)
366368

367369
cluster = clusters_factory(cluster_config, custom_cli_credentials=creds)
368-
_test_iam_resource_in_cluster(cfn_client, iam_client, cluster.name, iam_resource_prefix)
370+
_test_iam_resource_in_cluster(region, cfn_client, iam_client, cluster.name, iam_resource_prefix)
369371

370372

371373
def _update_paramters_and_conditions(parameters, conditions, iam_path, iam_name_prefix):
@@ -706,11 +708,11 @@ def _split_resource_prefix(resource_prefix):
706708
return None, None
707709

708710

709-
def _check_iam_resource_prefix(resource_arn_list, iam_resource_prefix):
711+
def _check_iam_resource_prefix(region, resource_arn_list, iam_resource_prefix):
710712
"""Check the path and name of IAM resource ( Roles, policy and Instance profiles)."""
711713
iam_path, iam_name_prefix = _split_resource_prefix(iam_resource_prefix)
712714
for resource in resource_arn_list:
713-
if "arn:aws:iam:" in resource:
715+
if f"arn:{get_arn_partition(region)}:iam:" in resource:
714716
if iam_path:
715717
assert_that(resource).contains(iam_path)
716718
else:
@@ -719,7 +721,7 @@ def _check_iam_resource_prefix(resource_arn_list, iam_resource_prefix):
719721
assert_that(resource).contains(iam_name_prefix)
720722

721723

722-
def _test_iam_resource_in_cluster(cfn_client, iam_client, stack_name, iam_resource_prefix):
724+
def _test_iam_resource_in_cluster(region, cfn_client, iam_client, stack_name, iam_resource_prefix):
723725
"""Test IAM resources by checking the path and name prefix in AWS IAM and check cluster is created."""
724726

725727
# Check for cluster Status
@@ -744,7 +746,7 @@ def _test_iam_resource_in_cluster(cfn_client, iam_client, stack_name, iam_resour
744746
"Arn"
745747
]
746748
)
747-
_check_iam_resource_prefix(resource_arn_list, iam_resource_prefix)
749+
_check_iam_resource_prefix(region, resource_arn_list, iam_resource_prefix)
748750

749751

750752
@pytest.fixture(scope="class")

tests/integration-tests/tests/schedulers/test_slurm/test_slurm_config_update/pcluster.config.update.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ HeadNode:
88
KeyName: {{ key_name }}
99
Iam:
1010
AdditionalIamPolicies:
11-
- Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
11+
- Policy: arn:{{partition}}:iam::aws:policy/AmazonSSMManagedInstanceCore
1212
Scheduling:
1313
Scheduler: slurm
1414
SlurmQueues:

tests/integration-tests/tests/schedulers/test_slurm/test_slurm_config_update/pcluster.config.update_scheduling.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ HeadNode:
88
KeyName: {{ key_name }}
99
Iam:
1010
AdditionalIamPolicies:
11-
- Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
11+
- Policy: arn:{{partition}}:iam::aws:policy/AmazonSSMManagedInstanceCore
1212
Scheduling:
1313
Scheduler: slurm
1414
SlurmQueues:

tests/integration-tests/tests/schedulers/test_slurm/test_slurm_memory_based_scheduling/pcluster.config.mem-based-scheduling.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ HeadNode:
88
KeyName: {{ key_name }}
99
Iam:
1010
AdditionalIamPolicies:
11-
- Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
11+
- Policy: arn:{{partition}}:iam::aws:policy/AmazonSSMManagedInstanceCore
1212
Scheduling:
1313
Scheduler: slurm
1414
SlurmSettings:

tests/integration-tests/tests/schedulers/test_slurm/test_slurm_memory_based_scheduling/pcluster.config.update-schedulable-memory.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ HeadNode:
88
KeyName: {{ key_name }}
99
Iam:
1010
AdditionalIamPolicies:
11-
- Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
11+
- Policy: arn:{{partition}}:iam::aws:policy/AmazonSSMManagedInstanceCore
1212
Scheduling:
1313
Scheduler: slurm
1414
SlurmSettings:

tests/integration-tests/tests/schedulers/test_slurm/test_slurm_memory_based_scheduling/pcluster.config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ HeadNode:
88
KeyName: {{ key_name }}
99
Iam:
1010
AdditionalIamPolicies:
11-
- Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
11+
- Policy: arn:{{partition}}:iam::aws:policy/AmazonSSMManagedInstanceCore
1212
Scheduling:
1313
Scheduler: slurm
1414
SlurmQueues:

0 commit comments

Comments
 (0)