Skip to content

NO_ISSUE: rename fulfillment-cli to osac in Containerfile - #30

Merged
openshift-merge-bot[bot] merged 1 commit into
osac-project:mainfrom
omer-vishlitzky:MGMT-22635-fix-containerfile
Apr 22, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
osac-project:mainfrom
omer-vishlitzky:MGMT-22635-fix-containerfile

Conversation

@omer-vishlitzky

@omer-vishlitzky omer-vishlitzky commented Apr 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Rename fulfillment-cli to osac in the Containerfile
  • Update CLI version from v0.0.53 to v0.0.56

Problem

PR #29 changed the default CLI binary name from fulfillment-cli to osac in conftest.py, but the Containerfile still downloaded fulfillment-cli. This caused every CLI-dependent test to fail with FileNotFoundError: No such file or directory: 'osac'.

CI evidence from openshift/release#77782:

  • 3/3 non-CLI tests passed (api-fields, subnet, virtual-network)
  • 5/5 CLI tests failed — perfect correlation

Summary by CodeRabbit

Summary by CodeRabbit

  • Chores
    • Updated container image to install the OSAC CLI (osac) at version 0.0.56, replacing the previous CLI binary and version used in the image.

@openshift-ci-robot

openshift-ci-robot commented Apr 22, 2026 •

Copy link
Copy Markdown

@omer-vishlitzky: This pull request references MGMT-22635 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Rename fulfillment-cli to osac in the Containerfile
  • Update CLI version from v0.0.53 to v0.0.55

Problem

PR #29 changed the default CLI binary name from fulfillment-cli to osac in conftest.py, but the Containerfile still downloaded fulfillment-cli. This caused every CLI-dependent test to fail with FileNotFoundError: No such file or directory: 'osac'.

CI evidence from openshift/release#77782:

  • 3/3 non-CLI tests passed (api-fields, subnet, virtual-network)
  • 5/5 CLI tests failed — perfect correlation

Ref

https://redhat.atlassian.net/browse/MGMT-22635

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
openshift-ci Bot requested review from eranco74 and jhernand April 22, 2026 15:37
@coderabbitai

coderabbitai Bot commented Apr 22, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1984cdad-9016-46e3-90c5-a2964a708b26

📥 Commits

Reviewing files that changed from the base of the PR and between fa851ab and 5483431.

📒 Files selected for processing (1)
  • Containerfile
🚧 Files skipped from review as they are similar to previous changes (1)
  • Containerfile

Walkthrough

The Containerfile is updated to replace the CLI binary installation from fulfillment-cli to osac. The build argument ARG FULFILLMENT_CLI_VERSION=0.0.53 is removed and ARG OSAC_CLI_VERSION=0.0.56 is introduced. The installed executable path changes from /usr/local/bin/fulfillment-cli to /usr/local/bin/osac. The curl-download-to-file and chmod +x installation pattern remains unchanged. Lines changed: +3/-3.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

lgtm, jira/valid-reference

Suggested reviewers

  • jhernand
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: renaming the CLI binary from fulfillment-cli to osac in the Containerfile, which matches the core objective of the PR.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Containerfile`:
- Around line 16-17: The container installs the osac binary but the test
automation expects the command fulfillment-cli (referenced via
fulfillment_cli_path), so add a symlink after installing /usr/local/bin/osac to
provide /usr/local/bin/fulfillment-cli; update the RUN step that installs osac
to create a symbolic link from /usr/local/bin/osac to
/usr/local/bin/fulfillment-cli (and ensure the chmod +x remains) so roles
invoking fulfillment-cli succeed.
- Around line 16-17: The Containerfile currently downloads the osac CLI with an
incorrect OSAC_CLI_VERSION and without integrity verification; change
OSAC_CLI_VERSION to a published tag (e.g., v0.0.46) and update the RUN that
fetches /usr/local/bin/osac accordingly, then add one of the following integrity
mitigations: (a) switch to a release workflow that supports
signed/artifact-verified downloads (e.g., use sigstore/cosign or image
attestation) and verify signatures before installing, (b) pin the exact release
and add a documented manual source/artifact review step in the repo (risk
acceptance), or (c) embed a verified build step that compiles osac from tagged
source and verifies git commit/tag before installing; reference
OSAC_CLI_VERSION, the RUN curl line that writes /usr/local/bin/osac, and the
/usr/local/bin/osac install step when making the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5392821e-01b1-4065-8281-8873061a12bc

📥 Commits

Reviewing files that changed from the base of the PR and between a74a7a1 and fa851ab.

📒 Files selected for processing (1)
  • Containerfile

Comment thread Containerfile
Comment on lines +16 to +17
RUN curl -Lsfo /usr/local/bin/osac "https://github.com/osac-project/fulfillment-service/releases/download/v${OSAC_CLI_VERSION}/osac_Linux_x86_64" \
&& chmod +x /usr/local/bin/osac

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify whether repo still invokes fulfillment-cli by name.
rg -n -C2 '\bfulfillment_cli_path\b|fulfillment-cli\b|cli_binary\b' --type yml --type yaml

Repository: osac-project/osac-test-infra

Length of output: 99


🏁 Script executed:

#!/bin/bash
# Verify fulfillment-cli usage with correct file type syntax
rg -n -C2 'fulfillment_cli_path|fulfillment-cli' --type yaml

Repository: osac-project/osac-test-infra

Length of output: 8549


🏁 Script executed:

#!/bin/bash
# Also check if there's already a symlink or alias in the Containerfile
cat -n Containerfile

Repository: osac-project/osac-test-infra

Length of output: 1184


🏁 Script executed:

#!/bin/bash
# Check the referenced files to confirm they still use fulfillment-cli
echo "=== inventory/group_vars/all.yml (line 8) ===" 
head -20 inventory/group_vars/all.yml

echo -e "\n=== roles/fulfillment_cli_base/tasks/main.yml ===" 
cat roles/fulfillment_cli_base/tasks/main.yml 2>/dev/null || echo "File not found"

echo -e "\n=== roles/test_compute_instance_creation/tasks/main.yml ===" 
head -20 roles/test_compute_instance_creation/tasks/main.yml 2>/dev/null || echo "File not found"

Repository: osac-project/osac-test-infra

Length of output: 3636


🏁 Script executed:

#!/bin/bash
# Check if group_vars/all.yml was modified to use osac instead
git diff HEAD^ HEAD -- inventory/group_vars/all.yml 2>/dev/null || echo "Not a git repo or no changes to group_vars"

# Also check for any role defaults that might override the path
rg -n "fulfillment_cli_path.*osac|cli_binary.*osac" --type yaml

Repository: osac-project/osac-test-infra

Length of output: 114


🏁 Script executed:

#!/bin/bash
# Check if there are any other mechanisms to create the fulfillment-cli alias
rg -n "ln -sf|ln -s|alias|fulfillment-cli" Containerfile || echo "No symlink/alias in Containerfile"

Repository: osac-project/osac-test-infra

Length of output: 105


Add symlink to provide fulfillment-cli command required by test automation.

At lines 16–17, the container installs only osac but the test suite expects fulfillment-cli. All roles invoking {{ fulfillment_cli_path }} (defined as "fulfillment-cli" in inventory/group_vars/all.yml:8) will fail with command-not-found. This breaks test execution for ComputeInstance and Hub lifecycle operations.

Suggested fix
RUN curl -Lsfo /usr/local/bin/osac "https://github.com/osac-project/fulfillment-service/releases/download/v${OSAC_CLI_VERSION}/osac_Linux_x86_64" \
    && chmod +x /usr/local/bin/osac
+RUN ln -sf /usr/local/bin/osac /usr/local/bin/fulfillment-cli
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
RUN curl -Lsfo /usr/local/bin/osac "https://github.com/osac-project/fulfillment-service/releases/download/v${OSAC_CLI_VERSION}/osac_Linux_x86_64" \
&& chmod +x /usr/local/bin/osac
RUN curl -Lsfo /usr/local/bin/osac "https://github.com/osac-project/fulfillment-service/releases/download/v${OSAC_CLI_VERSION}/osac_Linux_x86_64" \
&& chmod +x /usr/local/bin/osac
RUN ln -sf /usr/local/bin/osac /usr/local/bin/fulfillment-cli
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Containerfile` around lines 16 - 17, The container installs the osac binary
but the test automation expects the command fulfillment-cli (referenced via
fulfillment_cli_path), so add a symlink after installing /usr/local/bin/osac to
provide /usr/local/bin/fulfillment-cli; update the RUN step that installs osac
to create a symbolic link from /usr/local/bin/osac to
/usr/local/bin/fulfillment-cli (and ensure the chmod +x remains) so roles
invoking fulfillment-cli succeed.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

Does the GitHub release for osac-project/fulfillment-service tag v0.0.55 publish checksum assets (e.g., SHA256) for osac_Linux_x86_64, and what is the exact checksum verification method recommended by the project?

💡 Result:

No, the GitHub release for osac-project/fulfillment-service tag v0.0.55 does not publish checksum assets (e.g., SHA256) for osac_Linux_x86_64. No evidence of such a release or assets was found across multiple searches of GitHub pages, releases, and related documentation. The repository has 11 releases with the latest being v0.0.46 as of 2026-03-11, and no mentions of v0.0.55, checksum files like checksums.txt or .sha256, or verification methods in README or configs. No recommended checksum verification method is documented by the project.

Citations:


🏁 Script executed:

cd /
find . -name "Containerfile" -o -name "Dockerfile" 2>/dev/null | head -20

Repository: osac-project/osac-test-infra

Length of output: 224


🏁 Script executed:

cat -n ./home/jailuser/git/Containerfile | head -30

Repository: osac-project/osac-test-infra

Length of output: 137


🏁 Script executed:

cat -n Containerfile | head -30

Repository: osac-project/osac-test-infra

Length of output: 1184


Add integrity verification for downloaded CLI artifact; note version mismatch.

The binary is fetched without checksum/signature validation, creating supply-chain risk. However, the referenced version v0.0.55 does not exist in the upstream project (latest release is v0.0.46). Additionally, the osac-project/fulfillment-service does not publish SHA256 checksums or signatures for release artifacts, making the suggested checksum validation approach infeasible.

Resolve this in two steps:

  1. First, correct OSAC_CLI_VERSION to match an available release (v0.0.46 or earlier)
  2. For integrity verification without published checksums, consider: pinning the release and reviewing its source code/artifacts directly, using image attestation mechanisms (e.g., sigstore/cosign if supported), or documenting the risk acceptance
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Containerfile` around lines 16 - 17, The Containerfile currently downloads
the osac CLI with an incorrect OSAC_CLI_VERSION and without integrity
verification; change OSAC_CLI_VERSION to a published tag (e.g., v0.0.46) and
update the RUN that fetches /usr/local/bin/osac accordingly, then add one of the
following integrity mitigations: (a) switch to a release workflow that supports
signed/artifact-verified downloads (e.g., use sigstore/cosign or image
attestation) and verify signatures before installing, (b) pin the exact release
and add a documented manual source/artifact review step in the repo (risk
acceptance), or (c) embed a verified build step that compiles osac from tagged
source and verifies git commit/tag before installing; reference
OSAC_CLI_VERSION, the RUN curl line that writes /usr/local/bin/osac, and the
/usr/local/bin/osac install step when making the change.

@omer-vishlitzky omer-vishlitzky changed the title MGMT-22635: rename fulfillment-cli to osac in Containerfile NO_ISSUE: rename fulfillment-cli to osac in Containerfile Apr 22, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@omer-vishlitzky: No Jira issue is referenced in the title of this pull request.
To reference a jira issue, add 'XYZ-NNN:' to the title of this pull request and request another refresh with /jira refresh.

Details

In response to this:

Summary

  • Rename fulfillment-cli to osac in the Containerfile
  • Update CLI version from v0.0.53 to v0.0.55

Problem

PR #29 changed the default CLI binary name from fulfillment-cli to osac in conftest.py, but the Containerfile still downloaded fulfillment-cli. This caused every CLI-dependent test to fail with FileNotFoundError: No such file or directory: 'osac'.

CI evidence from openshift/release#77782:

  • 3/3 non-CLI tests passed (api-fields, subnet, virtual-network)
  • 5/5 CLI tests failed — perfect correlation

Ref

https://redhat.atlassian.net/browse/MGMT-22635

Summary by CodeRabbit

  • Chores
  • Updated container image to use the latest CLI binary version (0.0.55).

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Comment thread Containerfile Outdated
The CLI binary was renamed from fulfillment-cli to osac in
fulfillment-service v0.0.54+. The conftest.py default was
updated to osac in PR osac-project#29, but the Containerfile still
downloaded fulfillment-cli. This caused every CLI-dependent
test to fail with FileNotFoundError.
@omer-vishlitzky
omer-vishlitzky force-pushed the MGMT-22635-fix-containerfile branch from fa851ab to 5483431 Compare April 22, 2026 16:42

@akshaynadkarni akshaynadkarni left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@openshift-ci

openshift-ci Bot commented Apr 22, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: akshaynadkarni, omer-vishlitzky

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [akshaynadkarni,omer-vishlitzky]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot
openshift-merge-bot Bot merged commit e35973a into osac-project:main Apr 22, 2026
4 checks passed
eliorerz added a commit that referenced this pull request Jul 15, 2026
…ice name"

This reverts commit d6da1c4.

ec2:DescribeImages has now been added to the orchestrator's IAM
credential, so the workaround (hardcoding ROOT_DEVICE_NAME to
/dev/sda1) is no longer needed. Restore the dynamic describe-images
lookup, which correctly handles a future AMI change without needing
another manual override -- task #30 tracked this exact follow-up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants