Skip to content

Commit dfd7f15

Browse files
authored
feat: Add custom-tags support for customer-provided tags (#444)
* feat: Add custom-tags support for customer-provided tags Add custom_tags parameter to all module settings and app.py files so that customer-provided tags flow through from capability deployment to CDK resources. This matches the pattern used by Data Foundations solution kit. Affected modules: - sagemaker-templates - sagemaker-studio - sagemaker-notebook - sagemaker-ground-truth-labeling - sagemaker-model-monitoring - ray-operator - ray-cluster - ray-orchestrator * chore: Release 3.2.7 --------- Co-authored-by: Nuri Boardman <nurboard@amazon.com>
1 parent 2d84f74 commit dfd7f15

29 files changed

Lines changed: 101 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### **Changed**
1313

14+
## v3.2.7
15+
16+
### **Added**
17+
18+
- added optional `custom_tags` parameter to all modules for customer-provided tag support
19+
1420
## v3.2.6
1521

1622
### **Changed**

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.2.6
1+
3.2.7

modules/eks/ray-cluster/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@
5050
for tag_key, tag_value in app_settings.parameters.tags.items():
5151
Tags.of(app).add(tag_key, tag_value)
5252

53+
if app_settings.parameters.custom_tags:
54+
for tag_key, tag_value in app_settings.parameters.custom_tags.items():
55+
Tags.of(app).add(tag_key, tag_value)
56+
5357
Tags.of(app).add("SeedFarmerDeploymentName", app_settings.settings.deployment_name)
5458
Tags.of(app).add("SeedFarmerModuleName", app_settings.settings.module_name)
5559
Tags.of(app).add("SeedFarmerProjectName", app_settings.settings.project_name)

modules/eks/ray-cluster/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class SeedFarmerParameters(CdkBaseSettings):
6262
worker_labels: Dict[str, str] = Field(default={})
6363
permissions_boundary_name: Optional[str] = Field(default=None)
6464
tags: Optional[Dict[str, str]] = Field(default=None)
65+
custom_tags: Optional[Dict[str, str]] = Field(default=None)
6566

6667

6768
class SeedFarmerSettings(CdkBaseSettings):

modules/eks/ray-cluster/tests/test_app.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,8 @@ def test_eks_cluster_name(stack_defaults):
4242

4343
with pytest.raises(ValidationError):
4444
import app # noqa: F401
45+
46+
47+
def test_app_with_custom_tags(stack_defaults):
48+
os.environ["SEEDFARMER_PARAMETER_CUSTOM_TAGS"] = '{"CustomerTag": "test-value"}'
49+
import app # noqa: F401

modules/eks/ray-operator/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
for tag_key, tag_value in app_settings.parameters.tags.items():
5656
Tags.of(app).add(tag_key, tag_value)
5757

58+
if app_settings.parameters.custom_tags:
59+
for tag_key, tag_value in app_settings.parameters.custom_tags.items():
60+
Tags.of(app).add(tag_key, tag_value)
61+
5862
Tags.of(app).add("SeedFarmerDeploymentName", app_settings.settings.deployment_name)
5963
Tags.of(app).add("SeedFarmerModuleName", app_settings.settings.module_name)
6064
Tags.of(app).add("SeedFarmerProjectName", app_settings.settings.project_name)

modules/eks/ray-operator/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class SeedFarmerParameters(CdkBaseSettings):
3838
data_bucket_name: Optional[str] = Field(default=None)
3939
permissions_boundary_name: Optional[str] = Field(default=None)
4040
tags: Optional[Dict[str, str]] = Field(default=None)
41+
custom_tags: Optional[Dict[str, str]] = Field(default=None)
4142

4243

4344
class SeedFarmerSettings(CdkBaseSettings):

modules/eks/ray-operator/tests/test_app.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,8 @@ def test_eks_cluster_name(stack_defaults):
4444

4545
with pytest.raises(ValidationError):
4646
import app # noqa: F401
47+
48+
49+
def test_app_with_custom_tags(stack_defaults):
50+
os.environ["SEEDFARMER_PARAMETER_CUSTOM_TAGS"] = '{"CustomerTag": "test-value"}'
51+
import app # noqa: F401

modules/eks/ray-orchestrator/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@
5656
for tag_key, tag_value in app_settings.parameters.tags.items():
5757
Tags.of(app).add(tag_key, tag_value)
5858

59+
if app_settings.parameters.custom_tags:
60+
for tag_key, tag_value in app_settings.parameters.custom_tags.items():
61+
Tags.of(app).add(tag_key, tag_value)
62+
5963
Tags.of(app).add("SeedFarmerDeploymentName", app_settings.settings.deployment_name)
6064
Tags.of(app).add("SeedFarmerModuleName", app_settings.settings.module_name)
6165
Tags.of(app).add("SeedFarmerProjectName", app_settings.settings.project_name)

modules/eks/ray-orchestrator/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class SeedFarmerParameters(CdkBaseSettings):
4040
dra_export_path: str = Field(default="/ray/export/")
4141
permissions_boundary_name: Optional[str] = Field(default=None)
4242
tags: Optional[Dict[str, str]] = Field(default=None)
43+
custom_tags: Optional[Dict[str, str]] = Field(default=None)
4344

4445

4546
class SeedFarmerSettings(CdkBaseSettings):

0 commit comments

Comments
 (0)