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

docs: unmanaged gateway development guide #925

Conversation

shaneutt
Copy link
Member

@shaneutt shaneutt commented Nov 4, 2021

What type of PR is this?

/kind documentation

What this PR does / why we need it:

In a previous discussion as well as a document shared with contributors we pondered and talked about how we might handle "unmanaged gateways", which are Gateway resources that would reference an existing server that would otherwise not be provisioned by or have its lifecycle managed by the Gateway controller implementation itself. Several implementors noted that supporting an unmanaged gateway option was something they would
need ultimately, but we decided it wasn't something that would be easy (or even ultimately correct) to express via the Gateway specification. Given that context and during a community sync it was suggested to start a guide which would provide high level, and example style ideas about how to implement this, if nothing else just so we had some guidance for future implementors, this patch adds such a guide.

Which issue(s) this PR fixes:

Fixes #892

Does this PR introduce a user-facing change?:

NONE

Additional Notes:

I only ended up covering the topics of:

  • nomenclature: naming and describing "unmanaged" and "managed" gateways accordingly
  • configuration: how one might actually differentiate between unmanaged and managed gateways
  • controller strategy: a high level strategy for implementing unmanaged gateway reconcilation logic using reference Services

I know this is very limited at this point, but I wanted to start small to see how this was received. I would invite others who've solved similar problems to continue growing the guide according to their experience.

@k8s-ci-robot k8s-ci-robot added kind/documentation Categorizes issue or PR as related to documentation. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 4, 2021
@k8s-ci-robot k8s-ci-robot requested review from bowei and thockin November 4, 2021 16:25
Copy link
Contributor

@howardjohn howardjohn left a comment

Choose a reason for hiding this comment

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

Here is our approach: https://github.com/istio/istio/pull/35876/files

Which I feel like can be generally applicable. I am not a huge fan of requiring an annotation when we already have and addresses field that can serve the same purpose (and effectively does for cloud LBs, if we consider 'managed' == provision a new IP/LB and 'unmanaged' == use a preprovisioned IP/LB).

site-src/v1alpha2/guides/unmanaged-gateway-development.md Outdated Show resolved Hide resolved
@shaneutt shaneutt closed this Nov 4, 2021
@shaneutt shaneutt force-pushed the shaneutt/unmanaged-gateway-development-guide branch from f5ccc60 to d0be6fa Compare November 4, 2021 17:27
@shaneutt shaneutt deleted the shaneutt/unmanaged-gateway-development-guide branch November 4, 2021 17:27
@k8s-ci-robot k8s-ci-robot added size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 4, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: shaneutt

The full list of commands accepted by this bot can be found 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

@shaneutt
Copy link
Member Author

shaneutt commented Nov 4, 2021

Given initial feedback I've decided to hold off on this for the moment. I'll take some time to consider other options.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/documentation Categorizes issue or PR as related to documentation. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

docs: Gateway implementation guide for managed vs. unmanaged gateway lifecycles and intra vs extra cluster
3 participants