Skip to content

Restructure nova-operator to multigroup layout#1075

Merged
openshift-merge-bot[bot] merged 6 commits intoopenstack-k8s-operators:mainfrom
auniyal61:multi-group-apis-restructure
Mar 24, 2026
Merged

Restructure nova-operator to multigroup layout#1075
openshift-merge-bot[bot] merged 6 commits intoopenstack-k8s-operators:mainfrom
auniyal61:multi-group-apis-restructure

Conversation

@auniyal61
Copy link
Copy Markdown
Contributor

@auniyal61 auniyal61 commented Feb 23, 2026

Restructure nova to multigroup layout api/nova/v1beta1

  api/
├── bases
└── nova
    └── v1beta1
internal/
├── controller
│   └── nova
├── nova
│   ├── api
│   ├── compute
│   ├── conductor
│   ├── metadata
│   ├── novncproxy
│   └── scheduler
└── webhook
    └── nova

Placement will be added in a separate PR.

@openshift-ci openshift-ci bot requested review from abays and jamepark4 February 23, 2026 05:05
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/9d4a0ce79e3449eebd1aeaa76a18bbc6

openstack-meta-content-provider FAILURE in 6m 18s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from 0284901 to 66b2f48 Compare February 23, 2026 05:22
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/0dc601b27ecb471db71801bb82f75085

openstack-meta-content-provider FAILURE in 9m 50s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/1f5ad0ec578345b391db2fb308e12bd1

openstack-meta-content-provider FAILURE in 9m 21s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

Makefile Outdated
manifests: gowork controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases && \
rm -f api/bases/* && cp -a config/crd/bases api/
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./apis/..." paths="./internal/..." paths="./cmd/..." output:crd:artifacts:config=config/crd/bases && \
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.

we added extra paths (internal and cmd) here for rbac permissions
scan ./apis for CRDs, ./internal and ./cmd for RBAC markers

go.mod Outdated
)

replace github.com/openstack-k8s-operators/nova-operator/api => ./api
replace github.com/openstack-k8s-operators/nova-operator/apis => ./apis //allow-merging
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.

so here used apis/ (like infra operator) instead of api/ (like openstack-operator)
to make it clear nova operator will host multiple API groups (nova, placement and eventually cyborg).

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from 6a10cec to 237e678 Compare February 23, 2026 10:02
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/76476cf72e7246409d658ce620195916

openstack-meta-content-provider FAILURE in 9m 24s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from 237e678 to e1e0ed6 Compare February 23, 2026 10:39
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/cf355f8c619047b8b17bd61514e4978d

openstack-meta-content-provider FAILURE in 9m 39s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

Copy link
Copy Markdown
Contributor

@gibizer gibizer left a comment

Choose a reason for hiding this comment

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

Changes in the api structure looks good to me.

Next steps are restructuring

  • the internal dir
  • the tests dir
  • the template dir

Copy link
Copy Markdown
Contributor

@gibizer gibizer left a comment

Choose a reason for hiding this comment

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

make a symlink to ./apis -> ./api/nova to make the build pass. Then bump the meta operator then remove the symlink

@softwarefactory-project-zuul
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/nova-operator for 1075,e64527ab1c0bd6e2aaa63a5846668f66af876fbf

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2711da5fa9654671b5ad6ef374ee5bfc

openstack-meta-content-provider FAILURE in 9m 20s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from c7c309f to f69bd0b Compare February 26, 2026 02:25
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/0ed8a84c04cc412299e80d8f3d8e39fb

openstack-meta-content-provider FAILURE in 9m 25s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from f69bd0b to 0fe60cf Compare February 26, 2026 05:10
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/8ff0f09c94b14360b0634ab21f3f8ddc

openstack-meta-content-provider FAILURE in 10m 16s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61
Copy link
Copy Markdown
Contributor Author

/test functional

@auniyal61
Copy link
Copy Markdown
Contributor Author

/test functional

[FAILED] Timed out after 45.001s.
  The function passed to Eventually failed at /go/src/github.com/openstack-k8s-operators/operator/test/functional/nova_reconfiguration_test.go:574 with:
  Expected
      <map[string]string | len:1>: {"foo": "bar"}
  to be nil

@auniyal61
Copy link
Copy Markdown
Contributor Author

/retest

@auniyal61
Copy link
Copy Markdown
Contributor Author

recheck

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/6b02784f89d94c039ae23031e055bae6

openstack-meta-content-provider FAILURE in 10m 20s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/28e8e4bcd5174967950cea13fe2eab90

openstack-meta-content-provider FAILURE in 9m 37s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/d1c5ecc03cc04fbe879b9a9f56f05c6b

openstack-meta-content-provider FAILURE in 9m 41s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/ab7deb0cfc1044819eef6b13b0db5367

openstack-meta-content-provider FAILURE in 10m 36s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from d7bd87c to bdaba18 Compare March 12, 2026 02:33
@auniyal61 auniyal61 requested review from dprince and gibizer March 12, 2026 04:29
@gibizer
Copy link
Copy Markdown
Contributor

gibizer commented Mar 12, 2026

recheck

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/aec41231b080409f877b5b5ea6055b1f

openstack-meta-content-provider FAILURE in 9m 53s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/456337024070429cb6ab1c1abc99bb52

openstack-meta-content-provider FAILURE in 9m 56s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from 06efdf9 to b37ccc7 Compare March 12, 2026 16:26
@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/20bbd08ba9854fe18fa4c668d11055d0

openstack-meta-content-provider FAILURE in 10m 39s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

Makefile Outdated
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.

In my local testing the symlink seems to be ignored by the build and golang package resolution logic. If I replace the symlink with a direct copy of the directory, then controller-gen picks up both directory as source of CRD definitions so we will have duplicated CRD definitions which will fail the build. If I tell controller-gen here to only look for CRD definitions in ./api/nova/... (for now) then I can build this change locally together with an unmodified openstack-operator. So this can be the first step.

Then we can modify openstack-operator to start importing api/nova/v1beta1 instead of api/v1beta1.
Then we can remove the api/v1beta1 directory (the copy) from nova-operator and restore the paths="./..." here in the makefile.

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.

for me make manifests and generate works fine.

can you please tell how exactly you noticed symlink is being ignored.

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.

removed symlink and updated as suggested.
controller-gen taking paths="./api/nova/..."

---
$ make manifests generate build
test -f go.work || GOTOOLCHAIN=go1.24.0 go work init
go work use .
go work use ./api
go work sync
test -s /home/auniyal/my_wd/operators/repo/nova-operator/bin/controller-gen && /home/auniyal/my_wd/operators/repo/nova-operator/bin/controller-gen --version | grep -q v0.18.0 || \
GOBIN=/home/auniyal/my_wd/operators/repo/nova-operator/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.18.0

/home/auniyal/my_wd/operators/repo/nova-operator/bin/controller-gen crd webhook paths="./api/nova/..." output:crd:artifacts:config=config/crd/bases && \

/home/auniyal/my_wd/operators/repo/nova-operator/bin/controller-gen rbac:roleName=manager-role paths="./..." output:dir=config/rbac && \
rm -f api/bases/* && cp -a config/crd/bases api/

/home/auniyal/my_wd/operators/repo/nova-operator/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./api/nova/..."

move entire api/v1beta1/ directory to api/nova/v1beta1/
- Move all Nova controllers from internal/controller/ to internal/controller/nova/
- Follows openstack-operator and infra-operator pattern
- Uses singular controller (not controllers)
internal/webhook/v1beta1/ to internal/webhook/nova/v1beta1/
Rename internal/novaapi/ to internal/nova/api/ and others
'multigroup: true' to PROJECT file
Restrict controller-gen to api/nova to add backward compat
@auniyal61 auniyal61 force-pushed the multi-group-apis-restructure branch from b37ccc7 to a8ea01b Compare March 18, 2026 11:16
@auniyal61
Copy link
Copy Markdown
Contributor Author

recheck

CI passed but rechecking because openstack-meta-content-provider seems unstable
with

2026-03-12 09:49:38.657958 | controller | An exception occurred during task execution. To see the full traceback, use -vvv. The error was: NoneType: None
2026-03-12 09:49:38.657968 | controller | task path: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/operator_build/tasks/build.yml:128
2026-03-12 09:49:38.657979 | controller | fatal: [localhost]: FAILED! =>
2026-03-12 09:49:38.657990 | controller |     changed: true
2026-03-12 09:49:38.658001 | controller |     msg: non-zero return code
2026-03-12 09:49:38.658011 | controller |     rc: 2
2026-03-12 09:49:38.658022 | controller |     stderr: ''
2026-03-12 09:49:38.658032 | controller |     stderr_lines: []
2026-03-12 09:49:38.658043 | controller |     stdout: |
2026-03-12 09:49:38.658054 | controller |       ~/src/github.com/openstack-k8s-operators/openstack-operator ~/ci-framework-data/artifacts
2026-03-12 09:49:38.658064 | controller |       test -f go.work || GOTOOLCHAIN=go1.24.0 go work init
2026-03-12 09:49:38.658077 | controller |       go work use .
2026-03-12 09:49:38.658090 | controller |       go: errors parsing go.mod:
2026-03-12 09:49:38.658141 | controller |       go.mod:185: replace github.com/auniyal61/nova-operator/api: version "06efdf91fb51b3993c86e8d11f3774610fb83e34" invalid: must be of the form v1.2.3

@softwarefactory-project-zuul
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://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/82cd09c7bbef4dfdb437c2d3909ddea4

openstack-meta-content-provider FAILURE in 16m 04s
⚠️ nova-operator-kuttl SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode SKIPPED Skipped due to failed job openstack-meta-content-provider
⚠️ nova-operator-tempest-multinode-ceph SKIPPED Skipped due to failed job openstack-meta-content-provider

@auniyal61
Copy link
Copy Markdown
Contributor Author

recheck
unrelated openstack-meta-content-provider FAILURE
https://logserver.rdoproject.org/8f5/rdoproject.org/8f5d04b824ed4eecab4acdfd8ca6e148/job-output.txt

2026-03-18 15:03:39.839495 | controller | TASK [operator_build : openstack-operator - Call catalog-build dry_run={{ cifmw_operator_build_dryrun|bool }}, chdir={{ operator.src }}, output_dir={{ cifmw_operator_build_basedir }}/artifacts, script=make catalog-build, extra_args={'CATALOG_IMG': '{{ operator_img_catalog }}', 'BUNDLE_IMG': '{{ operator_img_bundle }}', 'IMAGENAMESPACE': '{{ cifmw_operator_build_push_org }}', 'IMAGEREGISTRY': '{{ cifmw_operator_build_push_registry }}', 'IMAGEBASE': "{{ operator.image_base | default('') }}", 'LOCAL_REGISTRY': '{{ cifmw_operator_build_local_registry }}'}] ***
2026-03-18 15:03:39.839507 | controller | Wednesday 18 March 2026  15:03:11 +0000 (0:00:01.083)       0:11:44.702 *******
2026-03-18 15:03:39.839515 | controller | Wednesday 18 March 2026  15:03:11 +0000 (0:00:01.083)       0:11:44.701 *******
2026-03-18 15:03:39.839534 | controller | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_014_openstack_operator_call.log
2026-03-18 15:03:39.839542 | controller | An exception occurred during task execution. To see the full traceback, use -vvv. The error was: NoneType: None
2026-03-18 15:03:39.839549 | controller | task path: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/operator_build/tasks/build.yml:235
2026-03-18 15:03:39.839556 | controller | fatal: [localhost]: FAILED! =>
2026-03-18 15:03:39.839565 | controller |     changed: true
2026-03-18 15:03:39.839574 | controller |     msg: non-zero return code
2026-03-18 15:03:39.839584 | controller |     rc: 2
2026-03-18 15:03:39.839593 | controller |     stderr: ''
2026-03-18 15:03:39.839602 | controller |     stderr_lines: []
2026-03-18 15:03:39.839616 | controller |     stdout: "~/src/github.com/openstack-k8s-operators/openstack-operator ~/ci-framework-data/artifacts\nparse
2026-03-18 15:03:39.839636 | controller |       error: Invalid numeric literal at line 1, column 7\n# FIXME: hardcoded bundle below
2026-03-18 15:03:39.839643 | controller |       should use go.mod pinned version for manila bundle\n/home/zuul/bin/opm index add
2026-03-18 15:03:39.839650 | controller |       --container-tool podman --mode semver --tag 38.102.83.180:5001/openstack-k8s-operators/openstack-operator-index:36856d22fbbd028e148ba6b5277b8d8be928cf7c
2026-03-18 15:03:39.839657 | controller |       --bundles \"38.102.83.180:5001/openstack-k8s-operators/openstack-operator-bundle:36856d22fbbd028e148ba6b5277b8d8b

...

@auniyal61 auniyal61 requested a review from gibizer March 19, 2026 05:14
Copy link
Copy Markdown
Contributor

@gibizer gibizer left a comment

Choose a reason for hiding this comment

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

Code builds and deploys for me with the current openstack-operator so lets land it and then continue from there with the followings:

  1. fix my new comments inline in a follow up (allow-merge, package naming)
  2. update the opentack-operator to use the new nova/v1beta1 imports
  3. remove the duplicated v1beta files from nova-operator
  4. the templates directory needs a similar restructure
  5. the test directory needs a similar restructure

)

replace github.com/openstack-k8s-operators/nova-operator/api => ./api
replace github.com/openstack-k8s-operators/nova-operator/api => ./api //allow-merging
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.

Strange if the github action started to reject this without the tag. Such a replace is whitelisted explicitly in

! egrep --invert-match -e '^replace.*/api => \./api|^replace.*//allow-merging$' `find . -name 'go.mod'` | egrep -e 'go.mod:replace'

Are you sure the //allow-merging is now needed here?

limitations under the License.
*/

package controller
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.

here and below. Now that the package is moved from the controller to the controller/nova directory the package name should be aligned too. See the pacakge names in https://github.com/openstack-k8s-operators/openstack-operator/tree/main/internal/controller as example.

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.

A Go package has both a name and a path. The package name is specified in the package statement of its source files; client code uses it as the prefix for the package’s exported names. Client code uses the package path when importing the package. By convention, the last element of the package path is the package name:

https://go.dev/blog/package-names

limitations under the License.
*/

package novaapi
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.

ditto, here and below align with the new path

@openshift-ci openshift-ci bot added the lgtm label Mar 24, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 24, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: auniyal61, gibizer

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:

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 5701277 into openstack-k8s-operators:main Mar 24, 2026
7 checks passed
@auniyal61 auniyal61 deleted the multi-group-apis-restructure branch March 27, 2026 09:31
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.

5 participants