-
Notifications
You must be signed in to change notification settings - Fork 4k
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
Introduce a formal policy for maintaining cloudproviders #5198
Conversation
/hold sig-leads for approval: @gjtempleton @mwielgus cc: @ericrrath @jackfrancis @piepmatz @gajicdev @7fELF @ringtail @jtherin @elmiko @Andrius521 @nilo19 @ellistarn @gjtempleton @davidjumani @birdiesanders @DMajrekar @kevin-wangzefeng @dbonfigli @ddymko @thirdeyenick @displague @andrewsykim @zalmarge @schegi @enxebre @d-mo @alphajc @pawelkuc @RealHarshThakur @towca @jaypipes @drmorr0 @avorima @detiber @Sh4d1 @feiskyer @vishalanarase @PhilippeChepy @Jeffwan @OriHoch @louisportay @hardikdr @jlamillan @hello2mao @pierre-emmanuelJ @x13n @mrajashree @tghartland @remyleone @shysank @RainbowMango @LKaemmerling @ctrox @cprivitere @4ND3R50N @v-pap @ArturasRa @deitch @arunmk @aleksandra-malinowska @MorrisLaw @marwanad |
1124070
to
7ac5564
Compare
At least the github UI doesn't seem to be rendering some of the logins in the comment above correctly (is there maximum logins per line limit?) and I'm not sure if the notifications went out. Just in case: cc: @RainbowMango @LKaemmerling @ctrox @cprivitere @4ND3R50N @v-pap @ArturasRa @deitch @arunmk @aleksandra-malinowska @MorrisLaw @marwanad |
I don't think I got the alert for this, so thanks for @ cc'ing after. This all looks good, glad to see it somewhat formalized. The out-of-tree provider appears to be almost an after-thought, or a fallback. Is there any desire to move it entirely to out-of-tree, the same way, e.g. CCM is done? |
Thanks for confirming my suspicions on notification not working @deitch, I'll make sure to split it into multiple lines next time. Re: external provider:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall looks good to me, i have a couple comments but no major changes.
by kubernetes/kubernetes repository and the same version of the library is | ||
used by CA and Kubernetes. This requirement is mainly driven by | ||
the problems with version conflicts in transitive dependencies we've | ||
experienced in the past. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it worth mentioning that cloudproviders are welcome to carry dependencies in their directory if they need?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
## Cloudprovider maintenance requirements | ||
|
||
In order to allow code changes to Cluster Autoscaler that would require | ||
non-trivial changes in cloudproviders this policy introduces _Cloudprovider | ||
maintenance request_ (CMR) mechanism. | ||
|
||
* CMR will be issued via a github issue tagging all | ||
cloudprovider owners and describing the problem being solved and the changes | ||
requested. | ||
* CMR will clearly state the minor version in which the changes are expected | ||
(ex. 1.26). | ||
* CMR will need to be discussed on sig-autoscaling meeting and approved by | ||
sig leads before being issued. It will also be announced on sig-autoscaling | ||
slack channel and highlited in sig-autoscaling meeting notes. | ||
* A CMR may be issued no later then [enhancements | ||
freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) | ||
of a given Kubernetes minor version. | ||
|
||
Cloudprovider owners will be required to address CMR or request an exception via | ||
the CMR github issue. A failure to take any action will result in cloudprovider | ||
being considered abandoned and marking it as deprecated as described below. | ||
|
||
### Empty maintenance request | ||
|
||
If no CMRs are issued in a given minor release, core maintainers will issue an | ||
_empty CMR_. The purpose of an empty CMR is to verify that cloudprovider owners | ||
are still actively maintaining their integration. The only action required for | ||
an empty CMR is replying on the github issue. Only one owner from each | ||
cloudprovider needs to reply on the issue. | ||
|
||
Empty CMR follows the same rules as any other CMR. In particular it needs to be | ||
issued by enhancements freeze. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think it would be nice to bring this part on a separate review since it proposes a new process.
### Cloudprovider deprecation and deletion | ||
|
||
If cloudprovider owners fail to take actions described above, the particular | ||
integration will be marked as deprecated in the next CA minor release. A | ||
deprecated cloudprovider will be completely removed after 1 year as per | ||
[Kubernetes deprecation | ||
policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-feature-or-behavior). | ||
|
||
A deprecated cloudprovider may become maintained again if the owners become | ||
active again or new owners step up. In order to regain maintained status any | ||
outstanding CMRs will need to be addressed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i might bring this on a separate review as well, but i think it's so useful to have that we should include in the primary pr.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've left a version of it, but moved part specific to CMR to a separate PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @MaciekPytel for this. I know I haven't been able to attend many SIG meetings this year and that the AWS cloud provider has a number of open issues/PRs on it. Will try to do better at filling these gaps.
Proposal looks reasonable and fair to me.
Cloudprovider owners will be required to address CMR or request an exception via | ||
the CMR github issue. A failure to take any action will result in cloudprovider | ||
being considered abandoned and marking it as deprecated as described below. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 seems fair to me.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: jaypipes, MaciekPytel 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 |
built in. | ||
|
||
An external cloudprovider implementation doesn't live in this repository and is | ||
not a part of CA image. As such it is also not a subject to this policy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo. Should read:
As such it is also not subject to this policy.
not
As such it is also not a subject to this policy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
Could we make it a part of the policy to have non-empty approvers AND reviewers sections? I just sent out #5287 to update one of the OWNERS files, but if we require it, it should be here. |
The policy largely codifies what we've already been doing for years (including the requirements we've already imposed on new providers).
7ac5564
to
5238cbe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
thanks @MaciekPytel
Can we cancel the hold on this one now? |
/lgtm |
/hold cancel This has been discussed multiple times on sig meeting now and it's been lgtm-ed by sig lead, so I think it's fine to let it merge |
This is an initial proposal for a policy on cloudprovider maintenance discussed in a recent sig-meeting.
The policy largely codifies what we've already been doing for years (including the requirements we've already imposed on new providers). It also introduces a new 'cloudprovider maintenance request' mechanism, following the general idea previously discussed in the sig-meeting.
Which component this PR applies to?
cluster-autoscaler
What type of PR is this?
/kind documentation
Does this PR introduce a user-facing change?
This policy is only relevant for CA / cloudprovider developers and not its users.