Skip to content

Home

Seed-Farmer Documentation

Welcome to the official documentation for Seed-Farmer, a Python-based CI/CD library that leverages the GitOps paradigm to manage deployed code.

What is Seed-Farmer?

Seed-Farmer is a deployment framework that supports AWS CDK, CloudFormation, Terraform, and other infrastructure-as-code tools. It uses declarative manifests to define deployable code modules and manages the state of deployed code, detecting and applying changes as needed.

Key features include:

  • Multi-Account Support: Deploy across multiple AWS accounts with proper IAM role assumption
  • Security-First: Least-privilege IAM roles and permissions boundaries
  • Metadata Sharing: Modules can export metadata for use by dependent modules
  • Module Dependency Management: Modules that share metadata are properly managed for application integrity
  • Flexible Parameterization: Support for various parameter sources including environment variables, AWS SSM Parameter Store, and AWS Secrets Manager

  • Tooling Agnostic: Support for various IaC tools (CDK, CloudFormation, Terraform)

  • GitOps Workflow: Code-driven deployments with state management

Concepts

Seed-Farmer organizes deployments within scoped hierarchies to insulate artifacts from one another, following the principals of least-privilege and dedicated access roles. Within a scoped unit, Seed-Farmer artifacts are named according to a structured pattern, assuring a unique name to prevent collisions.

  • Project: Represents all deployments scoped to a single logical name
  • Deployment: Represents all modules leveraging AWS resources in one or many accounts
  • Group: Contains modules that can be deployed concurrently (no inter-dependencies)
  • Module: The actual deployable unit of code

Seed-Farmer supports multi-account / multi-region deployments scoped to individual modules within a project.

Please see the Concepts page for an in-depth explanation.

Documentation Structure

This documentation is organized into the following sections:

  • Getting Started: Installation and initial setup guides
  • Concepts: Core concepts and architecture
  • Guides: How-to guides for common tasks
  • Sequence Diagrams: Sequence diagrams of important processes with Seed-Farmer
  • Reference: Detailed reference documentation for CLI commands, manifests, and module development
  • Public Modules: Listing of Seed-Farmer compliant OpenSource modules ready for use
  • AI Support: Artificial Intelligence support for Seed-Farmer module development

Next Steps

To get started with Seed-Farmer, please see the Getting Started Section which includes: