Skip to content

sensat/take-home-infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Take-Home Exercise: Import Existing AWS Resources into Pulumi

Estimated time: ~1 hour Tech: Pulumi (language of your choice)
AWS Services: S3, SNS, IAM, EC2, Eventbridge Credentials: Read-only AWS access (provided by us)


Scenario

Your team is beginning to migrate an existing AWS environment into infrastructure-as-code using Pulumi.

You have been provided read-only AWS credentials to a small sandbox account that already contains several deployed resources, including:

  • A few S3 buckets
  • One or more SNS topics
  • Some IAM roles used by application components
  • A small number of EC2 instances
  • One additional AWS resource type that is not supported by the standard @pulumi/aws provider (Hint: you may need the aws-native provider to import it.)

Your goal is to discover the resources and import a reasonable subset of them into a new Pulumi stack.


Your Task

1. Create a new Pulumi project

Use any Pulumi-supported language (TypeScript, Go, Python).

2. Explore the AWS account

Using the provided read-only credentials (store/aws/playground/candidate1-keys):

  • Identify which resources appear to be part of an “active” environment.
  • You are not told which ones matter, so you must make reasonable assumptions.
  • Some resources may look unused, inconsistent, or legacy.

Document your reasoning in the README.

3. Import a subset of resources

In your Pulumi program:

  • Import one AWS EventBridge schedule
  • Import at least another three AWS resources across different services (e.g., one S3 bucket, one IAM role, one EC2 instance).
  • For one resource, you may need to use @pulumi/aws-native instead of @pulumi/aws (e.g., newer AWS services that only exist in CloudControl/Native).
  • Your code should define the resources and include the import directive for each.

4. Handle ambiguity

You may notice:

  • Missing tags
  • Unclear naming conventions
  • Legacy resources intermixed with active ones

Make reasonable assumptions and document them.

5. Deliverables

Submit a (tar.gz or zip or Github repository link) containing:

  • The Pulumi project (excluding large vendor directories)
  • A short README (5–10 sentences) describing:
    • Which resources you chose to import
    • Any challenges or ambiguities
    • Why you selected certain resources and ignored others
    • Any assumptions or defaults you applied
    • Notes on the one resource that required aws-native (if applicable)

We are not evaluating perfection or full coverage — only your approach, reasoning, and Pulumi import skills.


Constraints

  • Total expected time: ~1 hour
  • AWS permissions are read-only
  • You may not create, modify, or tag AWS resources
  • You may use Pulumi’s CLI imports, SDK imports, or both

About

Take-home infra challenge

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors