@lancejpollard/tierra.aws.cloud.js

```hcl terraform { required_version = ">= 0.12" }

Usage no npm install needed!

<script type="module">
  import lancejpollardTierraAwsCloudJs from 'https://cdn.skypack.dev/@lancejpollard/tierra.aws.cloud.js';
</script>

README

tierra.aws.cloud.js

This is a Node.js function that generates Terraform configuration files for you to run Terraform on. It makes it so Terraform runs fast on the potentially thousands of resources it creates, as opposed to using fancy syntax features of the Terraform script, which break down quickly both in terms of performance and capability.

npm install @lancejpollard/tierra.aws.cloud.js

Run the following to generate a Terraform file tree in the current directory that will create one server. Perhaps call this file form.js.

const aws = require('@lancejpollard/tierra.aws.cloud.js')

aws({
  author: 'Lance Pollard',
  domain: 'example.com',
  design: '1.0.0',
  region: 'us-west-1',
  branch: 'production',
  device: 't1.micro',
  system: 'ami-08a73e98905090559',
  moment: '2020-07-31T22:25:32-07:00',
  server: 1,
  bucket: 1,
  caller: 0
})

Run this to create 1 server in each region across the network:

aws({
  author: 'Lance Pollard',
  domain: 'example.com',
  region: ['us-west-1', 'us-east-1', ...],
  device: 't1.micro',
  system: 'ami-08a73e98905090559',
  moment: '2020-07-31T22:25:32-07:00'
})
aws({
  author: 'Lance Pollard',
  domain: 'example.com',
  region: [
    {
      source: 'us-west-1',
      sector: [
        {
          source: 'us-west-1a',
          bottom: 1,
          summit: 4,
          device: 't1.micro',
          system: 'ami-08a73e98905090559'
        }
      ]
    }
  ],
  moment: '2020-07-31T22:25:32-07:00'
})
aws({
  author: 'Lance Pollard',
  domain: 'example.com',
  region: [
    {
      source: 'us-west-1',
      branch: [
        {
          source: 'us-west-1a',
          device: 't1.micro',
          system: 'ami-08a73e98905090559',
          server: {
            bottom: 1,
            summit: 4
          },
          bucket: 1
        }
      ]
    }
  ],
  moment: '2020-07-31T22:25:32-07:00'
})
node form
terraform init
terraform plan
# terraform apply # generates the actual resources

Install Terraform with Homebrew on a Mac, or Choco on Windows.

brew install terraform
choco install terraform

TODO

Trying to keep this low-level and use only the lowest-level features, instead of things like RDS (managed database service) and Kubernetes and tons of other things.

License

MIT