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

netstandard2 extendable lib model, basic rest #793

Merged
merged 20 commits into from
Mar 23, 2022

Conversation

tg123
Copy link
Member

@tg123 tg123 commented Mar 3, 2022

The problem

  • old runtime support
    the kubernetes .net sdk is dropping support of old .net runtimes because of some soft-required features missing. for exmaple, websocket apis are missing in netstandard2 and certificates loading api are only in net5 or later. Framework no longer supported #743

    however, it is difficult to upgrade .net runtime for many tricky reasons. it is time to welcome those users in future sdk versions.

  • generated model library
    feature request from many internal ms team or external users. mostly because a slim client is enough for their case and the fancy features introduces many unwanted dependencies.

The proposal

the idea is to break the sdk into multiple smaller library:

  • KubernetesClient.Models (netstandard2): generated models
  • KubernetesClient.Models.Versioning (netstandard2): generated models version converter with injectable
  • KubernetesClient.Basic (netstandard2): generated rest stub, this is an abstract class, http call related must be implemented in runtime specific libraries.
  • KubernetesClient (net6+): full featured package for most users
  • KubernetesClient.Net48 (net48): to support LTS windows server users until net48 eol
  • KubernetesClient.Auth.XXX (netstandard2, net6?): cloud specific token generator
  • KubernetesClient.Kubectl (net6): kubectl like api
  • ....

bold items are current in this PR, others are planned only
users can build highly customized library with basic generated model and vanillarest libraries.

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Mar 3, 2022
@k8s-ci-robot k8s-ci-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Mar 3, 2022
@tg123
Copy link
Member Author

tg123 commented Mar 3, 2022

#743
#448

@tg123 tg123 changed the title netstandard2 lib model netstandard2 extendable lib model, vanillarest Mar 4, 2022
@tg123 tg123 marked this pull request as ready for review March 18, 2022 18:05
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 18, 2022
@tg123 tg123 changed the title netstandard2 extendable lib model, vanillarest netstandard2 extendable lib model, basic rest Mar 20, 2022
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 22, 2022
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 22, 2022
@brendandburns
Copy link
Contributor

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 23, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: brendandburns, tg123

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 23, 2022
@k8s-ci-robot k8s-ci-robot merged commit 8e86191 into kubernetes-client:master Mar 23, 2022
@tg123 tg123 deleted the model branch June 30, 2022 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants