
Security News
AGENTS.md Gains Traction as an Open Format for AI Coding Agents
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
// Settings: :idprefix: :idseparator: - ifndef::env-github[:icons: font] ifdef::env-github,env-browser[] :toc: macro :toclevels: 1 endif::[] ifdef::env-github[] :branch: master :status: :outfilesuffix: .adoc :!toc-title: :caution-caption: :fire: :important-caption: :exclamation: :note-caption: :paperclip: :tip-caption: :bulb: :warning-caption: :warning: endif::[]
= tfctl
image:https://github.com/scalefactory/tfctl/actions/workflows/linter.yml/badge.svg["Linter", link="https://github.com/scalefactory/tfctl/actions/workflows/linter.yml"] image:https://github.com/scalefactory/tfctl/actions/workflows/test.yml/badge.svg["Tests", link="https://github.com/scalefactory/tfctl/actions/workflows/test.yml"] image:https://badge.fury.io/rb/tfctl.svg["Gem Version", link="https://badge.fury.io/rb/tfctl"] image:https://img.shields.io/badge/terraform-0.12-blue.svg["Terraform 0.12", link="https://img.shields.io/badge/terraform-0.12-blue"]
toc::[]
== Overview
tfctl
is a small Terraform wrapper for working with multi-account AWS
infrastructures where new accounts may be created dynamically and on-demand.
It discovers accounts by reading the AWS Organizations API, and can assign Terraform resources to multiple accounts based on the organization hierarchy. Resources can be assigned globally, based on organization unit (OU) or to individual accounts. It supports hierarchies of nested OUs, and helps keep your Terraform DRY.
The Scale Factory originally created tfctl to integrate Terraform with https://aws.amazon.com/solutions/aws-landing-zone/[AWS Landing Zone] and https://aws.amazon.com/controltower/[Control Tower] but should work with most other ways of managing accounts in AWS Organizations.
== Features
== Requirements
== Installation
To install the latest release from RubyGems run:
Alternatively, you can build and install from this repo with:
== Documentation
== Running tfctl
You should run tfctl
from the root of your project directory. It will generate
Terraform configuration in .tfctl/
(add this to your .gitignore
).
Anatomy of a tfctl command:
-c
specifies which tfctl config file to use (defaults to tfctl.yaml
in
current working directory if not set)TARGET_OPTIONS
specifies which accounts to target. This could be an individual
account, a group of accounts in an organizational unit or all accounts.TERRAFORM_COMMAND
will be passed to terraform
along with any
options. See https://www.terraform.io/docs/commands/index.html[Terraform
commands] for details.NOTE: You must have your AWS credentials configured before you run tfctl
, or run
it using an AWS credentials helper such as
https://github.com/99designs/aws-vault[aws-vault].
=== Example commands
Show help:
Show merged configuration:
List all discovered accounts:
TIP: This can be narrowed down using targeting options and is a good way to test what accounts match.
Run terraform init
across all accounts:
Plan Terraform across all accounts in the test
OU:
Plan Terraform in live
accounts, assuming that live
is a child OU in multiple
organization units:
Run a plan for an individual account:
Apply Terraform changes across all accounts:
Destroy Terraform-managed resources in all the test
OU accounts:
Don't buffer the output:
This will show output in real time. Usually output is buffered and displayed after the Terraform command finishes, to make it more readable when running across multiple accounts in parallel.
== Project status
tfctl
is an open source project published by The Scale Factory.
We currently consider this project to be maintained but we don't actively develop new features. We keep it security patched and ready for use in production environments.
We’ll take a look at any issues or PRs you open and get back to you as soon as we can. We don’t offer any formal SLA, but we’ll be checking on this project periodically.
If your issue is urgent, you can flag it as such, and we’ll attempt to triage appropriately, but we have paying customers who also have demands on our time. If your business depends on this project and you have an urgent problem, then you can talk to our sales team about paying us to support you.
FAQs
Unknown package
We found that tfctl demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.