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

Investigate how to remove the generated legacy client-go code. #6190

Closed
6 of 9 tasks
blackpiglet opened this issue Apr 25, 2023 · 11 comments · Fixed by #6469, #6497, #7041, #7051 or #8114
Closed
6 of 9 tasks

Investigate how to remove the generated legacy client-go code. #6190

blackpiglet opened this issue Apr 25, 2023 · 11 comments · Fixed by #6469, #6497, #7041, #7051 or #8114

Comments

@blackpiglet
Copy link
Contributor

blackpiglet commented Apr 25, 2023

v1.12

v1.13

  • Remove from pkg/plugin directory.
  • Remove from the rest directories.
  • Check with the community.
  • Record in the release note.

v1.15

  • Remove the pkg/generated directory.
  • Mention the change in the release note.

Backlog

  • Update hack/test.sh to update the excluded packages.

Describe the problem/challenge you have

Since all Velero controllers already used the controller-runtime framework, Velero should consider whether to remove the legacy client-go code.
Investigate where those legacy codes are still used, and check whether it's possible to remove those codes.

Describe the solution you'd like

Anything else you would like to add:

Environment:

  • Velero version (use velero version):
  • Kubernetes version (use kubectl version):
  • Kubernetes installer & version:
  • Cloud provider or hardware configuration:
  • OS (e.g. from /etc/os-release):

Vote on this issue!

This is an invitation to the Velero community to vote on issues, you can see the project's top voted issues listed here.
Use the "reaction smiley face" up to the right of this comment to vote.

  • 👍 for "The project would be better with this feature added"
  • 👎 for "This feature will not enhance the project in a meaningful way"
@blackpiglet
Copy link
Contributor Author

v1.12 planned tasks are already done.

@blackpiglet blackpiglet removed this from the v1.12 milestone Jul 20, 2023
@blackpiglet blackpiglet added the 1.13-candidate issue/pr that should be considered to target v1.13 minor release label Jul 20, 2023
@reasonerjt reasonerjt added kind/refactor and removed 1.13-candidate issue/pr that should be considered to target v1.13 minor release labels Aug 23, 2023
@reasonerjt reasonerjt added this to the v1.13 milestone Aug 23, 2023
@blackpiglet blackpiglet reopened this Nov 3, 2023
@blackpiglet blackpiglet reopened this Nov 7, 2023
@blackpiglet
Copy link
Contributor Author

After discussion, the agreement is that the pkg/generated should be deprecated first, and then deleted.
The deprecation process is proposed by PR #5532.
After PR #5532 is merged, I will follow that PR to start the deprecation process.

@blackpiglet
Copy link
Contributor Author

Need to add this deprecation notice in the v1.13 release note.

@blackpiglet
Copy link
Contributor Author

v1.13's jobs are done for this task. Remove from the v1.13 milestone.

@blackpiglet blackpiglet removed this from the v1.13 milestone Dec 5, 2023
@blackpiglet
Copy link
Contributor Author

@mateusoliveira43
I updated the task list.
After the release-1.14 is cut, we are good to go to remove the generated client code.

@mateusoliveira43
Copy link
Contributor

@blackpiglet thanks!

should pkg/plugin/generated directory also be removed, or just pkg/generated directory?

@blackpiglet
Copy link
Contributor Author

We should keep the pkg/plugin/generated directory.
The protobuf binary generated the directory. That is not related to the go-client.

@blackpiglet
Copy link
Contributor Author

@sseago @Lyndon-Li @mateusoliveira43 @shubham-pampattiwar @anshulahuja98
Is this issue also applicable to the deprecation process?

@kaovilai
Copy link
Contributor

kaovilai commented Aug 2, 2024

If this is only dev facing, not user facing, it may not have to be as strict.

@blackpiglet
Copy link
Contributor Author

OK.
I will create a PR to address this issue.

@sseago
Copy link
Collaborator

sseago commented Aug 5, 2024

Also, we did deprecate this in 1.13:

* The generated k8s clients, informers, and listers are deprecated in the Velero v1.13 release. They are put in the Velero repository's pkg/generated directory. According to the n+2 supporting policy, the deprecated are kept for two more releases. The pkg/generated directory should be deleted in the v1.15 release.

The one thing we didn't do was vote on it in an issue, but I think that's fine here. We're still following the more important part which is deprecating 2 releases before removal, especially as @kaovilai said, since this isn't a user-facing feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment