Commit graph

621 commits

Author SHA1 Message Date
Tomek Święcicki
f9cce5a4ed
[user-guide configmap] fix doc for global-auth-snippet (#9372) 2022-12-06 07:26:38 -08:00
Justin Wood (Callek)
f71f109b8d
Fix styling in canary annotation docs. (#9259)
Before this change, it appears on the website as:
> A weight of means implies all requests will be sent to the alternative service specified in the Ingress. `<weight-total>` defaults to 100, and can be increased via `nginx.ingress.kubernetes.io/canary-weight-total`.

Where there is the term `weight-total` as a pure html tag in the space.  This fixes it to actually display it as text in the prose.
2022-12-04 11:51:55 -08:00
Tatu Pesonen
8a5eaa63a9
fix(typo): pluralize provider (#9346) 2022-12-03 07:28:58 -03:00
Saumya
5aa49dc66d
removed deprecation messsage for ingressClass annotation (#9357)
* removed deprecation messsage for ingressClass annotation

* modified: docs/user-guide/multiple-ingress.md

* modified: docs/user-guide/multiple-ingress.md

* modified: docs/user-guide/multiple-ingress.md
2022-12-02 21:13:54 -08:00
Long Wu Yuan
1930b1467d
added SAN to cert create command (#9295) 2022-11-15 05:04:42 -08:00
Dmitry Bashkatov
e6ff97fbbe
Consistent prometheus metric names and documentation (#8728)
* clean prometheus metrics

- add new histogram metrics with consistent names
- deprecate summary metrics with inconsistent names

* update prometheus metrics tests

* remove ingress_upstream_header_seconds metric

It hasn't been released so it is safe. Use header_duration_seconds metric.

* add documentation on prometheus metrics
2022-09-30 08:00:36 -07:00
Nate Campbell
7cb91ef9c1
Support none keyword in log-format escape (#8692)
* Support none keyword in log-format escape


## What this PR does / why we need it:
ingress-nginx does not support disabling escaping of special characters in the nginx log. This PR exposes the setting to support that functionality.

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation only

## Which issue/s this PR fixes
<!--
(optional, in `fixes #<issue number>` format, will close that issue when PR gets merged):

fixes #
-->

## How Has This Been Tested?
Followed the [getting-started](96b6228a6b/docs/developer-guide/getting-started.md) guide. Used ppa:longsleep/golang-backports on WSL Ubuntu to establish a golang-1.18 environment with latest docker and recommended kind. Built the dev-env successfully; had issues with make test, but they are entirely unrelated to anything I touched. Ultimate test was
```
FOCUS=log-format make kind-e2e-test
...
Ginkgo ran 1 suite in 6m29.7437865s
Test Suite Passed
```

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I've read the [CONTRIBUTION](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md) guide
- [x] I have added tests to cover my changes.
- [x] All new and existing tests passed.

I did not update docs/e2e-tests.md.

* gofmt -s ./internal/ingress/controller/config/config.go
2022-09-30 08:00:29 -07:00
Matthias Neugebauer
26fe69cb47
Add annotation for setting sticky cookie domain (#9088)
This adds the new annotation `nginx.ingress.kubernetes.io/session-cookie-domain`
for setting the cookie `Domain` attribute of the sticky cookie.

Signed-off-by: Matthias Neugebauer <mtneug@mailbox.org>

Signed-off-by: Matthias Neugebauer <mtneug@mailbox.org>
2022-09-28 07:28:37 -07:00
Ismayil Mirzali
45f71d5a16
make keep-alive docs more explicit #8927 (#8944)
Signed-off-by: Ismayil Mirzali <ismayilmirzeli@gmail.com>

Signed-off-by: Ismayil Mirzali <ismayilmirzeli@gmail.com>
2022-08-22 16:30:28 -07:00
Edvin N
63edd3befd
Document internal-logger-address cli arg (#8873)
Signed-off-by: Edvin Norling <edvin.norling@xenit.se>

Signed-off-by: Edvin Norling <edvin.norling@xenit.se>
2022-08-22 16:14:09 -07:00
qilong.qiu
a581a7bebc
Add docs on Election ID to Multiple Ingress Controller guide (#8855) 2022-07-22 04:21:38 -07:00
inosato
ac3c338e7e
FIx typo x_forwarded_for (#8838) 2022-07-20 08:46:36 -07:00
Miguel Martínez
64efad8415
Fixed typo (#8817) 2022-07-12 17:41:37 -07:00
Taylor Monacelli
23cc900690
Update docs to make it easier for noobs to follow step by step (#8738)
* Change helm release name in docs

Following step by step instructions in readme I ran into error:
Error: release: not found

And realized the commandline was differnent from description.  Let
change description to match commandline?

* Fix verb tense in docs
2022-07-03 10:35:21 -07:00
Long Wu Yuan
96b6228a6b
changed k8s.gcr.io to registry.k8s.io (#8667) 2022-06-10 04:01:52 -07:00
zou rui
2852e2998c
feat: support enbale nginx debug_connection (#8637) 2022-06-10 04:01:46 -07:00
Filip Petkovski
4da96ea26a
Implement reporting status classes in metrics (#8548)
This commit introduces a backwards compatible command line option
--report-status-classes which will enable reporting response status classes
(2xx, 3xx..) instead of status codes in exported metrics.
2022-05-21 11:18:00 -07:00
Maksim Nabokikh
2c27e66cc7
feat: always set auth cookie (#8213)
* feat: always set auth cookie

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* feat: Add annotation to always set auth cookie

* Add annotation
* Add global configmap key
* Provide unit tests and e2e tests
* Fix e2e documentation autogen script

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Regenerate e2e tests

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
2022-05-19 15:27:53 -07:00
serge-r
730b7408ca
Add header Host into mirror annotations (#8178) 2022-05-07 17:39:17 -07:00
Alexey Miasoedov
67e430cb3a
fix typo (#8550) 2022-05-04 15:56:20 -07:00
kszafran
3230638160
Update default allowed CORS headers (#8459)
X-CustomHeader looks more like an example than a header we would want to
accept in production. Added Range as a useful header that enables
operations on resources that can be fetched in chunks.
2022-05-04 05:11:51 -07:00
Josh Soref
5a7d053c6f
Document nginx 1.19.7 deprecations pulled in by ingress-nginx 1.1.3 (#8532)
* Document nginx 1.19.7 deprecations pulled in by ingress-nginx 1.1.3

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Document ingress-nginx 1.1.3/1.3.0 removals

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-05-04 04:45:53 -07:00
Chris Shino
f9372aa495
added new auth-tls-match-cn annotation (#8434)
* added new auth-tls-match-cn annotation

* added few more tests
2022-04-15 12:59:10 -07:00
sskserk
d4b9b486e6
Upstream keepalive time (#8319)
* nginx 1.19.10 keepalive_time parameter

* nginx v1.19.10 base image

* keepalive_time documentation

* base image

* restore base image

* e2e test

* replace default value in test
2022-04-15 04:09:10 -07:00
Ricardo Katz
89ed571d2a
Implement object deep inspector (#8456) 2022-04-11 07:06:07 -07:00
Gabor Lekeny
83ce21b4dd
Add keepalive support for auth requests (#8219)
* Add keepalive support for auth requests

* Fix typo

* Address PR comments

* Log warning when auth-url contains variable in its host:port
* Generate upstream name without replacing dots to underscores in server name
* Add comment in the nginx template when the keepalive upstream block is referenced

* Workaround for auth_request module ignores keepalive in upstream block

* The `auth_request` module does not support HTTP keepalives in upstream block:
  https://trac.nginx.org/nginx/ticket/1579
* As a workaround we use ngx.location.capture but unfortunately it does not
  support HTTP/2 so `use-http2` configuration parameter is needed.

* Handle PR comments

* Address PR comments

* Handle invalid values for int parameters

* Handle PR comments

* Fix e2e test
2022-04-08 20:22:04 -07:00
Mathieu Parent
5e322f79a1
Fix suggested annotation-value-word-blocklist (#8446)
Signed-off-by: Mathieu Parent <mathieu.parent@insee.fr>
2022-04-08 20:14:04 -07:00
陳傑夫
c8ed1f1d7a
typo fixing (#8447) 2022-04-08 09:48:42 -07:00
Josh Soref
c6a8ad9a65
Darwin arm64 (#8399)
* Use sed instead of gnu find flags

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Support building linux/amd64 on darin/arm64

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Upgrade awesome_bot to dkhamsing/awesome_bot:1.20.0

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Favor find -prune for vendor

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Skip golang modcache folder

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Favor find -prune for changelog

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Ignore Changelogs of any case

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Fix service-l7 link

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Fix route53-mapper link

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Update rootfs contents description

The auxiliary scripts were removed after:
ab8349008a/rootfs/ingress-controller

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Update paths for modsecurity

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Update paths for modsecurity_snippet

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Update toc for 20190815-zone-aware-routing.md

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Use Internet Archive for datapath.io blog entry

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Use Internet Archive for cloudflare.com help center entry

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Use https for nginx.org

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-04-06 13:46:26 -07:00
David Jansen
230d8e6792
doc: fix deployment manifest example (#8407) 2022-03-31 18:18:38 -07:00
Tomoyuki KOYAMA
08fcd942c7
fix code highlight (#8392) 2022-03-28 02:29:23 -07:00
Rodrigo Riccitelli Vieira
1fb0aea2c5
Update monitoring.md (#8324)
Added missing repo on "helm upgrade" command
2022-03-14 08:47:58 -07:00
hongkunyoo
5a9fe30a5d
Missing annotations (#8288)
Not quite sure but It seems that `nginx.ingress.kubernetes.io/canary-by-header` is missing.
2022-03-09 06:54:13 -08:00
Indhu Kumar
fd87363b5e
Issue#8241 (#8273)
* replace daemon set for deployment manifest

* nit
2022-02-26 14:53:17 -08:00
Goran
f85dd79221
Updated confusing error (#8262) 2022-02-21 11:52:01 -08:00
Indhu Kumar
be65620b31
prometheus+grafana using servicemonitor (#8186)
* prometheus+grafana using servicemonitor

* fix review comments

* markdown changes

* more formatting changes

* fix review comments
2022-02-07 01:47:45 -08:00
Alexander Brand
6b6ebf0a7c
Update the $req_id placeholder description (#8163) 2022-02-06 12:14:53 -08:00
Tiago Ferreira
8cf73d9720
Fix Indentation of example and link to cert-manager tutorial (#8203) 2022-01-27 08:34:59 -08:00
Sandip Bhattacharya
6eecefd3da
docs: fix inconsistent controller annotation (#8196)
The annotation for the controller class was inconsistent in the example. From my best understanding, I have tried to fix the inconsistency.

Also, removed an incomplete sentence. And made one sentence more clear by breaking it up.
2022-01-26 19:06:50 -08:00
Jintao Zhang
53ac0ddd42
Using Go install for misspell (#8191)
* chore: using go install misspell

Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>

* chore: fix typo

Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>
2022-01-26 18:52:50 -08:00
Aditya Kamath
2aa34202c1
Allow to configure delay before controller exits (#8143)
* Allow to configure delay before controller exits

Signed-off-by: Aditya Kamath <theunrealgeek@gmail.com>

* Address comments

Signed-off-by: Aditya Kamath <theunrealgeek@gmail.com>
2022-01-17 15:24:49 -08:00
Josh Soref
1614027cd4
Minor documentation cleanup (#7826)
* clarify link

* Add section headers

* console blocks

* grpc example json was not valid

* multi-tls update text

The preceding point 1 related to 4f2cb51ef8/ingress/controllers/nginx/examples/ingress.yaml
and the deployments referenced in 4f2cb51ef8/ingress/controllers/nginx/examples/README.md

They are not relevant to the current instructions.

* add whitespace around parens

* grammar

setup would be a proper noun, but it is not the intended concept, which is a state

* grammar

* is-only
* via

* Use bullets for choices

* ingress-controller

nginx is a distinct brand.

generally this repo talks about ingress-controller, although it is quite inconsistent about how...

* drop stray paren

* OAuth is a brand and needs an article here

also GitHub is a brand

* Indent text under numbered lists

* use e.g.

* Document that customer header config maps changes do not trigger updates

This should be removed if
https://github.com/kubernetes/ingress-nginx/issues/5238
is fixed.

* article

* period

* infinitive verb + period

* clarify that the gRPC server is responsible for listening for TCP traffic and not some other part of the backend application

* avoid using ; and reword

* whitespace

* brand: gRPC

* only-does is the right form

`for` adds nothing here

* spelling: GitHub

* punctuation

`;` is generally not the right punctuation...

* drop stray `to`

* sentence

* backticks

* fix link

* Improve readability of compare/vs

* Renumber list

* punctuation

* Favor Ingress-NGINX and Ingress NGINX

* Simplify custom header restart text

* Undo typo damage

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-01-16 16:57:28 -08:00
Long Wu Yuan
784f9c53bb
checking mkdocs & ghpages (#8150) 2022-01-16 16:05:28 -08:00
Tiago Ferreira
5552fdf814
Fix api version for ingress objects on K8s version <1.19 (#8112) 2022-01-12 11:08:14 -08:00
agile6v
452515ca2f
doc: improvement (#7996) 2021-12-23 13:54:30 -08:00
Bhumij Gupta
6d4c51c31f
Added docs for --ingress-class-by-name flag in the cli arguments page (#7624)
* Added docs for --ingress-class-by-name flag in the cli arguments page

Signed-off-by: bhumijgupta <bhumijgupta@gmail.com>

* Updated docs to match the flag description in code

Signed-off-by: bhumijgupta <bhumijgupta@gmail.com>
2021-12-23 13:32:30 -08:00
Tobias Salzmann
ce9deaa332
Add stream-snippet as a ConfigMap and Annotation option (#8029)
* stream snippet

* gofmt -s
2021-12-23 11:46:30 -08:00
Mani Kanth
2ff5af08d4
docs_multiple_instances_one_cluster_ticket_7543 (#8042) 2021-12-22 02:53:35 -08:00
Yecheng Fu
5cff197bc5
add canary-weight-total annotation (#6338) 2021-12-07 08:40:00 -08:00
Jedidiah Park
2b499d9c86
Fix spelling in documentation and top-level files (#8009)
* fix typos in docs

* fix typos in top-level files
2021-12-06 05:46:33 -08:00
Ansil H
a03895d91e
Add ssl_reject_handshake to defaul server (#7977)
* Add ssl_reject_handshake to defaul server

* Added SSLRejectHandshake to NewDefault

* Added documentation
2021-11-29 08:33:23 -08:00
Reinhard Nägele
e9c297e74d
Fix names in documentation (#7940)
* Fix names in documentation

This fixes the documentation to reflect the name change from
`nginx-ingress` to `ingress-nginx`.

Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>

* Revert accidental changelog update

Signed-off-by: Reinhard Nägele <unguiculus@gmail.com>
2021-11-28 13:11:22 -08:00
TJ Saunders
b615a6808d
Fix a couple of misspellings in the annotations documentation. (#7983) 2021-11-27 16:31:21 -08:00
Kundan Kumar
77a63c6855
updated service upstream definition (#7972) 2021-11-24 10:20:21 -08:00
Sven Schliesing
dbf3689c5e
add documentation for "force-ssl-redirect" (#7957)
See #4628
2021-11-23 15:27:45 -08:00
James Strong
d4a6ade65f
update default block list,docs, tests (#7942)
* update default block list,docs, tests

* fix config for admin test

* gofmt

* remove the err return
2021-11-23 09:06:17 -08:00
Ricardo Katz
15567b07c0
Trim spaces from badword items (#7921) 2021-11-15 20:37:29 -03:00
Mac Chaffee
3c08f002f9
Rewrite multiple-ingress.md to work with v1 (#7608)
* Rewrite multiple-ingress.md to work with v1

* Fix --controller-class flag docs
2021-11-15 12:20:49 -08:00
zryfish
7203a0b8bd
support watch namespaces matched namespace selector (#7472)
skip caching namespaces at cluster scope if only watching single namespace

add --watch-namespace-selector in user guide

add e2e test
2021-11-12 11:46:28 -08:00
James Strong
8333c8c127
update docs with a warning about cert chain order (#7908) 2021-11-12 11:34:29 -08:00
Gerald Pape
017e1ecde3
Fix Ingress resources in docs (#7579)
* fix Ingress resources in docs

Signed-off-by: Gerald Pape <gerald@giantswarm.io>

* move to ingressClassName

* fix more Ingress resource examples

* empty commit

Signed-off-by: Gerald Pape <gerald@giantswarm.io>

* make NOTES.txt aware of version + add notice about ingress version to examples main page

* add link to legacy documentation

Signed-off-by: Gerald Pape <gerald@giantswarm.io>
2021-11-09 07:43:49 -08:00
James Strong
b7b2714b69
Update proxy-set-header example (#7898)
The Example was directed to the repo markdown and not the site. 

/kind documentation
2021-11-08 22:15:39 -08:00
Sablu Miah
62ab435958
Fix Formatting/Typo (#7894)
Quick simple typo/formatting fix to keep consistency with direct sections below
2021-11-05 13:34:41 -07:00
Christopher Larivière
65b8eeddec
Support cors-allow-origin with multiple origins (#7614)
* Add Initial support for multiple cors origins in nginx

- bump cluster version for `make dev-env`
- add buildOriginRegex function in nginx.tmpl
- add e2e 4 e2e tests for cors.go
- refers to feature request #5496

* add tests + use search to identify '*' origin

* add tests + use search to identify '*' origin

Signed-off-by: Christopher Larivière <lariviere.c@gmail.com>

* fix "should enable cors test" looking at improper values

* Modify tests and add some logic for origin validation

- add origin validation in cors ingress annotations
- add extra tests to validate regex
- properly escape regex using "QuoteMeta"
- fix some copy/paste errors

* add TrimSpace and length validation before adding a new origin

* modify documentation for cors and remove dangling comment

* add support for optional port mapping on origin

* support single-level wildcard subdomains + tests

* Remove automatic `*` fonctionality from incorrect origins

- use []string instead of basic string to avoid reparsing in template.go
- fix typo in docs
- modify template to properly enable only if the whole block is enabled
- modify cors parsing
- test properly by validating that the value returned is the proper
  origin
- update unit tests and annotation tests

* Re-add `*` when no cors origins are supplied + fix tests

- fix e2e tests to allow for `*`
- re-add `*` to cors parsing if trimmed cors-allow-origin is empty
(supplied but empty) and if it wasn't supplied at all.

* remove unecessary logic for building cors origin + remove comments

- add some edge cases in e2e tests
- rework logic for building cors origin

there was no need for logic in template.go for buildCorsOriginRegex
if there is a `*` it ill be short-circuited by first if.

if it's a wildcard domain or any domain (without a wildcard), it MUST
match the main/cors.go regex format.

if there's a star in a wildcard domain, it must be replaced with
`[A-Za-z0-9]+`

* add missing check in e2e tests
2021-11-02 12:31:42 -07:00
Rahil Patel
c8ab4dc307
add brotli-min-length configuration option (#7854)
* add `brotli-min-length` configuration option

* add e2e tests for brotli

* include check for expected content type

* fix header and format
2021-11-02 04:52:59 -07:00
counter2015
ed34f6c93d
fix ingress syntax. (#7867) 2021-11-01 17:12:58 -07:00
Matthew Silverman
7d5452d00b
configmap: option to not trust incoming tracing spans (#7045)
* validate the sender of tracing spans

* add location-specific setting
2021-10-24 14:36:21 -07:00
Davide Icardi
c6adeb8f8c
improve basic usage documentation (#7661) 2021-10-24 12:20:21 -07:00
Mara Sophie Grosch
21bab108f4
mention CVE-2021-25742 in annotations doc (#7843)
Referring to CVE-2021-25742 in the annotations doc at the description of `configuration-snippet`.
2021-10-24 12:08:22 -07:00
Ricardo Katz
4fc57dcc49
Change enable-snippet to allow-snippet-annotation (#7670)
Signed-off-by: Ricardo Pchevuzinske Katz <rkatz@vmware.com>
2021-09-20 16:52:23 -07:00
Ricardo Katz
5e6ab651ec
Add option to force enabling snippet directives (#7665)
Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>
2021-09-19 12:40:08 -07:00
Jennifer Kirsch
314cc6c2dc
Replace kube-lego docs with cert-manager (#7659)
Since kube-lego has not been maintained in quite a while,
I thought it would be best to remove the documentation about it
and replace it with information about cert-manager.
2021-09-19 11:06:08 -07:00
agile6v
557a765754
fix typos. (#7640) 2021-09-15 11:30:12 -07:00
Renan Gonçalves
48601bcd0e
Allow the usage of Services as Upstream on a global level (#7469)
It is possible to change this behavior on an ingress level, which works
well when you only have a few of them. When running several dozen
ingress and with a high change rate of running pods it makes it easier
to define this configuration on a global level.

This change is completely backwards compatible, only adding the
possibility of defining a new key in the configmap.
2021-09-07 12:47:15 -07:00
FBLGit
a714fb69db
This PR: (#7514)
<!--- Provide a general summary of your changes in the Title above --->
<!--- Why is this change required? What problem does it solve? -->

Introduces the CLI command flag `--disable-full-test`

By default, it doesn't alter the current behavior of the tests performed by the admission controller.
With or Without the flag, a full checkOverlap is actioned, without any alteration
and the object `pcfg` is created with the whole set of ingreses.

If the flag is set to true, it does manipulate the size of `pcfg` up to the content of $this single ingress.

This is achieved by overriding pcfg content by just the last slice that got recently appended to the object `ings`
```
	if n.cfg.DisableFullValidationTest {
		_, _, pcfg = n.getConfiguration(ings[len(ings)-1:])
	}
```

The following steps of generateTemplate and testTemplate are significally reduced to a signle scenario
```
    content, err := n.generateTemplate(cfg, *pcfg)
    ...
    err = n.testTemplate(content)
```

This flag doesn't avoid the proper testing of collisions, neither bad syntaxis within the rendered
configuration of the ingress.

But it does eliminate a scenario, which I wasn't able to produce, where by for some reason even proper rendering
and valid values, without collisions of host/path may end into an invalid nginx.conf

The reasoning for this Feature is:
- Test duration increases by the number of ingresses in the cluster.
- File size grows to very important numbers 150-200Mb on clusters with just 2000~ ingresses.
- Tests in that scenario, takes approximately 20s using the last 0.48.1 improvements
- Produces a considerable memory consumption, as well as CPU, compute, that affects directly the containers
  that serve traffic.

Since the flag is trully optional, and by default is disabled I fell as a good thing to have that can definitively
help on large-scale scenarios that still want to have a reasonable set of tests in place at a lower cost.

<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
Tested with the build kit the following scenarios on a cluster with 1000~ ingresses:
- With Flag Disabled or Flag, not present (current status as per 0.48.1)

collision scenario (wrong snippet content):
`kubectl apply -f ../collision-syntax.yaml  0.18s user 0.05s system 3% cpu 6.639 total`

collisions scenario (duplicated host):
`kubectl apply -f ../collision-host.yaml  0.17s user 0.05s system 3% cpu 6.245 total`

create/update:
`kubectl apply -f ing-215.yaml  0.16s user 0.05s system 3% cpu 5.845 total`

- With Flag Enabled (true):
collision scenario (wrong snippet content):
`kubectl apply -f ../collision.yaml  0.18s user 0.02s system 57% cpu 0.347 total`

collision scenario (duplicated host):
`kubectl apply -f ../collision.yaml  0.21s user 0.06s system 85% cpu 0.318 total`

create/update:
`kubectl apply -f ing-973.yaml  0.17s user 0.03s system 72% cpu 0.271 total`

As part of the test, I did verified that the created nginx for the test was of a smaller size, and that it didnt affect negatively the final nginx.conf (of a much larger side) where this was merged by the next steps in place after the validation. I couldn't observe any other change in the behaviour and so far the routine looks simple and non harmful.

<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I've read the [CONTRIBUTION](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md) guide
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.

For the test part, I would need to understand the placement and test case that this would require, I wasn't able to see an existing scenario for this
2021-09-07 10:53:16 -07:00
Ray
cf9ae96d72
Additional AuthTLS assertions and doc change to demonstrate auth-tls-secret enables the other AuthTLS annotations (#7202)
* Fix indentation of nested list in AuthTLS annotations

Also, put `<annotation>`: <description text>` on a single line in
Markdown markup, which will match what gets rendered eventually.

On the other hand, for the line on auth-tls-secret (This annotation
expects the Secret name in the form "namespace/secretName"), its
Markdown markup suggests that the author wanted the line to start on its
own line, but currently this gets rendered on the same line. It's nice
for this to be on its own line, since it's kind of a "note" about the
annotation syntax. Format/indent the markup appropriately so that it
shows up on its line.

* Fix indentation of nested list in CORS annotations

Also, put `<annotation>`: <description text>` on a single line in
Markdown markup, which will match what gets rendered eventually.

On the other hand, for lines noting the allowed characters (This is a
multi-valued field...), its Markdown markup suggests that the author
wanted the line to start on its own line, but currently this gets
rendered on the same line. It's nice for this to be on its own line,
since it's kind of a "note" about the annotation syntax. Format/indent
the markup appropriately so that it shows up on its line.

* Replace f.HTTPTestClientWithTLSConfig() in AuthTLS E2E, the odd one out for requests without client certs

* Demonstrate and document that auth-tls-secret enables the other AuthTLS annotations like verify client, depth

* Split E2E for auth-tls-error-page and *-pass-certificate-to-upstream
2021-09-07 10:35:16 -07:00
Fred Thomsen
61c596bea6
Add doc ref for preserve-trailing-slash annotation (#7561)
Fixes issue #7555
2021-09-02 09:54:58 -07:00
Maksim Nabokikh
4c4013904a
Add a flag to specify address to bind the healthz server (#7541)
* Add a flag to specify address to bind the healthz server

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Add healthz host to the helm chart

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Apply suggestions from code review

Co-authored-by: Ricardo Katz <rikatz@users.noreply.github.com>

Co-authored-by: Ricardo Katz <rikatz@users.noreply.github.com>
2021-08-26 05:13:23 -07:00
Pål Kristensen
66c2a716da
Document the keep-alive 0 effect on http/2 requests (#7503) 2021-08-25 17:53:23 -07:00
Tsachi Nimni
37fbcc0bd9
Update docs for new ingress api in cluster version >=1.19 (#7264)
* Update docs to support Ingress in cluster version 1.19 or greater

* Update docs

* Update basic-usage.md

* Update basic-usage.md
2021-08-25 17:51:23 -07:00
wasker
3fb312ee2c
End-to-end tests for canary affinity (#7529) 2021-08-24 05:05:14 -07:00
Sandip Bhattacharya
f84006d62f
docs: Clarify default-backend behavior (#7489)
Clarify default-backend behaviour for services with multiple ports.

Also minor fixes for typos and language consistency.
2021-08-24 04:59:13 -07:00
Ricardo Katz
90c79689c4
Release v1 (#7470)
* Drop v1beta1 from ingress nginx (#7156)

* Drop v1beta1 from ingress nginx

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Fix intorstr logic in controller

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* fixing admission

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* more intorstr fixing

* correct template rendering

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Fix e2e tests for v1 api

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Fix gofmt errors

* This is finally working...almost there...

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Re-add removed validation of AdmissionReview

* Prepare for v1.0.0-alpha.1 release

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Update changelog and matrix table for v1.0.0-alpha.1 (#7274)

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* add docs for syslog feature (#7219)

* Fix link to e2e-tests.md in developer-guide (#7201)

* Use ENV expansion for namespace in args (#7146)

Update the DaemonSet namespace references to use the `POD_NAMESPACE` environment variable in the same way that the Deployment does.

* chart: using Helm builtin capabilities check (#7190)

Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>

* Update proper default value for HTTP2MaxConcurrentStreams in Docs (#6944)

It should be 128 as documented in https://github.com/kubernetes/ingress-nginx/blob/master/internal/ingress/controller/config/config.go#L780

* Fix MaxWorkerOpenFiles calculation on high cores nodes (#7107)

* Fix MaxWorkerOpenFiles calculation on high cores nodes

* Add e2e test for rlimit_nofile

* Fix doc for max-worker-open-files

* ingress/tcp: add additional error logging on failed (#7208)

* Add file containing stable release (#7313)

* Handle named (non-numeric) ports correctly (#7311)

Signed-off-by: Carlos Panato <ctadeu@gmail.com>

* Updated v1beta1 to v1 as its deprecated (#7308)

* remove mercurial from build (#7031)

* Retry to download maxmind DB if it fails (#7242)

* Retry to download maxmind DB if it fails.

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Add retries count arg, move retry logic into DownloadGeoLite2DB function

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Reorder parameters in DownloadGeoLite2DB

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Remove hardcoded value

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Release v1.0.0-alpha.1

* Add changelog for v1.0.0-alpha.2

* controller: ignore non-service backends (#7332)

* controller: ignore non-service backends

Signed-off-by: Carlos Panato <ctadeu@gmail.com>

* update per feedback

Signed-off-by: Carlos Panato <ctadeu@gmail.com>

* fix: allow scope/tcp/udp configmap namespace to altered (#7161)

* Lower webhook timeout for digital ocean (#7319)

* Lower webhook timeout for digital ocean

* Set Digital Ocean value controller.admissionWebhooks.timeoutSeconds to 29

* update OWNERS and aliases files (#7365) (#7366)

Signed-off-by: Carlos Panato <ctadeu@gmail.com>

* Downgrade Lua modules for s390x (#7355)

Downgrade Lua modules to last known working version.

* Fix IngressClass logic for newer releases (#7341)

* Fix IngressClass logic for newer releases

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Change e2e tests for the new IngressClass presence

* Fix chart and admission tests

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Fix helm chart test

Signed-off-by: Ricardo Pchevuzinske Katz <ricardo.katz@gmail.com>

* Fix reviews

* Remove ingressclass code from admission

* update tag to v1.0.0-beta.1

* update readme and changelog for v1.0.0-beta.1

* Release v1.0.0-beta.1 - helm and manifests (#7422)

* Change the order of annotation just to trigger a new helm release (#7425)

* [cherry-pick] Add dev-v1 branch into helm releaser (#7428)

* Add dev-v1 branch into helm releaser (#7424)

* chore: add link for artifacthub.io/prerelease annotations

Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>

Co-authored-by: Ricardo Katz <rikatz@users.noreply.github.com>

* k8s job ci pipeline for dev-v1 br v1.22.0 (#7453)

* k8s job ci pipeline for dev-v1 br v1.22.0

Signed-off-by: Neha Lohia <nehapithadiya444@gmail.com>

* k8s job ci pipeline for dev-v1 br v1.21.2

Signed-off-by: Neha Lohia <nehapithadiya444@gmail.com>

* remove v1.21.1 version

Signed-off-by: Neha Lohia <nehapithadiya444@gmail.com>

* Add controller.watchIngressWithoutClass config option (#7459)

Signed-off-by: Akshit Grover <akshit.grover2016@gmail.com>

* Release new helm chart with certgen fixed (#7478)

* Update go version, modules and remove ioutil

* Release new helm chart with certgen fixed

* changed appversion, chartversion, TAG, image (#7490)

* Fix CI conflict

* Fix CI conflict

* Fix build.sh from rebase process

* Fix controller_test post rebase

Co-authored-by: Tianhao Guo <rggth09@gmail.com>
Co-authored-by: Ray <61553+rctay@users.noreply.github.com>
Co-authored-by: Bill Cassidy <cassid4@gmail.com>
Co-authored-by: Jintao Zhang <tao12345666333@163.com>
Co-authored-by: Sathish Ramani <rsathishx87@gmail.com>
Co-authored-by: Mansur Marvanov <nanorobocop@gmail.com>
Co-authored-by: Matt1360 <568198+Matt1360@users.noreply.github.com>
Co-authored-by: Carlos Tadeu Panato Junior <ctadeu@gmail.com>
Co-authored-by: Kundan Kumar <kundan.kumar@india.nec.com>
Co-authored-by: Tom Hayward <thayward@infoblox.com>
Co-authored-by: Sergey Shakuto <sshakuto@infoblox.com>
Co-authored-by: Tore <tore.lonoy@gmail.com>
Co-authored-by: Bouke Versteegh <info@boukeversteegh.nl>
Co-authored-by: Shahid <shahid@us.ibm.com>
Co-authored-by: James Strong <strong.james.e@gmail.com>
Co-authored-by: Long Wu Yuan <longwuyuan@gmail.com>
Co-authored-by: Jintao Zhang <zhangjintao9020@gmail.com>
Co-authored-by: Neha Lohia <nehapithadiya444@gmail.com>
Co-authored-by: Akshit Grover <akshit.grover2016@gmail.com>
2021-08-21 13:42:00 -07:00
Matthew Silverman
b591adac48
allow kb granularity for lua shared dicts (#6750)
Update internal/ingress/controller/template/configmap.go

Co-authored-by: Ricardo Katz <rikatz@users.noreply.github.com>

Co-authored-by: Ricardo Katz <rikatz@users.noreply.github.com>
2021-08-12 11:13:50 -07:00
Sergey Shakuto
45995525e7 Retry to download maxmind DB if it fails (#7242)
* Retry to download maxmind DB if it fails.

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Add retries count arg, move retry logic into DownloadGeoLite2DB function

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Reorder parameters in DownloadGeoLite2DB

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>

* Remove hardcoded value

Signed-off-by: Sergey Shakuto <sshakuto@infoblox.com>
2021-08-10 11:24:39 -07:00
Sergey Lanzman
8b2db80433
Update configmap.md (#7462) 2021-08-08 05:19:30 -07:00
Ricardo Katz
2d90ba14f5
Change all master reference to main (#7369) 2021-08-06 17:07:29 -07:00
Benedikt
c51a509ad8
correct ingress-controller naming (#7450) 2021-08-06 12:41:30 -07:00
Jennifer Kirsch
390bd257e7
Add documentation for monitoring without helm (#7455)
* Add documentation for monitoring without helm

As someone who is currently learning Kubernetes without using helm, I wasn't able to get the ingress controller to export metrics without asking someone more experienced for help.

I think a bit more information would be a good addition for my fellow Kubernetes newcomers.  
If there are any wording/ formatting issues, I will be happy to update this.

* Fix typo
2021-08-06 11:57:30 -07:00
wasker
f222c752be
Enable session affinity for canaries (#7371) 2021-07-29 14:23:19 -07:00
Long
9e274dd41c
fix for #7197 & #7285 (#7361) 2021-07-16 06:28:09 -07:00
Long
20b6202620
changed syntax from v1beta1 to v1 (#7362) 2021-07-16 04:38:09 -07:00
kevgrig
65ce8cfbdf
Issue #7153: Add note about matching host names in TLS user guide (#7239) 2021-06-13 10:17:03 -07:00
James Strong
e2f421b9f4
fixing wording for #7094 (#7218) 2021-06-06 12:52:38 -07:00
Ricardo Katz
11d4ddca8e
Revert "feat: multiple-cors-allow-origin support (#7134)" (#7168)
This reverts commit 8a55801cc0.
2021-05-27 05:38:24 -07:00
Alex Zhang
8a55801cc0
feat: multiple-cors-allow-origin support (#7134) 2021-05-23 09:13:39 -07:00
Kubernetes Prow Robot
d08b742453
Merge pull request #6838 from peter-miroshnikov/annotations_custom_timeout_docs
Adding note to Custom Timeouts in Annotation Docs.
2021-05-03 03:40:02 -07:00
Kubernetes Prow Robot
afe10c862b
Merge pull request #6942 from rwaweber/proxyrealipcidr_docs
[docs]: proxy-real-ip-cidr, mention default and comma-separated behavior
2021-04-29 07:58:51 -07:00
Kubernetes Prow Robot
b39679911a
Merge pull request #6895 from webwurst/patch-5
Update link to moved repo
2021-04-29 07:06:51 -07:00
shuheiktgw
01b30a2fa0 Update the link on ketama 2021-04-03 17:23:53 +09:00
Matthew Silverman
08250deedc updating test-runner/echo in code, docs fixup 2021-03-29 12:29:48 -04:00
Matthew Silverman
71c8ef119d add support for the jaeger propagation format
adding default, testing w3c traceparent is propagated
2021-03-26 12:33:24 -04:00
Kubernetes Prow Robot
c90d33c313
Merge pull request #6884 from timmysilv/tracing-endpoint
jaeger-endpoint feature for non-agent trace collectors
2021-03-09 10:59:05 -08:00
rwaweber
cdaf1bdd84 docs: proxy-real-ip-cidr
Mention default setting and comma-separated list behavior.
2021-03-08 22:03:39 -05:00
AnaClaudia
ef714ae52f Allow multiple publish status addresses 2021-02-26 16:57:54 -05:00
Tobias Bradtke
3901261b43
Update link to moved repo 2021-02-22 17:14:49 +01:00
Matthew Silverman
28280de175 jaeger-endpoint configmap attribute 2021-02-18 17:29:35 -05:00
peter-miroshnikov
4787a51ad5 Adding note to Custom Timeouts in Annotation Docs.
It wasnt clear that the timeout values come unitless and in seconds from firsts glance.
Adding a simple note i belive will help.
2021-02-04 11:05:11 +01:00
Gerard Hickey
11f0053d59
Added docs to clear up PROXY definition
The current documentation does not provide information for the difference between `:PROXY` and `::PROXY`. I have added a bit of documentation that defines the difference between the two `PROXY` fields.
2021-01-27 11:27:54 -08:00
Björn Carlsson
54b13bd216 Add flag to allow setting a shutdown grace period 2021-01-27 14:09:04 +01:00
Laszlo Janosi
15eff8220a
fix the documentation for the proxy-ssl-secret and the auth-tls-secret annotations 2021-01-06 09:41:01 +00:00
Elvin Efendi
8c193a2297 fix link in annotation docs 2021-01-05 09:24:23 -05:00
Elvin Efendi
e0dece48f7 Add Global Rate Limiting support 2021-01-04 17:47:07 -05:00
andyxning
bbf831afae add string split function to template funcMap 2020-12-29 13:57:30 +08:00
Josh Soref
a8728f3d2c Spelling 2020-12-15 16:10:48 -05:00
inosato
11825698ff
fix log-format-upstream sample
- Align column names to snake case.
- Align the space.
2020-12-03 23:14:06 +09:00
Kubernetes Prow Robot
35338c4193
Merge pull request #6553 from agile6v/stream
fixes: allow user to specify the maxmium number of retries in stream block
2020-12-02 03:08:51 -08:00
agile6v
06f53bcf05 feat: allow user to specify the maxmium number of retries in stream block. 2020-12-02 14:54:14 +08:00
Matthieu Paret
948265f2e8
indicate configuration for DHE based ciphers 2020-12-01 16:43:11 +01:00
Kubernetes Prow Robot
e3a3ea8826
Merge pull request #6294 from ianbuss/auth-error-redirect-param
Allow customisation of redirect URL parameter in external auth redirects
2020-11-23 01:27:37 -08:00
Round_Robin
1152e80058 Fix typo 2020-11-17 16:03:20 +09:00
Julien Bouquillon
f6a430775c
docs(annotations): explicit redirect status code 2020-11-15 00:31:04 +01:00
Manuel Alejandro de Brito Fontes
3eb440d5ac Update test images 2020-10-29 19:34:05 -03:00
Kubernetes Prow Robot
fb6a03ffb4
Merge pull request #6331 from kundan2707/pathType
fix for 6219
2020-10-15 06:26:24 -07:00
Kundan Kumar
f7372d603e fix for 6219 2020-10-15 12:18:25 +05:30
Aditya Purandare
57b10f5693
Add datadog environment as a configuration option
(cherry picked from commit 4306558baa595606cd6befff08c8c815d6fe2bd4)
2020-10-12 13:52:15 -07:00
Ian Buss
41cf628bdf Add a configurable URL redirect parameter for error URLs 2020-10-08 12:53:46 +01:00
Stevo Slavić
d4152c74fc Sync user guide with config defaults changes
PRs #6226 and #6143 changed the configuration defaults but didn't update
all the configuration defaults docs in the user guide.

This PR updates the user guide to be in sync with the defaults.

Signed-off-by: Stevo Slavić <sslavic@gmail.com>
2020-10-05 10:15:06 +02:00
Kubernetes Prow Robot
6fd891f3df
Merge pull request #6217 from touchifyapp/@feature/cors-expose-headers
Add annotation to configure CORS Access-Control-Expose-Headers
2020-09-26 16:52:48 -07:00
Manuel Alejandro de Brito Fontes
a990ac3910
Change defaults 2020-09-24 21:33:56 -03:00
Maxime LUCE
b7b85175f6 Add annotation to configure CORS Access-Control-Expose-Headers 2020-09-23 17:41:52 +02:00
Daniel Albuschat
d4a817325c
Update annotations.md
Improvements to the documentation of Client Certificate Authentication. (auth-tls-* annotations).
- Mention that these rules are applied per host and not per Ingress/path
- Include more possible and default values
- Describe the headers that are sent to the upstream services
2020-09-23 09:51:08 +02:00
Elvin Efendi
e050ff1b9f disable session tickets by default 2020-09-18 00:08:00 -04:00
Manuel Alejandro de Brito Fontes
87aa96b468 Change server-tokens default value to false 2020-09-17 09:52:07 -03:00
Caleb Lloyd
93cd78aa45 Docs: remove redundant --election-id arg from Multiple Ingresses 2020-09-15 13:55:24 -04:00
Kubernetes Prow Robot
b1c64fa822
Merge pull request #6101 from GianOrtiz/burst
Add annotation to set value for burst multiplier on rate limit
2020-09-10 05:09:45 -07:00
ozhuang
d1e0da7a36
Fixed proxy protocol link 2020-09-04 17:41:11 +08:00
Gian Ortz
3820aa416b Add annotation to set value for burst multiplier on rate limit 2020-08-30 19:43:08 -03:00
Tore Lønøy
903e511b9d fix: log warning if empty ingress class is monitored. Improve docs related to --ingress-class 2020-08-21 09:25:43 +02:00
Goran
743439e75b
Added missing backend protocol.
As per https://kubernetes.github.io/ingress-nginx/user-guide/fcgi-services/
2020-08-14 11:16:53 +02:00
Kubernetes Prow Robot
c500bd4b3f
Merge pull request #4139 from choffmeister/fix/collect-metrics-if-metrics-per-host-false
Always collect metrics when --metrics-per-host=false
2020-08-08 12:02:19 -07:00
Bernard Van De Walle
2baca9e32a Merge branch 'add-opentracing-operation-name-settings' of https://github.com/JorritSalverda/ingress-nginx into add-opentracing-operation-name-settings 2020-07-23 11:42:44 -07:00
David Schwartz
d52141c2b9 Add enable-real-ip 2020-07-15 15:25:29 -04:00
Zhongcheng Lao
c0629e92c2
Add proxy-ssl-server-name to enable passing SNI 2020-07-03 14:14:32 +08:00
agile6v
3402d07ff0
doc: update docs and fixed typos (#5821) 2020-07-01 10:02:52 -04:00
Mason Staugler
a3f2be6b90 Fixup docs for the ingress-class flag.
According to this issue, there is no way to handle all ingress classes.

https://github.com/kubernetes/ingress-nginx/issues/3101
2020-06-26 13:12:48 -04:00
mengqi.wmq
f232a264ab Add default-type as a configurable for default_type 2020-06-21 11:10:51 +08:00
Julian Rüth
8242fc712c
Fix typo 2020-06-09 14:14:58 +02:00
Kubernetes Prow Robot
99aad291a5
Merge pull request #5656 from agile6v/dev
feat: add http-access-log-path and stream-access-log-path options in configMap
2020-06-08 06:27:46 -07:00
Michał Sochoń
1e6cd68e79
Add URL to official grafana dashboards
Convert from italic text to clickable link.
2020-06-08 00:19:52 +02:00