Skip to content

Add CI job for lightspeed operator deployment - #65

Open
malingatembo wants to merge 12 commits into
openstack-k8s-operators:mainfrom
malingatembo:add-deployment-job-osprh-33343
Open

Add CI job for lightspeed operator deployment#65
malingatembo wants to merge 12 commits into
openstack-k8s-operators:mainfrom
malingatembo:add-deployment-job-osprh-33343

Conversation

@malingatembo

@malingatembo malingatembo commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Creates lightspeed-operator-deployment-crc job that:

  • Deploys operator using ci-framework playbook
  • Uses example LLM endpoint (no real credentials)
  • Expected to fail on auth verification

JIRA: OSPRH-33344

@openshift-ci
openshift-ci Bot requested review from lpiwowar and umago August 24, 2026 16:59
@openshift-ci

openshift-ci Bot commented Aug 24, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: malingatembo
Once this PR has been reviewed and has the lgtm label, please assign lpiwowar for approval. For more information see the Code Review Process.

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

Details Needs approval from an approver in each of these files:

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

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Team

Run ID: 95a6d5d8-dc33-48dd-91a0-e24d058df8b4


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

@malingatembo

Copy link
Copy Markdown
Contributor Author

/recheck

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/a74e122b0c4444bbb791d46b748561d4

Warning:
Dependency cycle detected and project openstack-k8s-operators/ci-framework doesn't allow circular dependencies

@malingatembo

Copy link
Copy Markdown
Contributor Author

/recheck

@malingatembo

Copy link
Copy Markdown
Contributor Author

recheck

1 similar comment
@malingatembo

Copy link
Copy Markdown
Contributor Author

recheck

Comment thread .zuul.yaml Outdated
@malingatembo
malingatembo force-pushed the add-deployment-job-osprh-33343 branch from 0c3b371 to cecc1eb Compare August 25, 2026 14:41
@openstack-k8s-operators openstack-k8s-operators deleted a comment from umago Aug 25, 2026
@centosinfra-prod-github-app

Copy link
Copy Markdown

Unable to freeze job graph: Job lightspeed-operator-deployment-crc does not specify a run playbook

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/b4235ec9de5a483a9faf996ac6962f87

lightspeed-operator-deployment-crc FAILURE in 29m 14s

Comment thread zuul.d/jobs.yaml Outdated
# CI job for deploying OpenStack Lightspeed operator
- job:
name: lightspeed-operator-deployment-crc
parent: cifmw-base-crc

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

question (non-blocking): Does this job deploy OpenStack as well? I think it does not but I am not 100 % certain about it. In a long term it would be good if the job deployed OpenStack as well because then we can do some basic checks that involve MCP.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

No no, this one only deploys OpenStack Lightspeed operator using the CRC ( so no full deployment of OpenStack control plane). for full OpenStack deployment + MCP integration testing, i think we'd need to add that to a seperate job or enhance this one - maybe we can keep track and have a seperate ticket for it

Comment thread zuul.d/jobs.yaml
- job:
name: lightspeed-operator-deployment-crc
parent: cifmw-base-crc
attempts: 1

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

suggestion (blocking): I think you want to add openstack-k8s-operators-content-provider job as a dependency [1]. This job builds the operator and then provides it to the "child" jobs that depend on it. This allows you to test the operator from a content in a PR.

[1] https://github.com/openstack-k8s-operators/openstack-operator/blob/aeda4eda1c71ae34dabc5b458e1340ab755f41a4/zuul.d/jobs.yaml#L35

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the pointer to this feature.. Yeah, I agree we should require a build from pr. I have make the change in ebf2560

Comment thread zuul.d/jobs.yaml
---
# CI job for deploying OpenStack Lightspeed operator
- job:
name: lightspeed-operator-deployment-crc

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

suggestion (non-blocking): If I were working on this I would be using autohold to investigate the job from the inside.

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/0e7a9ed2f30341758ef0de3a8d1ed76c

lightspeed-operator-deployment-crc FAILURE in 20m 52s

@centosinfra-prod-github-app

Copy link
Copy Markdown

Unable to freeze job graph: Job lightspeed-operator-deployment-crc depends on openstack-k8s-operators-content-provider which was not run.

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/35994b384a7147acb95d077b0d74de58

openstack-k8s-operators-content-provider FAILURE in 7m 04s
⚠️ lightspeed-operator-deployment-crc SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider

@@ -0,0 +1,17 @@
---

@lpiwowar lpiwowar Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@malingatembo just FYI, you want to set the CONTAINER_TOOL to podman in Makefile. I've encountered it too:).

# CONTAINER_TOOL defines the container tool to be used for building images.
# Be aware that the target commands are only tested with Docker which is
# scaffolded by default. However, you might want to replace it to use other
# tools. (i.e. podman)
CONTAINER_TOOL ?= docker

Because of the failure in the job:

2026-08-26 17:01:59.168382 | controller | TASK [operator_build : lightspeed-operator - Call docker-build dry_run={{ cifmw_operator_build_dryrun|bool }}, chdir={{ operator.src }}, output_dir={{ cifmw_operator_build_basedir }}/artifacts, script=make docker-build, extra_args={'IMG': '{{ operator_img }}'}] ***
2026-08-26 17:01:59.168387 | controller | Wednesday 26 August 2026  17:01:59 +0000 (0:00:00.025)       0:02:31.959 ******
2026-08-26 17:01:59.168391 | controller | Wednesday 26 August 2026  17:01:59 +0000 (0:00:00.025)       0:02:31.958 ******
2026-08-26 17:01:59.315000 | controller | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_002_lightspeed_operator_call_docke.log
2026-08-26 17:01:59.315047 | controller | An exception occurred during task execution. To see the full traceback, use -vvv. The error was: NoneType: None
2026-08-26 17:01:59.315054 | controller | task path: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/operator_build/tasks/build.yml:163
2026-08-26 17:01:59.315059 | controller | fatal: [localhost]: FAILED! =>
2026-08-26 17:01:59.315066 | controller |     changed: true
2026-08-26 17:01:59.315072 | controller |     msg: non-zero return code
2026-08-26 17:01:59.315077 | controller |     rc: 2
2026-08-26 17:01:59.315082 | controller |     stderr: ''
2026-08-26 17:01:59.315088 | controller |     stderr_lines: []
2026-08-26 17:01:59.315093 | controller |     stdout: |
2026-08-26 17:01:59.315098 | controller |       ~/src/github.com/openstack-k8s-operators/lightspeed-operator ~/ci-framework-data/artifacts
2026-08-26 17:01:59.315104 | controller |       docker build --build-arg GOMAXPROCS= -t 38.129.56.96:5001/openstack-k8s-operators/lightspeed-operator:011ef9691d76dd9e4f494b1c25294ed98df09a39 .
2026-08-26 17:01:59.315110 | controller |       bash: line 1: docker: command not found
2026-08-26 17:01:59.315116 | controller |       make: *** [Makefile:184: docker-build] Error 127
2026-08-26 17:01:59.315122 | controller |     stdout_lines:
2026-08-26 17:01:59.315126 | controller |     - ~/src/github.com/openstack-k8s-operators/lightspeed-operator ~/ci-framework-data/artifacts
2026-08-26 17:01:59.315131 | controller |     - docker build --build-arg GOMAXPROCS= -t 38.129.56.96:5001/openstack-k8s-operators/lightspeed-operator:011ef9691d76dd9e4f494b1c25294ed98df09a39
2026-08-26 17:01:59.315137 | controller |       .
2026-08-26 17:01:59.315142 | controller |     - 'bash: line 1: docker: command not found'
2026-08-26 17:01:59.315146 | controller |     - 'make: *** [Makefile:184: docker-build] Error 127'

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/ff62866e450d4e1e850f22ee6eb10dd1

✔️ openstack-k8s-operators-content-provider SUCCESS in 50m 09s
lightspeed-operator-deployment-crc FAILURE in 34m 52s

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/5bc14ec4ea6f4fa499487e1eee7df6d2

✔️ openstack-k8s-operators-content-provider SUCCESS in 55m 18s
lightspeed-operator-deployment-crc FAILURE in 38m 04s

@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/e67f0258d7eb4e1b8808ff29911b9eda

✔️ openstack-k8s-operators-content-provider SUCCESS in 57m 53s
lightspeed-operator-deployment-crc FAILURE in 40m 43s

@malingatembo
malingatembo force-pushed the add-deployment-job-osprh-33343 branch from 63b4ae6 to b30b91e Compare August 31, 2026 08:52
@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/lightspeed-operator for 65,b30b91e659f9390b7fd7043bfe29ec67c111cf30

@malingatembo
malingatembo force-pushed the add-deployment-job-osprh-33343 branch from b30b91e to fadb45e Compare August 31, 2026 09:43
@centosinfra-prod-github-app

Copy link
Copy Markdown

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/lightspeed-operator for 65,fadb45e4c176a94db598b55606f5963310f2cbc5

Creates lightspeed-operator-deployment-crc job that:
- Deploys operator using ci-framework playbook
- Uses example LLM endpoint (no real credentials)
- Expected to fail on auth verification
- Inherits from cifmw-base-crc for CRC cluster provisioning

JIRA: OSPRH-33344
creates lightspeed-operator-deployment-crc job that:
- deploys operator using ci-framework playbook
- expected to fail on auth verification ( uses
  fake creds for LLM endpoints )
- matches file pattern in openstack-operator (in zuul.d/)

Jira: OSPRH-33344
Created ci/playbooks/lightspeed/run.yml to execute deployment hook
Added run: directive to lightspeed-operator-deployment-crc job
Fixes Zuul CONFIG_ERROR: "job does not specify a run playbook"

Related: OSPRH-33344
The previous implementation had incorrect hook variable format and
directly included tasks instead of using ci-framework's run_hook role.

Changes:
- Fixed hook format: Changed from string to proper list structure
  with name, type, and source fields as expected by run_hook role
- Updated run playbook to use run_hook role instead of include_tasks
- Added roles directive to make ci-framework roles available
- Hook source points to install-openstack-lightspeed.yml in
  ci-framework/hooks/playbooks/ directory

The run_hook role automatically resolves hook sources from
ci-framework/hooks/playbooks/ and handles execution, logging,
and artifact collection.

Fixes: Job failure after 29m execution
Related: OSPRH-33344
Added openstack-k8s-operators-content-provide
as a job dependency to make sure that operator
is built from pr changes before deployment.

Without this the job wouold use the upstream catalogue
image instead of testing the actual pr content.

follows the pattern by openstack-operator
https://github.com/openstack-k8s-operators/openstack-operator/blob/aeda4eda1c71ae34dabc5b458e1340ab755f41a4/zuul.d/jobs.yaml#L35

Related: OSPRH-33344
The deployment job depends on OpenStack-k8s-operators-content-provider
but it was not configured to run in the pipeline. this cased the error:
'Job depends on openstack-k8s-operators-content-provider which was not run'

Added content-provider to the jobs list so it runs before deployment,
building the operator from PR code and making it available for testing.

Fixes: CONFIG_ERROR - dependency not satisfied
Related: OSPRH-33344
The run_hook role requires cifmw.general.ci_script module but can't
find it because our custom run playbook (in lightspeed-operator repo)
doesn't have access to the collection installed in ci-framework.

Error from Zuul build ff62866e450d4e1e850f22ee6eb10dd1:
  ANSIBLE PARSE ERROR
  ERROR! couldn't resolve module/action 'cifmw.general.ci_script'
  The error appears to be in '.../ci-framework/roles/run_hook/tasks/playbook.yml': line 90

Build: https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/ff62866e450d4e1e850f22ee6eb10dd1

Added the symlink setup step that all ci-framework run playbooks use:
  - name: Make a symlink to local .ansible collection dir
    ansible.builtin.include_role:
      name: cifmw_helpers
      tasks_from: symlink_cifmw_collection.yml

This creates a symlink making the cifmw collection plugins available
for nested Ansible execution.

Pattern from:
  https://github.com/openstack-k8s-operators/ci-framework/blob/main/ci/playbooks/edpm/run.yml#L18-L23

Module usage in run_hook role:
  https://github.com/openstack-k8s-operators/ci-framework/blob/main/roles/run_hook/tasks/playbook.yml#L90-L115

Fixes: couldn't resolve module/action 'cifmw.general.ci_script'
Related: OSPRH-33344
@malingatembo
malingatembo force-pushed the add-deployment-job-osprh-33343 branch from fadb45e to 7d24a2a Compare August 31, 2026 11:24
@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/abdd534e30784091b6efbc56f0528280

✔️ openstack-k8s-operators-content-provider SUCCESS in 52m 18s
lightspeed-operator-deployment-crc FAILURE in 37m 19s

The cifmw_helpers role's internal conditional logic was preventing
symlink creation even when cifmw_helpers_project_dir was set correctly.

Replace role call with direct ansible.builtin.file tasks that:
1. Ensure parent directory exists
2. Create symlink forcefully

This bypasses the role's broken conditionals and ensures the cifmw
collection is always available for install-openstack-lightspeed.yml
@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/043fa98740fd4d279f5625f58d8d45cf

✔️ openstack-k8s-operators-content-provider SUCCESS in 54m 44s
lightspeed-operator-deployment-crc FAILURE in 39m 26s

@openshift-ci

openshift-ci Bot commented Aug 31, 2026

Copy link
Copy Markdown

@malingatembo: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/openstack-lightspeed-kuttl-4-20 eeb018e link true /test openstack-lightspeed-kuttl-4-20

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

fix:
1. Symlink: Remove existing cifmw directory before creating symlink
    to prevent 'directory is not empty' error

2. Missing catalog image: Add cifmw_openstack_lightspeed_catalog_imag
   pointing to content-provider built catalog image
@centosinfra-prod-github-app

Copy link
Copy Markdown

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/44773e3bac1c4966898ec9ada6a51fb6

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 24m 01s
lightspeed-operator-deployment-crc FAILURE in 42m 02s

1. Fix cifmw collection symlink (Approach 2)
 - ci/playbooks/lightspeed/run.yml: Use pre-built collection
 - Symlink to:
    ci-framework/ci/playbooks/collections/ansible_collections/cifmw
 - Simpler approach with complete cifmw.general structure

2. Enable autohold debugging support
   - ci/playbooks/lightspeed/pre-run.yaml: Inject SSH keys from GitHub
   - Allows SSH access to failed nodes for debugging
   - Fetches keys from: https://github.com/malingatembo.keys
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