Skip to content

Add the service mappings YAML configuration#65

Open
abhibongale wants to merge 6 commits into
mainfrom
phase-2-gitops-style-stackbox
Open

Add the service mappings YAML configuration#65
abhibongale wants to merge 6 commits into
mainfrom
phase-2-gitops-style-stackbox

Conversation

@abhibongale
Copy link
Copy Markdown
Owner

Service Mappings yaml maps what infrastructure is needed for each openstack ci job type.

Which will be used by jobclassifier to determine required containers/services.

Closes: #64

Description

Related Issue

Fixes #

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)

Checklist

  • My code follows the style guidelines of this project (black, ruff)
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Testing

Unit Tests

pytest tests/unit/ -v

Code Quality

black --check stackbox/ tests/
ruff check stackbox/ tests/
mypy stackbox/core/compose.py

Coverage

pytest --cov=stackbox --cov-report=term-missing

Screenshots (if applicable)

Additional Notes

Service Mappings yaml maps what infrastructure is needed for each
openstack ci job type.

Which will be used by jobclassifier to determine required
containers/services.

Closes: #64
Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
@abhibongale abhibongale self-assigned this May 28, 2026
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

1. NodeConfig - Individual test node with name and OS label.
2. NodesetConfig - Collection of nodes with helper methods for platform
detection.
3. VariableSet - Merged variables with deep merge logic for nested dicts
4. JobConfig - Complete job configuration with:
    - All Zuul fields (name, parent, timeout, voting, etc.)
    - DevStack variable extraction in __post_init__
    - Helper methods: get_enabled_services(), has_service(), etc.
    - merge_with_parent() method for inheritance resolution
    - Inheritance chain tracking for debugging

Closes: #66
Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

Classifier analyzes the job and create analyis dict which will be used to
create job-manifest.yaml (file used to deploy infrastructure).

Closes: #67
Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

Zuul parser will read any openstack projects .zuul.yaml extract
the job config and will be used to build a container by image builder.

Closes: #63
Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

1 similar comment
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

@abhibongale abhibongale added this to the phase-2-miletsone milestone May 28, 2026
Extract vriable from devstack specific configuration from parsed job
variables and map them to formats needed by stackbox infrastructure.

Closes: #68
Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
@abhibongale abhibongale force-pushed the phase-2-gitops-style-stackbox branch from 27454c8 to eee129f Compare May 28, 2026 15:12
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

1 similar comment
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

@abhibongale abhibongale force-pushed the phase-2-gitops-style-stackbox branch from 25fa12c to 0d96241 Compare May 29, 2026 08:13
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

Implemented Service orchestrator, reconciler how's job is to check job
manifestation, and service registry job is to register the new services
and discard old ones.

Closes: #69
Signed-off-by: Abhishek Bongale <abhishekbongale@outlook.com>
@abhibongale abhibongale force-pushed the phase-2-gitops-style-stackbox branch from 0d96241 to db37522 Compare May 29, 2026 09:28
@github-actions
Copy link
Copy Markdown

⚠️ Code quality checks failed!

Please run the following commands locally to fix:

black stackbox/ tests/
ruff check --fix stackbox/ tests/
mypy stackbox/core/compose.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Creating the service mappings YAML configuration

1 participant