All Projects → iann0036 → cfn-tf-custom-types

iann0036 / cfn-tf-custom-types

Licence: MIT license
CloudFormation Custom Types for Terraform resources.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to cfn-tf-custom-types

Aws Toolkit Eclipse
AWS Toolkit for Eclipse – an open-source plugin for developing, deploying, and managing AWS applications.
Stars: ✭ 252 (+375.47%)
Mutual labels:  cloudformation
ssm-ami-automation
Automated AMI creation using SSM
Stars: ✭ 14 (-73.58%)
Mutual labels:  cloudformation
traefik-cluster-ecs
This is a tutorial on how to deploy a Traefik Load Balancer in AWS using CloudFormation to load balancer development ECS tasks using hosts (FQDN).
Stars: ✭ 62 (+16.98%)
Mutual labels:  cloudformation
aws-pdf-textract-pipeline
🔍 Data pipeline for crawling PDFs from the Web and transforming their contents into structured data using AWS textract. Built with AWS CDK + TypeScript
Stars: ✭ 141 (+166.04%)
Mutual labels:  cloudformation
matlab-production-server-on-aws
Stand up a MATLAB Production Server using CloudFormation
Stars: ✭ 21 (-60.38%)
Mutual labels:  cloudformation
serverless-discord-bot
A serverless Discord Bot template built for AWS Lambda based on Discord's slash commands and the slash-create library.
Stars: ✭ 37 (-30.19%)
Mutual labels:  cloudformation
Aws Sso Util
Smooth out the rough edges of AWS SSO (temporarily, until AWS makes it better).
Stars: ✭ 208 (+292.45%)
Mutual labels:  cloudformation
collector-backend
Back-end collector API and publishers for Desole
Stars: ✭ 64 (+20.75%)
Mutual labels:  cloudformation
cloudwatch-dashboards-cloudformation-sample
A sample project to demonstrate using Cloudformation, how to create and configure CloudWatch metric filters, alarms and a dashboard to monitor an AWS Lambda function.
Stars: ✭ 61 (+15.09%)
Mutual labels:  cloudformation
aws-batch-example
Example use of AWS batch
Stars: ✭ 96 (+81.13%)
Mutual labels:  cloudformation
Nietzsche
Scrap quotes from Goodreads and schedule random tweets.
Stars: ✭ 44 (-16.98%)
Mutual labels:  cloudformation
paco
Paco: Prescribed automation for cloud orchestration
Stars: ✭ 32 (-39.62%)
Mutual labels:  cloudformation
cfn-include
Preprocessor for CloudFormation templates with support for loops and flexible include statements
Stars: ✭ 83 (+56.6%)
Mutual labels:  cloudformation
aws-tmux
Tmux plugin that gives you access to some (potentially) useful information about AWS.
Stars: ✭ 24 (-54.72%)
Mutual labels:  cloudformation
sam-scaffold
A template for an AWS SAM project with continuous integration.
Stars: ✭ 80 (+50.94%)
Mutual labels:  cloudformation
Docs
Rapid CloudFormation: Modular, production ready, open source.
Stars: ✭ 209 (+294.34%)
Mutual labels:  cloudformation
aws-customer-churn-pipeline
An End to End Customer Churn Prediction solution using AWS services.
Stars: ✭ 30 (-43.4%)
Mutual labels:  cloudformation
data-transfer-hub
Seamless User Interface for replicating data into AWS.
Stars: ✭ 102 (+92.45%)
Mutual labels:  cloudformation
aws-serverless-code-pipeline-cf-template
This solution allows you to use a AWS CloudFormation template to create AWS CodePipeline, and AWS CodeBuild supporting Serverless Framework and GitHub
Stars: ✭ 40 (-24.53%)
Mutual labels:  cloudformation
cfn-cheapest-nat
Cheapest AWS VPC NAT.
Stars: ✭ 38 (-28.3%)
Mutual labels:  cloudformation

CloudFormation Custom Types for Terraform

Resource Count

Deploy over 6,000 new resource types with CloudFormation custom types.

CAUTION: This project is currently in beta stages. Some resources may not work as expected. Please report these if you find them.

This project registers the CloudFormation equivalent of any official or verified Terraform provider resources and allows you to manage the lifecycle of these types using CloudFormation.

Installation

To use the types, you must first deploy the Execution Infrastructure (which is responsible for running Terraform within your account) then perform the resource registration step for each type you intend to use.

Execution Infrastructure

Launch Stack

Click the above link to deploy the stack to your environment. This stack creates a single bucket in your account for the storage of state data, as well as a Lambda function that is used to execute the Terraform actions.

If you prefer, you can also manually upsert the template.yml stack from source.

Resource Registration

Resources may be registered from the AWS CloudFormation Public Registry. At the time of writing, only a small set of resources are supported due to limitations with service limits.

To register the type, click the "Activate" button from the Registry: Public Extensions area. You may override the default type if you wish. For the "Execution role ARN" field, the outputs of the Execution Infrastructure stack has an ARN you may use. Logging config may be left blank and automatic updates is recommended to be enabled.

If your desired type is not yet available, you can generate the type privately yourself using the instructions in the below expandable section:

Click here for resource generation instructions:

Resource Generation

Requirements

The below requirements must be installed and be available in PATH:

  • Python 3
  • Git
  • Docker
  • Terraform 0.15+
  • CloudFormation CLI with Python Provider

Generation

To generate the custom type source files, run:

python3 generate.py <providername>
# For example:
python3 generate.py aws

Note that generating all files may take several minutes depending upon the amount of resources the provider has.

You can also use all as the provider name to generate resources for all providers. Note this can take some hours to complete.

Submission

Once you have generated the required resource files, you can submit the type to the CloudFormation registry by running the following:

python3 submit.py <resourcename>
# For example:
python3 submit.py TF::AWS::Instance

Note that resource submission will also generally take several minutes.

Resource Usage

Most providers will require you to store credentials and/or other provider-specific settings within AWS Secrets Manager in order to access their services, generally in the secret name format terraform/provider-name-lowercase. For the AWS provider only, the resources permissions will suffice, however you may choose to override those values in the secret.

A full list of documentation can be found here.

You can use a submitted resource like any other CloudFormation native resource, provided you follow the appropriate documentation. Check out some of the examples to get started.

How It Works

Architecture Diagram

Acknowledgements

This project would not be possible without the work from the contributors to Terraform providers and the Terraform core product.

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].