EnvGene (Environment Generator) is git-based tool for generating and versioning Environment configs using templates. Helps manage parameters for many similar cloud Environments.
EnvGene simplifies Environment management by providing:
- Template-based Environment Creation: Define reusable templates for your Environment types
- Environment Inventory Management: Define and manage inventories of your Environments
- Automated Environment Provisioning: Create Environments from inventory and versioned templates with automated pipelines
- Configuration as Code: Store all Environment configurations in Git with full history and diff capabilities
- Git-native Versioning: Full history of Environment/parameter changes using native Git functionality
- Configuration Comparison: Compare Environments configuration using native Git diff
- Template Versioning: Version-controlled templates with Maven artifact management
- Change Tracking: Track all modifications with detailed commit history
- Automated Environment Creation/Update: Automation for Environment generation
- Pipeline Integration: Integration with GitLab CI and GitHub Actions
- Build Automation: Automated template building and artifact publishing
- Encrypted Credentials Management: Secure credential storage in Git using encryption
- Credential Rotation: Automated credential rotation capabilities
- GitHub account with permission to create repositories
- Git client installed locally
-
Init Template Repository
-
Create Environment Template
See the guide: Create Simple Template
-
Init Instance Repository
Copy the workflow files to your Instance repository on GitHub.
-
Create Cluster
See: Create Cluster guide
-
Create Inventory for Environment
-
Generate Environment
Run the pipeline with these parameters:
ENV_NAMES: <cluster-name>/<environment-name> ENV_BUILDER: true GENERATE_EFFECTIVE_SET: true GH_ADDITIONAL_PARAMS: SD_SOURCE_TYPE: json SD_DATA: <your-Solution-Descriptor-content>[!NOTE] For special instructions on the GitHub pipeline, see GH_ADDITIONAL_PARAMS docs and the pipeline description
After the pipeline finishes, the Environment configuration will be generated and committed to your instance repository:
- Quick Start Guide - Create your first Environment
- EnvGene Objects - What are EnvGene objects and how they work
- Configuration Files - File formats and config options
- Pipeline Configuration - How EnvGene pipelines work
- Repository Variables - CI/CD variables used in EnvGene repositories
- Template Macros - How to use EnvGene macros in templates
- Instance Pipeline Parameters - Reference for Instance pipeline inputs
Repository Setup:
- Create Simple Template - Create your first environment template
- Create Cluster - Set up a new cluster
- Create Environment Inventory - Define environment inventory
- Initialize and Upgrade Instance Repository - Set up or upgrade Instance Repository using GSF
Configuration Management:
- Update Template Version - Update environment template version
- Override Template Parameters - Override template parameters for specific environments
- Configure Resource Profiles - Configure performance parameters for different environment types
Advanced Configuration:
- Configure Namespace Names for Sites - Site-specific namespace naming
- Credential Encryption - Secure credential storage and rotation
- Migrate to Dot-Notated Parameters - Parameter format migration
- Solution Descriptor Processing - Manage Solution Descriptor for your Environments
- Effective Set Calculation - Calculate the Effective Set
- Application and Registry Definition - Describe how applications and registries are defined and referenced
- Environment Inventory Generation - Auto-generate Environment Inventory
- Environment Instance Generation - Generate Environment Instances from templates and inventories
- Credential Rotation - Automate Credential rotation
- Namespace Render Filter - Render only selected Namespaces
- System Certificate Configuration - Auto-config system certs for internal registries or TLS services
- Template Override - Use a base Environment template and override parts as needed
- Automatic Environment Name Derivation - Auto-detect Environment name from folder structure
- Template Inheritance - Advanced Environment template patterns
- Blue-Green Deployment - BG domains, state management, and
bg_managepipeline job - Resource Profiles - Baselines and overrides for performance parameters
- Development Guides - Development setup and guidelines
We welcome contributions! Please see our Contributing Guide for details on:
- Code of Conduct
- Development setup
- Pull request process
- Issue reporting
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
