Skip to main content

✈️ make-argocd-fly

A powerful tool for generating ArgoCD Applications and their rendered Kubernetes resources from Helm, Kustomize, and Jinja2 — across multiple environments, at scale.

tests cov License: MIT


🔧 What It Does

make-argocd-fly lets you:

  • Render Helm charts and Kustomize overlays into plain Kubernetes manifests, so you know exactly what will be deployed
  • Add Jinja2-based templating for reusable parametrization
  • Automatically generate ArgoCD Application resources
  • Organize applications into a well-defined directory structure
  • Define multiple environments and control what gets deployed where

Think of it as a static GitOps generator for Kubernetes — rendering, organizing, and wiring your apps for ArgoCD.


🧩 The Rendered Manifest Pattern

The Kubernetes GitOps community recently introduced the Rendered Manifest Pattern as a best practice for managing applications with ArgoCD.

Instead of letting ArgoCD invoke Helm or Kustomize internally, you pre-render manifests outside the cluster and commit only plain YAML to Git. This makes your Git repo the single source of truth for the exact Kubernetes resources being deployed.

Why this matters

When ArgoCD runs Helm or Kustomize directly, you may hit problems like:

  • Version drift – different clusters use different plugin versions and render inconsistently
  • Debugging blind spots – failures happen inside ArgoCD, with no access to the rendered YAML
  • Unreviewable diffs – Git diffs show template changes, not the actual manifests applied
  • Limited portability – CI/CD, linters, and policy tools can’t easily check resources
  • Operational surprises – subtle plugin/env differences lead to unexpected drift

With pre-rendered manifests you gain:

  • Single source of truth – Git shows exactly what ArgoCD applies
  • Deterministic builds – no hidden differences across environments
  • Transparent reviews – PR diffs show actual Kubernetes changes
  • Pluggable checks – run linters and security scanners on YAML in CI
  • Simpler ops – ArgoCD only syncs plain YAML, reducing complexity

make-argocd-fly is a practical implementation of the Rendered Manifest Pattern. It automates rendering of Helm charts, Kustomize overlays, and Jinja2 templates, organizes them by environment, and generates ArgoCD Application resources pointing to the rendered output.


💡 Key Features

  • Helm rendering Render Helm charts into raw manifests.

  • Kustomize overlays Render Kustomize overlays into fully resolved Kubernetes manifests. See the full, flattened configuration before deployment.

  • Jinja2 templating Use variables, logic, and partials to build composable app definitions.

  • Multi-environment support Define once and deploy to multiple environments (e.g. dev, staging, prod) with clean separation of concerns.

  • ArgoCD Application generation Automatically generate Application CRs based on your configuration and environment layout.

  • Repeatable & Git-friendly Fully GitOps-compatible. Output is deterministic and fits naturally into pull request workflows.


📦 Installation

pip install make-argocd-fly

📁 Project Structure (Example)

config/
  ├── my_vars.yml              # Config file
  └── my_apps.yml              # Config file
source/
  ├── my_awesome_app/          # Application source resources
  └── monitoring/
        ├── prometheus/        # Application source resources
        └── grafana/           # Application source resources
output/
  └── my_env/                  # Environment name
        ├── my_awesome_app/    # Application YAML resources
        └── monitoring/
            ├── prometheus/    # Application YAML resources
            └── grafana/       # Application YAML resources

🔄 Example Workflow

make-argocd-fly

Shortcut: you can also use maf as an alias for make-argocd-fly.

What it does:

  • Applies Jinja2 templates with the right variables
  • Renders Helm and Kustomize into raw manifests
  • Generates Application manifests for ArgoCD
  • Organizes everything under ./output/

📘 Documentation


📣 Community & Feedback


🛡 License

MIT License – see LICENSE for full text.

Metadata

Release files for make-argocd-fly 0.4.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for make-argocd-fly 0.4.8
File Size Uploaded
make_argocd_fly-0.4.8.tar.gz 166.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for make-argocd-fly 0.4.8
File Interpreter ABI Platform
make_argocd_fly-0.4.8-py3-none-any.whl Python 3 none any Details

Total release size: 428.2 kB

Release files / make_argocd_fly-0.4.8.tar.gz

Download URL make_argocd_fly-0.4.8.tar.gz
Size 166.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9ae974229edfe95b19ead6c343e9859b432b09941b51166bbe8dd3bc991fe2f7
BLAKE2b-256 checksum
How to use checksums
0f9240e0d9458a25d3c7a560a19906ec6aefbffc7a34d14df173d9c9d23b5cbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.11.15

Release files / make_argocd_fly-0.4.8-py3-none-any.whl

Download URL make_argocd_fly-0.4.8-py3-none-any.whl
Size 261.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
661446a0291c4aaf94ad507414f1252e821a2d977ad2e223367cb0a8f238a715
BLAKE2b-256 checksum
How to use checksums
6416ac439be840f70e94cd2caa1ce95e7dedec180430246a7f45bd2e8a656091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.4.8 This release

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.15

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.42

2 release files

0.0.41

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.18

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page