Project Roadmap
Relevant source files
The following files were used as context for generating this wiki page:
The Terraform AWS Provider roadmap is published quarterly to highlight the team's areas of focus for work and upcoming research. It provides transparency into the prioritization process and upcoming features, enhancements, and new service support. The items selected for the roadmap are sourced from top community issues, core service requirements, and internal priorities.
This document outlines the roadmap for a specific period, details the planned work, and explains the underlying processes, such as issue management and long-term research initiatives. For more general information, please see the contribution guidelines or the project's FAQ.
Sources: ROADMAP.md:3-5, README.md:26-28
Roadmap Process
The roadmap is formulated by selecting items from several key sources. The team evaluates top community-requested issues, the needs of Core Services, and internal development priorities. Once items are selected, they are prioritized for implementation. For items with existing community contributions, the team works with the original authors to merge their work. Otherwise, the team implements the features themselves.
Sources: ROADMAP.md:7-9
The following diagram illustrates the selection process for roadmap items.
Sources: ROADMAP.md:7-11
Issue Management and Labels
GitHub issues are managed using a set of labels to categorize and track the state of work. These labels are defined as Terraform resources themselves and are crucial for the development workflow, from initial triage to release.
The diagram below shows a simplified lifecycle of a feature request or bug report.
The table below lists some of the key labels used in the repository to manage the roadmap and development process.
| Label | Description |
|---|---|
needs-triage | Waiting for first response or review from a maintainer. |
proposal | Proposes new design or functionality. |
enhancement | Requests to existing resources that expand the functionality or scope. |
new-resource | Introduces a new resource. |
new-data-source | Introduces a new data source. |
bug | Addresses a defect in current functionality. |
breaking-change | Introduces a breaking change; usually deferred to the next major release. |
good first issue | Call to action for new contributors looking for a place to start. |
Sources: infrastructure/repository/labels-workflow.tf:1-200
Roadmap: February 2022 - April 2022
This section details the focus areas for the period of February 2022 to April 2022. While this is not an exhaustive list of all work, it represents the team's primary goals.
Sources: ROADMAP.md:1-18
New Services
The following new AWS services are prioritized for implementation.
AWS AppFlow
- Description: A fully managed integration service for secure data transfer between SaaS applications.
- Issue: #16253
- New Resources:
aws_appflow_flowaws_appflow_connector_profile
Sources: ROADMAP.md:32-41
Amazon Global Networks
- Description: A container for network objects that allows registration of transit gateways and definition of on-premises networks.
- Issue: #11132
- New Resources:
aws_networkmanager_global_networkaws_networkmanager_siteaws_networkmanager_linkaws_networkmanager_deviceaws_networkmanager_transit_gateway_registration
Sources: ROADMAP.md:44-57
Amazon OpenSearch Service
- Description: A distributed, open-source search and analytics suite. This involves updating an existing resource.
- Issue: #20853
- Affected Resource:
aws_elasticsearch_domain
Sources: ROADMAP.md:60-66
Amazon Managed Grafana
- Description: A fully managed service for open-source Grafana.
- Issue: #16789
- New Resources:
aws_grafana_workspaceaws_grafana_license_association
Sources: ROADMAP.md:69-78
Enhancements to Existing Services
Numerous enhancements to existing services are planned. The following table summarizes some of the key issues being addressed.
| Issue Summary | GitHub Issue |
|---|---|
| Changing RDS instance identifier forces destroy/create | #507 |
| Failure to destroy ASG with scale-in protection | #5278 |
| Support for time-based retention policies in DLM | #11456 |
default_tags always shows an update | #18311 |
| Support for Environment Variables in Synthetics Canary | #17948 |
| Support for Route53 Domains | #88 |
| Support for Transit Gateway multicast | #11120 |
| Support for Amazon EMR on Amazon EKS | #16717 |
| Support for API Gateway Canary release | #2727 |
Sources: ROADMAP.md:82-120
Research Topics
Research topics are long-term ideas that may significantly impact the provider's user experience. These are discovery-only and not guaranteed for a future release.
Scaffolding for New Resources
The team is researching the creation of a CLI tool to automate the repetitive task of adding new resources, data sources, and test files. This aims to ensure consistency and speed up the workflow for both contributors and maintainers. The tool would generate boilerplate files in place and handle necessary code additions, such as updating provider.go.
This concept is similar to existing code generation tools within the provider, such as the one used for generating paginated list functions.
The proposed workflow for the scaffolding tool is shown below.
The existing code generator at internal/generate/listpages/main.go serves as a precedent for this type of automation. It generates helper functions for paginated AWS API list operations, reducing manual effort.
// internal/generate/listpages/main.go:1-10
//go:build generate
// +build generate
package main
import (
"bytes"
"flag"
"fmt"
"go/ast"
//...
Sources: internal/generate/listpages/main.go:1-10
Summary
The project roadmap is a dynamic document that guides the development of the Terraform AWS Provider. By focusing on new services, key enhancements, and strategic research, the team aims to address community needs and improve the overall quality and coverage of the provider. The plans outlined are subject to change based on evolving priorities and discoveries.
Sources: ROADMAP.md:130-131, README.md:13-15