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: add IngressClassParams KEP #2536

Merged
merged 47 commits into from
Jun 27, 2022
Merged
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
e782fb7
docs: add IngressClassParams KEP
pmalek Jun 3, 2022
fbbe249
Update keps/0009-ingress-class-params-crd.md
pmalek Jun 6, 2022
f2eefca
docs(kep): more references in KEP 0009 history
pmalek Jun 6, 2022
c2d4c41
Update keps/0009-ingress-class-params-crd.md
pmalek Jun 6, 2022
cd26a94
Update keps/0009-ingress-class-params-crd.md
pmalek Jun 6, 2022
3300820
Update keps/0009-ingress-class-params-crd.md
pmalek Jun 6, 2022
2c63e67
docs(kep): rename IngressClassParams to IngressClassParameters
pmalek Jun 6, 2022
0f8769c
docs: mention the feature flag for KEP 0009
pmalek Jun 6, 2022
ad3aac9
Apply suggestions from code review
pmalek Jun 24, 2022
0045efb
chore(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2 (#2…
dependabot[bot] Jun 6, 2022
2dafe0d
chore(deps): bump github.com/kong/deck from 1.12.1 to 1.12.2 (#2540)
dependabot[bot] Jun 6, 2022
58b958b
docs(README): clean up README.md (#2542)
pmalek Jun 6, 2022
512e45d
doc(repo) move release checklist to issue template (#2488)
randmonkey Jun 7, 2022
8f3406b
chore(tests) pin Gateway CRD version
rainest Jun 7, 2022
bf471a2
fix: Properly test weighted load balancing
jrsmroz Jun 7, 2022
0d2fe80
docs(README): document supported container platforms (#2546)
pmalek Jun 8, 2022
9494066
chore(deps): bump google.golang.org/api from 0.82.0 to 0.83.0 (#2552)
dependabot[bot] Jun 8, 2022
5fcd9c0
chore(deps): bump github.com/avast/retry-go/v4 from 4.0.5 to 4.1.0 (#…
dependabot[bot] Jun 10, 2022
948abf4
chore: bump golangci-lint to v1.46.2 (#2560)
pmalek Jun 10, 2022
d69f56a
chore: correctly format logger fields on admin api connection retries…
pmalek Jun 13, 2022
7fb837d
fix: change admissionWebhook.failurePolicy value to Ignore
jrsmroz Jun 13, 2022
4b5965e
chore: remove KongIngress support for Gateway API Route objects
pmalek Jun 9, 2022
424c024
update manifests to avoid vulnerability
randmonkey Jun 6, 2022
1c1f4f6
chore(*) release 2.4.0
randmonkey Jun 15, 2022
2d31b31
chore(action) set timeout of integration tests t0 60m
randmonkey Jun 15, 2022
eab4321
chore(deps): bump google.golang.org/api from 0.83.0 to 0.84.0 (#2576)
dependabot[bot] Jun 15, 2022
f20901a
chore(tests) update KNative min version
rainest Jun 15, 2022
40f6d1d
chore(ci) add example to release
rainest Jun 15, 2022
16e32e4
chore(deps): bump k8s.io/client-go from 0.24.1 to 0.24.2 (#2581)
dependabot[bot] Jun 21, 2022
9dec026
chore(deps): bump github.com/stretchr/testify from 1.7.2 to 1.7.4 (#2…
dependabot[bot] Jun 21, 2022
0927d73
chore(deps): bump k8s.io/apiextensions-apiserver from 0.24.1 to 0.24.…
dependabot[bot] Jun 21, 2022
dc4a7eb
chore(deps): bump github.com/miekg/dns from 1.1.49 to 1.1.50 (#2592)
dependabot[bot] Jun 21, 2022
914a30c
chore(deps): bump github.com/prometheus/common from 0.34.0 to 0.35.0 …
dependabot[bot] Jun 21, 2022
5cbf476
chore(deps): bump github.com/spf13/cobra from 1.4.0 to 1.5.0 (#2588)
dependabot[bot] Jun 21, 2022
843c170
fix(ingressclass) disable watches with controller
rainest Jun 15, 2022
9ed9d6e
chore(config) increase default proxy timeout
rainest Jun 21, 2022
a655d72
chore(deps): bump google.golang.org/api from 0.84.0 to 0.85.0 (#2597)
dependabot[bot] Jun 22, 2022
d60da09
chore: use the same tag in Makefile as in code when installing Gatewa…
pmalek Jun 22, 2022
0806a33
chore(docs) add links to release template
rainest Jun 22, 2022
579169d
chore(*) Release 2.4.1
mlavacca Jun 22, 2022
0157a05
chore(deps): bump sigs.k8s.io/controller-runtime from 0.12.0 to 0.12.…
dependabot[bot] Jun 23, 2022
19624dd
feat(gateway) allow user-defined Listeners (#2555)
rainest Jun 23, 2022
a1c4cbe
chore(deps): bump github.com/stretchr/testify from 1.7.4 to 1.7.5 (#2…
dependabot[bot] Jun 24, 2022
b8f0925
docs: reword kep
pmalek Jun 24, 2022
54291ca
docs: remove non-goals section
pmalek Jun 24, 2022
24359f5
Merge branch 'main' into kep-ingressclassparams
pmalek Jun 24, 2022
a53a00d
docs: typo
pmalek Jun 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions keps/0009-ingress-class-params-crd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: Introduce IngressClassParameters CRD to control IngressClass behavior
status: provisional
---

# Introduce IngressClassParameters CRD to control IngressClass behavior

<!-- toc -->
- [Summary](#summary)
- [Motivation](#motivation)
- [Goals](#goals)
- [Proposal](#proposal)
- [Graduation Criteria](#graduation-criteria)
- [Implementation History](#implementation-history)
<!-- /toc -->

## Summary

Currently users can control how traffic is load-balanced for an `Ingress`
resource using the [`ingress.kubernetes.io/service-upstream` annotation][service-upstream-annotation].
This can quickly get cumbersome, specifically for environments with large number
of `Ingress` resources.

Controlling `IngressClass` parameters in one place would be much more desirable in
such situations, hence the proposal to introduce a new object - `IngressClassParameters` -
which would allow said customizations.

[service-upstream-annotation]: https://docs.konghq.com/kubernetes-ingress-controller/2.3.x/references/annotations/#ingresskubernetesioservice-upstream

## Motivation

- we want to allow `IngressClass` behavior customizations in one place
- we want to make configuration management related to `IngressClass` to not be
a burden for the user even when IngressClass is assigned to many services

### Goals

- provide a definition of new object - `IngressClassParameters`
- provide an _ability to configure_ `IngressClass` in one place via aforementioned
`IngressClassParameters` object
- provide `ServiceUpstream` field in `IngressClassParameters` object, as means to control
the behavior already provided by `ingress.kubernetes.io/service-upstream` annotation

## Proposal

### Graduation Criteria

- [ ] introduce `IngressClassParameters` object available for deployment for end users
- [ ] introduce a [feature gate][feature-gates] for the functionality described in this KEP
- [ ] `ServiceUpstream` field implemented in `IngressClassParameters` object to allow
control of behavior of all services handled by an `Ingress` configured with an
`IngressClass` that references said parameters object

## Implementation History

- First issue proposing to enable `service-upstream` for an entire ingress class
in [#774][774]
- [#1131][1131] was raised to discuss `IngressClass` parameters more generically
- An initial proposal has been made in [#1586][1586] (trying to address [#1131][1131])
but the work did not conclude and eventually the PR didn't get merged
- Another proposal has been made in [#2535][2535] basing its work on [#1586][1586]

[774]: https:/Kong/kubernetes-ingress-controller/pull/774
[1131]: https:/Kong/kubernetes-ingress-controller/pull/1131
[1586]: https:/Kong/kubernetes-ingress-controller/pull/1586
[2535]: https:/Kong/kubernetes-ingress-controller/pull/2535
[feature-gates]: ../FEATURE_GATES.md