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

"v2" API (API/client redesign umbrella issue) #8190

Closed
bgrant0607 opened this issue May 13, 2015 · 86 comments
Closed

"v2" API (API/client redesign umbrella issue) #8190

bgrant0607 opened this issue May 13, 2015 · 86 comments
Labels
area/api Indicates an issue on api area. area/extensibility area/kubectl kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture.

Comments

@bgrant0607
Copy link
Member

bgrant0607 commented May 13, 2015

It's clear we're not going to be able to make all the changes we'd like in the v1 API (#7018), so this issue is to track/brainstorm things we might want in the v2 API.

Last updated 6/19/2015

API/client overhaul:

API feature changes:

@bgrant0607 bgrant0607 added area/api Indicates an issue on api area. priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. area/extensibility labels May 13, 2015
@derekwaynecarr
Copy link
Member

Mechanism to set initializers / places for hooks prior to scheduling #3585

@lavalamp
Copy link
Member

Replace ServiceAccountSecret secret type with a cluster account secret type. Secret types should be named for their contents, not their sources, IMO. (source can live in an annotation or something)

@bgrant0607
Copy link
Member Author

@lavalamp Is there a reason we can't fix ServiceAccountSecret now? It was just merged recently.

@pmorie
Copy link
Member

pmorie commented May 14, 2015

Agree, why not just fix it now?

On Thu, May 14, 2015 at 1:25 AM, Brian Grant notifications@github.com
wrote:

@lavalamp https://github.com/lavalamp Is there a reason we can't fix
ServiceAccountSecret now? It was just merged recently.


Reply to this email directly or view it on GitHub
#8190 (comment)
.

@davidopp
Copy link
Member

/subscribe

@lavalamp
Copy link
Member

@bgrant0607 I'm OK with changing it now, but lack cycles to do it myself.

@lavalamp
Copy link
Member

@liggitt... wrong issue? or maybe you can explain in more detail?

@liggitt
Copy link
Member

liggitt commented May 14, 2015

@lavalamp my bad, I misread "cluster account secret type" as "cluster-scoped"

@bgrant0607
Copy link
Member Author

Issue filed for ServiceAccount secrets: #8271.

@bgrant0607
Copy link
Member Author

Punted from v1:

@bgrant0607
Copy link
Member Author

Other use cases for subobject plugins:

  • Secret providers, such as dockercfg
  • Cloud-provider-specific load-balancing info communicated from service controller to kube-proxy (or plugin)

@bgrant0607
Copy link
Member Author

LocalReference: #8503

@eparis
Copy link
Contributor

eparis commented May 20, 2015

/subscribe @eparis

@erictune
Copy link
Member

@bgrant0607 I assume you are just looking to collect breaking changes here, and not few features?

@erictune
Copy link
Member

Suggest we change pointer-to-scalar to pointer-to-struct everywhere, for possible future compat with proto.

@bgrant0607
Copy link
Member Author

@erictune Yes, you are correct.

@bgrant0607
Copy link
Member Author

Generalized image representation: #8702

@bgrant0607
Copy link
Member Author

In addition to eliminating volume sources obsoleted by persistent volume claims (gcePersistentDisk, awsElasticBlockStore, nfs, iscsi, glusterfs, rbd), I'd also like to eliminate gitRepo in favor of a generic container volume mechanism (#831).

@pmorie
Copy link
Member

pmorie commented May 27, 2015

+100 to container volume
On Wed, May 27, 2015 at 3:20 AM Brian Grant notifications@github.com
wrote:

In addition to eliminating volume sources obsoleted by persistent volume
claims (gcePersistentDisk, awsElasticBlockStore, nfs, iscsi, glusterfs,
rbd), I'd also like to eliminate gitRepo in favor of a generic container
volume mechanism (#831
#831).


Reply to this email directly or view it on GitHub
#8190 (comment)
.

@lavalamp
Copy link
Member

I'd also like to eliminate gitRepo in favor of a generic container volume mechanism

+1

@lavalamp
Copy link
Member

@bgrant0607 I have been thinking for a while now that it's bad that we have gcePersistentDisk and awsElasticBlockStore as volume types that pods need to specify. It seems to me that if we want true workload mobility, we need to abstract this into a separate type, so that you can use the same pod descriptions on any cloud provider. IOW pods shouldn't depend on on the implementation of persistence, they should just request a persistent volume, and (cluster admin via config? cloud provider?) determines the implementation that pods get.

@bgrant0607
Copy link
Member Author

@lavalamp That's what persistentVolumeClaim is for. We just haven't removed the old fields yet.

@thockin
Copy link
Member

thockin commented Dec 28, 2017

Maybe it's just me, but there's a low-level annoyance I experience every time I try to look at API files - we document our API fields in terms of javascript-style names (leading lower-case) but Go demands we use leading upper-case. This makes for inconsistent comments and docs. Worse, Go will ignore case for JSON keys if it needs to, so there are probably lurking issues.

So my proposal is that if/when we start the v2 process, we consider explicitly using Go-style field names (leading upper-case). Other APIs (e.g. Docker) do it, and it's not so bad.

As a nice side-effect, go vet will stop complaining at us for a bunch of things.

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 28, 2018
@bgrant0607 bgrant0607 added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Mar 29, 2018
@kubernetes kubernetes deleted a comment from fejta-bot Mar 30, 2018
@thockin
Copy link
Member

thockin commented Jul 1, 2019

Adding here so we don't forget (I hope).

Node.status.addresses uses 'type' as merge key but that is not sufficiently unique.

#73977

@thockin
Copy link
Member

thockin commented Aug 12, 2019

#81301

Probe.SuccessThreshold validation is contextual and ugly. "must be 1" in an API field is silly.

@bgrant0607
Copy link
Member Author

Associative lists with non-standard keys (and even multi-field keys) were totally a mistake. We should have just used maps. Merging would have been so much simpler.

@alvaroaleman
Copy link
Member

Associative lists with non-standard keys (and even multi-field keys) were totally a mistake. We should have just used maps. Merging would have been so much simpler.

@bgrant0607 So this is not true anymore? Or is it kept as a convention, but third parties that e.G. develop CRD-based APIs should consider using maps instead?

@wojtek-t
Copy link
Member

wojtek-t commented Nov 7, 2019

As mentioned in #73527, we should use proper LabelSelector types for selector (instead of map[string]string as e.g. in Service or even string as in ListOptions) - they cost to much when being processed later many times.

@dprotaso
Copy link
Contributor

related to #92226 it'd be nice to drop service links - or make them opt-in rather than opt-out.

@bgrant0607
Copy link
Member Author

This issue should really be moved to a doc (or multiple docs, as not everything is API machinery) and updated.

@MadhavJivrajani
Copy link
Contributor

/remove-kind design
/kind feature

kind/design will soon be removed from k/k in favor of kind/feature. Relevant discussion can be found here: kubernetes/community#5641

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. and removed kind/design Categorizes issue or PR as related to design. labels Jun 29, 2021
@sftim
Copy link
Contributor

sftim commented Dec 20, 2022

Given #8190 (comment), should we close this?

@bgrant0607
Copy link
Member Author

I recommend closing. This issue is not actionable at this point.

@sftim
Copy link
Contributor

sftim commented Dec 20, 2022

/close

@k8s-ci-robot
Copy link
Contributor

@sftim: Closing this issue.

In response to this:

/close

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.

@thockin
Copy link
Member

thockin commented Dec 21, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api Indicates an issue on api area. area/extensibility area/kubectl kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/backlog Higher priority than priority/awaiting-more-evidence. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture.
Projects
None yet
Development

No branches or pull requests