Skip to content

Commit dc9ab1e

Browse files
author
Nathan Clonts
committed
feat: add support for Workflow resource
Implements the Workflow CRD (full CRUD) for the MWAA Serverless controller. - ARN primary key with GetWorkflow-based read path - Tag sync via ListTagsForResource + Tag/UntagResource hooks (UpdateWorkflow has no inline Tags member), implemented in pkg/tags and wired through the workflow read/update hooks - Cross-resource references: iam Role, s3 Bucket, kms Key, ec2 SecurityGroup and Subnet - Print columns, synced predicate, EngineVersion handling, and exception / terminal error code mapping Two fixes from live end-to-end testing against the MWAA Serverless API: - delete targets the whole workflow, not just a single version (sdk_delete_post_build_request) - read path preserves EngineVersion, TriggerMode, and LoggingConfiguration to stop phantom UpdateWorkflow churn (sdk_read_one_post_set_output / sdk_update_pre_build_request) Builds on the bootstrap PR (adds the Workflow resource that the bootstrap placed in ignore.resource_names).
1 parent ac925d9 commit dc9ab1e

36 files changed

Lines changed: 5076 additions & 24 deletions
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ack_generate_info:
2-
build_date: "2026-07-13T18:36:33Z"
2+
build_date: "2026-07-13T22:14:15Z"
33
build_hash: 01fb153549af6a2df3747478105143e989ff4355
44
go_version: go1.25.0
55
version: v0.60.0-7-g01fb153
6-
api_directory_checksum: d3137e7b874e92eeec596f22d86192a74a244409
6+
api_directory_checksum: d19e7e87fa0e0641a62316f8f7cd1e3a3aade331
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.42.0
99
generator_config_info:
10-
file_checksum: 7a5ea9c886c80beb718544ec22f6d5a38fc4aca3
10+
file_checksum: 5c8ece5b2fbe722de8b77efaad314c7cba2b357c
1111
original_file_name: generator.yaml
1212
last_modification:
1313
reason: API generation

apis/v1alpha1/enums.go

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/v1alpha1/generator.yaml

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,90 @@
11
sdk_names:
22
model_name: mwaa-serverless
33
ignore:
4-
resource_names:
5-
- Workflow
4+
field_paths:
5+
- CreateWorkflowOutput.Warnings
6+
- CreateWorkflowOutput.RevisionId
7+
- CreateWorkflowOutput.IsLatestVersion
8+
- UpdateWorkflowOutput.Warnings
9+
resources:
10+
Workflow:
11+
is_arn_primary_key: true
12+
ignore_idempotency_token: true
13+
exceptions:
14+
errors:
15+
404:
16+
code: ResourceNotFoundException
17+
terminal_codes:
18+
- ValidationException
19+
- ServiceQuotaExceededException
20+
fields:
21+
EngineVersion:
22+
late_initialize: {}
23+
Name:
24+
is_immutable: true
25+
EncryptionConfiguration:
26+
is_immutable: true
27+
ScheduleConfiguration:
28+
is_read_only: true
29+
from:
30+
operation: GetWorkflow
31+
path: ScheduleConfiguration
32+
WorkflowDefinition:
33+
is_read_only: true
34+
from:
35+
operation: GetWorkflow
36+
path: WorkflowDefinition
37+
ModifiedAt:
38+
is_read_only: true
39+
from:
40+
operation: GetWorkflow
41+
path: ModifiedAt
42+
RoleArn:
43+
references:
44+
resource: Role
45+
service_name: iam
46+
path: Status.ACKResourceMetadata.ARN
47+
DefinitionS3Location.Bucket:
48+
references:
49+
resource: Bucket
50+
service_name: s3
51+
path: Spec.Name
52+
EncryptionConfiguration.KmsKeyId:
53+
references:
54+
resource: Key
55+
service_name: kms
56+
path: Status.ACKResourceMetadata.ARN
57+
NetworkConfiguration.SecurityGroupIds:
58+
references:
59+
resource: SecurityGroup
60+
service_name: ec2
61+
path: Status.ID
62+
NetworkConfiguration.SubnetIds:
63+
references:
64+
resource: Subnet
65+
service_name: ec2
66+
path: Status.SubnetID
67+
hooks:
68+
sdk_read_one_post_set_output:
69+
template_path: hooks/workflow/sdk_read_one_post_set_output.go.tpl
70+
sdk_update_pre_build_request:
71+
template_path: hooks/workflow/sdk_update_pre_build_request.go.tpl
72+
sdk_delete_post_build_request:
73+
template_path: hooks/workflow/sdk_delete_post_build_request.go.tpl
74+
synced:
75+
when:
76+
- path: Status.WorkflowStatus
77+
in:
78+
- READY
79+
print:
80+
add_age_column: true
81+
add_synced_column: true
82+
additional_columns:
83+
- name: STATUS
84+
json_path: .status.workflowStatus
85+
type: string
86+
index: 10
87+
- name: VERSION
88+
json_path: .status.workflowVersion
89+
type: string
90+
index: 20

apis/v1alpha1/types.go

Lines changed: 156 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)