From 1eca7b9a5aab6bafacd7b5dd4701b9483e77dadc Mon Sep 17 00:00:00 2001 From: sagemaker-bot Date: Mon, 16 Feb 2026 10:25:31 +0000 Subject: [PATCH] Daily Sync with Botocore v1.42.49 on 2026/02/16 --- sample/sagemaker/2017-07-24/service-2.json | 160 +++++++++++++++++- .../main/code_injection/shape_dag.py | 52 +++++- src/sagemaker_core/main/resources.py | 4 +- src/sagemaker_core/main/shapes.py | 85 ++++++++++ 4 files changed, 293 insertions(+), 8 deletions(-) diff --git a/sample/sagemaker/2017-07-24/service-2.json b/sample/sagemaker/2017-07-24/service-2.json index 379c7af8..192acc36 100644 --- a/sample/sagemaker/2017-07-24/service-2.json +++ b/sample/sagemaker/2017-07-24/service-2.json @@ -8937,6 +8937,12 @@ "Disable" ] }, + "ClusterDnsName":{ + "type":"string", + "max":275, + "min":16, + "pattern":"((fs|fc)i?-[0-9a-f]{8,}\\..{4,253})" + }, "ClusterEbsVolumeConfig":{ "type":"structure", "members":{ @@ -9076,6 +9082,49 @@ }, "documentation":"

A summary of an event in a HyperPod cluster.

" }, + "ClusterFsxLustreConfig":{ + "type":"structure", + "required":[ + "DnsName", + "MountName" + ], + "members":{ + "DnsName":{ + "shape":"ClusterDnsName", + "documentation":"

The DNS name of the Amazon FSx for Lustre file system.

" + }, + "MountName":{ + "shape":"ClusterMountName", + "documentation":"

The mount name of the Amazon FSx for Lustre file system.

" + }, + "MountPath":{ + "shape":"ClusterFsxMountPath", + "documentation":"

The local path where the Amazon FSx for Lustre file system is mounted on instances.

" + } + }, + "documentation":"

Defines the configuration for attaching an Amazon FSx for Lustre file system to instances in a SageMaker HyperPod cluster instance group.

" + }, + "ClusterFsxMountPath":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"/[a-zA-Z0-9._/-]+" + }, + "ClusterFsxOpenZfsConfig":{ + "type":"structure", + "required":["DnsName"], + "members":{ + "DnsName":{ + "shape":"ClusterDnsName", + "documentation":"

The DNS name of the Amazon FSx for OpenZFS file system.

" + }, + "MountPath":{ + "shape":"ClusterFsxMountPath", + "documentation":"

The local path where the Amazon FSx for OpenZFS file system is mounted on instances.

" + } + }, + "documentation":"

Defines the configuration for attaching an Amazon FSx for OpenZFS file system to instances in a SageMaker HyperPod cluster instance group.

" + }, "ClusterInstanceCount":{ "type":"integer", "box":true, @@ -9173,7 +9222,11 @@ "shape":"SoftwareUpdateStatus", "documentation":"

Status of the last software udpate request.

Status transitions follow these possible sequences:

" }, - "ActiveSoftwareUpdateConfig":{"shape":"DeploymentConfiguration"} + "ActiveSoftwareUpdateConfig":{"shape":"DeploymentConfiguration"}, + "SlurmConfig":{ + "shape":"ClusterSlurmConfigDetails", + "documentation":"

The Slurm configuration for the instance group.

" + } }, "documentation":"

Details of an instance group in a SageMaker HyperPod cluster.

" }, @@ -9253,6 +9306,10 @@ "shape":"ClusterKubernetesConfig", "documentation":"

Specifies the Kubernetes configuration for the instance group. You describe what you want the labels and taints to look like, and the cluster works to reconcile the actual state with the declared state for nodes in this instance group.

" }, + "SlurmConfig":{ + "shape":"ClusterSlurmConfig", + "documentation":"

Specifies the Slurm configuration for the instance group.

" + }, "CapacityRequirements":{ "shape":"ClusterCapacityRequirements", "documentation":"

Specifies the capacity requirements for the instance group.

" @@ -9325,6 +9382,14 @@ "EbsVolumeConfig":{ "shape":"ClusterEbsVolumeConfig", "documentation":"

Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group. The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker.

" + }, + "FsxLustreConfig":{ + "shape":"ClusterFsxLustreConfig", + "documentation":"

Defines the configuration for attaching an Amazon FSx for Lustre file system to the instances in the SageMaker HyperPod cluster instance group.

" + }, + "FsxOpenZfsConfig":{ + "shape":"ClusterFsxOpenZfsConfig", + "documentation":"

Defines the configuration for attaching an Amazon FSx for OpenZFS file system to the instances in the SageMaker HyperPod cluster instance group.

" } }, "documentation":"

Defines the configuration for attaching additional storage to the instances in the SageMaker HyperPod cluster instance group. To learn more, see SageMaker HyperPod release notes: June 20, 2024.

", @@ -9333,7 +9398,7 @@ "ClusterInstanceStorageConfigs":{ "type":"list", "member":{"shape":"ClusterInstanceStorageConfig"}, - "max":2, + "max":4, "min":0 }, "ClusterInstanceType":{ @@ -9624,6 +9689,12 @@ }, "documentation":"

Metadata information about a HyperPod cluster showing information about the cluster level operations, such as creating, updating, and deleting.

" }, + "ClusterMountName":{ + "type":"string", + "max":8, + "min":1, + "pattern":"([A-Za-z0-9_-]{1,8})" + }, "ClusterName":{ "type":"string", "max":63, @@ -9826,6 +9897,10 @@ "Eks":{ "shape":"ClusterOrchestratorEksConfig", "documentation":"

The Amazon EKS cluster used as the orchestrator for the SageMaker HyperPod cluster.

" + }, + "Slurm":{ + "shape":"ClusterOrchestratorSlurmConfig", + "documentation":"

The Slurm orchestrator configuration for the SageMaker HyperPod cluster.

" } }, "documentation":"

The type of orchestrator used for the SageMaker HyperPod cluster.

" @@ -9841,6 +9916,28 @@ }, "documentation":"

The configuration settings for the Amazon EKS cluster used as the orchestrator for the SageMaker HyperPod cluster.

" }, + "ClusterOrchestratorSlurmConfig":{ + "type":"structure", + "members":{ + "SlurmConfigStrategy":{ + "shape":"ClusterSlurmConfigStrategy", + "documentation":"

The strategy for managing partitions for the Slurm configuration. Valid values are Managed, Overwrite, and Merge.

" + } + }, + "documentation":"

The configuration settings for the Slurm orchestrator used with the SageMaker HyperPod cluster.

" + }, + "ClusterPartitionName":{ + "type":"string", + "max":1024, + "min":0, + "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "ClusterPartitionNames":{ + "type":"list", + "member":{"shape":"ClusterPartitionName"}, + "max":1, + "min":0 + }, "ClusterPrivateDnsHostname":{ "type":"string", "pattern":"ip-((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)-?\\b){4}\\..*" @@ -10035,6 +10132,52 @@ "type":"string", "pattern":"[a-z0-9]([-a-z0-9]*[a-z0-9]){0,39}?" }, + "ClusterSlurmConfig":{ + "type":"structure", + "required":["NodeType"], + "members":{ + "NodeType":{ + "shape":"ClusterSlurmNodeType", + "documentation":"

The type of Slurm node for the instance group. Valid values are Controller, Worker, and Login.

" + }, + "PartitionNames":{ + "shape":"ClusterPartitionNames", + "documentation":"

The list of Slurm partition names that the instance group belongs to.

" + } + }, + "documentation":"

The Slurm configuration for an instance group in a SageMaker HyperPod cluster.

" + }, + "ClusterSlurmConfigDetails":{ + "type":"structure", + "required":["NodeType"], + "members":{ + "NodeType":{ + "shape":"ClusterSlurmNodeType", + "documentation":"

The type of Slurm node for the instance group. Valid values are Controller, Worker, and Login.

" + }, + "PartitionNames":{ + "shape":"ClusterPartitionNames", + "documentation":"

The list of Slurm partition names that the instance group belongs to.

" + } + }, + "documentation":"

The Slurm configuration details for an instance group in a SageMaker HyperPod cluster.

" + }, + "ClusterSlurmConfigStrategy":{ + "type":"string", + "enum":[ + "Overwrite", + "Managed", + "Merge" + ] + }, + "ClusterSlurmNodeType":{ + "type":"string", + "enum":[ + "Controller", + "Login", + "Compute" + ] + }, "ClusterSortBy":{ "type":"string", "enum":[ @@ -11301,7 +11444,7 @@ }, "Orchestrator":{ "shape":"ClusterOrchestrator", - "documentation":"

The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is \"eks\", which is to use an Amazon Elastic Kubernetes Service cluster as the orchestrator.

" + "documentation":"

The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, supported values are \"Eks\" and \"Slurm\", which is to use an Amazon Elastic Kubernetes Service or Slurm cluster as the orchestrator.

If you specify the Orchestrator field, you must provide exactly one orchestrator configuration: either Eks or Slurm. Specifying both or providing an empty configuration returns a validation error.

" }, "NodeRecovery":{ "shape":"ClusterNodeRecovery", @@ -37478,7 +37621,13 @@ "ml.r7i.16xlarge", "ml.r7i.24xlarge", "ml.r7i.48xlarge", - "ml.p5.4xlarge" + "ml.p5.4xlarge", + "ml.g7e.2xlarge", + "ml.g7e.4xlarge", + "ml.g7e.8xlarge", + "ml.g7e.12xlarge", + "ml.g7e.24xlarge", + "ml.g7e.48xlarge" ] }, "ProcessingJob":{ @@ -45528,7 +45677,8 @@ "AutoScaling":{ "shape":"ClusterAutoScalingConfig", "documentation":"

Updates the autoscaling configuration for the cluster. Use to enable or disable automatic node scaling.

" - } + }, + "Orchestrator":{"shape":"ClusterOrchestrator"} } }, "UpdateClusterResponse":{ diff --git a/src/sagemaker_core/main/code_injection/shape_dag.py b/src/sagemaker_core/main/code_injection/shape_dag.py index 7953fdce..5a7273b1 100644 --- a/src/sagemaker_core/main/code_injection/shape_dag.py +++ b/src/sagemaker_core/main/code_injection/shape_dag.py @@ -1718,6 +1718,21 @@ ], "type": "structure", }, + "ClusterFsxLustreConfig": { + "members": [ + {"name": "DnsName", "shape": "ClusterDnsName", "type": "string"}, + {"name": "MountName", "shape": "ClusterMountName", "type": "string"}, + {"name": "MountPath", "shape": "ClusterFsxMountPath", "type": "string"}, + ], + "type": "structure", + }, + "ClusterFsxOpenZfsConfig": { + "members": [ + {"name": "DnsName", "shape": "ClusterDnsName", "type": "string"}, + {"name": "MountPath", "shape": "ClusterFsxMountPath", "type": "string"}, + ], + "type": "structure", + }, "ClusterInstanceGroupDetails": { "members": [ {"name": "CurrentCount", "shape": "ClusterNonNegativeInstanceCount", "type": "integer"}, @@ -1767,6 +1782,7 @@ "shape": "DeploymentConfiguration", "type": "structure", }, + {"name": "SlurmConfig", "shape": "ClusterSlurmConfigDetails", "type": "structure"}, ], "type": "structure", }, @@ -1799,6 +1815,7 @@ }, {"name": "ImageId", "shape": "ImageId", "type": "string"}, {"name": "KubernetesConfig", "shape": "ClusterKubernetesConfig", "type": "structure"}, + {"name": "SlurmConfig", "shape": "ClusterSlurmConfig", "type": "structure"}, { "name": "CapacityRequirements", "shape": "ClusterCapacityRequirements", @@ -1833,7 +1850,9 @@ }, "ClusterInstanceStorageConfig": { "members": [ - {"name": "EbsVolumeConfig", "shape": "ClusterEbsVolumeConfig", "type": "structure"} + {"name": "EbsVolumeConfig", "shape": "ClusterEbsVolumeConfig", "type": "structure"}, + {"name": "FsxLustreConfig", "shape": "ClusterFsxLustreConfig", "type": "structure"}, + {"name": "FsxOpenZfsConfig", "shape": "ClusterFsxOpenZfsConfig", "type": "structure"}, ], "type": "structure", }, @@ -1970,13 +1989,27 @@ }, "ClusterOnDemandOptions": {"members": [], "type": "structure"}, "ClusterOrchestrator": { - "members": [{"name": "Eks", "shape": "ClusterOrchestratorEksConfig", "type": "structure"}], + "members": [ + {"name": "Eks", "shape": "ClusterOrchestratorEksConfig", "type": "structure"}, + {"name": "Slurm", "shape": "ClusterOrchestratorSlurmConfig", "type": "structure"}, + ], "type": "structure", }, "ClusterOrchestratorEksConfig": { "members": [{"name": "ClusterArn", "shape": "EksClusterArn", "type": "string"}], "type": "structure", }, + "ClusterOrchestratorSlurmConfig": { + "members": [ + {"name": "SlurmConfigStrategy", "shape": "ClusterSlurmConfigStrategy", "type": "string"} + ], + "type": "structure", + }, + "ClusterPartitionNames": { + "member_shape": "ClusterPartitionName", + "member_type": "string", + "type": "list", + }, "ClusterRestrictedInstanceGroupDetails": { "members": [ {"name": "CurrentCount", "shape": "ClusterNonNegativeInstanceCount", "type": "integer"}, @@ -2068,6 +2101,20 @@ "member_type": "structure", "type": "list", }, + "ClusterSlurmConfig": { + "members": [ + {"name": "NodeType", "shape": "ClusterSlurmNodeType", "type": "string"}, + {"name": "PartitionNames", "shape": "ClusterPartitionNames", "type": "list"}, + ], + "type": "structure", + }, + "ClusterSlurmConfigDetails": { + "members": [ + {"name": "NodeType", "shape": "ClusterSlurmNodeType", "type": "string"}, + {"name": "PartitionNames", "shape": "ClusterPartitionNames", "type": "list"}, + ], + "type": "structure", + }, "ClusterSpotOptions": {"members": [], "type": "structure"}, "ClusterSummaries": { "member_shape": "ClusterSummary", @@ -16574,6 +16621,7 @@ }, {"name": "ClusterRole", "shape": "RoleArn", "type": "string"}, {"name": "AutoScaling", "shape": "ClusterAutoScalingConfig", "type": "structure"}, + {"name": "Orchestrator", "shape": "ClusterOrchestrator", "type": "structure"}, ], "type": "structure", }, diff --git a/src/sagemaker_core/main/resources.py b/src/sagemaker_core/main/resources.py index a8d15ecc..e4384bfc 100644 --- a/src/sagemaker_core/main/resources.py +++ b/src/sagemaker_core/main/resources.py @@ -3314,7 +3314,7 @@ def create( restricted_instance_groups: The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster. vpc_config: Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see Give SageMaker access to resources in your Amazon VPC. When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform: Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications. In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see Amazon EKS IPv6 Cluster Deployment. Additional resources for IPv6 configuration: For information about adding IPv6 support to your VPC, see to IPv6 Support for VPC. For information about creating a new IPv6-compatible VPC, see Amazon VPC Creation Guide. To configure SageMaker HyperPod with a custom Amazon VPC, see Custom Amazon VPC Setup for SageMaker HyperPod. tags: Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web Services resource. You can add tags to your cluster in the same way you add them in other Amazon Web Services services that support tagging. To learn more about tagging Amazon Web Services resources in general, see Tagging Amazon Web Services Resources User Guide. - orchestrator: The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is "eks", which is to use an Amazon Elastic Kubernetes Service cluster as the orchestrator. + orchestrator: The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, supported values are "Eks" and "Slurm", which is to use an Amazon Elastic Kubernetes Service or Slurm cluster as the orchestrator. If you specify the Orchestrator field, you must provide exactly one orchestrator configuration: either Eks or Slurm. Specifying both or providing an empty configuration returns a validation error. node_recovery: The node recovery mode for the SageMaker HyperPod cluster. When set to Automatic, SageMaker HyperPod will automatically reboot or replace faulty nodes when issues are detected. When set to None, cluster administrators will need to manually manage any faulty cluster instances. tiered_storage_config: The configuration for managed tier checkpointing on the HyperPod cluster. When enabled, this feature uses a multi-tier storage approach for storing model checkpoints, providing faster checkpoint operations and improved fault tolerance across cluster nodes. node_provisioning_mode: The mode for provisioning nodes in the cluster. You can specify the following modes: Continuous: Scaling behavior that enables 1) concurrent operation execution within instance groups, 2) continuous retry mechanisms for failed operations, 3) enhanced customer visibility into cluster events through detailed event streams, 4) partial provisioning capabilities. Your clusters and instance groups remain InService while scaling. This mode is only supported for EKS orchestrated clusters. @@ -3479,6 +3479,7 @@ def update( node_provisioning_mode: Optional[str] = Unassigned(), cluster_role: Optional[str] = Unassigned(), auto_scaling: Optional[shapes.ClusterAutoScalingConfig] = Unassigned(), + orchestrator: Optional[shapes.ClusterOrchestrator] = Unassigned(), ) -> Optional["Cluster"]: """ Update a Cluster resource @@ -3517,6 +3518,7 @@ def update( "NodeProvisioningMode": node_provisioning_mode, "ClusterRole": cluster_role, "AutoScaling": auto_scaling, + "Orchestrator": orchestrator, } logger.debug(f"Input request: {operation_input_args}") # serialize the input request diff --git a/src/sagemaker_core/main/shapes.py b/src/sagemaker_core/main/shapes.py index 757cdc3e..e29ae511 100644 --- a/src/sagemaker_core/main/shapes.py +++ b/src/sagemaker_core/main/shapes.py @@ -3865,6 +3865,38 @@ class ClusterEventSummary(Base): description: Optional[str] = Unassigned() +class ClusterFsxLustreConfig(Base): + """ + ClusterFsxLustreConfig + Defines the configuration for attaching an Amazon FSx for Lustre file system to instances in a SageMaker HyperPod cluster instance group. + + Attributes + ---------------------- + dns_name: The DNS name of the Amazon FSx for Lustre file system. + mount_name: The mount name of the Amazon FSx for Lustre file system. + mount_path: The local path where the Amazon FSx for Lustre file system is mounted on instances. + """ + + dns_name: str + mount_name: str + mount_path: Optional[str] = Unassigned() + + +class ClusterFsxOpenZfsConfig(Base): + """ + ClusterFsxOpenZfsConfig + Defines the configuration for attaching an Amazon FSx for OpenZFS file system to instances in a SageMaker HyperPod cluster instance group. + + Attributes + ---------------------- + dns_name: The DNS name of the Amazon FSx for OpenZFS file system. + mount_path: The local path where the Amazon FSx for OpenZFS file system is mounted on instances. + """ + + dns_name: str + mount_path: Optional[str] = Unassigned() + + class ClusterLifeCycleConfig(Base): """ ClusterLifeCycleConfig @@ -3888,9 +3920,13 @@ class ClusterInstanceStorageConfig(Base): Attributes ---------------------- ebs_volume_config: Defines the configuration for attaching additional Amazon Elastic Block Store (EBS) volumes to the instances in the SageMaker HyperPod cluster instance group. The additional EBS volume is attached to each instance within the SageMaker HyperPod cluster instance group and mounted to /opt/sagemaker. + fsx_lustre_config: Defines the configuration for attaching an Amazon FSx for Lustre file system to the instances in the SageMaker HyperPod cluster instance group. + fsx_open_zfs_config: Defines the configuration for attaching an Amazon FSx for OpenZFS file system to the instances in the SageMaker HyperPod cluster instance group. """ ebs_volume_config: Optional[ClusterEbsVolumeConfig] = Unassigned() + fsx_lustre_config: Optional[ClusterFsxLustreConfig] = Unassigned() + fsx_open_zfs_config: Optional[ClusterFsxOpenZfsConfig] = Unassigned() class RollingDeploymentPolicy(Base): @@ -3976,6 +4012,21 @@ class ClusterKubernetesConfigDetails(Base): desired_taints: Optional[List[ClusterKubernetesTaint]] = Unassigned() +class ClusterSlurmConfigDetails(Base): + """ + ClusterSlurmConfigDetails + The Slurm configuration details for an instance group in a SageMaker HyperPod cluster. + + Attributes + ---------------------- + node_type: The type of Slurm node for the instance group. Valid values are Controller, Worker, and Login. + partition_names: The list of Slurm partition names that the instance group belongs to. + """ + + node_type: str + partition_names: Optional[List[str]] = Unassigned() + + class ClusterInstanceGroupDetails(Base): """ ClusterInstanceGroupDetails @@ -4006,6 +4057,7 @@ class ClusterInstanceGroupDetails(Base): target_state_count: Represents the number of running nodes using the desired Image ID. During software update operations: This count shows the number of nodes running on the desired Image ID. If a rollback occurs, the current image ID and desired image ID (both included in the describe cluster response) swap values. The TargetStateCount then shows the number of nodes running on the newly designated desired image ID (which was previously the current image ID). During simultaneous scaling and software update operations: This count shows the number of instances running on the desired image ID, including any new instances created as part of the scaling request. New nodes are always created using the desired image ID, so TargetStateCount reflects the total count of nodes running on the desired image ID, even during rollback scenarios. software_update_status: Status of the last software udpate request. Status transitions follow these possible sequences: Pending -> InProgress -> Succeeded Pending -> InProgress -> RollbackInProgress -> RollbackComplete Pending -> InProgress -> RollbackInProgress -> Failed active_software_update_config + slurm_config: The Slurm configuration for the instance group. """ current_count: Optional[int] = Unassigned() @@ -4031,6 +4083,7 @@ class ClusterInstanceGroupDetails(Base): target_state_count: Optional[int] = Unassigned() software_update_status: Optional[str] = Unassigned() active_software_update_config: Optional[DeploymentConfiguration] = Unassigned() + slurm_config: Optional[ClusterSlurmConfigDetails] = Unassigned() class ClusterKubernetesConfig(Base): @@ -4048,6 +4101,21 @@ class ClusterKubernetesConfig(Base): taints: Optional[List[ClusterKubernetesTaint]] = Unassigned() +class ClusterSlurmConfig(Base): + """ + ClusterSlurmConfig + The Slurm configuration for an instance group in a SageMaker HyperPod cluster. + + Attributes + ---------------------- + node_type: The type of Slurm node for the instance group. Valid values are Controller, Worker, and Login. + partition_names: The list of Slurm partition names that the instance group belongs to. + """ + + node_type: str + partition_names: Optional[List[str]] = Unassigned() + + class ClusterInstanceGroupSpecification(Base): """ ClusterInstanceGroupSpecification @@ -4069,6 +4137,7 @@ class ClusterInstanceGroupSpecification(Base): scheduled_update_config: The configuration object of the schedule that SageMaker uses to update the AMI. image_id: When configuring your HyperPod cluster, you can specify an image ID using one of the following options: HyperPodPublicAmiId: Use a HyperPod public AMI CustomAmiId: Use your custom AMI default: Use the default latest system image If you choose to use a custom AMI (CustomAmiId), ensure it meets the following requirements: Encryption: The custom AMI must be unencrypted. Ownership: The custom AMI must be owned by the same Amazon Web Services account that is creating the HyperPod cluster. Volume support: Only the primary AMI snapshot volume is supported; additional AMI volumes are not supported. When updating the instance group's AMI through the UpdateClusterSoftware operation, if an instance group uses a custom AMI, you must provide an ImageId or use the default as input. Note that if you don't specify an instance group in your UpdateClusterSoftware request, then all of the instance groups are patched with the specified image. kubernetes_config: Specifies the Kubernetes configuration for the instance group. You describe what you want the labels and taints to look like, and the cluster works to reconcile the actual state with the declared state for nodes in this instance group. + slurm_config: Specifies the Slurm configuration for the instance group. capacity_requirements: Specifies the capacity requirements for the instance group. """ @@ -4086,6 +4155,7 @@ class ClusterInstanceGroupSpecification(Base): scheduled_update_config: Optional[ScheduledUpdateConfig] = Unassigned() image_id: Optional[str] = Unassigned() kubernetes_config: Optional[ClusterKubernetesConfig] = Unassigned() + slurm_config: Optional[ClusterSlurmConfig] = Unassigned() capacity_requirements: Optional[ClusterCapacityRequirements] = Unassigned() @@ -4246,6 +4316,19 @@ class ClusterOrchestratorEksConfig(Base): cluster_arn: str +class ClusterOrchestratorSlurmConfig(Base): + """ + ClusterOrchestratorSlurmConfig + The configuration settings for the Slurm orchestrator used with the SageMaker HyperPod cluster. + + Attributes + ---------------------- + slurm_config_strategy: The strategy for managing partitions for the Slurm configuration. Valid values are Managed, Overwrite, and Merge. + """ + + slurm_config_strategy: Optional[str] = Unassigned() + + class ClusterOrchestrator(Base): """ ClusterOrchestrator @@ -4254,9 +4337,11 @@ class ClusterOrchestrator(Base): Attributes ---------------------- eks: The Amazon EKS cluster used as the orchestrator for the SageMaker HyperPod cluster. + slurm: The Slurm orchestrator configuration for the SageMaker HyperPod cluster. """ eks: Optional[ClusterOrchestratorEksConfig] = Unassigned() + slurm: Optional[ClusterOrchestratorSlurmConfig] = Unassigned() class FSxLustreConfig(Base):