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

Implement v1beta3 api #1519

Closed
smarterclayton opened this Issue Sep 30, 2014 · 17 comments

Comments

@smarterclayton
Copy link
Contributor

smarterclayton commented Sep 30, 2014

With #1225 merged, we can now move forward to v1beta3

  • Implement pod templates #170 in (#2195, #5012) -- not blocking v1beta3
  • Missed spec issues
    • Integrate resource limits #168 into v1beta3
  • Solve merging a v1beta1 PUT on an existing v1beta3 object (should new fields get cleared?)
  • Add namespace to path in v1beta3 (#2813)
  • Refactor internal API to v1beta3 objects (#1600)
  • Implement conversions between v1beta3 -> older (#1600)
  • Version field watch selectors (#2518)
  • Expose v1beta3 as an API endpoint (#2878)
  • Rename methods on client object from *Minions to *Nodes (#2788)
  • Determine how to map the resource path "nodes" to "minions" when talking to older APIs in the client (#2788)
  • Convert ContainerManifest (internal) to BoundPods (kubelet) #1662
    • Will be a breaking change for consumers and require recreating your cluster.
  • Map ContainerManifest (internal) to BoundPods (external API) (in #846)
    • Probably need to keep ContainerManifest internal for storing as v1beta3 (#1600)
  • Determine whether we want to support live migrations from v1beta1 storage to v1beta3 storage
    • etcd key identifying storage version, wrapper around API that stops accepting new requests when this value is going to change?
  • test object roundtripping with lost data (vs round trips that preserve data v1beta(1|2) (#1600)
  • resolve #294
  • Doc overhaul
  • Fix validation of Name for ReplicationController (#3646)

Others?

@bgrant0607

This comment has been minimized.

Copy link
Member

bgrant0607 commented Oct 1, 2014

We'll need a massive API doc overhaul, so I think we should resolve #1052, as well as the more specific API doc issues (#1501, #1110, #705).

@bgrant0607

This comment has been minimized.

Copy link
Member

bgrant0607 commented Oct 2, 2014

Another oversight: type Container should be ContainerSpec.

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 2, 2014

Captured both in the checklist.

@bgrant0607 bgrant0607 added this to the v0.8 milestone Oct 2, 2014

@bgrant0607

This comment has been minimized.

Copy link
Member

bgrant0607 commented Oct 4, 2014

Added this and related issues to milestone v0.8.

Related discussion thread: https://groups.google.com/forum/#!topic/kubernetes-dev/Y3p_fPOajWg

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 4, 2014

Should have a first chunk ready for Monday of the internal update and tests.

On Oct 4, 2014, at 5:17 PM, bgrant0607 notifications@github.com wrote:

Added this and related issues to milestone v0.8.

Related discussion thread: https://groups.google.com/forum/#!topic/kubernetes-dev/Y3p_fPOajWg


Reply to this email directly or view it on GitHub.

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 6, 2014

As a consequence of this change to simplify implementation, we may want to add the attributes UID and Annotations to JSONBase to allow round tripping those to the DB on older storage versions.

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 6, 2014

The serialization round tripping testing code is woefully unprepared to handle scenarios where data that is fuzzed will be lost. In general to have certainty of when / where data is lost, we need to test that the loss is detected (internal -> lossy external -> internal loses data, then clear certain fields and try again and it should not lose data).

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 6, 2014

@lavalamp fyi will add a predesign write up here on how to bulk convert objects across 1/2 - 3 in a not insane way. Will want your feedback

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 6, 2014

Changes starting to occur in #1600, still very rough.

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Oct 7, 2014

Things I'm going to split off or farm off beforehand:

  • Global rename of JSONBase -> TypeMeta
  • Change the internal type for resource version to string #1643
  • Make the Kubelet use BoundPod directly (converts ContainerManifestList to BoundPods) #1662
  • Migrate my changes for MetaFactory to replace MetaInsertionFactory (reflection based version,kind lookup vs conversion based) #1699
  • Some cleanup in conversion and runtime (splitting files up, using common code, moving ObjectDiff) #1699
  • Handling M:1 encoding and decoding (allow both MinionList and NodeList to target a specific encoding internally) by changing the typeToKind[i] item to be a list and use the first one registered as the preferred kind. #1692
  • Move JSONBase abstraction into pkg/api/meta, and add generic interfaces for the things that pkg/cache/reflector needs that will survive the migration. We need to return an ID that is across namespaces anyway.

That'll reduce the total scope of the internal migration.

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Jan 8, 2015

v1beta3 is now available in master by enabling --runtime_config=api/v1beta3 on the apiserver command line (or is on by default in the test environments). The remaining items will be covered here.

@bgrant0607

This comment has been minimized.

Copy link
Member

bgrant0607 commented Jan 20, 2015

I'm willing to punt on s/Container/ContainerSpec/g. None of our subobjects (Volume, VolumeSource, ...) adhere to this convention. The status objects do/will. Maybe that's good enough.

@bgrant0607

This comment has been minimized.

Copy link
Member

bgrant0607 commented Jan 20, 2015

Re.: Solve merging a v1beta1 PUT on an existing v1beta3 object

I'm willing to call this user error for now. I'd like to get rid of v1beta1.

Longer term, I like the idea of storing fields that are unrepresented in a particular API version in annotations.

@smarterclayton

This comment has been minimized.

Copy link
Contributor Author

smarterclayton commented Jan 20, 2015

Fine with me.

----- Original Message -----

Re.: Solve merging a v1beta1 PUT on an existing v1beta3 object

I'm willing to call this user error for now. I'd like to get rid of v1beta1.

Longer term, I like the idea of storing fields that are unrepresented in a
particular API version in annotations.


Reply to this email directly or view it on GitHub:
#1519 (comment)

@goltermann goltermann removed this from the v0.8 milestone Feb 6, 2015

@smarterclayton smarterclayton removed this from the v0.8 milestone Feb 6, 2015

@bgrant0607 bgrant0607 modified the milestone: v1.0 Feb 6, 2015

@bgrant0607 bgrant0607 referenced this issue Mar 14, 2015

Closed

Flip to v1beta3 #5475

15 of 16 tasks complete
@bgrant0607

This comment has been minimized.

Copy link
Member

bgrant0607 commented Apr 10, 2015

I'm going to close this. v1beta3 has been implemented. Pod templates are not blocking. More specific issues have been filed for the cleanup, tracked by #5475 and #6584.

@bgrant0607 bgrant0607 closed this Apr 10, 2015

@bgrant0607

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.