https://github.com/netcracker/qubership-envgene
https://github.com/netcracker/qubership-envgene
qubership-cm
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/netcracker/qubership-envgene
- Owner: Netcracker
- License: apache-2.0
- Created: 2025-01-17T16:17:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-02T13:39:57.000Z (4 months ago)
- Last Synced: 2026-03-02T14:38:04.810Z (4 months ago)
- Topics: qubership-cm
- Language: Java
- Size: 9.57 MB
- Stars: 6
- Watchers: 4
- Forks: 21
- Open Issues: 92
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# EnvGene
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/Netcracker/qubership-envgene/actions)

- [EnvGene](#envgene)
- [Overview](#overview)
- [🎯 Goals](#-goals)
- [✨ Key Features](#-key-features)
- [Version Control \& History](#version-control--history)
- [Automation \& CI/CD](#automation--cicd)
- [Security \& Credentials](#security--credentials)
- [🚀 Quick Start](#-quick-start)
- [System Requirements](#system-requirements)
- [Basic Usage](#basic-usage)
- [📚 Documentation](#-documentation)
- [Getting Started](#getting-started)
- [Core Concepts](#core-concepts)
- [How-To Guides](#how-to-guides)
- [Advanced Features](#advanced-features)
- [Examples \& Samples](#examples--samples)
- [Development](#development)
- [🤝 Contributing](#-contributing)
- [📄 License](#-license)
## Overview
**EnvGene** (Environment Generator) is git-based tool for generating and versioning Environment configs using templates. Helps manage parameters for many similar cloud Environments.
## 🎯 Goals
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
## ✨ Key Features
### Version Control & History
- **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
### Automation & CI/CD
- **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
### Security & Credentials
- **Encrypted Credentials Management**: Secure credential storage in Git using encryption
- **Credential Rotation**: Automated credential rotation capabilities
## 🚀 Quick Start
### System Requirements
1. GitHub account with permission to create repositories
2. Git client installed locally
### Basic Usage
1. **Init Template Repository**
2. **Create Environment Template**
See the guide: [Create Simple Template](/docs/how-to/create-simple-template.md)
3. **Init Instance Repository**
Copy [the workflow files](/github_workflows/instance-repo-pipeline/.github) to your Instance repository on GitHub.
4. **Create Cluster**
See: [Create Cluster guide](/docs/how-to/create-cluster.md)
5. **Create Inventory for Environment**
See: [Create Inventory guide](/docs/how-to/create-environment-inventory.md)
6. **Generate Environment**
Run the pipeline with [these parameters](/docs/instance-pipeline-parameters.md):
```text
ENV_NAMES: /
ENV_BUILDER: true
GENERATE_EFFECTIVE_SET: true
GH_ADDITIONAL_PARAMS:
SD_SOURCE_TYPE: json
SD_DATA:
```
> [!NOTE] For special instructions on the GitHub pipeline, see [GH_ADDITIONAL_PARAMS docs](/docs/instance-pipeline-parameters.md)
> and the [pipeline description](/github_workflows/instance-repo-pipeline/.github/docs/README.md)
After the pipeline finishes, the Environment configuration will be generated and committed to your instance repository:
- [Environment Instance Object](/docs/envgene-objects.md#environment-instance-objects)
- [Effective Set](/docs/features/calculator-cli.md)
## 📚 Documentation
### Getting Started
- [**Quick Start Guide**](#-quick-start) - Create your first Environment
### Core Concepts
- [**EnvGene Objects**](/docs/envgene-objects.md) - What are EnvGene objects and how they work
- [**Configuration Files**](/docs/envgene-configs.md) - File formats and config options
- [**Pipeline Configuration**](/docs/envgene-pipelines.md) - How EnvGene pipelines work
- [**Repository Variables**](/docs/envgene-repository-variables.md) - CI/CD variables used in EnvGene repositories
- [**Template Macros**](/docs/template-macros.md) - How to use EnvGene macros in templates
- [**Instance Pipeline Parameters**](/docs/instance-pipeline-parameters.md) - Reference for Instance pipeline inputs
### How-To Guides
**Repository Setup:**
- [**Create Simple Template**](/docs/how-to/create-simple-template.md) - Create your first environment template
- [**Create Cluster**](/docs/how-to/create-cluster.md) - Set up a new cluster
- [**Create Environment Inventory**](/docs/how-to/create-environment-inventory.md) - Define environment inventory
- [**Initialize and Upgrade Instance Repository**](/docs/how-to/envgene-maitanance.md) - Set up or upgrade Instance Repository using GSF
**Configuration Management:**
- [**Update Template Version**](/docs/how-to/update-template-version.md) - Update environment template version
- [**Override Template Parameters**](/docs/how-to/environment-specific-parameters.md) - Override template parameters for specific environments
- [**Configure Resource Profiles**](/docs/how-to/configure-resource-profiles.md) - Configure performance parameters for different environment types
**Advanced Configuration:**
- [**Configure Namespace Names for Sites**](/docs/how-to/configure-ns-names-for-sites.md) - Site-specific namespace naming
- [**Credential Encryption**](/docs/how-to/credential-encryption.md) - Secure credential storage and rotation
- [**Migrate to Dot-Notated Parameters**](/docs/how-to/dot-notated-parameter-migration.md) - Parameter format migration
### Advanced Features
- [**Solution Descriptor Processing**](/docs/features/sd-processing.md) - Manage [Solution Descriptor](/docs/envgene-objects.md#solution-descriptor) for your Environments
- [**Effective Set Calculation**](/docs/features/calculator-cli.md) - Calculate the [Effective Set](/docs/features/calculator-cli.md#effective-set-v20)
- [**Application and Registry Definition**](/docs/features/app-reg-defs.md) - Describe how applications and registries are defined and referenced
- [**Environment Inventory Generation**](/docs/features/env-inventory-generation.md) - Auto-generate [Environment Inventory](/docs/envgene-configs.md#env_definitionyml)
- [**Environment Instance Generation**](/docs/features/environment-instance-generation.md) - Generate Environment Instances from templates and inventories
- [**Credential Rotation**](/docs/features/cred-rotation.md) - Automate [Credential](/docs/envgene-objects.md#credential) rotation
- [**Namespace Render Filter**](/docs/features/namespace-render-filtering.md) - Render only selected [Namespaces](/docs/envgene-objects.md#namespace)
- [**System Certificate Configuration**](/docs/features/system-certificate.md) - Auto-config system certs for internal registries or TLS services
- [**Template Override**](/docs/features/template-override.md) - Use a base Environment template and override parts as needed
- [**Automatic Environment Name Derivation**](/docs/features/auto-env-name-derivation.md) - Auto-detect Environment name from folder structure
- [**Template Inheritance**](/docs/features/template-inheritance.md) - Advanced Environment template patterns
- [**Blue-Green Deployment**](/docs/features/blue-green-deployment.md) - BG domains, state management, and `bg_manage` pipeline job
- [**Resource Profiles**](/docs/features/resource-profile.md) - Baselines and overrides for performance parameters
### Examples & Samples
- [**Sample Configurations**](/docs/samples/README.md)
- [**Environment Template Examples**](/docs/samples/template-repository/)
- [**Environment Inventory Examples**](/docs/samples/instance-repository/)
### Development
- [**Development Guides**](/docs/dev/) - Development setup and guidelines
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
- Code of Conduct
- Development setup
- Pull request process
- Issue reporting
## 📄 License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.