apm-wo-analysis/cdk/app.py
Adam Moussa 58b91bda70 Scaffold apm-wo-analysis repository
Stand up the Phase 0 CDK scaffold for the daily APM work-order
analysis pipeline: two-stack CDK app (pipeline + grafana), classifier
and slack-post Lambda packages, dashboards-as-code, the local
drop-folder uploader, and a classifier smoke-test placeholder.

Wire CI/CD to the org reusable workflows: ci.yaml -> ci-python-sam
(ruff + cdk synth) and deploy.yaml -> cd-cdk (OIDC, cdk deploy --all).
Pin aws-cdk-lib==2.253.1; Lambdas target Python 3.12 / arm64.

Rewrite .gitignore to the org Python-CDK standard so the source-of-
truth files (CLAUDE.md, docs/, .claude/agents) are tracked while build
artifacts (.venv, cdk.out, caches) stay ignored.

Domain logic, stack resources, and dashboards are stubbed and filled
in across Phases 1-5 (docs/BUILD.md). cdk synth is green for both
stacks; ruff check/format pass.
2026-05-28 16:13:13 -04:00

34 lines
775 B
Python

#!/usr/bin/env python3
"""CDK app entry point for apm-wo-analysis.
Two stacks, both pinned to account 328440206208 / us-east-1:
- apm-wo-analysis-pipeline : S3, classifier + slack-post Lambdas, Glue, Athena, IAM
- apm-wo-analysis-grafana : self-hosted Grafana on EC2 (VPN-only)
See docs/BUILD.md for the phased build-out.
"""
import aws_cdk as cdk
from stacks.grafana_stack import GrafanaStack
from stacks.pipeline_stack import PipelineStack
ENV = cdk.Environment(account="328440206208", region="us-east-1")
app = cdk.App()
PipelineStack(
app,
"apm-wo-analysis-pipeline",
stack_name="apm-wo-analysis-pipeline",
env=ENV,
)
GrafanaStack(
app,
"apm-wo-analysis-grafana",
stack_name="apm-wo-analysis-grafana",
env=ENV,
)
app.synth()