opened
caesarxuchao
username_0
Breaking #12755 into smaller pieces. This is the first PR, it includes:

1. 26a1992: enforces the URL exposed by apiserver to be in the form of prefix/group/version/...
  * for api/v1, we set the APIPrefix="api", group="", version="v1", so the URL is still /api/v1
  * for experimental api, we set the APIPrefix="api" (the exact name is open to discussion), group="experimental", version="v1alpha1", so the URL is /api/experimental/v1alpha1. And all future API groups will have the same APIPrefix.
  * for openshift and other third party API, we can either make prefix="osapi", group="", or prefix="", group="osapi", so the URL will not be changed.

2. 45f3232: stop apiserver from encoding api.Status to a specific version unless the version is v1.

3. 4e4dc89: let the existing two experimental objects use experimental storage which uses the v1alpha1 codec. This maybe needed to pass tests.

There will be subsequent PR depending on this one:

1. factoring out default version, oldest version, storage version, etc. https://github.com/kubernetes/kubernetes/pull/12755#discussion_r37247918

2. add KubeAPIPrefix https://github.com/kubernetes/kubernetes/pull/12755#discussion_r37251228

3. move api.Status to unversioned https://github.com/kubernetes/kubernetes/pull/12755#discussion_r37251228

4. move /expapi to /api/experimental https://github.com/kubernetes/kubernetes/pull/12755#discussion_r37251963

5. ease our testing for multiple groups/versions
https://github.com/kubernetes/kubernetes/pull/12755#discussion_r37329030

@uluyol @username_2 @username_3 @krousey @username_1 @derekwaynecarr
add more supports for multiple groups; change the version of experimental api v1alpha1
issue
created
smarterclayton
username_1
Can we summarize the current status of the proposal into a proposal document or design (if one doesn't exist)?  I have a lot of concerns about this but I'm finding I can't keep up with the pace of the design.  I think this is a fundamental part of the core product we're changing, so if anything deserves a proposal it's this.  I'd also like to offer my feedback on the pieces that are important to us (as an external API group that has different needs than expapi) and I'm worried about spreading around these pulls.
comment
created
smarterclayton
username_1
@username_3 re my comment about this needing a proposal
comment
created
caesarxuchao
username_0
@username_1, I will write one.
comment
created
caesarxuchao
username_0
cc @lavalamp, this is the first step of #12591.
comment
created
caesarxuchao
username_0
@username_2, you can ignore the second commit "don't encode api.Status to a version if the version is not v1", because we changed our plan for it.
comment
created
nikhiljindal
username_2
I just glanced over the later part of PR as its a big one.
I have added some comments, which should give you enough to work on for now.
comment
created
caesarxuchao
username_0
#12837 enables validate by default and it reveals the problem that validation doesn't work across groups of different versions. I'm fixing the problem.
comment
created
caesarxuchao
username_0
client.ServerAPIVersions() needs to be fixed. Currently it reports:
Server does not support API version 'experimental/v1alpha1'. Falling back to 'v1'.
comment
created
nikhiljindal
username_2
Is it possible to take the test changes out of this PR?
comment
created
caesarxuchao
username_0
Unless we have a way to disable the tests related to experimental objects, they will fail without the changes to the tests.
comment
created
bgrant0607
username_3
Is this PR still active?
comment
created
caesarxuchao
username_0
No. Thanks for the reminding.

Superseded by #14156, #13833, and #13581 etc.
comment