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

Add table of networking providers and their status #9140

Merged
merged 5 commits into from
Jun 3, 2020

Conversation

olemarkus
Copy link
Member

As discussed on slack, we should have a table here to guide users at what kind of support one can expect.

There is a quite a bit to debate here.
The question marks is where I believe they have this status, but no idea since when. Predates the release logs so we can just default to 1.6 here if no one minds.

Romana is dead and I think this one is a no-brainer. Starting a new cluster with Romana hasn't worked since the introduction of etcd-manager.
Classic doesn't work. If you try to create the cluster, you get a validation error about classic not being a valid provider.
Kopeio is undocumented and not frequently modify. We could keep it at experimental. It seems to work when I install it.
Flannel has had its issues lately, but I am not too familiar with the status. My guess is experimental.

@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. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels May 18, 2020
@joshbranham
Copy link
Contributor

We have been using Canal since 1.11 I believe without issues (outside of the calico CRD migration downtime, where we just built new clusters). What is the criteria for stable, outside of a hunch based on users anecdotes and GH issues etc?

Overall this looks good, I think its helpful to steer people towards the happy path configurations.

@olemarkus
Copy link
Member Author

olemarkus commented May 18, 2020

We have been using Canal since 1.11 I believe without issues (outside of the calico CRD migration downtime, where we just built new clusters). What is the criteria for stable, outside of a hunch based on users anecdotes and GH issues etc?

Canal should actually have been 1.11 because of the v3 change. It is maybe somewhat arbitrary, but it is sufficiently far into the past too.

Overall this looks good, I think its helpful to steer people towards the happy path configurations.

Thanks

@johngmyers
Copy link
Member

/retest

Copy link
Member

@johngmyers johngmyers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see either of the other deprecations/removals in the release notes or code. I don't object to deprecating them, but they do need to be announced and implemented.

Would we not remove network providers based on Kubernetes version? The table suggests it would be by kops version.

Also is Weave considered stable? That hasn't been my experience.

| Calico | 1.6 | 1.11 | - | - |
| Canal | 1.12 | - | - | - |
| Cilium | 1.9 | 1.15 | - | - |
| Classic | ? | ? | 1.17 | 1.18 |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Classic has been unsupported as of Kubernetes 1.4.0

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Classic should simply be omitted from the table.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Classic is mentioned in the docs, API, and kops help, so we need to handle that as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed it from this doc, at least.


| Network provider | Experimental | Stable | Deprecated | Removed |
| ------------ | -----------: | -----: | ---------: | ------: |
| AWS VPC | ? | ? | - | - |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.9

| Canal | 1.12 | - | - | - |
| Cilium | 1.9 | 1.15 | - | - |
| Classic | ? | ? | 1.17 | 1.18 |
| Flannel udp | ? | - | - | - |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.5.2

| Cilium | 1.9 | 1.15 | - | - |
| Classic | ? | ? | 1.17 | 1.18 |
| Flannel udp | ? | - | - | - |
| Flannel vxlan | ? | - | - | - |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.8.0

| Classic | ? | ? | 1.17 | 1.18 |
| Flannel udp | ? | - | - | - |
| Flannel vxlan | ? | - | - | - |
| Kopeio | ? | - | 1.17 | 1.18 |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.5.0

| Flannel vxlan | ? | - | - | - |
| Kopeio | ? | - | 1.17 | 1.18 |
| Kube-router | 1.6.2 | - | - | - |
| Kubenet | ? | ? | - | - |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.5.0

| Kube-router | 1.6.2 | - | - | - |
| Kubenet | ? | ? | - | - |
| Lyft VPC | 1.11 | - | - | - |
| Romana | ? | - | 1.17 | 1.18 |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.8.0

| Kubenet | ? | ? | - | - |
| Lyft VPC | 1.11 | - | - | - |
| Romana | ? | - | 1.17 | 1.18 |
| Weave | ? | ? | - | - |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in kops 1.5.0

@johngmyers
Copy link
Member

Add GCE, which was added in 1.15, to the table?

@olemarkus
Copy link
Member Author

I don't see either of the other deprecations/removals in the release notes or code. I don't object to deprecating them, but they do need to be announced and implemented.

Let's agree on the status first. Then I can implement deprecations in code/docs shortly after

Would we not remove network providers based on Kubernetes version? The table suggests it would be by kops version.

Both images and cloud providers use kops version for lifecycle milestones.To me it makes sense to stick with that.

Also is Weave considered stable? That hasn't been my experience.

I am happy to make it experimental.

Thanks a lot for digging up the versions above. I never expected anyone to do that :)

@olemarkus
Copy link
Member Author

Add GCE, which was added in 1.15, to the table?

Thanks. Will add that as well.

@johngmyers
Copy link
Member

I'm more inclined to merge the deprecations/removals before merging the addition of a table. I've been having trouble getting the already agreed upon 1.17 deprecations merged.

Addition, stability, and deprecation are inherently by kops version. It does not make sense to conflate the choice of removal edge with those. Have we removed a cloud provider?

Support for the Classic provider was removed based on Kubernetes version, so there's that precedent.

Removal by kops version makes more sense when the thing being removed is already dead, as is the case for the deprecated images. Removal by Kubernetes version allows the removal to start earlier.

Romana appears to be already dead, so appropriate to be removed by kops version. I presume Kopeio is as well?

@olemarkus
Copy link
Member Author

I'm more inclined to merge the deprecations/removals before merging the addition of a table. I've been having trouble getting the already agreed upon 1.17 deprecations merged.

Absolutely. I am not removing the WIP label before everything is in order. It is just easier to discuss around this table than around the code that would implement this.

Addition, stability, and deprecation are inherently by kops version. It does not make sense to conflate the choice of removal edge with those. Have we removed a cloud provider?

Not yet. But I would like to see vmware removed. It looks like a vendor dump a couple of years ago and nothing has happened since. So it is a matter of time.

Support for the Classic provider was removed based on Kubernetes version, so there's that precedent.

Removal by kops version makes more sense when the thing being removed is already dead, as is the case for the deprecated images. Removal by Kubernetes version allows the removal to start earlier.

Romana appears to be already dead, so appropriate to be removed by kops version. I presume Kopeio is as well?

The ones I marked as both removed and deprecated are projects that look dead to me. So I think we can just process these asap so that users are aware.

If we decide to drop something like weave, we need a longer process and probably a migration path. I think that would be a different deprecation process entirely.

@olemarkus
Copy link
Member Author

On classic, I will remove it from the table and add a new PR removing this from docs etc.

@johngmyers
Copy link
Member

/retest

1 similar comment
@johngmyers
Copy link
Member

/retest

@olemarkus olemarkus mentioned this pull request May 24, 2020
@olemarkus
Copy link
Member Author

Not much feedback here so I assume we are good. I will bump the deprecation versions by one and add some warnings.

@johngmyers
Copy link
Member

1.17 shipped without deprecating either Romana or Kopeio. The earliest we could deprecate would be 1.18. We should commit a deprecation announcement to the 1.18 release notes, possibly through a separate PR.

Kopeio has gotten commits this year, so it's not completely dead.

@olemarkus
Copy link
Member Author

Yep. What I meant with bumping deprecation versions was to move 1.17 -> 1.18. Can leave kopio as experimental too. Better to be conservative here.

@olemarkus olemarkus force-pushed the docs-networking-support branch from 3f54dd8 to 1f11cee Compare June 3, 2020 05:42
@olemarkus olemarkus changed the title WIP: Add table of networking providers and their status Add table of networking providers and their status Jun 3, 2020
@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 Jun 3, 2020
@olemarkus
Copy link
Member Author

Will remove Romana from master in another PR shortly

@k8s-ci-robot k8s-ci-robot added area/api size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jun 3, 2020
@olemarkus
Copy link
Member Author

/assign @rifelpet

@johngmyers
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 3, 2020
@rifelpet
Copy link
Member

rifelpet commented Jun 3, 2020

/approve

We've been using the AWS VPC CNI provider since 1.11 without any issue but the criteria for "stable" may be vague, so we could address that table cell in another PR 👍

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: olemarkus, rifelpet

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 Jun 3, 2020
@k8s-ci-robot k8s-ci-robot merged commit c78b24f into kubernetes:master Jun 3, 2020
@k8s-ci-robot k8s-ci-robot added this to the v1.18 milestone Jun 3, 2020
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. area/api area/documentation 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/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants