refactor(P57): contract surface redesign + rename + .yml repo-wide

Contract surface redesign:
- New top-level fields: id (3-6 char acronym → stack.name), name (full → stack.title),
  infrastructure (map keyed by module name, replaces module:)
- Drop uses: field (dead reference; version pin lives in CI workflow uses: line)
- Drop top-level module/inputs (now nested under infrastructure map)
- Per-module optional version (defaults to latest published from registry)
- Multi-module contracts: one file deploys N modules in one pipeline run,
  resource IDs namespaced with module name to avoid collisions
- stack.schema.json: add optional title field for display name

Rename:
- pipelines/deploy.yaml → pipelines/contract.yml (declarative spec, not a pipeline)
- pipelines/ci.yaml → pipelines/ci.yml
- All 44 .yaml files → .yml repo-wide (contracts, module examples, kyverno policies)
- .acdl/contract.yaml → .acdl/contract.yml

Resolver (core/contract_resolver.py):
- Rewrite resolve() to loop infrastructure map, default version to latest,
  merge module fragments into one stack with namespaced resource IDs
- _latest_version() picks highest non-deprecated from registry
- _namespace_resources() prefixes IDs + rewrites ref: expressions for multi-module
- Single-module path: unprefixed IDs (backward compatible)

Verification:
- 494 tests pass (0 contract-shape failures)
- Local E2E passes (contract → resolver → adapter → local ECS HTTP 200 → outbox)

---ci---
project: acdl
phase: 57
milestone: v1.10.2
status: execute
---/ci---
This commit is contained in:
Jon Chery
2026-07-27 21:37:40 +00:00
parent 7f36df5610
commit 031887ec56
127 changed files with 1597 additions and 1100 deletions
+26 -21
View File
@@ -73,37 +73,42 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: alb
environment: dev
inputs:
name: my-alb
subnets: subnet-aaa,subnet-bbb
security_group: sg-xxx
port: 80
protocol: HTTP
region: us-east-1
id: alb
infrastructure:
alb:
inputs:
name: my-alb
port: 80
protocol: HTTP
region: us-east-1
security_group: sg-xxx
subnets: subnet-aaa,subnet-bbb
version: 1.0.0
name: alb-loadbalancer
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex ALB with HTTPS + ACM cert (requires a consumer-supplied domain)
uses: acdl/pipelines/deploy.yaml@v1.6
module: alb
environment: dev
inputs:
name: my-production-alb
subnets: subnet-aaa,subnet-bbb
security_group: sg-xxx
port: 443
protocol: HTTPS
region: us-east-1
id: alb
infrastructure:
alb:
inputs:
name: my-production-alb
port: 443
protocol: HTTPS
region: us-east-1
security_group: sg-xxx
subnets: subnet-aaa,subnet-bbb
version: 1.0.0
name: alb-loadbalancer
```
## Versioning
-11
View File
@@ -1,11 +0,0 @@
# Complex ALB with HTTPS + ACM cert (requires a consumer-supplied domain)
uses: acdl/pipelines/deploy.yaml@v1.6
module: alb
environment: dev
inputs:
name: my-production-alb
subnets: subnet-aaa,subnet-bbb
security_group: sg-xxx
port: 443
protocol: HTTPS
region: us-east-1
+14
View File
@@ -0,0 +1,14 @@
# Complex ALB with HTTPS + ACM cert (requires a consumer-supplied domain)
environment: dev
id: alb
infrastructure:
alb:
inputs:
name: my-production-alb
port: 443
protocol: HTTPS
region: us-east-1
security_group: sg-xxx
subnets: subnet-aaa,subnet-bbb
version: 1.0.0
name: alb-loadbalancer
-10
View File
@@ -1,10 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: alb
environment: dev
inputs:
name: my-alb
subnets: subnet-aaa,subnet-bbb
security_group: sg-xxx
port: 80
protocol: HTTP
region: us-east-1
+13
View File
@@ -0,0 +1,13 @@
environment: dev
id: alb
infrastructure:
alb:
inputs:
name: my-alb
port: 80
protocol: HTTP
region: us-east-1
security_group: sg-xxx
subnets: subnet-aaa,subnet-bbb
version: 1.0.0
name: alb-loadbalancer
+23 -19
View File
@@ -80,35 +80,39 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
# Simple CloudFront distribution (S3 origin, no WAF)
uses: acdl/pipelines/deploy.yaml@v1.6
module: cloudfront
environment: dev
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
region: us-east-1
id: cdn
infrastructure:
cloudfront:
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
region: us-east-1
version: 1.0.0
name: cloudfront
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex CloudFront with WAF + custom TTL + viewer protocol redirect
uses: acdl/pipelines/deploy.yaml@v1.6
module: cloudfront
environment: dev
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
price_class: PriceClass_100
viewer_protocol_policy: redirect-to-https
default_ttl: 3600
max_ttl: 86400
waf_web_acl_arn: arn:aws:wafv2:us-east-1:000000000000:webacl/my-waf
region: us-east-1
id: cdn
infrastructure:
cloudfront:
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
default_ttl: 3600
max_ttl: 86400
price_class: PriceClass_100
region: us-east-1
viewer_protocol_policy: redirect-to-https
waf_web_acl_arn: arn:aws:wafv2:us-east-1:000000000000:webacl/my-waf
version: 1.0.0
name: cloudfront
```
## Versioning
@@ -1,12 +0,0 @@
# Complex CloudFront with WAF + custom TTL + viewer protocol redirect
uses: acdl/pipelines/deploy.yaml@v1.6
module: cloudfront
environment: dev
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
price_class: PriceClass_100
viewer_protocol_policy: redirect-to-https
default_ttl: 3600
max_ttl: 86400
waf_web_acl_arn: arn:aws:wafv2:us-east-1:000000000000:webacl/my-waf
region: us-east-1
@@ -0,0 +1,15 @@
# Complex CloudFront with WAF + custom TTL + viewer protocol redirect
environment: dev
id: cdn
infrastructure:
cloudfront:
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
default_ttl: 3600
max_ttl: 86400
price_class: PriceClass_100
region: us-east-1
viewer_protocol_policy: redirect-to-https
waf_web_acl_arn: arn:aws:wafv2:us-east-1:000000000000:webacl/my-waf
version: 1.0.0
name: cloudfront
@@ -1,7 +0,0 @@
# Simple CloudFront distribution (S3 origin, no WAF)
uses: acdl/pipelines/deploy.yaml@v1.6
module: cloudfront
environment: dev
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
region: us-east-1
+10
View File
@@ -0,0 +1,10 @@
# Simple CloudFront distribution (S3 origin, no WAF)
environment: dev
id: cdn
infrastructure:
cloudfront:
inputs:
bucket_regional_domain_name: my-bucket.s3.us-east-1.amazonaws.com
region: us-east-1
version: 1.0.0
name: cloudfront
+18 -13
View File
@@ -60,29 +60,34 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecr
environment: dev
inputs:
name: my-repo
region: us-east-1
id: ecr
infrastructure:
ecr:
inputs:
name: my-repo
region: us-east-1
version: 1.0.0
name: ecr-repo
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex ECR with lifecycle policy + image scanning
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecr
environment: dev
inputs:
name: my-production-repo
region: us-east-1
id: ecr
infrastructure:
ecr:
inputs:
name: my-production-repo
region: us-east-1
version: 1.0.0
name: ecr-repo
```
## Versioning
-7
View File
@@ -1,7 +0,0 @@
# Complex ECR with lifecycle policy + image scanning
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecr
environment: dev
inputs:
name: my-production-repo
region: us-east-1
+10
View File
@@ -0,0 +1,10 @@
# Complex ECR with lifecycle policy + image scanning
environment: dev
id: ecr
infrastructure:
ecr:
inputs:
name: my-production-repo
region: us-east-1
version: 1.0.0
name: ecr-repo
-6
View File
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecr
environment: dev
inputs:
name: my-repo
region: us-east-1
+9
View File
@@ -0,0 +1,9 @@
environment: dev
id: ecr
infrastructure:
ecr:
inputs:
name: my-repo
region: us-east-1
version: 1.0.0
name: ecr-repo
+18 -13
View File
@@ -58,29 +58,34 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-cluster
environment: dev
inputs:
name: my-cluster
region: us-east-1
id: clus
infrastructure:
ecs-cluster:
inputs:
name: my-cluster
region: us-east-1
version: 1.0.0
name: ecs-cluster
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex ECS cluster with container insights
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-cluster
environment: dev
inputs:
name: my-production-cluster
region: us-east-1
id: clus
infrastructure:
ecs-cluster:
inputs:
name: my-production-cluster
region: us-east-1
version: 1.0.0
name: ecs-cluster
```
## Versioning
@@ -1,7 +0,0 @@
# Complex ECS cluster with container insights
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-cluster
environment: dev
inputs:
name: my-production-cluster
region: us-east-1
@@ -0,0 +1,10 @@
# Complex ECS cluster with container insights
environment: dev
id: clus
infrastructure:
ecs-cluster:
inputs:
name: my-production-cluster
region: us-east-1
version: 1.0.0
name: ecs cluster
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-cluster
environment: dev
inputs:
name: my-cluster
region: us-east-1
@@ -0,0 +1,9 @@
environment: dev
id: clus
infrastructure:
ecs-cluster:
inputs:
name: my-cluster
region: us-east-1
version: 1.0.0
name: ecs cluster
+25 -20
View File
@@ -80,36 +80,41 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-service
environment: dev
inputs:
name: my-service
region: us-east-1
image: public.ecr.aws/docker/library/nginx:latest
port: 80
id: svc
infrastructure:
ecs-service:
inputs:
image: public.ecr.aws/docker/library/nginx:latest
name: my-service
port: 80
region: us-east-1
version: 1.0.0
name: ecs-service
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex ECS service with env vars + health check
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-service
environment: dev
inputs:
name: my-production-service
region: us-east-1
image: public.ecr.aws/docker/library/nginx:latest
port: 8080
env:
LOG_LEVEL: info
ENVIRONMENT: production
id: svc
infrastructure:
ecs-service:
inputs:
env:
ENVIRONMENT: production
LOG_LEVEL: info
image: public.ecr.aws/docker/library/nginx:latest
name: my-production-service
port: 8080
region: us-east-1
version: 1.0.0
name: ecs-service
```
## Versioning
@@ -1,12 +0,0 @@
# Complex ECS service with env vars + health check
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-service
environment: dev
inputs:
name: my-production-service
region: us-east-1
image: public.ecr.aws/docker/library/nginx:latest
port: 8080
env:
LOG_LEVEL: info
ENVIRONMENT: production
@@ -0,0 +1,15 @@
# Complex ECS service with env vars + health check
environment: dev
id: svc
infrastructure:
ecs-service:
inputs:
env:
ENVIRONMENT: production
LOG_LEVEL: info
image: public.ecr.aws/docker/library/nginx:latest
name: my-production-service
port: 8080
region: us-east-1
version: 1.0.0
name: ecs service
@@ -1,8 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: ecs-service
environment: dev
inputs:
name: my-service
region: us-east-1
image: public.ecr.aws/docker/library/nginx:latest
port: 80
@@ -0,0 +1,11 @@
environment: dev
id: svc
infrastructure:
ecs-service:
inputs:
image: public.ecr.aws/docker/library/nginx:latest
name: my-service
port: 80
region: us-east-1
version: 1.0.0
name: ecs service
+18 -13
View File
@@ -66,29 +66,34 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: iam-role
environment: dev
inputs:
name: my-task-role
region: us-east-1
id: role
infrastructure:
iam-role:
inputs:
name: my-task-role
region: us-east-1
version: 1.0.0
name: iam-role
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex IAM role with managed policies
uses: acdl/pipelines/deploy.yaml@v1.6
module: iam-role
environment: dev
inputs:
name: my-production-task-role
region: us-east-1
id: role
infrastructure:
iam-role:
inputs:
name: my-production-task-role
region: us-east-1
version: 1.0.0
name: iam-role
```
## Versioning
@@ -1,7 +0,0 @@
# Complex IAM role with managed policies
uses: acdl/pipelines/deploy.yaml@v1.6
module: iam-role
environment: dev
inputs:
name: my-production-task-role
region: us-east-1
+10
View File
@@ -0,0 +1,10 @@
# Complex IAM role with managed policies
environment: dev
id: role
infrastructure:
iam-role:
inputs:
name: my-production-task-role
region: us-east-1
version: 1.0.0
name: iam role
-6
View File
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: iam-role
environment: dev
inputs:
name: my-task-role
region: us-east-1
+9
View File
@@ -0,0 +1,9 @@
environment: dev
id: role
infrastructure:
iam-role:
inputs:
name: my-task-role
region: us-east-1
version: 1.0.0
name: iam role
+19 -13
View File
@@ -67,29 +67,35 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.8
module: kms-key
environment: dev
inputs:
description: "Simple CMK for testing"
region: us-east-1
id: kms
infrastructure:
kms-key:
inputs:
description: Simple CMK for testing
region: us-east-1
version: 1.0.0
name: kms-key
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.8
module: kms-key
environment: dev
inputs:
description: "Production CMK with 90-day deletion window"
region: us-east-1
deletion_window_days: 90
id: kms
infrastructure:
kms-key:
inputs:
deletion_window_days: 90
description: Production CMK with 90-day deletion window
region: us-east-1
version: 1.0.0
name: kms-key
```
## Versioning
-7
View File
@@ -1,7 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.8
module: kms-key
environment: dev
inputs:
description: "Production CMK with 90-day deletion window"
region: us-east-1
deletion_window_days: 90
+10
View File
@@ -0,0 +1,10 @@
environment: dev
id: kms
infrastructure:
kms-key:
inputs:
deletion_window_days: 90
description: Production CMK with 90-day deletion window
region: us-east-1
version: 1.0.0
name: kms key
-6
View File
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.8
module: kms-key
environment: dev
inputs:
description: "Simple CMK for testing"
region: us-east-1
+9
View File
@@ -0,0 +1,9 @@
environment: dev
id: kms
infrastructure:
kms-key:
inputs:
description: Simple CMK for testing
region: us-east-1
version: 1.0.0
name: kms key
+45 -39
View File
@@ -95,42 +95,46 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
# Simple RDS postgres instance
uses: acdl/pipelines/deploy.yaml@v1.6
module: rds
environment: dev
inputs:
engine: postgres
engine_version: "16.4"
instance_class: db.t3.micro
allocated_storage: 20
db_name: my_app_db
username: db_admin
region: us-east-1
id: rds
infrastructure:
rds:
inputs:
allocated_storage: 20
db_name: my_app_db
engine: postgres
engine_version: '16.4'
instance_class: db.t3.micro
region: us-east-1
username: db_admin
version: 1.0.0
name: rds-instance
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex RDS postgres with multi-AZ + encryption
uses: acdl/pipelines/deploy.yaml@v1.6
module: rds
environment: dev
inputs:
engine: postgres
engine_version: "16.4"
instance_class: db.r6g.large
allocated_storage: 100
db_name: my_production_db
username: db_admin
multi_az: true
storage_encrypted: true
region: us-east-1
id: rds
infrastructure:
rds:
inputs:
allocated_storage: 100
db_name: my_production_db
engine: postgres
engine_version: '16.4'
instance_class: db.r6g.large
multi_az: true
region: us-east-1
storage_encrypted: true
username: db_admin
version: 1.0.0
name: rds-instance
```
### Multi-engine variation
@@ -140,25 +144,27 @@ the `engine_version` must match.
#### PostgreSQL
[`examples/simple.yaml`](examples/simple.yaml) — postgres 16.4
[`examples/simple.yml`](examples/simple.yml) — postgres 16.4
#### MySQL
[`examples/mysql.yaml`](examples/mysql.yaml) — mysql 8.4
[`examples/mysql.yml`](examples/mysql.yml) — mysql 8.4
```yaml
# RDS mysql variation
uses: acdl/pipelines/deploy.yaml@v1.6
module: rds
environment: dev
inputs:
engine: mysql
engine_version: "8.4"
instance_class: db.t3.micro
allocated_storage: 20
db_name: my_mysql_db
username: db_admin
region: us-east-1
id: rds
infrastructure:
rds:
inputs:
allocated_storage: 20
db_name: my_mysql_db
engine: mysql
engine_version: '8.4'
instance_class: db.t3.micro
region: us-east-1
username: db_admin
version: 1.0.0
name: rds-instance
```
## Versioning
-14
View File
@@ -1,14 +0,0 @@
# Complex RDS postgres with multi-AZ + encryption
uses: acdl/pipelines/deploy.yaml@v1.6
module: rds
environment: dev
inputs:
engine: postgres
engine_version: "16.4"
instance_class: db.r6g.large
allocated_storage: 100
db_name: my_production_db
username: db_admin
multi_az: true
storage_encrypted: true
region: us-east-1
+17
View File
@@ -0,0 +1,17 @@
# Complex RDS postgres with multi-AZ + encryption
environment: dev
id: rds
infrastructure:
rds:
inputs:
allocated_storage: 100
db_name: my_production_db
engine: postgres
engine_version: '16.4'
instance_class: db.r6g.large
multi_az: true
region: us-east-1
storage_encrypted: true
username: db_admin
version: 1.0.0
name: rds-instance
-12
View File
@@ -1,12 +0,0 @@
# RDS mysql variation
uses: acdl/pipelines/deploy.yaml@v1.6
module: rds
environment: dev
inputs:
engine: mysql
engine_version: "8.4"
instance_class: db.t3.micro
allocated_storage: 20
db_name: my_mysql_db
username: db_admin
region: us-east-1
+15
View File
@@ -0,0 +1,15 @@
# RDS mysql variation
environment: dev
id: rds
infrastructure:
rds:
inputs:
allocated_storage: 20
db_name: my_mysql_db
engine: mysql
engine_version: '8.4'
instance_class: db.t3.micro
region: us-east-1
username: db_admin
version: 1.0.0
name: rds-instance
-12
View File
@@ -1,12 +0,0 @@
# Simple RDS postgres instance
uses: acdl/pipelines/deploy.yaml@v1.6
module: rds
environment: dev
inputs:
engine: postgres
engine_version: "16.4"
instance_class: db.t3.micro
allocated_storage: 20
db_name: my_app_db
username: db_admin
region: us-east-1
+15
View File
@@ -0,0 +1,15 @@
# Simple RDS postgres instance
environment: dev
id: rds
infrastructure:
rds:
inputs:
allocated_storage: 20
db_name: my_app_db
engine: postgres
engine_version: '16.4'
instance_class: db.t3.micro
region: us-east-1
username: db_admin
version: 1.0.0
name: rds-instance
+18 -12
View File
@@ -65,28 +65,34 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: s3
environment: dev
inputs:
bucket_name: my-simple-bucket
region: us-east-1
id: s3a
infrastructure:
s3:
inputs:
bucket_name: my-simple-bucket
region: us-east-1
version: 1.0.0
name: s3-bucket
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: s3
environment: dev
inputs:
bucket_name: my-production-bucket
region: us-east-1
id: s3a
infrastructure:
s3:
inputs:
bucket_name: my-production-bucket
region: us-east-1
version: 1.0.0
name: s3-bucket
```
> **Note:** the s3 primitive's compliance extensions (Object Lock, access
-6
View File
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: s3
environment: dev
inputs:
bucket_name: my-production-bucket
region: us-east-1
+9
View File
@@ -0,0 +1,9 @@
environment: dev
id: s3a
infrastructure:
s3:
inputs:
bucket_name: my-production-bucket
region: us-east-1
version: 1.0.0
name: s3-bucket
-6
View File
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: s3
environment: dev
inputs:
bucket_name: my-simple-bucket
region: us-east-1
+9
View File
@@ -0,0 +1,9 @@
environment: dev
id: s3a
infrastructure:
s3:
inputs:
bucket_name: my-simple-bucket
region: us-east-1
version: 1.0.0
name: s3-bucket
+50 -44
View File
@@ -87,14 +87,17 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.8
module: uptime
environment: dev
inputs:
region: us-east-1
feature_flag_enabled: true
id: up1
infrastructure:
uptime:
inputs:
feature_flag_enabled: true
region: us-east-1
version: 1.0.0
name: uptime-monitor
```
### Complex
@@ -102,46 +105,49 @@ inputs:
A production deployment with monitored endpoints, static checks, and
multiple alert channels:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.8
module: uptime
environment: dev
inputs:
region: us-east-1
feature_flag_enabled: true
cpu: 512
memory: 1024
monitored_endpoints:
- name: "api-health"
url: "https://api.example.com/health"
type: "http"
interval_seconds: 30
timeout_seconds: 10
- name: "dns-check"
url: "example.com"
type: "dns"
interval_seconds: 60
timeout_seconds: 10
- name: "tcp-check"
url: "db.example.com:5432"
type: "tcp"
interval_seconds: 60
timeout_seconds: 10
static_checks:
- name: "google"
url: "https://google.com"
type: "http"
interval_seconds: 60
timeout_seconds: 10
alert_channels:
teams_webhook: "https://hooks.example.com/teams/webhook"
email_addresses:
- "oncall@example.com"
- "sre@example.com"
sms_numbers:
- "+1234567890"
github_issue_repo: "acdl/acdl"
id: up1
infrastructure:
uptime:
inputs:
alert_channels:
email_addresses:
- oncall@example.com
- sre@example.com
github_issue_repo: acdl/acdl
sms_numbers:
- '+1234567890'
teams_webhook: https://hooks.example.com/teams/webhook
cpu: 512
feature_flag_enabled: true
memory: 1024
monitored_endpoints:
- interval_seconds: 30
name: api-health
timeout_seconds: 10
type: http
url: https://api.example.com/health
- interval_seconds: 60
name: dns-check
timeout_seconds: 10
type: dns
url: example.com
- interval_seconds: 60
name: tcp-check
timeout_seconds: 10
type: tcp
url: db.example.com:5432
region: us-east-1
static_checks:
- interval_seconds: 60
name: google
timeout_seconds: 10
type: http
url: https://google.com
version: 1.0.0
name: uptime-monitor
```
## Versioning
-38
View File
@@ -1,38 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.8
module: uptime
environment: dev
inputs:
region: us-east-1
feature_flag_enabled: true
cpu: 512
memory: 1024
monitored_endpoints:
- name: "api-health"
url: "https://api.example.com/health"
type: "http"
interval_seconds: 30
timeout_seconds: 10
- name: "dns-check"
url: "example.com"
type: "dns"
interval_seconds: 60
timeout_seconds: 10
- name: "tcp-check"
url: "db.example.com:5432"
type: "tcp"
interval_seconds: 60
timeout_seconds: 10
static_checks:
- name: "google"
url: "https://google.com"
type: "http"
interval_seconds: 60
timeout_seconds: 10
alert_channels:
teams_webhook: "https://hooks.example.com/teams/webhook"
email_addresses:
- "oncall@example.com"
- "sre@example.com"
sms_numbers:
- "+1234567890"
github_issue_repo: "acdl/acdl"
+41
View File
@@ -0,0 +1,41 @@
environment: dev
id: up1
infrastructure:
uptime:
inputs:
alert_channels:
email_addresses:
- oncall@example.com
- sre@example.com
github_issue_repo: acdl/acdl
sms_numbers:
- '+1234567890'
teams_webhook: https://hooks.example.com/teams/webhook
cpu: 512
feature_flag_enabled: true
memory: 1024
monitored_endpoints:
- interval_seconds: 30
name: api-health
timeout_seconds: 10
type: http
url: https://api.example.com/health
- interval_seconds: 60
name: dns-check
timeout_seconds: 10
type: dns
url: example.com
- interval_seconds: 60
name: tcp-check
timeout_seconds: 10
type: tcp
url: db.example.com:5432
region: us-east-1
static_checks:
- interval_seconds: 60
name: google
timeout_seconds: 10
type: http
url: https://google.com
version: 1.0.0
name: uptime-monitor
-6
View File
@@ -1,6 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.8
module: uptime
environment: dev
inputs:
region: us-east-1
feature_flag_enabled: true
+9
View File
@@ -0,0 +1,9 @@
environment: dev
id: up1
infrastructure:
uptime:
inputs:
feature_flag_enabled: true
region: us-east-1
version: 1.0.0
name: uptime-monitor
+22 -17
View File
@@ -69,33 +69,38 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
uses: acdl/pipelines/deploy.yaml@v1.6
module: vpc
environment: dev
inputs:
cidr: 10.0.0.0/16
azs: us-east-1a,us-east-1b
name: my-vpc
region: us-east-1
id: vpc
infrastructure:
vpc:
inputs:
azs: us-east-1a,us-east-1b
cidr: 10.0.0.0/16
name: my-vpc
region: us-east-1
version: 1.0.0
name: vpc-network
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex VPC with 3 AZs and a custom CIDR
uses: acdl/pipelines/deploy.yaml@v1.6
module: vpc
environment: dev
inputs:
cidr: 10.50.0.0/16
azs: us-east-1a,us-east-1b,us-east-1c
name: my-production-vpc
region: us-east-1
id: vpc
infrastructure:
vpc:
inputs:
azs: us-east-1a,us-east-1b,us-east-1c
cidr: 10.50.0.0/16
name: my-production-vpc
region: us-east-1
version: 1.0.0
name: vpc-network
```
## Versioning
-9
View File
@@ -1,9 +0,0 @@
# Complex VPC with 3 AZs and a custom CIDR
uses: acdl/pipelines/deploy.yaml@v1.6
module: vpc
environment: dev
inputs:
cidr: 10.50.0.0/16
azs: us-east-1a,us-east-1b,us-east-1c
name: my-production-vpc
region: us-east-1
+12
View File
@@ -0,0 +1,12 @@
# Complex VPC with 3 AZs and a custom CIDR
environment: dev
id: vpc
infrastructure:
vpc:
inputs:
azs: us-east-1a,us-east-1b,us-east-1c
cidr: 10.50.0.0/16
name: my-production-vpc
region: us-east-1
version: 1.0.0
name: vpc-network
-8
View File
@@ -1,8 +0,0 @@
uses: acdl/pipelines/deploy.yaml@v1.6
module: vpc
environment: dev
inputs:
cidr: 10.0.0.0/16
azs: us-east-1a,us-east-1b
name: my-vpc
region: us-east-1
+11
View File
@@ -0,0 +1,11 @@
environment: dev
id: vpc
infrastructure:
vpc:
inputs:
azs: us-east-1a,us-east-1b
cidr: 10.0.0.0/16
name: my-vpc
region: us-east-1
version: 1.0.0
name: vpc-network
+20 -16
View File
@@ -69,32 +69,36 @@ pipeline validates them against `schemas/contract.schema.json`.
A minimal deployment:
[`examples/simple.yaml`](examples/simple.yaml)
[`examples/simple.yml`](examples/simple.yml)
```yaml
# Simple WAF with managed rules only
uses: acdl/pipelines/deploy.yaml@v1.6
module: waf
environment: dev
inputs:
name: my-waf
region: us-east-1
id: waf
infrastructure:
waf:
inputs:
name: my-waf
region: us-east-1
version: 1.0.0
name: waf-firewall
```
### Complex
A production deployment with optional inputs:
[`examples/complex.yaml`](examples/complex.yaml)
[`examples/complex.yml`](examples/complex.yml)
```yaml
# Complex WAF with rate limiting + geo blocking (custom rules)
uses: acdl/pipelines/deploy.yaml@v1.6
module: waf
environment: dev
inputs:
name: my-production-waf
scope: cloudfront
default_action: allow
region: us-east-1
id: waf
infrastructure:
waf:
inputs:
default_action: allow
name: my-production-waf
region: us-east-1
scope: cloudfront
version: 1.0.0
name: waf-firewall
```
## Versioning
-9
View File
@@ -1,9 +0,0 @@
# Complex WAF with rate limiting + geo blocking (custom rules)
uses: acdl/pipelines/deploy.yaml@v1.6
module: waf
environment: dev
inputs:
name: my-production-waf
scope: cloudfront
default_action: allow
region: us-east-1
+12
View File
@@ -0,0 +1,12 @@
# Complex WAF with rate limiting + geo blocking (custom rules)
environment: dev
id: waf
infrastructure:
waf:
inputs:
default_action: allow
name: my-production-waf
region: us-east-1
scope: cloudfront
version: 1.0.0
name: waf-firewall
-7
View File
@@ -1,7 +0,0 @@
# Simple WAF with managed rules only
uses: acdl/pipelines/deploy.yaml@v1.6
module: waf
environment: dev
inputs:
name: my-waf
region: us-east-1
+10
View File
@@ -0,0 +1,10 @@
# Simple WAF with managed rules only
environment: dev
id: waf
infrastructure:
waf:
inputs:
name: my-waf
region: us-east-1
version: 1.0.0
name: waf-firewall