All Projects → asicsdigital → Terraform Reference

asicsdigital / Terraform Reference

Licence: mit
Terraform reference / skel Control Repo for building for building multi-tier services

Projects that are alternatives of or similar to Terraform Reference

Hcloud Okd4
Deploy OKD4 (OpenShift) on Hetzner Cloud
Stars: ✭ 29 (-12.12%)
Mutual labels:  terraform, hcl
Terraform Sqs Lambda Trigger Example
Example on how to create a AWS Lambda triggered by SQS in Terraform
Stars: ✭ 31 (-6.06%)
Mutual labels:  terraform, hcl
Terraform Google Vault
Terraform module to deploy Vault as a container on Google Cloud Run
Stars: ✭ 25 (-24.24%)
Mutual labels:  terraform, hcl
Fdb Cloud Test
Packer + Terraform setup to experiment with FDB clusters in the cloud.
Stars: ✭ 23 (-30.3%)
Mutual labels:  terraform, hcl
Terraform Aws Cross Account Role
A Terraform module to create an IAM Role for Cross Account delegation.
Stars: ✭ 30 (-9.09%)
Mutual labels:  terraform, hcl
Terraform Best Practices
Terraform Best Practices for AWS users
Stars: ✭ 931 (+2721.21%)
Mutual labels:  terraform, hcl
Lambda Deployment Example
Automated Lambda Deployments with Terraform & CodePipeline
Stars: ✭ 25 (-24.24%)
Mutual labels:  terraform, hcl
Vim Terraform
basic vim/terraform integration
Stars: ✭ 668 (+1924.24%)
Mutual labels:  terraform, hcl
Terra Aws Core Kube
Terraform configuration to bootstrap a Kubernetes Cluster on top of CoreOS using AWS-EC2 instances
Stars: ✭ 10 (-69.7%)
Mutual labels:  terraform, hcl
Terraform Best Practices
Terraform best practices (constantly updating)
Stars: ✭ 940 (+2748.48%)
Mutual labels:  terraform, hcl
Terraform Openstack Rke
Terraform Openstack RKE
Stars: ✭ 23 (-30.3%)
Mutual labels:  terraform, hcl
K8s Digitalocean Terraform
Deploy latest Kubernetes cluster on DigitalOcean using Terraform
Stars: ✭ 33 (+0%)
Mutual labels:  terraform, hcl
Terraform Aws Vpc Peering
A Terraform module to configure a VPC Peering connection in AWS.
Stars: ✭ 17 (-48.48%)
Mutual labels:  terraform, hcl
Vector Test Harness
End-to-end test harness for the Vector observability data router
Stars: ✭ 32 (-3.03%)
Mutual labels:  terraform, hcl
Vscode Terraform
A Visual Studio Code extension for Hashicorp Terraform
Stars: ✭ 672 (+1936.36%)
Mutual labels:  terraform, hcl
Terraform Modules
Terraform Modules
Stars: ✭ 25 (-24.24%)
Mutual labels:  terraform, hcl
Terraform Ecs
AWS ECS terraform module
Stars: ✭ 657 (+1890.91%)
Mutual labels:  terraform, hcl
Red Baron
Automate creating resilient, disposable, secure and agile infrastructure for Red Teams.
Stars: ✭ 662 (+1906.06%)
Mutual labels:  terraform, hcl
Cloudguardiaas
Check Point CloudGuard Network Security repository containing solution templates, Terraform templates, tools and scripts for deploying and configuring CloudGuard Network Security products.
Stars: ✭ 27 (-18.18%)
Mutual labels:  terraform, hcl
Terraform Aws Iam Role
Terraform module to create AWS IAM Role.
Stars: ✭ 28 (-15.15%)
Mutual labels:  terraform, hcl

Terraform Control repo built following the pattern as outlined by Charity Majors

TLDR, but really, go read the post, it's way better then what I'm going to write here..

Terraform Version

The Current production terraform version can be found here

To create a new repo using the terraform-reference repo.

  • Clone the repo into a new directory for your project git clone https://github.com/FitnessKeeper/terraform-reference terraform-<project name>
  • Edit .env in the root of the repo, in particular make sure you add a TF_PROJECT_NAME (this should be the new name of the repo, terraform-<project name>)
    • When creating a spike make sure you update TF_SPINE in env if something other then rk is needed, at the time of this writing rk and asics are valid spines.
    • Also when creating ASICS spikes update to TF_LOCK_TABLE=asics-services-terraformStateLock
    • If needed, set TF_STACK for the stack variable
  • Initialize variables.tf, this only needs to be done once, when the repo is created run ./init-variables.tf.sh
  • Remove the old origin git remote rm origin
  • Add your new repo git remote add origin https://github.com/FitnessKeeper/terraform-<project name>.git
  • Commit your changes
  • git push -u origin master
  • Edit variables.tf to reflect your new service

To use an environment in the control repo

  • cd into the base dir for the env you want to work on
    • cd terraform-<service>/env-development/
  • ./init.sh # to initialize your environment
  • terraform get # to load your modules
  • terraform plan -var-file=development.tfvars # manage all the things!

Design pattern

We are trying to follow a pattern where we have an infrastructure repo with 3 tiers - dev, stage, and production, known as FitnessKeeper/terraform-runkeeper. We will use that control repo to build VPC, ECS Clusters, DNS Zones, and other resources that can be presented as a platform for use by services.

Services, will be created using atomic control repos, based off this skel, and have distinct state files for each of the tiers. In this way, we can make changes to the state of a service living atop our infrastructure, without having to push stage changes to the underlying resources.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].