Ingress NGINX Controller for Kubernetes
Find a file
Fabián Sellés Rosa e9664c2566 Add disable path overlap validation flag
## What this PR does / why we need it:

In https://github.com/kubernetes/ingress-nginx/issues/5651 there was a
request to throw an error when there are two ingresses defining the same
host and path, which was implemented as part of the validation webhook.

  Despite of this there are clear rules on the ingress controller that
describes what the controller would do in [such situation (the oldest
rule wins)](https://github.com/kubernetes/ingress-nginx/blob/main/docs/how-it-works.md?plain=1#L27)

  Some users are relying on this validation behaviour to prevent
misconfigurations, but there are use cases where allowing it, maybe
temporarily, is helpful. Those use cases includes:

  - Splitting large ingresses objects in smaller ones https://github.com/kubernetes/ingress-nginx/issues/10820
  - Moving ingress objects between namespaces without downtime (like when you transfer an ingress from team A that owns namespace A to team B that owns namespace B) https://github.com/kubernetes/ingress-nginx/issues/10090

<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->

  ## Types of changes

- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds functionality)
- [ ] CVE Report (Scanner found CVE and adding report)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation only

  ## Which issue/s this PR fixes

It might help with #10820

<!--- 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. -->

  ## How Has This Been Tested?

building an image and testing it in a local cluster, will update later
with some real life scenarios

<!--- 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! -->
  ## Checklist:

- [X] My change requires a change to the documentation.
- [ ] 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 unit and/or e2e tests to cover my changes.
- [X] All new and existing tests passed.

Change-Id: I9d4124d1c36876b06d63100cd10988eaf2f41db9
2024-11-26 15:58:34 +01:00
.github Bump the actions group with 3 updates (#12406) 2024-11-25 11:56:55 +00:00
build Tests: Bump e2e-test-runner to v20241104-02a3933e. (#12311) 2024-11-05 20:53:44 +01:00
changelog Release controller v1.12.0-beta.0/v1.11.3/v1.10.5 & chart v4.12.0-beta.0/v4.11.3/v4.10.5. (#12166) 2024-10-15 10:48:22 +01:00
charts/ingress-nginx Chart: Add service cluster IPs. (#12333) 2024-11-12 21:26:46 +00:00
cmd Fix minor typos (#11935) 2024-09-06 15:59:43 +01:00
deploy Release controller v1.12.0-beta.0/v1.11.3/v1.10.5 & chart v4.12.0-beta.0/v4.11.3/v4.10.5. (#12166) 2024-10-15 10:48:22 +01:00
docs Config/Annotations: Add relative-redirects. (#12161) 2024-11-13 21:02:48 +00:00
hack Deploy: Use LoadBalancer for KIND. (#12232) 2024-10-29 08:00:07 +01:00
images Bump the go group across 3 directories with 10 updates (#12407) 2024-11-25 12:46:56 +00:00
internal Add disable path overlap validation flag 2024-11-26 15:58:34 +01:00
magefiles Go: Bump to v1.23.3. (#12320) 2024-11-10 20:36:43 +00:00
pkg Add disable path overlap validation flag 2024-11-26 15:58:34 +01:00
rootfs Config/Annotations: Add relative-redirects. (#12161) 2024-11-13 21:02:48 +00:00
test Add disable path overlap validation flag 2024-11-26 15:58:34 +01:00
version Refactor version helper (#4437) 2019-08-13 13:46:16 -04:00
.ct.yaml refactor helm ci tests part I (#11178) 2024-03-31 13:21:33 -07:00
.gcloudignore add gcloud ignore 2023-06-23 09:31:00 -04:00
.gitignore Chart: Improve CI. (#12003) 2024-09-28 14:40:02 +01:00
.golangci.yml Bump golangci-lint on actions and disable deprecated linters (#12360) 2024-11-13 15:38:47 +00:00
.goreleaser.yaml Reimplement kubectl plugin release workflow (#8812) 2022-08-11 21:22:43 -07:00
.luacheckrc Lua: Remove plugins from .luacheckrc & E2E docs. (#11872) 2024-08-26 21:18:18 +02:00
Changelog.md Fix minor typos (#11935) 2024-09-06 15:59:43 +01:00
cloudbuild.yaml Images: Bump gcb-docker-gcloud to v20241110-72bb0b1665. (#12340) 2024-11-11 02:22:44 +00:00
code-of-conduct.md Update code-of-conduct.md (#1842) 2017-12-20 15:34:27 -03:00
CONTRIBUTING.md Tips for new contributors (#8924) 2022-09-19 06:15:23 -07:00
ginkgo_upgrade.md Correct typo from 'gingko' to 'ginkgo' (#10780) 2023-12-20 17:06:41 +01:00
go.mod Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#12409) 2024-11-25 13:40:56 +00:00
go.sum Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#12409) 2024-11-25 13:40:56 +00:00
go.work Go: Bump to v1.23.3. (#12320) 2024-11-10 20:36:43 +00:00
go.work.sum Bump github.com/onsi/ginkgo/v2 from 2.20.2 to 2.21.0 (#12271) 2024-11-04 09:19:28 +00:00
GOLANG_VERSION Go: Bump to v1.23.3. (#12320) 2024-11-10 20:36:43 +00:00
ISSUE_TRIAGE.md Fix typos in ISSUE_TRIAGE.md (#7863) 2021-11-04 04:52:03 -07:00
LICENSE Initial commit 2016-11-04 23:54:14 +01:00
Makefile Images: Drop s390x. (#12131) 2024-10-07 13:30:21 +01:00
MANUAL_RELEASE.md Chart: Improve CI. (#12003) 2024-09-28 14:40:02 +01:00
mkdocs.yml Chart: Remove Pod Security Policy. (#11971) 2024-09-15 17:03:24 +02:00
netlify.toml netlify: Only trigger preview when there are changes in docs. (#10144) 2023-06-27 11:50:32 -07:00
NEW_CONTRIBUTOR.md Fix minor typos (#11935) 2024-09-06 15:59:43 +01:00
NEW_RELEASE_PROCESS.md Add mage files for changelog 2023-01-19 11:46:01 -05:00
NGINX_BASE Images: Bump NGINX_BASE to v1.0.0. (#12066) 2024-10-01 22:22:16 +02:00
OWNERS Owners: Promote Gacko to ingress-nginx-maintainers & ingress-nginx-reviewers. (#11165) 2024-04-04 08:01:10 -07:00
OWNERS_ALIASES Owners: Promote Gacko to admin. (#11463) 2024-06-14 10:38:06 -07:00
README.md Release controller v1.12.0-beta.0/v1.11.3/v1.10.5 & chart v4.12.0-beta.0/v4.11.3/v4.10.5. (#12166) 2024-10-15 10:48:22 +01:00
SECURITY.md Add SECURITY.md 2020-07-27 16:01:17 -06:00
SECURITY_CONTACTS Chores: Align security contacts & chart maintainers to actual owners. (#11465) 2024-06-17 05:25:38 -07:00

Ingress NGINX Controller

CII Best Practices Go Report Card GitHub license GitHub stars GitHub stars

Overview

ingress-nginx is an Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer.

Learn more about Ingress on the Kubernetes documentation site.

Get started

See the Getting Started document.

Do not use in multi-tenant Kubernetes production installations. This project assumes that users that can create Ingress objects are administrators of the cluster. See the FAQ for more.

Troubleshooting

If you encounter issues, review the troubleshooting docs, file an issue, or talk to us on the #ingress-nginx channel on the Kubernetes Slack server.

Changelog

See the list of releases for all changes. For detailed changes for each release, please check the changelog-$version.md file for the release version. For detailed changes on the ingress-nginx helm chart, please check the changelog folder for a specific version. CHANGELOG-$current-version.md file.

Supported Versions table

Supported versions for the ingress-nginx project mean that we have completed E2E tests, and they are passing for the versions listed. Ingress-Nginx versions may work on older versions, but the project does not make that guarantee.

Supported Ingress-NGINX version k8s supported version Alpine Version Nginx Version Helm Chart Version
🔄 v1.12.0-beta.0 1.31, 1.30, 1.29, 1.28 3.20.3 1.25.5 4.12.0-beta.0
🔄 v1.11.3 1.30, 1.29, 1.28, 1.27, 1.26 3.20.3 1.25.5 4.11.3
🔄 v1.11.2 1.30, 1.29, 1.28, 1.27, 1.26 3.20.0 1.25.5 4.11.2
🔄 v1.11.1 1.30, 1.29, 1.28, 1.27, 1.26 3.20.0 1.25.5 4.11.1
🔄 v1.11.0 1.30, 1.29, 1.28, 1.27, 1.26 3.20.0 1.25.5 4.11.0
v1.10.5 1.30, 1.29, 1.28, 1.27, 1.26 3.20.3 1.25.5 4.10.5
v1.10.4 1.30, 1.29, 1.28, 1.27, 1.26 3.20.0 1.25.5 4.10.4
v1.10.3 1.30, 1.29, 1.28, 1.27, 1.26 3.20.0 1.25.5 4.10.3
v1.10.2 1.30, 1.29, 1.28, 1.27, 1.26 3.20.0 1.25.5 4.10.2
v1.10.1 1.30, 1.29, 1.28, 1.27, 1.26 3.19.1 1.25.3 4.10.1
v1.10.0 1.29, 1.28, 1.27, 1.26 3.19.1 1.25.3 4.10.0
v1.9.6 1.29, 1.28, 1.27, 1.26, 1.25 3.19.0 1.21.6 4.9.1
v1.9.5 1.28, 1.27, 1.26, 1.25 3.18.4 1.21.6 4.9.0
v1.9.4 1.28, 1.27, 1.26, 1.25 3.18.4 1.21.6 4.8.3
v1.9.3 1.28, 1.27, 1.26, 1.25 3.18.4 1.21.6 4.8.*
v1.9.1 1.28, 1.27, 1.26, 1.25 3.18.4 1.21.6 4.8.*
v1.9.0 1.28, 1.27, 1.26, 1.25 3.18.2 1.21.6 4.8.*
v1.8.4 1.27, 1.26, 1.25, 1.24 3.18.2 1.21.6 4.7.*
v1.7.1 1.27, 1.26, 1.25, 1.24 3.17.2 1.21.6 4.6.*
v1.6.4 1.26, 1.25, 1.24, 1.23 3.17.0 1.21.6 4.5.*
v1.5.1 1.25, 1.24, 1.23 3.16.2 1.21.6 4.4.*
v1.4.0 1.25, 1.24, 1.23, 1.22 3.16.2 1.19.10† 4.3.0
v1.3.1 1.24, 1.23, 1.22, 1.21, 1.20 3.16.2 1.19.10† 4.2.5

See this article if you want upgrade to the stable Ingress API.

Get Involved

Thanks for taking the time to join our community and start contributing!

  • This project adheres to the Kubernetes Community Code of Conduct. By participating in this project, you agree to abide by its terms.

  • Contributing: Contributions of all kinds are welcome!

    • Read CONTRIBUTING.md for information about setting up your environment, the workflow that we expect, and instructions on the developer certificate of origin that we require.
    • Join our Kubernetes Slack channel for developer discussion : #ingress-nginx-dev.
    • Submit GitHub issues for any feature enhancements, bugs, or documentation problems.
      • Please make sure to read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may be closed immediately.
    • Join our ingress-nginx-dev mailing list
  • Support:

License

Apache License 2.0