slalom-ggp / dataops-tools

Reusable tools, utilities, and containers that accelerate data processing and DevOps.
MIT License
6 stars 1 forks source link

Feature Request: Python CLI to initialize base infrastructure #20

Closed aaronsteers closed 4 years ago

aaronsteers commented 4 years ago

Proposed Spec:

  1. User executes via: python -m slalom.dataops.infra init --aws ./infra
  2. Python runs the package from slalom/dataops-infra//catalog/aws-prerun,
  3. The terraform module initializes any needed artifacts locally and in the specified AWS account, including: a. (P1) aws account for terraform automation b. (P1) ssh keypair for EC2 access c. (P2) pgp keypair for file encryption d. (P3) remote secrets store (Vault or AWS Secrets Manager)
  4. Before execution, try to locate AWS credentials: a. ~/.aws/credentials b. env vars: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY c. interactive prompt to the user
  5. After successfully creating the terraform automation account, store the creds for the newly created account in ~/.aws/credentials as ${project_shortname}-terraform-account
aaronsteers commented 4 years ago

Mostly completed with #24.

Not done yet:

1. Before installation of the `prereqs/aws` infra, try to detect/locate AWS credentials:
a. ~/.aws/credentials
b. env vars: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
c. interactive prompt to the user
2. After successfully creating the terraform automation account in `prereqs/aws`, handoff the new creds to the `samples/aws` modules
aaronsteers commented 4 years ago

Passing off remaining work to slalom-ggp/dataops-infra#8