Adds support to deploy cyborg controlplane services - #1102
Conversation
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/3a20fb346aa44e9d80abc0ba1ff8cdf5 ✔️ openstack-meta-content-provider SUCCESS in 2h 58m 29s |
|
check-rdo |
| // ensureTopology - when a Topology CR is referenced, remove the | ||
| // finalizer from a previous referenced Topology (if any), and retrieve the | ||
| // newly referenced topology object | ||
| func ensureTopology( |
There was a problem hiding this comment.
this function seems to be an exact duplicate of
. This might be a question more for the nova-operator maintainers, but is there a way to reuse code between the controllers of different services?There was a problem hiding this comment.
IIUC the approach is to not share code among the different groups in the operator (nova, placement and cyborg). Let's see what nova-operator maintainers think about it.
There was a problem hiding this comment.
IIRC, we have a plan to unify common codes from different groups to a single place. But for now, I think we can go ahead which this duplication, and it should be taken care when we work on unifying common code.
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 3h 45m 37s |
|
check-rdo |
|
This change depends on a change that failed to merge. Change #1121 is needed. |
|
check-rdo |
|
This change depends on a change that failed to merge. Change #1121 is needed. |
|
check-rdo |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 4h 23m 58s |
|
Build failed (check pipeline). Post ❌ openstack-meta-content-provider FAILURE in 8m 00s |
|
check-rdo |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 3h 05m 36s |
|
check-rdo |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 2h 45m 27s |
|
check-rdo |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 2h 41m 49s |
@amartyasinha Done. May you review current version of the PR when you have a chance? thanks! |
|
@melwitt I think I addressed all your comments in my last PR, may you review it when you have a chance? |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 3h 11m 36s |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 3h 14m 06s |
Using operator-sdk command: operator-sdk create api --group cyborg --version v1beta1 --kind Cyborg --resource --controller operator-sdk create api --group cyborg --version v1beta1 --kind CyborgAPI --resource --controller operator-sdk create api --group cyborg --version v1beta1 --kind CyborgConductor --resource --controller Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
Add full reconcile logic for the CyborgConductor CR: - Validate input from the config secret created by the Cyborg controller - Generate conductor config from templates (00-default.conf) - Create a StatefulSet to run cyborg-conductor pods - Track readiness (ReadyCount, conditions, hash, topology) - Expose IsReady and topology helpers on CyborgConductor type - Update CyborgConductorStatus with structured conditions and hash - Extend Cyborg controller to propagate conductor and check readiness upwards - Add functional tests for the conductor reconcile loop Assisted-By: Claude Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
Add full reconcile logic for the CyborgAPI CR: - Validate input from config secret provided by the Cyborg controller - Render WSGI/httpd and cyborg-api configuration templates - Create a StatefulSet for cyborg-api pods with TLS support - Register Keystone endpoints (public and internal) for the API - Track readiness (ReadyCount, conditions, hash, topology) - Expose IsReady and topology helpers on CyborgAPI type - Extend Cyborg controller to create CyborgAPI and check readiness upwards - Add functional tests covering the full API reconcile flow Assisted-By: Claude Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
Deployment using httpd is not longer supported in kolla upstream images since 2026.1 release [1]. Until there are proper S2I container images in the openstack-k8s-operators namespace, use cyborg images from master branch created using source to image proof of concept [2] pushed to amoralej personal quay repo. Also adjusting the location of the wsgi script for non-kolla images. [1] https://review.opendev.org/c/openstack/kolla/+/986488 [2] https://github.com/amoralej/s2i-openstack-containers/ Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
Add an end-to-end kuttl test suite for the Cyborg operator: - Cleanup step to delete any pre-existing Cyborg CR before the test - Deploy step creating a full Cyborg CR (cyborg-kuttl) - Assert step verifying all conditions are True on Cyborg, CyborgAPI, CyborgConductor and MariaDBDatabase CRs - Error step covering missing-dependency failure scenarios - Register cyborg container images (api, conductor, agent) as default RELATED_IMAGE env vars in the manager deployment - Enable ENABLE_CYBORG=true in the CI webhook deploy script Assisted-By: Claude Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
The Cyborg controller now generates a `{name}-agent-config` secret
containing the rendered configuration for the cyborg-agent service
running on EDPM compute nodes. This secret is consumed by the
edpm-ansible cyborg role to configure the agent on the dataplane.
The shared 00-default.conf template is updated to guard the
[database] section with a conditional, allowing reuse for the
agent config without a separate template.
Assisted-By: claude
Signed-off-by: Alfredo Moralejo <amoralej@redhat.com>
melwitt
left a comment
There was a problem hiding this comment.
All of my comments have been addressed, this looks good from my perspective.
Want to check with Amartya if he has re-reviewed yet.
|
Apologies, I didn't realize if I hit Approve it would start auto-merging. I temporarily dismissed my Approve for now to check with @amartyasinha if he has re-reviewed to check if his comments have been addressed also. |
|
Build failed (check pipeline). Post ✔️ openstack-meta-content-provider SUCCESS in 5h 12m 36s |
@melwitt I've re-reviewed, and changes looks good. Thanks! |
|
check-rdo |
|
The fix for the kuttl job #1153 is merged |
melwitt
left a comment
There was a problem hiding this comment.
Looks like everything is all good now, thanks!
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: amoralej, melwitt The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
5ab07f6
into
openstack-k8s-operators:main
Add support for OpenStack Cyborg (accelerator lifecycle management service) in nova-operator, introducing three new CRDs and their controllers.
oc get cyborg/cyborgapi/cyborgconductor.Assisted-By: Claude
Depends-On: #1153
Jira: OSPRH-27674