Skip to content

Switch to upstream blazar - #2475

Open
Alex-Welsh wants to merge 1 commit into
stackhpc/2025.1from
blazar-upstream-2025.1
Open

Switch to upstream blazar#2475
Alex-Welsh wants to merge 1 commit into
stackhpc/2025.1from
blazar-upstream-2025.1

Conversation

@Alex-Welsh

Copy link
Copy Markdown
Member

Switches from stackhpc/master in our Blazar fork to upstream 2025.1.
Our "master" fork was created around 2024.2, but was never updated since then.
It had a few customisations for coral credits which are now no longer in use, so we can go back to tracking upstream.

@Alex-Welsh
Alex-Welsh requested a review from a team as a code owner July 31, 2026 09:26
@github-actions github-actions Bot added the waiting-review PR is waiting for a review label Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Switches Blazar container builds from the StackHPC master fork to upstream 2025.1. Removes the obsolete blazar-base custom source and Coral Credits customisation. Adds 2025.1 image tags for Rocky 9, Rocky 10, and Ubuntu Noble.

Walkthrough

Blazar now uses upstream container images dated 20260730T151535 for Rocky 9, Rocky 10, and Ubuntu Noble. The custom StackHPC source entry was removed, and release notes document the change.

Changes

Blazar upstream images

Layer / File(s) Summary
Configure Blazar image sources and tags
etc/kayobe/kolla.yml, etc/kayobe/kolla-image-tags.yml, releasenotes/notes/...yaml
The custom blazar-base StackHPC source was removed. Image tags were added for Rocky 9, Rocky 10, and Ubuntu Noble. Release notes document the upstream source and Coral Credits changes.

Estimated code review effort: 1 (Trivial) | ~3 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 77952196-b336-4081-adc8-724dd1da6906

📥 Commits

Reviewing files that changed from the base of the PR and between 2a59fbb and 4aed8e4.

📒 Files selected for processing (3)
  • etc/kayobe/kolla-image-tags.yml
  • etc/kayobe/kolla.yml
  • releasenotes/notes/build-blazar-from-upstream-fd5fc48f9bd677e0.yaml
💤 Files with no reviewable changes (1)
  • etc/kayobe/kolla.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (6)
  • GitHub Check: stackhpc/check
  • GitHub Check: Tox docs with Python 3.12
  • GitHub Check: Ansible 2.18 lint with Python 3.12
  • GitHub Check: Tox pep8 with Python 3.12
  • GitHub Check: Tox releasenotes with Python 3.12
  • GitHub Check: Ansible 2.17 lint with Python 3.10
🔇 Additional comments (1)
etc/kayobe/kolla-image-tags.yml (1)

10-13: 🗄️ Data Integrity & Integration

Confirm the three Blazar image tags before merge.

The registry requires authentication. Confirm that each tag exists in stackhpc-dev for blazar-api and blazar-manager, and that each image contains the intended upstream Blazar source.

Comment on lines +4 to +7
Rebuilt Blazar containers using the latest upstream Blazar source code,
instead of the StackHPC fork. The StackHPC fork was based on an older
version of Blazar, but contained additional features relating to coral
credits, which are now no longer in use.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use precise release-note wording.

The image tags use upstream 2025.1, not an unspecified “latest” release. State upstream 2025.1. Also remove the double space before contained and use Coral Credits consistently.

Comment on lines +8 to +10
deprecations:
- |
The Coral Credits feature of Blazar has been removed.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n -i -C 4 'coral[ _-]?credits|coral' \
  etc releasenotes tools .github

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1165


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- repository files ---'
git ls-files | sed -n '1,240p'

printf '%s\n' '--- all Coral-related references ---'
rg -n -i -C 5 'coral[ _-]?credits|coral' . || true

printf '%s\n' '--- Blazar-related references ---'
rg -n -i -C 3 'blazar' . || true

printf '%s\n' '--- change summary ---'
git diff --stat
git diff -- releasenotes/notes/build-blazar-from-upstream-fd5fc48f9bd677e0.yaml

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 22887


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- current commit change ---'
git show --stat --oneline --decorate HEAD
git diff --no-ext-diff --unified=30 HEAD^ HEAD -- \
  releasenotes/notes/build-blazar-from-upstream-fd5fc48f9bd677e0.yaml \
  etc/kayobe/kolla.yml \
  etc/kayobe/kolla-image-tags.yml \
  .github

printf '%s\n' '--- Blazar image and source configuration ---'
rg -n -i -C 8 'blazar|kolla.*(source|namespace|tag)|source.*(blazar|kolla)' \
  etc .github releasenotes

printf '%s\n' '--- possible migration and persistence references ---'
rg -n -i -C 5 'migration|migrate|database|keystone|reservation|flavor' \
  etc/kayobe releasenotes tools | rg -i -C 3 'blazar|reservation|coral|database|migration' || true

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 50388


🌐 Web query:

OpenStack Blazar Coral Credits StackHPC fork upstream

💡 Result:

Coral Credits is an independent, open-source resource management service developed by StackHPC, designed to facilitate the sharing of cloud resources through credit allocations [1][2][3]. It is not a fork of OpenStack Blazar [1][2]. Instead, it is a standalone service that integrates with Blazar by utilizing Blazar's built-in, upstream support for an external enforcement plugin [3][4]. Specifically, Blazar includes an ExternalServiceFilter that allows it to delegate reservation decisions to an external service [3][4]. Coral Credits implements the necessary API required by this filter to check and commit reservations against project-specific credit allocations [3][4]. Consequently, there is no need for a "fork" of Blazar; users simply configure the standard, upstream Blazar service to communicate with the Coral Credits endpoint [1][3]. Documentation for setting up this integration is maintained by the StackHPC and Azimuth projects, outlining how to configure Blazar's [enforcement] section to point to the Coral Credits API endpoints [1][3][4].

Citations:


🌐 Web query:

site:docs.openstack.org blazar ExternalServiceFilter enforcement configuration

💡 Result:

The ExternalServiceFilter in Blazar is a usage enforcement mechanism that delegates decision-making for lease operations (lease_create, lease_update, and on_end) to a third-party HTTP service [1][2]. Configuration is performed within the blazar.conf file under the [enforcement] section [1][3]. Enabling the Filter: To enable the filter, you must add it to the enabled_filters option within the [enforcement] group in blazar.conf [1][3]. Required Configuration Options: The following configuration options under the [enforcement] group are used to manage the ExternalServiceFilter [3]: - enabled_filters: Include ExternalServiceFilter to activate it. - external_service_base_endpoint: The base URL for the external service. - external_service_check_create_endpoint: The endpoint for POST /check-create requests. - external_service_check_update_endpoint: The endpoint for POST /check-update requests. - external_service_on_end_endpoint: The endpoint for POST /on-end requests. - external_service_token: A static token sent by Blazar in the X-Auth-Token header to the external service for authentication [1][2]. External Service Requirements: The external service must be configured to handle HTTP POST requests at the specified endpoints [1][2]. - Authentication: The service should validate the X-Auth-Token header using the static token configured in blazar.conf [1][2]. - Responses: The service should return a 204 No Content status code if the request is permitted, or a 403 Forbidden status code if the request is rejected [1][2]. - Error Handling: If returning 403 Forbidden, the service may provide a JSON response body containing a message field explaining the rejection [1][2]. The external service receives a JSON payload containing the request context (user_id, project_id, etc.) and details regarding the current lease or the lease that has just ended [1][2].

Citations:


Do not claim that Coral Credits has been removed.

Coral Credits integrates with upstream Blazar through ExternalServiceFilter and [enforcement] configuration. Removing the blazar-base override only removes the StackHPC fork. It does not remove Coral Credits configuration, consumers, or persisted allocations. State that the StackHPC fork-specific customisations are no longer included, or provide the required migration steps.

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

Labels

waiting-review PR is waiting for a review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant