Skip to content

project-planton/aws-fargate-pulumi-module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Fargate Pulumi Module

Note: This module is not completely implemented because the API resource specification is currently empty.

Introduction

The AWS Fargate Pulumi Module provides a standardized and efficient way to define and deploy containerized applications on AWS Fargate using a Kubernetes-like API resource model. By leveraging our unified APIs, developers can specify their Fargate service configurations in simple YAML files, which the module then uses to create and manage AWS Fargate resources through Pulumi. This approach abstracts the complexity of AWS interactions and streamlines the deployment process, enabling consistent infrastructure management across multi-cloud environments.

Key Features

  • Kubernetes-Like API Resource Model: Utilizes a familiar structure with apiVersion, kind, metadata, spec, and status, making it intuitive for developers accustomed to Kubernetes to define AWS Fargate resources.

  • Unified API Structure: Ensures consistency across different resources and cloud providers by adhering to a standardized API resource model.

  • Pulumi Integration: Employs Pulumi for infrastructure provisioning, enabling the use of real programming languages and providing robust state management and automation capabilities.

  • Serverless Container Deployment: Allows developers to deploy containerized applications without managing servers or clusters, leveraging AWS Fargate's serverless compute engine.

  • Credential Management: Securely handles AWS credentials via the awsCredentialId field, ensuring authenticated and authorized resource deployments.

  • Status Reporting: Captures and stores outputs such as service endpoints in status.stackOutputs for easy reference and further automation.

Architecture

The module operates by accepting an AWS Fargate API resource definition as input. It interprets the resource definition and uses Pulumi to interact with AWS, creating the specified Fargate resources. The main components involved are:

  • API Resource Definition: A YAML file that includes all necessary information to define a Fargate service, following the standard API structure.

  • Pulumi Module: Written in Go, the module reads the API resource and uses Pulumi's AWS SDK to provision Fargate resources based on the provided specifications.

  • AWS Provider Initialization: The module initializes the AWS provider within Pulumi using the credentials specified by awsCredentialId.

  • Resource Creation: Provisions the Fargate service and associated resources as defined in the spec, including task definitions, services, and networking configurations.

  • Status Outputs: Outputs from the Pulumi deployment, such as service endpoints, are captured and stored in status.stackOutputs for easy access and integration with other systems.

Usage

Refer to the example section for usage instructions.

Limitations

  • Incomplete Implementation: As noted, the module currently lacks a complete implementation of the AWS Fargate resource creation due to an empty spec. Future updates will include full support for defining and deploying Fargate services.

Contributing

We welcome contributions to enhance the functionality of this module. Please submit pull requests or open issues to help improve the module and its documentation.

About

Pulumi Module to Deploy "AWS Fargate" w/ ProjectPlanton

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published