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

Make ThirdPartyResource a root scoped object #25006

Merged
merged 1 commit into from
May 7, 2016

Conversation

liggitt
Copy link
Member

@liggitt liggitt commented Apr 30, 2016

Release Note

If you use ThirdPartyResource objects, they have moved from being namespaced-scoped to be cluster-scoped. Before upgrading to 1.3.0, export and delete any existing ThirdPartyResource objects using a 1.2.x client:

kubectl get thirdpartyresource --all-namespaces -o yaml > tprs.yaml
kubectl delete -f tprs.yaml

After upgrading to 1.3.0, re-register the third party resource objects at the root scope (using a 1.3 server and client):

kubectl create -f tprs.yaml

ThirdPartyResource (the registration of a third party type) belongs at the cluster scope. It results in resource handlers installed in every namespace, and the same name in two namespaces collides (namespace is ignored when determining group/kind).

This PR moves ThirdPartyResource to be a root scope object. ThirdPartyResourceData (an actual instance of that type) is still namespace-scoped.

Someone previously using ThirdPartyResource definitions in alpha should move them from namespace to root scope.

Additionally, pre-1.3 clients that expect to read/write ThirdPartyResource at a namespace scope will not be compatible with 1.3+ servers, and 1.3+ clients that expect to read/write ThirdPartyResource at a root scope will not be compatible with pre-1.3 servers.

@thockin
Copy link
Member

thockin commented Apr 30, 2016

Why? isn't this a pretty breaking change?

@liggitt
Copy link
Member Author

liggitt commented Apr 30, 2016

because it's broken as a namespace scoped object... it installs resource handlers in every namespace, and the same name in two namespaces collides (namespace is ignored when determining group/kind). see #22768 (comment)

@liggitt
Copy link
Member Author

liggitt commented Apr 30, 2016

thirdpartyresourcedata being namespaced makes sense, but the installation of new groups/versions/kinds under namespaces doesn't

@liggitt
Copy link
Member Author

liggitt commented Apr 30, 2016

@k8s-github-robot k8s-github-robot added kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API size/L Denotes a PR that changes 100-499 lines, ignoring generated files. release-note-label-needed labels Apr 30, 2016
@liggitt liggitt changed the title WIP - Make ThirdPartyResource a root scoped object Make ThirdPartyResource a root scoped object Apr 30, 2016
@thockin
Copy link
Member

thockin commented Apr 30, 2016

Ahh, I was reading that as "all third-party resources must be root-scoped.

On Fri, Apr 29, 2016 at 9:49 PM, Jordan Liggitt notifications@github.com
wrote:

cc @brendandburns https://github.com/brendandburns @bgrant0607
https://github.com/bgrant0607 @deads2k https://github.com/deads2k


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#25006 (comment)

@liggitt liggitt force-pushed the third-party-root-scope branch from 6c65e8e to e41d504 Compare April 30, 2016 05:09
@k8s-github-robot k8s-github-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 30, 2016
@liggitt liggitt added release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. and removed release-note-label-needed labels Apr 30, 2016
@bgrant0607
Copy link
Member

Makes sense to me

@bgrant0607
Copy link
Member

Cc @caesarxuchao

@lavalamp lavalamp assigned caesarxuchao and unassigned lavalamp May 2, 2016
@caesarxuchao caesarxuchao added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 4, 2016
@caesarxuchao
Copy link
Member

Thanks. LGTM.

@liggitt liggitt added this to the v1.3 milestone May 6, 2016
@liggitt liggitt added the priority/backlog Higher priority than priority/awaiting-more-evidence. label May 6, 2016
@k8s-bot
Copy link

k8s-bot commented May 7, 2016

GCE e2e build/test passed for commit e41d504.

@k8s-github-robot
Copy link

@k8s-bot test this [submit-queue is verifying that this PR is safe to merge]

@k8s-bot
Copy link

k8s-bot commented May 7, 2016

GCE e2e build/test passed for commit e41d504.

@k8s-github-robot
Copy link

Automatic merge from submit-queue

@k8s-github-robot k8s-github-robot merged commit 3ee833c into kubernetes:master May 7, 2016
@liggitt liggitt deleted the third-party-root-scope branch May 10, 2016 16:46
@erictune
Copy link
Member

erictune commented Jul 2, 2016

@liggitt Does this PR require action by the user when upgrading from 1.2.x to 1.3.0? (Think about non-developer users.) If so, please edit your first comment to have a release-note block, like in #28132. If it is just an optional feature, please change the label to just release-note. If it is not a complete feature by itself, then apply "release-note-none" label instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API lgtm "Looks good to me", indicates that a PR is ready to be merged. priority/backlog Higher priority than priority/awaiting-more-evidence. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants