Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚠ Generate controllers with API Group name as package names in multi-group projects (only Go plugin v3) #1729

Conversation

miguelsorianod
Copy link
Contributor

Description

Use GroupPackageName (the API Group cleaned to be used as
the package name) as the package name when generating
controllers and controller suite test files with
non-empty API groups in MultiGroup projects.

When generating controller with an empty group name in a
MultiGroup project, or when generating a controller in a non
MultiGroup project keep the current behavior, which is
using the controllers package name for both the
controllers and controllers suite test files.

This applies only to Go v3 plugin as I understand this is a breaking change and breaking changes cannot be applied in v2. Can breaking changes be applied to v3 plugin code without the need of creating a new Go v4 plugin version? Is v3 still not considered "released"? By reading the versioning doc (https://github.com/kubernetes-sigs/kubebuilder/blob/master/VERSIONING.md#understanding-the-versions) it seems as if we'd need Go v4 plugin.

Let me know if there's something missing (doc? other stuff that I'm not aware of?)

Motivation

With the behavior before this PR all controllers in a multigroup project defined their package name as "controllers" even when they were inside their own directories. In Go it's often common having the same directory name as the package name (when possible syntactically).

See issue #1717 for more details.

Related Issues

#1717 Controllers in a multigroup project belong to the 'controllers' package

@k8s-ci-robot
Copy link
Contributor

Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA.

It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.


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/test-infra repository. I understand the commands that are listed here.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Oct 19, 2020
@k8s-ci-robot
Copy link
Contributor

Welcome @miguelsorianod!

It looks like this is your first PR to kubernetes-sigs/kubebuilder 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/kubebuilder has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot
Copy link
Contributor

Hi @miguelsorianod. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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/test-infra repository.

@k8s-ci-robot k8s-ci-robot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Oct 19, 2020
@camilamacedo86
Copy link
Member

Hi @miguelsorianod,

It is great 👍 Could you please follow up the instructions on the comment #1729 (comment)?

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Oct 19, 2020
@camilamacedo86
Copy link
Member

Hi @miguelsorianod,

For it gets merged you need to follow up the instructions on the comment #1729 (comment) and squash the commit as well.

Copy link
Contributor

@estroz estroz left a comment

Choose a reason for hiding this comment

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

/lgtm

@k8s-ci-robot k8s-ci-robot added lgtm "Looks good to me", indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Oct 21, 2020
@estroz
Copy link
Contributor

estroz commented Oct 21, 2020

For squashing commits

/hold

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 21, 2020
@miguelsorianod miguelsorianod force-pushed the multigroup-controller-apigroup-package-names branch from 7dd147c to 28c3475 Compare October 21, 2020 09:09
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 21, 2020
@miguelsorianod miguelsorianod force-pushed the multigroup-controller-apigroup-package-names branch from 28c3475 to 2bde5a9 Compare October 21, 2020 09:27
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: estroz, miguelsorianod

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

The pull request process is described here

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

the package name) as the package name when generating
controllers and controller suite test files with
non-empty API groups in MultiGroup projects.
When generating controller with an empty group name in a
MultiGroup project, or when generating a controller in a non
MultiGroup project keep the current behavior, which is
using the `controllers` package name for both the
controllers and controllers suite test files.
@miguelsorianod miguelsorianod force-pushed the multigroup-controller-apigroup-package-names branch from 2bde5a9 to d461cb8 Compare October 21, 2020 10:06
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Oct 21, 2020
@miguelsorianod
Copy link
Contributor Author

Hi,

I've squashed the commits and it seems the CLA check now passes.

@camilamacedo86
Copy link
Member

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 21, 2020
@camilamacedo86
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 21, 2020
@k8s-ci-robot k8s-ci-robot merged commit 8c42281 into kubernetes-sigs:master Oct 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants