Skip to content

skoonin/coregen

Repository files navigation

Coregen

Coregen is a configuration management and code generation tool designed for managing multi-environment deployments at scale. Configure once in YAML, deploy everywhere.

CI: Code Quality & Tests CD: Coregen Release

Python 3.11+

About

Coregen solves common DevOps challenges through:

  1. Simple Configuration

    • Single YAML files to configure complete deployments
    • Intuitive hierarchy (workspace → context → component)
    • Ability to utilize template code in any component file
    • Flexible to work with any dir structure
    • Easy querying of all workspaces, contexts, and components
    • Deep filtering capabilities allowing any field in your repo.
  2. CI/CD Ready

    • Can detect changes between branches for changes and deletions
    • JSON/YAML/MATRIX output for easy automation
    • Detection of changes for targeted deployments
    • Prioritized component outputs
    • Dependency aware

Quick Start

See our complete quick-start guide.

Install with Pip

# Install the latest version directly from git
pip install git+https://github.com/skoonin/coregen.git

# Or install a specific version
pip install git+https://github.com/skoonin/[email protected]

# Development installation from cloned repo
git clone https://github.com/skoonin/coregen.git
cd coregen
pip install -e .

Development Environment Setup

make setup  # Creates virtual environment and installs dev dependencies

Basic Usage

# Generate config file and initialize workspace structure
coregen config generate

# Or generate config file only (skip workspace initialization)
coregen config generate --config-file-only

Key Concepts

  • Workspace: Top-level organizational unit (e.g., AWS, GCP)
  • Context: Specific instance within a workspace (e.g., Kubernetes cluster)
  • Component: Deployable unit within a context (e.g., an application service)
  • Template: Jinja2 template for generating configuration files (any file with a .j2 extension)
  • Environment: Set in the context level configuration file, use filters to utilize it.

Code Quality

Pre-commit hooks provide automated code fixing and quality checks including:

  • Auto-fixers: black, isort, autoflake, pyupgrade, whitespace/formatting fixes
  • Validators: flake8, mypy, bandit security scanning, YAML/JSON syntax

Documentation

See the docs/ directory for more detailed documentation.

About

Core engine for IAC pipelines with intelligent change detection and multi-environment orchestration

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages