Skip to content

neelneelpurk/InfraGenTool

Repository files navigation

🚀 InfraGenTool

From "I need a database" to production-ready Crossplane YAML — in minutes, not days.

Stop writing YAML by hand. Start describing what you need.

Quick StartHow It WorksPlatformsDocumentation


Claude Code Plugin Gemini CLI Extension SpecKit Supported License GitHub Stars GitHub Issues


💡 The Problem

You want a production PostgreSQL on AWS. Today, that means:

Step Traditional Approach With InfraGenTool
1️⃣ 📖 Read Crossplane docs for hours ✨ Describe what you need in plain English
2️⃣ 🔍 Hunt for the right provider CRDs and apiVersions ✅ AI finds the correct schemas automatically
3️⃣ ✍️ Write 200+ lines of YAML by hand ✅ Generate validated manifests instantly
4️⃣ 🐛 Debug cryptic validation errors ✅ Zero hallucinated schemas — MCP-verified
5️⃣ 🔒 Hope you didn't forget security best practices ✅ Security defaults built-in

InfraGenTool eliminates all of this.


⚡ Quick Start (Claude Code)

# Add the marketplace
/plugin marketplace add https://github.com/neelneelpurk/InfraGenTool.git

# Install the plugin
/plugin install infragentool@infragentool-marketplace

# Create a resource
/infragentool:new_composition postgres-db ./infra/database

The agent asks you a few questions, then generates:

./infra/database/
├── 📄 definition.yaml    # XRD with full OpenAPI schema
├── 📄 composition.yaml   # Composition with security defaults
├── 📄 claim.yaml         # Ready-to-apply example claim
└── 📄 README.md          # Usage documentation

📖 Full Getting Started Guide →


🧠 How It Works

Three specialized AI agents work in sequence, each checking the previous one's work:

┌──────────────────────────────────────────────────────────────────────┐
│                                                                      │
│   YOU ──→ "I need a production Postgres with backups"               │
│                          │                                           │
│                          ▼                                           │
│            ┌─────────────────────────┐                               │
│            │  ☁️  Solutions Engineer  │  ← Asks clarifying questions │
│            │                         │    Writes the specification  │
│            └────────────┬────────────┘                               │
│                         ▼                                            │
│            ┌─────────────────────────┐                               │
│            │  🏗️  Cloud Architect    │  ← Reviews for security,     │
│            │                         │    cost, and reliability     │
│            └────────────┬────────────┘                               │
│                         ▼                                            │
│            ┌─────────────────────────┐                               │
│            │  ⚙️  Crossplane Engineer│  ← Generates YAML with       │
│            │                         │    MCP-verified schemas      │
│            └─────────────────────────┘                               │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Why three agents? The same reason engineering teams have architects review SWE proposals — separation of concerns catches mistakes that a single pass would miss.


🎯 What You Get

❌ Before InfraGenTool

# Hmm... is it rds.aws.crossplane.io or rds.aws.upbound.io?
# What's the apiVersion? v1beta1? v1beta2?
# Did I spell 'allocatedStorage' right?
# Is backupRetentionPeriod a string or integer?
# 😩 *3 hours later*

✅ After InfraGenTool

# definition.yaml — Auto-generated XRD
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
  name: xpostgresqls.infra.example.com
spec:
  group: infra.example.com
  names:
    kind: XPostgreSQL
    plural: xpostgresqls
  claimNames:
    kind: PostgreSQL
    plural: postgresqls
  versions:
    - name: v1alpha1
      served: true
      referenceable: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                parameters:
                  type: object
                  properties:
                    storageGB:
                      type: integer
                    instanceClass:
                      type: string
                    multiAZ:
                      type: boolean
                    backupRetentionDays:
                      type: integer

Every field name, apiVersion, and schema type is MCP-verified against the actual provider CRDs — never hallucinated.


📋 Commands

Command Description
/infragentool:setup Initialize project context (one-time)
/infragentool:new_composition <name> <path> Create a new resource via multi-agent workflow
/infragentool:update_composition <path> Update an existing resource (brownfield)
/infragentool:implement_composition [track] Generate the YAML from an approved plan
/infragentool:validate <path> Validate with crossplane render
/infragentool:status Show all tracks and progress

💻 Platform Support

Platform Install Command Context File
Claude Code claude --plugin-dir ./InfraGenTool CLAUDE.md
Gemini CLI gemini extensions install https://github.com/neelneelpurk/infragentool GEMINI.md
Spec Kit specify extension add infragentool SPECKIT.md

All platforms share the same agents, knowledge base, and workflow — same quality output everywhere.

Using a different AI tool? If you're not on Claude Code or Gemini CLI, Spec Kit is the recommended approach. Spec Kit automatically supports multiple AI tools (Cursor, Copilot, Windsurf, and more), so you get full InfraGenTool support regardless of which assistant you use — no per-tool configuration needed.


🏛️ Project Structure

infragentool/
├── .claude-plugin/plugin.json     # Claude Code manifest
├── agents/                        # AI agent definitions
│   ├── cloud_architect.md
│   ├── cloud_solutions_engineer.md
│   └── crossplane_engineer.md
├── commands/                      # Agent command definitions
│   ├── setup.md                   # Claude commands (.md)
│   ├── new_composition.md
│   ├── update_composition.md
│   ├── implement_composition.md
│   ├── validate.md
│   ├── status.md
│   └── gemini/                    # Gemini commands (.toml)
├── extension.yml                   # Spec Kit extension manifest
├── skills/infragentool/SKILL.md   # Skill documentation
├── technical-docs/                # Cloud provider knowledge base
│   ├── cloud/                     # AWS, Azure, GCP guides
│   └── crossplane/                # Crossplane patterns
├── CLAUDE.md                      # Claude Code context
├── GEMINI.md                      # Gemini CLI context
├── SPECKIT.md                     # Spec Kit context
└── GETTING_STARTED.md             # Step-by-step tutorial

🔧 Prerequisites

  • Docker — Required for crossplane render validation
  • Crossplane CLI — Optional, for local validation

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.


📄 License

Licensed under the Apache License 2.0.


Ready to stop writing YAML by hand?

Get Started Now →


Made with ❤️ for the Crossplane community

About

Generate production-ready Cloud Infrastructure as Code using Gemini-CLI

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages