{"id":26256564,"url":"https://github.com/netcracker/qubership-envgene-instance","last_synced_at":"2026-01-28T21:02:35.955Z","repository":{"id":304332373,"uuid":"1013684033","full_name":"Netcracker/qubership-envgene-instance","owner":"Netcracker","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-26T20:08:54.000Z","size":166,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-27T01:54:36.272Z","etag":null,"topics":["qubership-cm"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Netcracker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-04T09:46:03.000Z","updated_at":"2026-01-26T12:30:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"b66e3d44-8f6f-442b-a2a2-3ab002a7625c","html_url":"https://github.com/Netcracker/qubership-envgene-instance","commit_stats":null,"previous_names":["netcracker/qubership-envgene-instance"],"tags_count":0,"template":false,"template_full_name":"Netcracker/qubership-repo-template","purl":"pkg:github/Netcracker/qubership-envgene-instance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-envgene-instance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-envgene-instance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-envgene-instance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-envgene-instance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Netcracker","download_url":"https://codeload.github.com/Netcracker/qubership-envgene-instance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Netcracker%2Fqubership-envgene-instance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28851838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["qubership-cm"],"created_at":"2025-03-13T20:18:29.808Z","updated_at":"2026-01-28T21:02:35.950Z","avatar_url":"https://github.com/Netcracker.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# EnvGene Pipeline Usage Guide\n\n## Overview\n\nThe EnvGene pipeline (`pipeline.yml`) is a comprehensive GitHub Actions workflow that supports both manual UI triggers and API calls. It provides environment generation, credential rotation, and various deployment capabilities.\n\n## Table of Contents\n\n1. [Triggering Methods](#triggering-methods)\n2. [UI Mode (Manual Trigger)](#ui-mode-manual-trigger)\n3. [API Mode](#api-mode)\n4. [Available Variables](#available-variables)\n5. [Examples](#examples)\n6. [Troubleshooting](#troubleshooting)\n\n## Triggering Methods\n\nThe pipeline can be triggered in two ways:\n\n### 1. UI Mode (Manual Trigger)\n- Triggered through GitHub Actions UI\n- Uses individual input fields\n- Best for manual testing and development\n\n### 2. API Mode\n- Triggered via GitHub API\n- Uses a single JSON string with all parameters\n- Best for automation and CI/CD integration\n\n## UI Mode (Manual Trigger)\n\n### How to Trigger\n1. Go to your GitHub repository\n2. Navigate to **Actions** tab\n3. Select **EnvGene Execution** workflow\n4. Click **Run workflow**\n5. Fill in the required parameters\n6. Click **Run workflow**\n\n### Available Input Fields\n\n| Field | Required | Type | Description | Default |\n|-------|----------|------|-------------|---------|\n| `ENV_NAMES` | Yes | String | Comma-separated environment names | - |\n| `DEPLOYMENT_TICKET_ID` | No | String | Deployment ticket ID | \"\" |\n| `ENV_TEMPLATE_VERSION` | No | String | Environment template version | \"\" |\n| `ENV_BUILDER` | No | Choice | Enable environment building | \"true\" |\n| `GET_PASSPORT` | No | Choice | Enable passport retrieval | \"false\" |\n| `CMDB_IMPORT` | No | Choice | Enable CMDB import | \"false\" |\n| `GITHUB_PIPELINE_API_INPUT` | No | String | API input string (for API mode) | - |\n\n### UI Mode Example\n\n**Basic Environment Generation:**\n- `ENV_NAMES`: `test-cluster/e01,test-cluster/e02`\n- `ENV_BUILDER`: `true`\n- `DEPLOYMENT_TICKET_ID`: `TICKET-123`\n- `ENV_TEMPLATE_VERSION`: `qubership_envgene_templates:0.0.2`\n\n## API Mode\n\n### How to Trigger\n\nUse the GitHub API to trigger the workflow:\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: token YOUR_GITHUB_TOKEN\" \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/OWNER/REPO/actions/workflows/pipeline.yml/dispatches \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"GITHUB_PIPELINE_API_INPUT\": \"YOUR_API_INPUT_STRING\"\n    }\n  }'\n```\n\n### API Input Formats\n\nThe `GITHUB_PIPELINE_API_INPUT` can be provided in three formats:\n\n#### 1. JSON Format (Recommended)\n```json\n{\n  \"ENV_NAMES\": \"test-cluster/e01,test-cluster/e02\",\n  \"ENV_BUILDER\": \"true\",\n  \"DEPLOYMENT_TICKET_ID\": \"TICKET-123\",\n  \"ENV_TEMPLATE_VERSION\": \"qubership_envgene_templates:0.0.2\",\n  \"GET_PASSPORT\": \"false\",\n  \"CMDB_IMPORT\": \"false\"\n}\n```\n\n#### 2. Key-Value Format\n```\nENV_NAMES=test-cluster/e01,test-cluster/e02\nENV_BUILDER=true\nDEPLOYMENT_TICKET_ID=TICKET-123\nENV_TEMPLATE_VERSION=qubership_envgene_templates:0.0.2\nGET_PASSPORT=false\nCMDB_IMPORT=false\n```\n\n#### 3. YAML Format\n```yaml\nENV_NAMES: test-cluster/e01,test-cluster/e02\nENV_BUILDER: true\nDEPLOYMENT_TICKET_ID: TICKET-123\nENV_TEMPLATE_VERSION: qubership_envgene_templates:0.0.2\nGET_PASSPORT: false\nCMDB_IMPORT: false\n```\n\n## Available Variables\n\n### Required Variables\n| Variable | Type | Description |\n|----------|------|-------------|\n| `ENV_NAMES` | String | Comma-separated list of environment names |\n\n### Boolean Variables\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `ENV_BUILDER` | true | Enable environment building |\n| `GET_PASSPORT` | false | Enable passport retrieval |\n| `CMDB_IMPORT` | false | Enable CMDB import |\n| `ENV_INVENTORY_INIT` | false | Initialize environment inventory |\n| `GENERATE_EFFECTIVE_SET` | false | Generate effective set |\n| `ENV_TEMPLATE_TEST` | false | Test environment template |\n| `SD_DELTA` | false | Enable SD delta processing |\n| `CRED_ROTATION_FORCE` | false | Force credential rotation |\n\n### String Variables\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `DEPLOYMENT_TICKET_ID` | \"\" | Deployment ticket ID |\n| `ENV_TEMPLATE_VERSION` | \"\" | Environment template version |\n| `ENV_TEMPLATE_NAME` | \"\" | Environment template name |\n| `SD_VERSION` | \"\" | SD version |\n| `SD_SOURCE_TYPE` | \"\" | SD source type |\n\n### JSON Variables\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `SD_DATA` | \"{}\" | SD data in JSON format |\n| `ENV_SPECIFIC_PARAMETERS` | \"{}\" | Environment-specific parameters |\n| `CRED_ROTATION_PAYLOAD` | \"{}\" | Credential rotation payload |\n\n## Examples\n\n### Example 1: Basic Environment Generation\n\n**API Call:**\n```bash\ncurl -X POST \\\n  -H \"Authorization: token YOUR_GITHUB_TOKEN\" \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/OWNER/REPO/actions/workflows/pipeline.yml/dispatches \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"GITHUB_PIPELINE_API_INPUT\": \"{\\\"ENV_NAMES\\\": \\\"test-cluster/e01,test-cluster/e02\\\", \\\"ENV_BUILDER\\\": \\\"true\\\", \\\"DEPLOYMENT_TICKET_ID\\\": \\\"TICKET-123\\\", \\\"ENV_TEMPLATE_VERSION\\\": \\\"qubership_envgene_templates:0.0.2\\\"}\"\n    }\n  }'\n```\n\n**Key-Value Format:**\n```bash\ncurl -X POST \\\n  -H \"Authorization: token YOUR_GITHUB_TOKEN\" \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/OWNER/REPO/actions/workflows/pipeline.yml/dispatches \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"GITHUB_PIPELINE_API_INPUT\": \"ENV_NAMES=test-cluster/e01,test-cluster/e02\\nENV_BUILDER=true\\nDEPLOYMENT_TICKET_ID=TICKET-123\\nENV_TEMPLATE_VERSION=qubership_envgene_templates:0.0.2\"\n    }\n  }'\n```\n\n### Example 2: Environment Generation with Credential Rotation\n\n**API Call:**\n```bash\ncurl -X POST \\\n  -H \"Authorization: token YOUR_GITHUB_TOKEN\" \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/OWNER/REPO/actions/workflows/pipeline.yml/dispatches \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"GITHUB_PIPELINE_API_INPUT\": \"{\\\"ENV_NAMES\\\": \\\"test-cluster/e01\\\", \\\"ENV_BUILDER\\\": \\\"true\\\", \\\"DEPLOYMENT_TICKET_ID\\\": \\\"TICKET-123\\\", \\\"ENV_TEMPLATE_VERSION\\\": \\\"qubership_envgene_templates:0.0.2\\\", \\\"CRED_ROTATION_PAYLOAD\\\": \\\"{\\\\\\\"rotation_items\\\\\\\":[{\\\\\\\"namespace\\\\\\\":\\\\\\\"e01-bss\\\\\\\",\\\\\\\"application\\\\\\\":\\\\\\\"postgres\\\\\\\",\\\\\\\"context\\\\\\\":\\\\\\\"deployment\\\\\\\",\\\\\\\"parameter_key\\\\\\\":\\\\\\\"POSTGRES_DBA_USER\\\\\\\",\\\\\\\"parameter_value\\\\\\\":\\\\\\\"new_user\\\\\\\"}]}\\\", \\\"CRED_ROTATION_FORCE\\\": \\\"true\\\"}\"\n    }\n  }'\n```\n\n**Key-Value Format:**\n```bash\ncurl -X POST \\\n  -H \"Authorization: token YOUR_GITHUB_TOKEN\" \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/OWNER/REPO/actions/workflows/pipeline.yml/dispatches \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"GITHUB_PIPELINE_API_INPUT\": \"ENV_NAMES=test-cluster/e01\\nENV_BUILDER=true\\nDEPLOYMENT_TICKET_ID=TICKET-123\\nENV_TEMPLATE_VERSION=qubership_envgene_templates:0.0.2\\nCRED_ROTATION_PAYLOAD={\\\"rotation_items\\\":[{\\\"namespace\\\":\\\"e01-bss\\\",\\\"application\\\":\\\"postgres\\\",\\\"context\\\":\\\"deployment\\\",\\\"parameter_key\\\":\\\"POSTGRES_DBA_USER\\\",\\\"parameter_value\\\":\\\"new_user\\\"}]}\\nCRED_ROTATION_FORCE=true\"\n    }\n  }'\n```\n\n### Example 3: Complex Environment with Multiple Features\n\n**API Call:**\n```bash\ncurl -X POST \\\n  -H \"Authorization: token YOUR_GITHUB_TOKEN\" \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/OWNER/REPO/actions/workflows/pipeline.yml/dispatches \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"GITHUB_PIPELINE_API_INPUT\": \"{\\\"ENV_NAMES\\\": \\\"test-cluster/e01,test-cluster/e02\\\", \\\"ENV_BUILDER\\\": \\\"true\\\", \\\"GET_PASSPORT\\\": \\\"true\\\", \\\"CMDB_IMPORT\\\": \\\"true\\\", \\\"GENERATE_EFFECTIVE_SET\\\": \\\"true\\\", \\\"DEPLOYMENT_TICKET_ID\\\": \\\"TICKET-123\\\", \\\"ENV_TEMPLATE_VERSION\\\": \\\"qubership_envgene_templates:0.0.2\\\", \\\"ENV_TEMPLATE_NAME\\\": \\\"standard-template\\\", \\\"SD_DATA\\\": \\\"{\\\\\\\"version\\\\\\\":\\\\\\\"1.0\\\\\\\",\\\\\\\"environment\\\\\\\":\\\\\\\"test\\\\\\\"}\\\", \\\"ENV_SPECIFIC_PARAMETERS\\\": \\\"{\\\\\\\"custom_param\\\\\\\":\\\\\\\"value\\\\\\\"}\\\"}\"\n    }\n  }'\n```\n\n## CRED_ROTATION_PAYLOAD Structure\n\nWhen using credential rotation, the `CRED_ROTATION_PAYLOAD` must follow this structure:\n\n```json\n{\n  \"rotation_items\": [\n    {\n      \"namespace\": \"e01-bss\",\n      \"application\": \"postgres\",\n      \"context\": \"deployment\",\n      \"parameter_key\": \"POSTGRES_DBA_USER\",\n      \"parameter_value\": \"new_user\"\n    }\n  ]\n}\n```\n\n### CRED_ROTATION_PAYLOAD Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `namespace` | Yes | Target namespace |\n| `application` | No | Application name |\n| `context` | Yes | Context: `pipeline`, `deployment`, or `runtime` |\n| `parameter_key` | Yes | Parameter key to rotate |\n| `parameter_value` | Yes | New parameter value |\n\n## Troubleshooting\n\n### Common Issues\n\n#### 1. ENV_NAMES Not Found\n**Error:** `ENV_NAMES is required for API mode but not found in input`\n\n**Solution:** Ensure your API input contains `ENV_NAMES` with valid environment names:\n```json\n{\n  \"ENV_NAMES\": \"test-cluster/e01,test-cluster/e02\"\n}\n```\n\n#### 2. Invalid JSON Format\n**Error:** `CRED_ROTATION_PAYLOAD must be a valid JSON object`\n\n**Solution:** Use proper JSON format with escaped quotes:\n```json\n{\n  \"CRED_ROTATION_PAYLOAD\": \"{\\\\\\\"rotation_items\\\\\\\":[{\\\\\\\"namespace\\\\\\\":\\\\\\\"e01-bss\\\\\\\"}]}\"\n}\n```\n\n#### 3. Empty Matrix Error\n**Error:** `Matrix vector 'environment' does not contain any values`\n\n**Solution:** Ensure `ENV_NAMES` contains valid environment names with proper format (e.g., `cluster/environment`).\n\n#### 4. YAML Parsing Issues\n**Error:** YAML parsing fails with unquoted values\n\n**Solution:** Use JSON format instead of YAML-like strings, or ensure proper quoting.\n\n### Debug Information\n\nThe pipeline provides extensive debug information:\n\n- **API Mode Detection:** Shows whether the pipeline is running in API mode\n- **Variable Processing:** Shows which variables were loaded from API input vs. defaults\n- **Validation Results:** Shows validation status for each variable\n- **Environment Processing:** Shows how environment names are processed\n\n### Debug Commands\n\n1. **Check Pipeline Logs:** Look for \"🔍\" prefixed debug messages\n2. **Verify Environment Variables:** Check the \"Input Parameters Processing\" job\n3. **Validate JSON:** Use online JSON validators for complex payloads\n4. **Test API Calls:** Use tools like Postman or curl for API testing\n\n### Best Practices\n\n1. **Use JSON Format:** Prefer JSON format for API input when possible\n2. **Escape Quotes Properly:** Use double escaping for nested JSON: `\\\\\\\"`\n3. **Validate Input:** Test your API input before sending\n4. **Use Descriptive Ticket IDs:** Include meaningful deployment ticket IDs\n5. **Version Control:** Always specify `ENV_TEMPLATE_VERSION` for reproducibility\n\n## Support\n\nFor issues and questions:\n1. Check the pipeline logs for detailed error messages\n2. Verify your API input format\n3. Test with simple examples first\n4. Review the validation rules in the documentation ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-envgene-instance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetcracker%2Fqubership-envgene-instance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetcracker%2Fqubership-envgene-instance/lists"}