Deploy GitHub Pages

This commit is contained in:
Travis Bot 2019-11-08 19:24:34 +00:00
parent bc6e898a19
commit cf75938808
56 changed files with 483 additions and 475 deletions

View file

@ -1219,8 +1219,8 @@
<a href="https://github.com/kubernetes/ingress-nginx/edit/master/docs/enhancements/20190724-only-dynamic-ssl.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="remove-static-ssl-configuration-mode">Remove static SSL configuration mode<a class="headerlink" href="#remove-static-ssl-configuration-mode" title="Permanent link">&para;</a></h1>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">&para;</a></h2>
<h1 id="remove-static-ssl-configuration-mode">Remove static SSL configuration mode<a class="headerlink" href="#remove-static-ssl-configuration-mode" title="Permanent link"></a></h1>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link"></a></h2>
<!-- toc -->
<ul>
@ -1234,30 +1234,30 @@
<li><a href="#alternatives">Alternatives</a>
<!-- /toc --></li>
</ul>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h2>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link"></a></h2>
<p>Since release <a href="https://github.com/kubernetes/ingress-nginx/releases/tag/nginx-0.19.0">0.19.0</a> is possible to configure SSL certificates without the need of NGINX reloads (thanks to lua) and after release <a href="https://github.com/kubernetes/ingress-nginx/releases/tag/nginx-0.19.0">0.24.0</a> the default enabled mode is dynamic.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link">&para;</a></h2>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link"></a></h2>
<p>The static configuration implies reloads, something that affects the majority of the users.</p>
<h3 id="goals">Goals<a class="headerlink" href="#goals" title="Permanent link">&para;</a></h3>
<h3 id="goals">Goals<a class="headerlink" href="#goals" title="Permanent link"></a></h3>
<ul>
<li>Deprecation of the flag <code class="codehilite">--enable-dynamic-certificates</code>.</li>
<li>Cleanup of the codebase.</li>
</ul>
<h3 id="non-goals">Non-Goals<a class="headerlink" href="#non-goals" title="Permanent link">&para;</a></h3>
<h3 id="non-goals">Non-Goals<a class="headerlink" href="#non-goals" title="Permanent link"></a></h3>
<ul>
<li>Features related to certificate authentication are not changed in any way.</li>
</ul>
<h2 id="proposal">Proposal<a class="headerlink" href="#proposal" title="Permanent link">&para;</a></h2>
<h2 id="proposal">Proposal<a class="headerlink" href="#proposal" title="Permanent link"></a></h2>
<ul>
<li>Remove static SSL configuration</li>
</ul>
<h3 id="implementation-detailsnotesconstraints">Implementation Details/Notes/Constraints<a class="headerlink" href="#implementation-detailsnotesconstraints" title="Permanent link">&para;</a></h3>
<h3 id="implementation-detailsnotesconstraints">Implementation Details/Notes/Constraints<a class="headerlink" href="#implementation-detailsnotesconstraints" title="Permanent link"></a></h3>
<ul>
<li>Deprecate the flag Move the directives <code class="codehilite">ssl_certificate</code> and <code class="codehilite">ssl_certificate_key</code> from each server block to the <code class="codehilite">http</code> section. These settings are required to avoid NGINX errors in the logs.</li>
<li>Remove any action of the flag <code class="codehilite">--enable-dynamic-certificates</code></li>
</ul>
<h2 id="drawbacks">Drawbacks<a class="headerlink" href="#drawbacks" title="Permanent link">&para;</a></h2>
<h2 id="alternatives">Alternatives<a class="headerlink" href="#alternatives" title="Permanent link">&para;</a></h2>
<h2 id="drawbacks">Drawbacks<a class="headerlink" href="#drawbacks" title="Permanent link"></a></h2>
<h2 id="alternatives">Alternatives<a class="headerlink" href="#alternatives" title="Permanent link"></a></h2>
<p>Keep both implementations</p>

View file

@ -1206,8 +1206,8 @@
<a href="https://github.com/kubernetes/ingress-nginx/edit/master/docs/enhancements/20190815-zone-aware-routing.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="availability-zone-aware-routing">Availability zone aware routing<a class="headerlink" href="#availability-zone-aware-routing" title="Permanent link">&para;</a></h1>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">&para;</a></h2>
<h1 id="availability-zone-aware-routing">Availability zone aware routing<a class="headerlink" href="#availability-zone-aware-routing" title="Permanent link"></a></h1>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link"></a></h2>
<!-- toc -->
<ul>
@ -1220,9 +1220,9 @@
<li><a href="#drawbacks-optional">Drawbacks [optional]</a>
<!-- /toc --></li>
</ul>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h2>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link"></a></h2>
<p>Teach ingress-nginx about availability zones where endpoints are running in. This way ingress-nginx pod will do its best to proxy to zone-local endpoint.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link">&para;</a></h2>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link"></a></h2>
<p>When users run their services across multiple availability zones they usually pay for egress traffic between zones. Providers such as GCP, Amazon EC charges money for that.
ingress-nginx when picking an endpoint to route request to does not consider whether the endpoint is in different zone or the same one. That means it's at least equally likely
that it will pick an endpoint from another zone and proxy the request to it. In this situation response from the endpoint to ingress-nginx pod is considered as
@ -1231,18 +1231,18 @@ inter zone traffic and costs money.</p>
According to https://datapath.io/resources/blog/what-are-aws-data-transfer-costs-and-how-to-minimize-them/ Amazon also charges the same amount of money sa GCP for cross zone, egress traffic.</p>
<p>This can be a lot of money depending on once's traffic. By teaching ingress-nginx about zones we can eliminate or at least decrease this cost.</p>
<p>Arguably inter-zone network latency should also be better than cross zone.</p>
<h3 id="goals">Goals<a class="headerlink" href="#goals" title="Permanent link">&para;</a></h3>
<h3 id="goals">Goals<a class="headerlink" href="#goals" title="Permanent link"></a></h3>
<ul>
<li>Given a regional cluster running ingress-nginx, ingress-nginx should do best effort to pick zone-local endpoint when proxying</li>
<li>This should not impact canary feature</li>
<li>ingress-nginx should be able to operate successfully if there's no zonal endpoints</li>
</ul>
<h3 id="non-goals">Non-Goals<a class="headerlink" href="#non-goals" title="Permanent link">&para;</a></h3>
<h3 id="non-goals">Non-Goals<a class="headerlink" href="#non-goals" title="Permanent link"></a></h3>
<ul>
<li>This feature inherently assumes that endpoints are distributed across zones in a way that they can handle all the traffic from ingress-nginx pod(s) in that zone</li>
<li>This feature will be relying on https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/#failure-domainbetakubernetesiozone, it is not this KEP's goal to support other cases</li>
</ul>
<h2 id="proposal">Proposal<a class="headerlink" href="#proposal" title="Permanent link">&para;</a></h2>
<h2 id="proposal">Proposal<a class="headerlink" href="#proposal" title="Permanent link"></a></h2>
<p>The idea here is to have controller part of ingress-nginx to (1) detect what zone its current pod is running in and (2) detect the zone for every endpoints it knows about.
After that it will post that data as part of endpoints to Lua land. Then Lua balancer when picking an endpoint will try to pick zone-local endpoint first and
if there is no zone-local endpoint then it will fallback to current behaviour.</p>
@ -1269,12 +1269,12 @@ needs to serve the request, we will first try to use zonal balancer for that bac
then we will use general balancer. In case of zonal outages we assume that readiness probe will fail and controller will
see no endpoints for the backend and therefore we will use general balancer.</p>
<p>We can enable the feature using a configmap setting. Doing it this way makes it easier to rollback in case of a problem.</p>
<h2 id="implementation-history">Implementation History<a class="headerlink" href="#implementation-history" title="Permanent link">&para;</a></h2>
<h2 id="implementation-history">Implementation History<a class="headerlink" href="#implementation-history" title="Permanent link"></a></h2>
<ul>
<li>initial version of KEP is shipped</li>
<li>proposal and implementation details is done</li>
</ul>
<h2 id="drawbacks-optional">Drawbacks [optional]<a class="headerlink" href="#drawbacks-optional" title="Permanent link">&para;</a></h2>
<h2 id="drawbacks-optional">Drawbacks [optional]<a class="headerlink" href="#drawbacks-optional" title="Permanent link"></a></h2>
<p>More load on the Kubernetes API server.</p>

View file

@ -1293,7 +1293,7 @@
<a href="https://github.com/kubernetes/ingress-nginx/edit/master/docs/enhancements/YYYYMMDD-kep-template.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="title">Title<a class="headerlink" href="#title" title="Permanent link">&para;</a></h1>
<h1 id="title">Title<a class="headerlink" href="#title" title="Permanent link"></a></h1>
<p>This is the title of the KEP.
Keep it simple and descriptive.
A good title can help communicate what the KEP is and should be considered as part of any review.</p>
@ -1320,7 +1320,7 @@ A good title can help communicate what the KEP is and should be considered as pa
<p>The <code class="codehilite">Metadata</code> section above is intended to support the creation of tooling around the KEP process.
This will be a YAML section that is fenced as a code block.
See the KEP process for details on each of these items.</p>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">&para;</a></h2>
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link"></a></h2>
<p>A table of contents is helpful for quickly jumping to sections of a KEP and for highlighting any additional information provided beyond the standard KEP template.</p>
<p>Ensure the TOC is wrapped with <code>&lt;!-- toc --&rt;&lt;!-- /toc --&rt;</code> tags, and then generate with <code class="codehilite">hack/update-toc.sh</code>.</p>
<!-- toc -->
@ -1348,42 +1348,42 @@ See the KEP process for details on each of these items.</p>
<li><a href="#alternatives-optional">Alternatives [optional]</a>
<!-- /toc --></li>
</ul>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h2>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link"></a></h2>
<p>The <code class="codehilite">Summary</code> section is incredibly important for producing high quality user-focused documentation such as release notes or a development roadmap.
It should be possible to collect this information before implementation begins in order to avoid requiring implementors to split their attention between writing release notes and implementing the feature itself.</p>
<p>A good summary is probably at least a paragraph in length.</p>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link">&para;</a></h2>
<h2 id="motivation">Motivation<a class="headerlink" href="#motivation" title="Permanent link"></a></h2>
<p>This section is for explicitly listing the motivation, goals and non-goals of this KEP.
Describe why the change is important and the benefits to users.
The motivation section can optionally provide links to <a href="https://github.com/golang/go/wiki/ExperienceReports">experience reports</a> to demonstrate the interest in a KEP within the wider Kubernetes community.</p>
<h3 id="goals">Goals<a class="headerlink" href="#goals" title="Permanent link">&para;</a></h3>
<h3 id="goals">Goals<a class="headerlink" href="#goals" title="Permanent link"></a></h3>
<p>List the specific goals of the KEP.
How will we know that this has succeeded?</p>
<h3 id="non-goals">Non-Goals<a class="headerlink" href="#non-goals" title="Permanent link">&para;</a></h3>
<h3 id="non-goals">Non-Goals<a class="headerlink" href="#non-goals" title="Permanent link"></a></h3>
<p>What is out of scope for this KEP?
Listing non-goals helps to focus discussion and make progress.</p>
<h2 id="proposal">Proposal<a class="headerlink" href="#proposal" title="Permanent link">&para;</a></h2>
<h2 id="proposal">Proposal<a class="headerlink" href="#proposal" title="Permanent link"></a></h2>
<p>This is where we get down to the nitty gritty of what the proposal actually is.</p>
<h3 id="user-stories-optional">User Stories [optional]<a class="headerlink" href="#user-stories-optional" title="Permanent link">&para;</a></h3>
<h3 id="user-stories-optional">User Stories [optional]<a class="headerlink" href="#user-stories-optional" title="Permanent link"></a></h3>
<p>Detail the things that people will be able to do if this KEP is implemented.
Include as much detail as possible so that people can understand the "how" of the system.
The goal here is to make this feel real for users without getting bogged down.</p>
<h4 id="story-1">Story 1<a class="headerlink" href="#story-1" title="Permanent link">&para;</a></h4>
<h4 id="story-2">Story 2<a class="headerlink" href="#story-2" title="Permanent link">&para;</a></h4>
<h3 id="implementation-detailsnotesconstraints-optional">Implementation Details/Notes/Constraints [optional]<a class="headerlink" href="#implementation-detailsnotesconstraints-optional" title="Permanent link">&para;</a></h3>
<h4 id="story-1">Story 1<a class="headerlink" href="#story-1" title="Permanent link"></a></h4>
<h4 id="story-2">Story 2<a class="headerlink" href="#story-2" title="Permanent link"></a></h4>
<h3 id="implementation-detailsnotesconstraints-optional">Implementation Details/Notes/Constraints [optional]<a class="headerlink" href="#implementation-detailsnotesconstraints-optional" title="Permanent link"></a></h3>
<p>What are the caveats to the implementation?
What are some important details that didn't come across above.
Go in to as much detail as necessary here.
This might be a good place to talk about core concepts and how they releate.</p>
<h3 id="risks-and-mitigations">Risks and Mitigations<a class="headerlink" href="#risks-and-mitigations" title="Permanent link">&para;</a></h3>
<h3 id="risks-and-mitigations">Risks and Mitigations<a class="headerlink" href="#risks-and-mitigations" title="Permanent link"></a></h3>
<p>What are the risks of this proposal and how do we mitigate.
Think broadly.
For example, consider both security and how this will impact the larger kubernetes ecosystem.</p>
<p>How will security be reviewed and by whom?
How will UX be reviewed and by whom?</p>
<p>Consider including folks that also work outside project.</p>
<h2 id="design-details">Design Details<a class="headerlink" href="#design-details" title="Permanent link">&para;</a></h2>
<h3 id="test-plan">Test Plan<a class="headerlink" href="#test-plan" title="Permanent link">&para;</a></h3>
<h2 id="design-details">Design Details<a class="headerlink" href="#design-details" title="Permanent link"></a></h2>
<h3 id="test-plan">Test Plan<a class="headerlink" href="#test-plan" title="Permanent link"></a></h3>
<p><strong>Note:</strong> <em>Section not required until targeted at a release.</em></p>
<p>Consider the following in developing a test plan for this enhancement:</p>
<ul>
@ -1394,14 +1394,14 @@ How will UX be reviewed and by whom?</p>
Anything that would count as tricky in the implementation and anything particularly challenging to test should be called out.</p>
<p>All code is expected to have adequate tests (eventually with coverage expectations).
Please adhere to the <a href="https://git.k8s.io/community/contributors/devel/sig-testing/testing.md">Kubernetes testing guidelines</a> when drafting this test plan.</p>
<h4 id="removing-a-deprecated-flag">Removing a deprecated flag<a class="headerlink" href="#removing-a-deprecated-flag" title="Permanent link">&para;</a></h4>
<h4 id="removing-a-deprecated-flag">Removing a deprecated flag<a class="headerlink" href="#removing-a-deprecated-flag" title="Permanent link"></a></h4>
<ul>
<li>Announce deprecation and support policy of the existing flag</li>
<li>Two versions passed since introducing the functionality which deprecates the flag (to address version skew)</li>
<li>Address feedback on usage/changed behavior, provided on GitHub issues</li>
<li>Deprecate the flag</li>
</ul>
<h2 id="implementation-history">Implementation History<a class="headerlink" href="#implementation-history" title="Permanent link">&para;</a></h2>
<h2 id="implementation-history">Implementation History<a class="headerlink" href="#implementation-history" title="Permanent link"></a></h2>
<p>Major milestones in the life cycle of a KEP should be tracked in <code class="codehilite">Implementation History</code>.
Major milestones might include</p>
<ul>
@ -1412,9 +1412,9 @@ Major milestones might include</p>
<li>the version of Kubernetes where the KEP graduated to general availability</li>
<li>when the KEP was retired or superseded</li>
</ul>
<h2 id="drawbacks-optional">Drawbacks [optional]<a class="headerlink" href="#drawbacks-optional" title="Permanent link">&para;</a></h2>
<h2 id="drawbacks-optional">Drawbacks [optional]<a class="headerlink" href="#drawbacks-optional" title="Permanent link"></a></h2>
<p>Why should this KEP <em>not</em> be implemented.</p>
<h2 id="alternatives-optional">Alternatives [optional]<a class="headerlink" href="#alternatives-optional" title="Permanent link">&para;</a></h2>
<h2 id="alternatives-optional">Alternatives [optional]<a class="headerlink" href="#alternatives-optional" title="Permanent link"></a></h2>
<p>Similar to the <code class="codehilite">Drawbacks</code> section the <code class="codehilite">Alternatives</code> section is used to highlight and record other possible approaches to delivering the value proposed by a KEP.</p>

View file

@ -1171,15 +1171,15 @@
<a href="https://github.com/kubernetes/ingress-nginx/edit/master/docs/enhancements/README.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="kubernetes-enhancement-proposals-keps">Kubernetes Enhancement Proposals (KEPs)<a class="headerlink" href="#kubernetes-enhancement-proposals-keps" title="Permanent link">&para;</a></h1>
<h1 id="kubernetes-enhancement-proposals-keps">Kubernetes Enhancement Proposals (KEPs)<a class="headerlink" href="#kubernetes-enhancement-proposals-keps" title="Permanent link"></a></h1>
<p>A Kubernetes Enhancement Proposal (KEP) is a way to propose, communicate and coordinate on new efforts for the Kubernetes project. For this reason, the <code class="codehilite">ingress-nginx</code> project is adopting it.</p>
<h2 id="quick-start-for-the-kep-process">Quick start for the KEP process<a class="headerlink" href="#quick-start-for-the-kep-process" title="Permanent link">&para;</a></h2>
<h2 id="quick-start-for-the-kep-process">Quick start for the KEP process<a class="headerlink" href="#quick-start-for-the-kep-process" title="Permanent link"></a></h2>
<p>Follow the process outlined in the <a href="YYYYMMDD-kep-template/">KEP template</a></p>
<h3 id="do-i-have-to-use-the-kep-process">Do I have to use the KEP process?<a class="headerlink" href="#do-i-have-to-use-the-kep-process" title="Permanent link">&para;</a></h3>
<h3 id="do-i-have-to-use-the-kep-process">Do I have to use the KEP process?<a class="headerlink" href="#do-i-have-to-use-the-kep-process" title="Permanent link"></a></h3>
<p>No... but we hope that you will.
Over time having a rich set of KEPs in one place will make it easier for people to track what is going on in the community and find a structured historic record.</p>
<p>KEPs are only required when the changes are wide ranging and impact most of the project.</p>
<h3 id="why-would-i-want-to-use-the-kep-process">Why would I want to use the KEP process?<a class="headerlink" href="#why-would-i-want-to-use-the-kep-process" title="Permanent link">&para;</a></h3>
<h3 id="why-would-i-want-to-use-the-kep-process">Why would I want to use the KEP process?<a class="headerlink" href="#why-would-i-want-to-use-the-kep-process" title="Permanent link"></a></h3>
<p>Our aim with KEPs is to clearly communicate new efforts to the Kubernetes contributor community.
As such, we want to build a well curated set of clear proposals in a common format with useful metadata.</p>
<p>Benefits to KEP users (in the limit):</p>