# ✈️ 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.
[](https://github.com/Karandash8/make-argocd-fly/actions/workflows/coverage.yml)
[](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Karandash8/26eb92c97bbfac22b938afebac85e7cd/raw/covbadge.json)
[](LICENSE)
---
## 🔧 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.
---
## 💡 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
```bash
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
```
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
- [Getting Started](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/getting-started.md)
- [Configuration](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/configuration.md)
- [Argocd Application Generation](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/argocd.md)
- [Kustomize & Helm Integration](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/kustomize.md)
- [Using Jinja2 Templates](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/templates.md)
- [CLI Reference](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/cli.md)
- [Caveats & Limitations](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/caveats.md)
- [EXAMPLES: Monitoring Stack](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/examples.md)
---
## 📣 Community & Feedback
- Found a bug or have a feature request? [Open an issue](https://github.com/Karandash8/make-argocd-fly/issues)
- Want to contribute? Check out [CONTRIBUTING.md](https://github.com/Karandash8/make-argocd-fly/blob/main/CONTRIBUTING.md)
---
## 🛡 License
MIT License – see [LICENSE](https://github.com/Karandash8/make-argocd-fly/blob/main/LICENSE) for full text.
Raw data
{
"_id": null,
"home_page": null,
"name": "make-argocd-fly",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "argocd, kustomize, jinja2",
"author": null,
"author_email": "Andrei Lapin <karandash8@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/be/90/3d44519e59b6ae411e960eb439df20523f8bfa67ad69428ac93085aca8b1/make_argocd_fly-0.3.0.tar.gz",
"platform": null,
"description": "# \u2708\ufe0f make-argocd-fly\n\nA powerful tool for generating **ArgoCD Applications** and their **rendered Kubernetes resources** from **Helm**, **Kustomize**, and **Jinja2** \u2014 across multiple environments, at scale.\n\n[](https://github.com/Karandash8/make-argocd-fly/actions/workflows/coverage.yml)\n[](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Karandash8/26eb92c97bbfac22b938afebac85e7cd/raw/covbadge.json)\n[](LICENSE)\n\n---\n\n## \ud83d\udd27 What It Does\n\n**`make-argocd-fly`** lets you:\n\n- Render **Helm charts** and **Kustomize overlays** into plain Kubernetes manifests, so you know exactly what will be deployed\n- Add **Jinja2-based templating** for reusable parametrization\n- Automatically generate **ArgoCD Application** resources\n- Organize applications into a **well-defined directory structure**\n- Define multiple environments and control **what gets deployed where**\n\nThink of it as a static GitOps generator for Kubernetes \u2014 rendering, organizing, and wiring your apps for ArgoCD.\n\n---\n\n## \ud83d\udca1 Key Features\n\n* \u2705 **Helm rendering**\nRender Helm charts into raw manifests.\n\n* \u2705 **Kustomize overlays**\nRender Kustomize overlays into fully resolved Kubernetes manifests. See the full, flattened configuration before deployment.\n\n* \u2705 **Jinja2 templating**\nUse variables, logic, and partials to build composable app definitions.\n\n* \u2705 **Multi-environment support**\nDefine once and deploy to multiple environments (e.g. `dev`, `staging`, `prod`) with clean separation of concerns.\n\n* \u2705 **ArgoCD Application generation**\nAutomatically generate Application CRs based on your configuration and environment layout.\n\n* \u2705 **Repeatable & Git-friendly**\nFully GitOps-compatible. Output is deterministic and fits naturally into pull request workflows.\n\n---\n\n## \ud83d\udce6 Installation\n\n```bash\npip install make-argocd-fly\n```\n\n---\n\n## \ud83d\udcc1 Project Structure (Example)\n\n```\nconfig/\n \u251c\u2500\u2500 my_vars.yml # Config file\n \u2514\u2500\u2500 my_apps.yml # Config file\nsource/\n \u251c\u2500\u2500 my_awesome_app/ # Application source resources\n \u2514\u2500\u2500 monitoring/\n \u251c\u2500\u2500 prometheus/ # Application source resources\n \u2514\u2500\u2500 grafana/ # Application source resources\noutput/\n \u2514\u2500\u2500 my_env/ # Environment name\n \u251c\u2500\u2500 my_awesome_app/ # Application YAML resources\n \u2514\u2500\u2500 monitoring/\n \u251c\u2500\u2500 prometheus/ # Application YAML resources\n \u2514\u2500\u2500 grafana/ # Application YAML resources\n```\n\n---\n\n## \ud83d\udd04 Example Workflow\n\n```\nmake-argocd-fly\n```\n\nWhat it does:\n- Applies Jinja2 templates with the right variables\n- Renders Helm and Kustomize into raw manifests\n- Generates `Application` manifests for ArgoCD\n- Organizes everything under `./output/`\n\n---\n\n## \ud83d\udcd8 Documentation\n\n- [Getting Started](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/getting-started.md)\n- [Configuration](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/configuration.md)\n- [Argocd Application Generation](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/argocd.md)\n- [Kustomize & Helm Integration](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/kustomize.md)\n- [Using Jinja2 Templates](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/templates.md)\n- [CLI Reference](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/cli.md)\n- [Caveats & Limitations](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/caveats.md)\n- [EXAMPLES: Monitoring Stack](https://github.com/Karandash8/make-argocd-fly/blob/main/docs/examples.md)\n\n---\n\n## \ud83d\udce3 Community & Feedback\n\n- Found a bug or have a feature request? [Open an issue](https://github.com/Karandash8/make-argocd-fly/issues)\n- Want to contribute? Check out [CONTRIBUTING.md](https://github.com/Karandash8/make-argocd-fly/blob/main/CONTRIBUTING.md)\n\n---\n\n## \ud83d\udee1 License\n\nMIT License \u2013 see [LICENSE](https://github.com/Karandash8/make-argocd-fly/blob/main/LICENSE) for full text.\n",
"bugtrack_url": null,
"license": null,
"summary": "A tool to generate Kubernetes manifests from templates",
"version": "0.3.0",
"project_urls": {
"Source Code": "https://github.com/Karandash8/make-argocd-fly"
},
"split_keywords": [
"argocd",
" kustomize",
" jinja2"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b8972a8723f78bfce8c99ae3ae2254cf20ef2004de1e826634ef9abff830614a",
"md5": "137bcf1124af3529e130d8229455ef65",
"sha256": "21318d3f4bb7da646e40dbfa7738eb81d8e391a771f015f284be4be6a8cfdfb0"
},
"downloads": -1,
"filename": "make_argocd_fly-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "137bcf1124af3529e130d8229455ef65",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 231087,
"upload_time": "2025-08-03T12:16:36",
"upload_time_iso_8601": "2025-08-03T12:16:36.418615Z",
"url": "https://files.pythonhosted.org/packages/b8/97/2a8723f78bfce8c99ae3ae2254cf20ef2004de1e826634ef9abff830614a/make_argocd_fly-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "be903d44519e59b6ae411e960eb439df20523f8bfa67ad69428ac93085aca8b1",
"md5": "283f689e94cadaadd172329830801e41",
"sha256": "d4c85c14ce1ae771d5efc941ea6a9c34583d050b7898723e646d5004d5d993c4"
},
"downloads": -1,
"filename": "make_argocd_fly-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "283f689e94cadaadd172329830801e41",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 135785,
"upload_time": "2025-08-03T12:16:38",
"upload_time_iso_8601": "2025-08-03T12:16:38.196848Z",
"url": "https://files.pythonhosted.org/packages/be/90/3d44519e59b6ae411e960eb439df20523f8bfa67ad69428ac93085aca8b1/make_argocd_fly-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 12:16:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Karandash8",
"github_project": "make-argocd-fly",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "PyYAML",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "Jinja2",
"specs": [
[
"==",
"3.1.6"
]
]
},
{
"name": "jinja2-ansible-filters",
"specs": [
[
"==",
"1.3.2"
]
]
},
{
"name": "yamllint",
"specs": [
[
"==",
"1.37.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.2"
]
]
},
{
"name": "Deprecated",
"specs": [
[
"==",
"1.2.18"
]
]
}
],
"tox": true,
"lcname": "make-argocd-fly"
}