Compare commits
200 commits
main
...
helm-chart
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f08a1c4fda | ||
![]() |
71ecd17faa | ||
![]() |
648cbcca7c | ||
![]() |
5862677a1b | ||
![]() |
eff40aca50 | ||
![]() |
591021acd5 | ||
![]() |
255ee7bacc | ||
![]() |
a76ecf8111 | ||
![]() |
dc2df247f2 | ||
![]() |
a354195cce | ||
![]() |
1b3ea586ab | ||
![]() |
0d5f75b2cf | ||
![]() |
819eee899d | ||
![]() |
164163ec7f | ||
![]() |
b77e9ed3e8 | ||
![]() |
a01effb8e5 | ||
![]() |
cdd03fe5b1 | ||
![]() |
f76e9be8d6 | ||
![]() |
ce3704217c | ||
![]() |
fd170c23b5 | ||
![]() |
d600fb4978 | ||
![]() |
b881aaf138 | ||
![]() |
50108c72ba | ||
![]() |
06653e0fbc | ||
![]() |
266731de45 | ||
![]() |
9803c78395 | ||
![]() |
9b962ecec7 | ||
![]() |
a0ca791929 | ||
![]() |
2d6c3302fa | ||
![]() |
050091395e | ||
![]() |
48e407fc6d | ||
![]() |
2bce6a13db | ||
![]() |
d248928ad1 | ||
![]() |
9ed5485745 | ||
![]() |
2c32bd026f | ||
![]() |
6fb9570ac7 | ||
![]() |
d1adb0de3f | ||
![]() |
eed43af7e3 | ||
![]() |
6569d0f073 | ||
![]() |
a52c90027b | ||
![]() |
f03baa3c88 | ||
![]() |
f68f050d09 | ||
![]() |
ff64e1b306 | ||
![]() |
82e59ecc38 | ||
![]() |
b14d04725e | ||
![]() |
4aad186ba2 | ||
![]() |
52aceaa71b | ||
![]() |
bf259d3dba | ||
![]() |
b60945a4ab | ||
![]() |
3931896894 | ||
![]() |
514b10231f | ||
![]() |
720ace11ef | ||
![]() |
5350b31a43 | ||
![]() |
167963ad76 | ||
![]() |
59d229063a | ||
![]() |
18735f0896 | ||
![]() |
0300cb2214 | ||
![]() |
d10c13e8e9 | ||
![]() |
3be3826f06 | ||
![]() |
661f78f6c2 | ||
![]() |
fa6bae0df2 | ||
![]() |
9b0d42b684 | ||
![]() |
4a1e939f49 | ||
![]() |
7641fa9ce2 | ||
![]() |
ccc77e2c6d | ||
![]() |
437024a84c | ||
![]() |
fa662742ea | ||
![]() |
88ad22449d | ||
![]() |
41f7a75151 | ||
![]() |
a0a93532f1 | ||
![]() |
3742eaafbd | ||
![]() |
477940af10 | ||
![]() |
96610e143b | ||
![]() |
c53a951975 | ||
![]() |
742c620520 | ||
![]() |
5d3bcda0c2 | ||
![]() |
88494aa11d | ||
![]() |
22fe1d4217 | ||
![]() |
d540c2b042 | ||
![]() |
1aa7c0c33c | ||
![]() |
292a17201b | ||
![]() |
46c637ef26 | ||
![]() |
bdbbbf1673 | ||
![]() |
e5989790fa | ||
![]() |
f00aeea08e | ||
![]() |
8acccfa5df | ||
![]() |
efde9812a5 | ||
![]() |
c268ceeaed | ||
![]() |
1827dcd86a | ||
![]() |
75900979dd | ||
![]() |
df81496a80 | ||
![]() |
6f87f257e5 | ||
![]() |
c36c8dee26 | ||
![]() |
d6dad98091 | ||
![]() |
5c6af27dc9 | ||
![]() |
dd86317f9d | ||
![]() |
304a7b4c64 | ||
![]() |
ff4a9ff36c | ||
![]() |
a7b4a20a65 | ||
![]() |
7ed3aac270 | ||
![]() |
1651900d8a | ||
![]() |
ed22643d86 | ||
![]() |
8f3968b396 | ||
![]() |
4d3a363caf | ||
![]() |
9f4d0104dd | ||
![]() |
54e18fb2a1 | ||
![]() |
c1d699afa4 | ||
![]() |
826e32cf0c | ||
![]() |
9409bb15da | ||
![]() |
f2959041e3 | ||
![]() |
503843119c | ||
![]() |
0751a725fd | ||
![]() |
e2b3ac95a2 | ||
![]() |
b7f6f93334 | ||
![]() |
18cfd1daac | ||
![]() |
db3990d557 | ||
![]() |
047fa58e26 | ||
![]() |
7520982b4e | ||
![]() |
075ce7c13c | ||
![]() |
fa9ab5c27f | ||
![]() |
49d79b13f0 | ||
![]() |
ac94566196 | ||
![]() |
4bf5b5f156 | ||
![]() |
5d6a0707ba | ||
![]() |
1e2e5e182e | ||
![]() |
66d4815bdd | ||
![]() |
d643824e6d | ||
![]() |
f3139368c7 | ||
![]() |
d768e7da3c | ||
![]() |
6b06dae74e | ||
![]() |
01443c06cb | ||
![]() |
ae0715edfd | ||
![]() |
ad56693997 | ||
![]() |
5ed84026fb | ||
![]() |
427d275dce | ||
![]() |
86ad4bf511 | ||
![]() |
ce4f962a45 | ||
![]() |
0a7fe6d4ed | ||
![]() |
bcb5249ea7 | ||
![]() |
a4e5daebec | ||
![]() |
1a7f674422 | ||
![]() |
6fbd58353f | ||
![]() |
5ad073b96c | ||
![]() |
c5ffbd3cf5 | ||
![]() |
213b723d81 | ||
![]() |
755301d84c | ||
![]() |
2c48919a9c | ||
![]() |
f8f6c5dcf6 | ||
![]() |
f14c3f3ada | ||
![]() |
d00ff4e50e | ||
![]() |
4fb5aac1dd | ||
![]() |
6879b6644e | ||
![]() |
4b3116dc6a | ||
![]() |
a5fe09e80e | ||
![]() |
d44e727fb3 | ||
![]() |
7fc7410368 | ||
![]() |
93d228bdb9 | ||
![]() |
c855617a4f | ||
![]() |
e9b921a6c7 | ||
![]() |
1468f203a0 | ||
![]() |
941a00c0aa | ||
![]() |
84020427b1 | ||
![]() |
eab36bb868 | ||
![]() |
42284d1e73 | ||
![]() |
ba809fab7e | ||
![]() |
6a1e1fa2c5 | ||
![]() |
c99c94c8df | ||
![]() |
33504cf2e6 | ||
![]() |
436df3e4a2 | ||
![]() |
fa9e4fb423 | ||
![]() |
218fae6c2c | ||
![]() |
9835f4a5b1 | ||
![]() |
4ab8ee0512 | ||
![]() |
b44f3d248b | ||
![]() |
e380c5f321 | ||
![]() |
4c24deeefc | ||
![]() |
30b7d16af2 | ||
![]() |
ef2b2668de | ||
![]() |
5926ebe73d | ||
![]() |
97921626f9 | ||
![]() |
e09f96ef56 | ||
![]() |
506a02f750 | ||
![]() |
48069d3d12 | ||
![]() |
aa947f5bd4 | ||
![]() |
8cd7ff8754 | ||
![]() |
3230e4abbc | ||
![]() |
13f8b28251 | ||
![]() |
574ae2e3a6 | ||
![]() |
dbb267036f | ||
![]() |
4f530225e5 | ||
![]() |
c7d42b95d7 | ||
![]() |
02ca3e1b41 | ||
![]() |
9ef5800e42 | ||
![]() |
0f9df16424 | ||
![]() |
f118d67042 | ||
![]() |
7f8bebeb88 | ||
![]() |
2e08614265 | ||
![]() |
cbf6d2a7f1 | ||
![]() |
8d3d4a33bf | ||
![]() |
71f78d49f0 |
255 changed files with 71244 additions and 64507 deletions
20
hack/verify-chart-lint.sh → .ct.yaml
Executable file → Normal file
20
hack/verify-chart-lint.sh → .ct.yaml
Executable file → Normal file
|
@ -1,6 +1,4 @@
|
||||||
#!/bin/bash
|
# Copyright 2024 The Kubernetes Authors.
|
||||||
|
|
||||||
# Copyright 2020 The Kubernetes Authors.
|
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -13,10 +11,16 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
---
|
||||||
|
remote: origin
|
||||||
|
target-branch: main
|
||||||
|
|
||||||
set -o errexit
|
validate-maintainers: false
|
||||||
set -o nounset
|
check-version-increment: false
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
KUBE_ROOT="$( cd "$(dirname "$0")../" >/dev/null 2>&1 ; pwd -P )"
|
chart-repos:
|
||||||
ct lint --charts ${KUBE_ROOT}/charts/ingress-nginx --validate-maintainers=false
|
- ingress-nginx=https://kubernetes.github.io/ingress-nginx
|
||||||
|
helm-extra-args: --timeout 800s
|
||||||
|
|
||||||
|
chart-dirs:
|
||||||
|
- charts
|
3
.github/ISSUE_TEMPLATE/cve_report.md
vendored
3
.github/ISSUE_TEMPLATE/cve_report.md
vendored
|
@ -4,8 +4,9 @@ about: CVE reporting for ingress-nginx
|
||||||
title: ''
|
title: ''
|
||||||
labels: kind/bug
|
labels: kind/bug
|
||||||
assignees:
|
assignees:
|
||||||
- strongjz
|
- Gacko
|
||||||
- rikatz
|
- rikatz
|
||||||
|
- strongjz
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- if you found something that impacts directly ingress-nginx and
|
<!-- if you found something that impacts directly ingress-nginx and
|
||||||
|
|
2
.github/actions/mkdocs/Dockerfile
vendored
2
.github/actions/mkdocs/Dockerfile
vendored
|
@ -1,4 +1,4 @@
|
||||||
FROM squidfunk/mkdocs-material:9.4.5
|
FROM squidfunk/mkdocs-material:9.4.5
|
||||||
|
|
||||||
COPY action.sh /action.sh
|
COPY action.sh /action.sh
|
||||||
|
|
||||||
|
|
14
.github/dependabot.yml
vendored
14
.github/dependabot.yml
vendored
|
@ -9,6 +9,10 @@ updates:
|
||||||
- "area/dependency"
|
- "area/dependency"
|
||||||
- "release-note-none"
|
- "release-note-none"
|
||||||
- "ok-to-test"
|
- "ok-to-test"
|
||||||
|
groups:
|
||||||
|
all:
|
||||||
|
update-types:
|
||||||
|
- "patch"
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
|
@ -17,6 +21,11 @@ updates:
|
||||||
- "area/dependency"
|
- "area/dependency"
|
||||||
- "release-note-none"
|
- "release-note-none"
|
||||||
- "ok-to-test"
|
- "ok-to-test"
|
||||||
|
groups:
|
||||||
|
all:
|
||||||
|
update-types:
|
||||||
|
- "minor"
|
||||||
|
- "patch"
|
||||||
- package-ecosystem: "docker"
|
- package-ecosystem: "docker"
|
||||||
directory: "/images"
|
directory: "/images"
|
||||||
schedule:
|
schedule:
|
||||||
|
@ -25,3 +34,8 @@ updates:
|
||||||
- "area/dependency"
|
- "area/dependency"
|
||||||
- "release-note-none"
|
- "release-note-none"
|
||||||
- "ok-to-test"
|
- "ok-to-test"
|
||||||
|
groups:
|
||||||
|
actions:
|
||||||
|
update-types:
|
||||||
|
- "minor"
|
||||||
|
- "patch"
|
||||||
|
|
115
.github/workflows/ci.yaml
vendored
115
.github/workflows/ci.yaml
vendored
|
@ -47,9 +47,9 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
|
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -74,17 +74,17 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: changes
|
needs: changes
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true')
|
(needs.changes.outputs.go == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Get go version
|
- name: Get go version
|
||||||
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
id: go
|
id: go
|
||||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOLANG_VERSION }}
|
go-version: ${{ env.GOLANG_VERSION }}
|
||||||
check-latest: true
|
check-latest: true
|
||||||
|
@ -99,14 +99,14 @@ jobs:
|
||||||
outputs:
|
outputs:
|
||||||
golangversion: ${{ steps.golangversion.outputs.version }}
|
golangversion: ${{ steps.golangversion.outputs.version }}
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true')
|
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PLATFORMS: linux/amd64
|
PLATFORMS: linux/amd64
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Get go version
|
- name: Get go version
|
||||||
id: golangversion
|
id: golangversion
|
||||||
run: |
|
run: |
|
||||||
|
@ -114,17 +114,17 @@ jobs:
|
||||||
|
|
||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
id: go
|
id: go
|
||||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||||
with:
|
with:
|
||||||
go-version: ${{ steps.golangversion.outputs.version }}
|
go-version: ${{ steps.golangversion.outputs.version }}
|
||||||
check-latest: true
|
check-latest: true
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
|
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
|
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
|
|
||||||
|
@ -136,14 +136,14 @@ jobs:
|
||||||
curl -LO https://dl.k8s.io/release/v1.27.3/bin/linux/amd64/kubectl
|
curl -LO https://dl.k8s.io/release/v1.27.3/bin/linux/amd64/kubectl
|
||||||
chmod +x ./kubectl
|
chmod +x ./kubectl
|
||||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||||
|
|
||||||
- name: Build NGINX Base image
|
- name: Build NGINX Base image
|
||||||
if: |
|
if: |
|
||||||
needs.changes.outputs.baseimage == 'true'
|
needs.changes.outputs.baseimage == 'true'
|
||||||
run: |
|
run: |
|
||||||
export TAG=$(cat images/nginx-1.25/TAG)
|
export TAG=$(cat images/nginx-1.25/TAG)
|
||||||
cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --load -t registry.k8s.io/ingress-nginx/nginx-1.25:${TAG} .
|
cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --load -t registry.k8s.io/ingress-nginx/nginx-1.25:${TAG} .
|
||||||
|
|
||||||
- name: Build images
|
- name: Build images
|
||||||
env:
|
env:
|
||||||
TAG: 1.0.0-dev
|
TAG: 1.0.0-dev
|
||||||
|
@ -163,33 +163,35 @@ jobs:
|
||||||
| gzip > docker.tar.gz
|
| gzip > docker.tar.gz
|
||||||
|
|
||||||
- name: cache
|
- name: cache
|
||||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
path: docker.tar.gz
|
path: docker.tar.gz
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
helm:
|
|
||||||
name: Helm chart
|
helm-lint:
|
||||||
|
name: Helm chart lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs:
|
needs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true')
|
(needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0]
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Setup Go
|
|
||||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
|
||||||
with:
|
with:
|
||||||
go-version: ${{ needs.build.outputs.golangversion }}
|
fetch-depth: 0
|
||||||
check-latest: true
|
|
||||||
|
- name: Set up Helm
|
||||||
|
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
|
||||||
|
|
||||||
|
- uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
|
||||||
|
- name: Set up chart-testing
|
||||||
|
uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1
|
||||||
|
|
||||||
- name: Install Helm Unit Test Plugin
|
- name: Install Helm Unit Test Plugin
|
||||||
run: |
|
run: |
|
||||||
|
@ -199,14 +201,8 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
helm unittest charts/ingress-nginx -d
|
helm unittest charts/ingress-nginx -d
|
||||||
|
|
||||||
- name: cache
|
- name: Run chart-testing (lint)
|
||||||
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
|
run: ct lint --config ./.ct.yaml
|
||||||
with:
|
|
||||||
name: docker.tar.gz
|
|
||||||
|
|
||||||
- name: Lint
|
|
||||||
run: |
|
|
||||||
./build/run-in-docker.sh ./hack/verify-chart-lint.sh
|
|
||||||
|
|
||||||
- name: Run helm-docs
|
- name: Run helm-docs
|
||||||
run: |
|
run: |
|
||||||
|
@ -227,6 +223,35 @@ jobs:
|
||||||
./ah lint -p charts/ingress-nginx || exit 1
|
./ah lint -p charts/ingress-nginx || exit 1
|
||||||
rm -f ./ah ./ah_1.5.0_linux_amd64.tar.gz
|
rm -f ./ah ./ah_1.5.0_linux_amd64.tar.gz
|
||||||
|
|
||||||
|
helm-test:
|
||||||
|
name: Helm chart testing
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- changes
|
||||||
|
- build
|
||||||
|
- helm-lint
|
||||||
|
if: |
|
||||||
|
(needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
k8s: [v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||||
|
with:
|
||||||
|
go-version: ${{ needs.build.outputs.golangversion }}
|
||||||
|
check-latest: true
|
||||||
|
|
||||||
|
- name: cache
|
||||||
|
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
|
||||||
|
with:
|
||||||
|
name: docker.tar.gz
|
||||||
|
|
||||||
- name: fix permissions
|
- name: fix permissions
|
||||||
run: |
|
run: |
|
||||||
sudo mkdir -p $HOME/.kube
|
sudo mkdir -p $HOME/.kube
|
||||||
|
@ -258,10 +283,10 @@ jobs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
- build
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true')
|
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0]
|
k8s: [v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0]
|
||||||
uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml
|
uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml
|
||||||
with:
|
with:
|
||||||
k8s-version: ${{ matrix.k8s }}
|
k8s-version: ${{ matrix.k8s }}
|
||||||
|
@ -272,10 +297,10 @@ jobs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
- build
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true')
|
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0]
|
k8s: [v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0]
|
||||||
uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml
|
uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml
|
||||||
with:
|
with:
|
||||||
k8s-version: ${{ matrix.k8s }}
|
k8s-version: ${{ matrix.k8s }}
|
||||||
|
@ -287,10 +312,10 @@ jobs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
- build
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true')
|
(needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true') || ${{ github.event.workflow_dispatch.run_e2e == 'true' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0]
|
k8s: [v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0]
|
||||||
uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml
|
uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml
|
||||||
with:
|
with:
|
||||||
k8s-version: ${{ matrix.k8s }}
|
k8s-version: ${{ matrix.k8s }}
|
||||||
|
|
4
.github/workflows/depreview.yaml
vendored
4
.github/workflows/depreview.yaml
vendored
|
@ -9,6 +9,6 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout Repository'
|
- name: 'Checkout Repository'
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3
|
uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4
|
||||||
|
|
6
.github/workflows/docs.yaml
vendored
6
.github/workflows/docs.yaml
vendored
|
@ -23,9 +23,9 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
|
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -47,7 +47,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout master
|
- name: Checkout master
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: ./.github/actions/mkdocs
|
uses: ./.github/actions/mkdocs
|
||||||
|
|
17
.github/workflows/golangci-lint.yml
vendored
17
.github/workflows/golangci-lint.yml
vendored
|
@ -2,10 +2,9 @@ name: golangci-lint
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
|
||||||
- "*"
|
|
||||||
paths:
|
paths:
|
||||||
- '**/*.go'
|
- '**/*.go'
|
||||||
|
- '.github/workflows/golangci-lint.yml'
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -16,19 +15,19 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Get go version
|
- name: Get go version
|
||||||
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
id: go
|
id: go
|
||||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOLANG_VERSION }}
|
go-version: ${{ env.GOLANG_VERSION }}
|
||||||
check-latest: true
|
check-latest: true
|
||||||
|
|
||||||
- name: golangci-lint
|
- name: golangci-lint
|
||||||
uses: golangci/golangci-lint-action@3cfe3a4abbb849e10058ce4af15d205b6da42804 # v4.0.0
|
uses: golangci/golangci-lint-action@aaa42aa0628b4ae2578232a66b541047968fac86 # v6.1.0
|
||||||
with:
|
with:
|
||||||
version: v1.55.2
|
version: v1.56
|
||||||
|
|
32
.github/workflows/helm.yaml
vendored
32
.github/workflows/helm.yaml
vendored
|
@ -4,6 +4,9 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
- release-*
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -11,19 +14,20 @@ permissions:
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
changes:
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read # for dorny/paths-filter to fetch a list of changed files
|
contents: read # for dorny/paths-filter to fetch a list of changed files
|
||||||
pull-requests: read # for dorny/paths-filter to read pull requests
|
|
||||||
runs-on: ubuntu-latest
|
if: github.repository == 'kubernetes/ingress-nginx'
|
||||||
if: |
|
|
||||||
(github.repository == 'kubernetes/ingress-nginx')
|
|
||||||
outputs:
|
outputs:
|
||||||
docs: ${{ steps.filter.outputs.docs }}
|
docs: ${{ steps.filter.outputs.docs }}
|
||||||
charts: ${{ steps.filter.outputs.charts }}
|
charts: ${{ steps.filter.outputs.charts }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Run Artifact Hub lint
|
- name: Run Artifact Hub lint
|
||||||
run: |
|
run: |
|
||||||
|
@ -33,11 +37,13 @@ jobs:
|
||||||
./ah lint -p charts/ingress-nginx || exit 1
|
./ah lint -p charts/ingress-nginx || exit 1
|
||||||
rm -f ./ah ./ah_1.5.0_linux_amd64.tar.gz
|
rm -f ./ah ./ah_1.5.0_linux_amd64.tar.gz
|
||||||
|
|
||||||
- name: Lint
|
- name: Set up chart-testing
|
||||||
run: |
|
uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1
|
||||||
./build/run-in-docker.sh ./hack/verify-chart-lint.sh
|
|
||||||
|
|
||||||
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
|
- name: Run chart-testing (lint)
|
||||||
|
run: ct lint --target-branch ${{ github.ref_name }} --config ./.ct.yaml
|
||||||
|
|
||||||
|
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -55,16 +61,16 @@ jobs:
|
||||||
|
|
||||||
needs:
|
needs:
|
||||||
- changes
|
- changes
|
||||||
if: |
|
|
||||||
(github.repository == 'kubernetes/ingress-nginx') &&
|
if: ${{ needs.changes.outputs.charts == 'true' }}
|
||||||
(needs.changes.outputs.charts == 'true')
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout master
|
- name: Checkout master
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
with:
|
with:
|
||||||
# Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896
|
# Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
ref: ${{ github.ref_name }}
|
||||||
|
|
||||||
- name: Setup
|
- name: Setup
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
25
.github/workflows/images.yaml
vendored
25
.github/workflows/images.yaml
vendored
|
@ -41,8 +41,8 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
|
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -69,7 +69,7 @@ jobs:
|
||||||
- 'images/opentelemetry/**'
|
- 'images/opentelemetry/**'
|
||||||
nginx125:
|
nginx125:
|
||||||
- 'images/nginx-1.25/TAG'
|
- 'images/nginx-1.25/TAG'
|
||||||
|
|
||||||
#### TODO: Make the below jobs 'less dumb' and use the job name as parameter (the github.job context does not work here)
|
#### TODO: Make the below jobs 'less dumb' and use the job name as parameter (the github.job context does not work here)
|
||||||
cfssl:
|
cfssl:
|
||||||
needs: changes
|
needs: changes
|
||||||
|
@ -89,7 +89,6 @@ jobs:
|
||||||
name: custom-error-pages
|
name: custom-error-pages
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
|
|
||||||
e2e-test-echo:
|
e2e-test-echo:
|
||||||
needs: changes
|
needs: changes
|
||||||
if: |
|
if: |
|
||||||
|
@ -142,17 +141,17 @@ jobs:
|
||||||
(needs.changes.outputs.kube-webhook-certgen == 'true')
|
(needs.changes.outputs.kube-webhook-certgen == 'true')
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0, v1.29.0]
|
k8s: [v1.26.15, v1.27.13, v1.28.9, v1.29.4, v1.30.0]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Get go version
|
- name: Get go version
|
||||||
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
id: go
|
id: go
|
||||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOLANG_VERSION }}
|
go-version: ${{ env.GOLANG_VERSION }}
|
||||||
check-latest: true
|
check-latest: true
|
||||||
|
@ -179,7 +178,7 @@ jobs:
|
||||||
nginx: ['1.25.3', '1.21.6']
|
nginx: ['1.25.3', '1.21.6']
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
- name: image build
|
- name: image build
|
||||||
run: |
|
run: |
|
||||||
cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build
|
cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build
|
||||||
|
@ -196,17 +195,17 @@ jobs:
|
||||||
PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x
|
PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
|
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
|
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
platforms: ${{ env.PLATFORMS }}
|
platforms: ${{ env.PLATFORMS }}
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
|
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
@ -214,5 +213,3 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
export TAG=$(cat images/nginx-1.25/TAG)
|
export TAG=$(cat images/nginx-1.25/TAG)
|
||||||
cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --push -t ingressnginx/nginx-1.25:${TAG} .
|
cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --push -t ingressnginx/nginx-1.25:${TAG} .
|
||||||
|
|
||||||
|
|
||||||
|
|
2
.github/workflows/junit-reports.yaml
vendored
2
.github/workflows/junit-reports.yaml
vendored
|
@ -9,7 +9,7 @@ jobs:
|
||||||
report:
|
report:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: dorny/test-reporter@eaa763f6ffc21c7a37837f56cd5f9737f27fc6c8 # v1.8.0
|
- uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 # v1.9.1
|
||||||
with:
|
with:
|
||||||
artifact: /e2e-test-reports-(.*)/
|
artifact: /e2e-test-reports-(.*)/
|
||||||
name: JEST Tests $1 # Name of the check run which will be created
|
name: JEST Tests $1 # Name of the check run which will be created
|
||||||
|
|
2
.github/workflows/perftest.yaml
vendored
2
.github/workflows/perftest.yaml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Install K6
|
- name: Install K6
|
||||||
run: |
|
run: |
|
||||||
|
|
10
.github/workflows/plugin.yaml
vendored
10
.github/workflows/plugin.yaml
vendored
|
@ -12,7 +12,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
@ -20,23 +20,23 @@ jobs:
|
||||||
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.GOLANG_VERSION }}
|
go-version: ${{ env.GOLANG_VERSION }}
|
||||||
check-latest: true
|
check-latest: true
|
||||||
|
|
||||||
- name: Run GoReleaser Snapshot
|
- name: Run GoReleaser Snapshot
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
|
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
|
||||||
uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0
|
uses: goreleaser/goreleaser-action@286f3b13b1b49da4ac219696163fb8c1c93e1200 # v6.0.0
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
args: release --snapshot --clean
|
args: release --snapshot --clean
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Run GoReleaser
|
- name: Run GoReleaser
|
||||||
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||||
uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0
|
uses: goreleaser/goreleaser-action@286f3b13b1b49da4ac219696163fb8c1c93e1200 # v6.0.0
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
args: release --clean
|
args: release --clean
|
||||||
|
|
2
.github/workflows/project.yml
vendored
2
.github/workflows/project.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
||||||
repository-projects: write
|
repository-projects: write
|
||||||
issues: write
|
issues: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/add-to-project@31b3f3ccdc584546fc445612dec3f38ff5edb41c # v0.5.0
|
- uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2
|
||||||
with:
|
with:
|
||||||
project-url: https://github.com/orgs/kubernetes/projects/104
|
project-url: https://github.com/orgs/kubernetes/projects/104
|
||||||
github-token: ${{ secrets.PROJECT_WRITER }}
|
github-token: ${{ secrets.PROJECT_WRITER }}
|
||||||
|
|
8
.github/workflows/scorecards.yml
vendored
8
.github/workflows/scorecards.yml
vendored
|
@ -27,12 +27,12 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout code"
|
- name: "Checkout code"
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: "Run analysis"
|
- name: "Run analysis"
|
||||||
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
|
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
|
||||||
with:
|
with:
|
||||||
results_file: results.sarif
|
results_file: results.sarif
|
||||||
results_format: sarif
|
results_format: sarif
|
||||||
|
@ -51,7 +51,7 @@ jobs:
|
||||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||||
# format to the repository Actions tab.
|
# format to the repository Actions tab.
|
||||||
- name: "Upload artifact"
|
- name: "Upload artifact"
|
||||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
|
||||||
with:
|
with:
|
||||||
name: SARIF file
|
name: SARIF file
|
||||||
path: results.sarif
|
path: results.sarif
|
||||||
|
@ -59,6 +59,6 @@ jobs:
|
||||||
|
|
||||||
# Upload the results to GitHub's code scanning dashboard.
|
# Upload the results to GitHub's code scanning dashboard.
|
||||||
- name: "Upload to code-scanning"
|
- name: "Upload to code-scanning"
|
||||||
uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5
|
uses: github/codeql-action/upload-sarif@eb055d739abdc2e8de2e5f4ba1a8b246daa779aa # v3.26.0
|
||||||
with:
|
with:
|
||||||
sarif_file: results.sarif
|
sarif_file: results.sarif
|
||||||
|
|
8
.github/workflows/vulnerability-scans.yaml
vendored
8
.github/workflows/vulnerability-scans.yaml
vendored
|
@ -22,7 +22,7 @@ jobs:
|
||||||
versions: ${{ steps.version.outputs.TAGS }}
|
versions: ${{ steps.version.outputs.TAGS }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ jobs:
|
||||||
versions: ${{ fromJSON(needs.version.outputs.versions) }}
|
versions: ${{ fromJSON(needs.version.outputs.versions) }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- shell: bash
|
- shell: bash
|
||||||
id: test
|
id: test
|
||||||
|
@ -60,7 +60,7 @@ jobs:
|
||||||
|
|
||||||
- name: Scan image with AquaSec/Trivy
|
- name: Scan image with AquaSec/Trivy
|
||||||
id: scan
|
id: scan
|
||||||
uses: aquasecurity/trivy-action@84384bd6e777ef152729993b8145ea352e9dd3ef # v0.17.0
|
uses: aquasecurity/trivy-action@6e7b7d1fd3e4fef0c5fa8cce1229c54b2c9bd0d8 # v0.24.0
|
||||||
with:
|
with:
|
||||||
image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }}
|
image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }}
|
||||||
format: 'sarif'
|
format: 'sarif'
|
||||||
|
@ -75,7 +75,7 @@ jobs:
|
||||||
|
|
||||||
# This step checks out a copy of your repository.
|
# This step checks out a copy of your repository.
|
||||||
- name: Upload SARIF file
|
- name: Upload SARIF file
|
||||||
uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5
|
uses: github/codeql-action/upload-sarif@eb055d739abdc2e8de2e5f4ba1a8b246daa779aa # v3.26.0
|
||||||
with:
|
with:
|
||||||
token: ${{ github.token }}
|
token: ${{ github.token }}
|
||||||
# Path to SARIF file relative to the root of the repository
|
# Path to SARIF file relative to the root of the repository
|
||||||
|
|
10
.github/workflows/zz-tmpl-images.yaml
vendored
10
.github/workflows/zz-tmpl-images.yaml
vendored
|
@ -31,8 +31,8 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
- uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
|
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -48,7 +48,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
|
@ -67,10 +67,10 @@ jobs:
|
||||||
PLATFORMS: ${{ inputs.platforms-publish }}
|
PLATFORMS: ${{ inputs.platforms-publish }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
|
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
6
.github/workflows/zz-tmpl-k8s-e2e.yaml
vendored
6
.github/workflows/zz-tmpl-k8s-e2e.yaml
vendored
|
@ -20,10 +20,10 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
|
|
||||||
- name: cache
|
- name: cache
|
||||||
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2
|
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ jobs:
|
||||||
make kind-e2e-test
|
make kind-e2e-test
|
||||||
|
|
||||||
- name: Upload e2e junit-reports ${{ inputs.variation }}
|
- name: Upload e2e junit-reports ${{ inputs.variation }}
|
||||||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
|
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
|
||||||
if: success() || failure()
|
if: success() || failure()
|
||||||
with:
|
with:
|
||||||
name: e2e-test-reports-${{ inputs.k8s-version }}${{ inputs.variation }}
|
name: e2e-test-reports-${{ inputs.k8s-version }}${{ inputs.variation }}
|
||||||
|
|
|
@ -200,9 +200,7 @@ linters-settings:
|
||||||
- stringConcatSimplify
|
- stringConcatSimplify
|
||||||
- stringsCompare
|
- stringsCompare
|
||||||
- switchTrue
|
- switchTrue
|
||||||
- timeCmpSimplify
|
|
||||||
- timeExprSimplify
|
- timeExprSimplify
|
||||||
- todoCommentWithoutDetail
|
|
||||||
- tooManyResultsChecker
|
- tooManyResultsChecker
|
||||||
- typeAssertChain
|
- typeAssertChain
|
||||||
- typeDefFirst
|
- typeDefFirst
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1.22.0
|
1.22.6
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -110,7 +110,7 @@ clean-chroot-image: ## Removes local image
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build: ## Build ingress controller, debug tool and pre-stop hook.
|
build: ## Build ingress controller, debug tool and pre-stop hook.
|
||||||
E2E_IMAGE=golang:$(GO_VERSION)-alpine3.19 USE_SHELL=/bin/sh build/run-in-docker.sh \
|
E2E_IMAGE=golang:$(GO_VERSION)-alpine3.20 USE_SHELL=/bin/sh build/run-in-docker.sh \
|
||||||
MAC_OS=$(MAC_OS) \
|
MAC_OS=$(MAC_OS) \
|
||||||
PKG=$(PKG) \
|
PKG=$(PKG) \
|
||||||
ARCH=$(ARCH) \
|
ARCH=$(ARCH) \
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
registry.k8s.io/ingress-nginx/nginx-1.25:v0.0.5@sha256:cdafd6c9d36e23414ce41330a482f9136ce82fac46802809681f61cdcd5ad0bb
|
registry.k8s.io/ingress-nginx/nginx-1.25:v0.0.12@sha256:2d471b3a34dc43d10c3f3d7f2a6e8a2ecf7654a4197e56374261c1c708b16365
|
||||||
|
|
4
OWNERS
4
OWNERS
|
@ -1,4 +1,4 @@
|
||||||
# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md
|
# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners
|
||||||
|
|
||||||
approvers:
|
approvers:
|
||||||
- ingress-nginx-maintainers
|
- ingress-nginx-maintainers
|
||||||
|
@ -7,6 +7,6 @@ reviewers:
|
||||||
- ingress-nginx-reviewers
|
- ingress-nginx-reviewers
|
||||||
|
|
||||||
emeritus_approvers:
|
emeritus_approvers:
|
||||||
- aledbf # 2020-04-02
|
- aledbf # 2020-04-02
|
||||||
- bowei # 2022-10-12
|
- bowei # 2022-10-12
|
||||||
- ElvinEfendi # 2023-04-23
|
- ElvinEfendi # 2023-04-23
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# See the OWNERS docs: https://git.k8s.io/community/docs/devel/owners.md
|
# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners
|
||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
sig-network-leads:
|
sig-network-leads:
|
||||||
|
@ -7,38 +7,34 @@ aliases:
|
||||||
- thockin
|
- thockin
|
||||||
|
|
||||||
ingress-nginx-admins:
|
ingress-nginx-admins:
|
||||||
|
- Gacko
|
||||||
- rikatz
|
- rikatz
|
||||||
- strongjz
|
- strongjz
|
||||||
|
|
||||||
ingress-nginx-maintainers:
|
ingress-nginx-maintainers:
|
||||||
|
- cpanato
|
||||||
|
- Gacko
|
||||||
|
- puerco
|
||||||
- rikatz
|
- rikatz
|
||||||
- strongjz
|
- strongjz
|
||||||
- cpanato
|
|
||||||
- puerco
|
|
||||||
- tao12345666333
|
- tao12345666333
|
||||||
|
|
||||||
ingress-nginx-reviewers:
|
ingress-nginx-reviewers:
|
||||||
|
- cpanato
|
||||||
|
- Gacko
|
||||||
|
- puerco
|
||||||
- rikatz
|
- rikatz
|
||||||
- strongjz
|
- strongjz
|
||||||
- puerco
|
|
||||||
- cpanato
|
|
||||||
- tao12345666333
|
- tao12345666333
|
||||||
|
|
||||||
ingress-nginx-helm-maintainers:
|
ingress-nginx-helm-maintainers:
|
||||||
- cpanato
|
|
||||||
- Gacko
|
|
||||||
- strongjz
|
|
||||||
- ubergesundheit
|
- ubergesundheit
|
||||||
|
|
||||||
ingress-nginx-helm-reviewers:
|
ingress-nginx-helm-reviewers:
|
||||||
- cpanato
|
|
||||||
- Gacko
|
|
||||||
- strongjz
|
|
||||||
- ubergesundheit
|
- ubergesundheit
|
||||||
|
|
||||||
ingress-nginx-docs-maintainers:
|
ingress-nginx-docs-maintainers:
|
||||||
- longwuyuan
|
- longwuyuan
|
||||||
- tao12345666333
|
|
||||||
|
|
||||||
ingress-nginx-kube-webhook-certgen-reviewers:
|
ingress-nginx-kube-webhook-certgen-reviewers:
|
||||||
- invidian
|
- invidian
|
||||||
|
|
46
README.md
46
README.md
|
@ -6,13 +6,12 @@
|
||||||
[](https://github.com/kubernetes/ingress-nginx/stargazers)
|
[](https://github.com/kubernetes/ingress-nginx/stargazers)
|
||||||
[](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md)
|
[](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md)
|
||||||
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
ingress-nginx is an Ingress controller for Kubernetes using [NGINX](https://www.nginx.org/) as a reverse proxy and load
|
ingress-nginx is an Ingress controller for Kubernetes using [NGINX](https://www.nginx.org/) as a reverse proxy and load
|
||||||
balancer.
|
balancer.
|
||||||
|
|
||||||
[Learn more about Ingress on the main Kubernetes documentation site](https://kubernetes.io/docs/concepts/services-networking/ingress/).
|
[Learn more about Ingress on the Kubernetes documentation site](https://kubernetes.io/docs/concepts/services-networking/ingress/).
|
||||||
|
|
||||||
## Get started
|
## Get started
|
||||||
|
|
||||||
|
@ -28,7 +27,7 @@ If you encounter issues, review the [troubleshooting docs](docs/troubleshooting.
|
||||||
|
|
||||||
See [the list of releases](https://github.com/kubernetes/ingress-nginx/releases) for all changes.
|
See [the list of releases](https://github.com/kubernetes/ingress-nginx/releases) for all changes.
|
||||||
For detailed changes for each release, please check the [changelog-$version.md](./changelog) file for the release version.
|
For detailed changes for each release, please check the [changelog-$version.md](./changelog) file for the release version.
|
||||||
For detailed changes on the `ingress-nginx` helm chart, please check the changelog folder for a specific version
|
For detailed changes on the `ingress-nginx` helm chart, please check the changelog folder for a specific version.
|
||||||
[CHANGELOG-$current-version.md](./charts/ingress-nginx/changelog) file.
|
[CHANGELOG-$current-version.md](./charts/ingress-nginx/changelog) file.
|
||||||
|
|
||||||
### Supported Versions table
|
### Supported Versions table
|
||||||
|
@ -36,25 +35,25 @@ For detailed changes on the `ingress-nginx` helm chart, please check the changel
|
||||||
Supported versions for the ingress-nginx project mean that we have completed E2E tests, and they are passing for
|
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.
|
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 |
|
| Supported | Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version | Helm Chart Version |
|
||||||
|:--:|-----------------------|------------------------------|----------------|---------------|------------------------------|
|
| :-------: | --------------------- | ----------------------------- | -------------- | ------------- | ------------------ |
|
||||||
| 🔄 | **v1.9.6** | 1.29, 1.28, 1.27, 1.26, 1.25 | 3.19.0 | 1.21.6 | 4.9.1* |
|
| 🔄 | **v1.10.4** | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.10.4 |
|
||||||
| 🔄 | **v1.9.5** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.9.0* |
|
| 🔄 | **v1.10.3** | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.10.3 |
|
||||||
| 🔄 | **v1.9.4** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.3 |
|
| 🔄 | **v1.10.2** | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.10.2 |
|
||||||
| 🔄 | **v1.9.3** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* |
|
| 🔄 | **v1.10.1** | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.1 |
|
||||||
| 🔄 | **v1.9.1** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* |
|
| 🔄 | **v1.10.0** | 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.0 |
|
||||||
| 🔄 | **v1.9.0** | 1.28, 1.27, 1.26, 1.25 | 3.18.2 | 1.21.6 | 4.8.* |
|
| | v1.9.6 | 1.29, 1.28, 1.27, 1.26, 1.25 | 3.19.0 | 1.21.6 | 4.9.1 |
|
||||||
| 🔄 | **v1.8.4** | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* |
|
| | v1.9.5 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.9.0 |
|
||||||
| 🔄 | **v1.8.2** | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* |
|
| | v1.9.4 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.3 |
|
||||||
| 🔄 | **v1.8.1** | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* |
|
| | v1.9.3 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* |
|
||||||
| 🔄 | **v1.8.0** | 1.27, 1.26, 1.25, 1.24 | 3.18.0 | 1.21.6 | 4.7.* |
|
| | v1.9.1 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* |
|
||||||
| | **v1.7.1** | 1.27, 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* |
|
| | v1.9.0 | 1.28, 1.27, 1.26, 1.25 | 3.18.2 | 1.21.6 | 4.8.* |
|
||||||
| | **v1.7.0** | 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* |
|
| | v1.8.4 | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* |
|
||||||
| | v1.6.4 | 1.26, 1.25, 1.24, 1.23 | 3.17.0 | 1.21.6 | 4.5.* |
|
| | v1.7.1 | 1.27, 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* |
|
||||||
| | v1.5.1 | 1.25, 1.24, 1.23 | 3.16.2 | 1.21.6 | 4.4.* |
|
| | v1.6.4 | 1.26, 1.25, 1.24, 1.23 | 3.17.0 | 1.21.6 | 4.5.* |
|
||||||
| | v1.4.0 | 1.25, 1.24, 1.23, 1.22 | 3.16.2 | 1.19.10† | 4.3.0 |
|
| | v1.5.1 | 1.25, 1.24, 1.23 | 3.16.2 | 1.21.6 | 4.4.* |
|
||||||
| | v1.3.1 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.2 | 1.19.10† | 4.2.5 |
|
| | v1.4.0 | 1.25, 1.24, 1.23, 1.22 | 3.16.2 | 1.19.10† | 4.3.0 |
|
||||||
| | v1.3.0 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.0 | 1.19.10† | 4.2.3 |
|
| | 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](https://kubernetes.io/blog/2021/07/26/update-with-ingress-nginx/) if you want upgrade to the stable
|
See [this article](https://kubernetes.io/blog/2021/07/26/update-with-ingress-nginx/) if you want upgrade to the stable
|
||||||
Ingress API.
|
Ingress API.
|
||||||
|
@ -65,7 +64,6 @@ Thanks for taking the time to join our community and start contributing!
|
||||||
|
|
||||||
- This project adheres to the [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md).
|
- This project adheres to the [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md).
|
||||||
By participating in this project, you agree to abide by its terms.
|
By participating in this project, you agree to abide by its terms.
|
||||||
|
|
||||||
- **Contributing**: Contributions of all kinds are welcome!
|
- **Contributing**: Contributions of all kinds are welcome!
|
||||||
|
|
||||||
- Read [`CONTRIBUTING.md`](CONTRIBUTING.md) for information about setting up your environment, the workflow that we
|
- Read [`CONTRIBUTING.md`](CONTRIBUTING.md) for information about setting up your environment, the workflow that we
|
||||||
|
@ -74,8 +72,8 @@ Thanks for taking the time to join our community and start contributing!
|
||||||
- Submit GitHub issues for any feature enhancements, bugs, or documentation problems.
|
- Submit GitHub issues for any feature enhancements, bugs, or documentation problems.
|
||||||
- Please make sure to read the [Issue Reporting Checklist](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines **may be closed immediately**.
|
- Please make sure to read the [Issue Reporting Checklist](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines **may be closed immediately**.
|
||||||
- Join our [ingress-nginx-dev mailing list](https://groups.google.com/a/kubernetes.io/g/ingress-nginx-dev/c/ebbBMo-zX-w)
|
- Join our [ingress-nginx-dev mailing list](https://groups.google.com/a/kubernetes.io/g/ingress-nginx-dev/c/ebbBMo-zX-w)
|
||||||
|
|
||||||
- **Support**:
|
- **Support**:
|
||||||
|
|
||||||
- Join the [#ingress-nginx-users](https://kubernetes.slack.com/messages/CANQGM8BA/) channel inside the [Kubernetes Slack](http://slack.kubernetes.io/) to ask questions or get support from the maintainers and other users.
|
- Join the [#ingress-nginx-users](https://kubernetes.slack.com/messages/CANQGM8BA/) channel inside the [Kubernetes Slack](http://slack.kubernetes.io/) to ask questions or get support from the maintainers and other users.
|
||||||
- The [GitHub issues](https://github.com/kubernetes/ingress-nginx/issues) in the repository are **exclusively** for bug reports and feature requests.
|
- The [GitHub issues](https://github.com/kubernetes/ingress-nginx/issues) in the repository are **exclusively** for bug reports and feature requests.
|
||||||
- **Discuss**: Tweet using the `#IngressNginx` hashtag or sharing with us [@IngressNginx](https://twitter.com/IngressNGINX).
|
- **Discuss**: Tweet using the `#IngressNginx` hashtag or sharing with us [@IngressNginx](https://twitter.com/IngressNGINX).
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
#
|
#
|
||||||
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
||||||
# INSTRUCTIONS AT https://kubernetes.io/security/
|
# INSTRUCTIONS AT https://kubernetes.io/security/
|
||||||
bowei
|
Gacko
|
||||||
rikatz
|
rikatz
|
||||||
strongjz
|
strongjz
|
||||||
|
|
1
TAG
Normal file
1
TAG
Normal file
|
@ -0,0 +1 @@
|
||||||
|
v1.10.4
|
|
@ -64,7 +64,7 @@ echo "[dev-env] building image"
|
||||||
make build image
|
make build image
|
||||||
docker tag "${REGISTRY}/controller:${TAG}" "${DEV_IMAGE}"
|
docker tag "${REGISTRY}/controller:${TAG}" "${DEV_IMAGE}"
|
||||||
|
|
||||||
export K8S_VERSION=${K8S_VERSION:-v1.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f}
|
export K8S_VERSION=${K8S_VERSION:-v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245}
|
||||||
|
|
||||||
KIND_CLUSTER_NAME="ingress-nginx-dev"
|
KIND_CLUSTER_NAME="ingress-nginx-dev"
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ function cleanup {
|
||||||
}
|
}
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20240126-760bf8eb@sha256:5e676bf2e5d5d035adfc6e093abee040af08327011e72fef640fa20da73cea2e}
|
E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20240812-3f0129aa@sha256:95c2aaf2a66e8cbbf7a7453046f3b024383c273a0988efab841cd96116afd1a9}
|
||||||
|
|
||||||
if [[ "$RUNTIME" == podman ]]; then
|
if [[ "$RUNTIME" == podman ]]; then
|
||||||
# Podman does not support both tag and digest
|
# Podman does not support both tag and digest
|
||||||
|
@ -82,7 +82,7 @@ if [[ "$DOCKER_IN_DOCKER_ENABLED" == "true" ]]; then
|
||||||
echo "..reached DIND check TRUE block, inside run-in-docker.sh"
|
echo "..reached DIND check TRUE block, inside run-in-docker.sh"
|
||||||
echo "FLAGS=$FLAGS"
|
echo "FLAGS=$FLAGS"
|
||||||
#go env
|
#go env
|
||||||
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.15.0
|
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.20.0
|
||||||
find / -type f -name ginkgo 2>/dev/null
|
find / -type f -name ginkgo 2>/dev/null
|
||||||
which ginkgo
|
which ginkgo
|
||||||
/bin/bash -c "${FLAGS}"
|
/bin/bash -c "${FLAGS}"
|
||||||
|
@ -96,4 +96,4 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${RUNTIME} run $args ${E2E_IMAGE} ${USE_SHELL} -c "${FLAGS}"
|
${RUNTIME} run $args ${E2E_IMAGE} ${USE_SHELL} -c "${FLAGS}"
|
||||||
fi
|
fi
|
||||||
|
|
68
changelog/controller-1.10.0.md
Normal file
68
changelog/controller-1.10.0.md
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This release is the first using NGINX v1.25.0!
|
||||||
|
|
||||||
|
## Breaking changes
|
||||||
|
* This version does not support chroot image, this will be fixed on a future minor patch release
|
||||||
|
* This version dropped Opentracing and zipkin modules, just Opentelemetry is supported
|
||||||
|
* This version dropped support for PodSecurityPolicy
|
||||||
|
* This version dropped support for GeoIP (legacy). Only GeoIP2 is supported
|
||||||
|
|
||||||
|
### controller-v1.10.0
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c
|
||||||
|
|
||||||
|
### All changes:
|
||||||
|
|
||||||
|
* Start the release of v1.10.0 (#11038)
|
||||||
|
* bump nginx and Go, remove tag file and old CI jobs (#11037)
|
||||||
|
* Fix kubewebhook image tag (#11033)
|
||||||
|
* add missing backend-protocol annotation option (#9545)
|
||||||
|
* Update controller-prometheusrules.yaml (#8902)
|
||||||
|
* Stop reporting interrupted tests (#11027)
|
||||||
|
* test(gzip): reach ingress (#9541)
|
||||||
|
* fix datasource, $exported_namespace variable in grafana nginx dashboard (#9092)
|
||||||
|
* Properly support a TLS-wrapped OCSP responder (#10164)
|
||||||
|
* Fix print-e2e-suite (#9536)
|
||||||
|
* chore(deps): upgrade headers-more module to 0.37 (#10991)
|
||||||
|
* Update ingress-path-matching.md (#11008)
|
||||||
|
* Update ingress-path-matching.md (#11007)
|
||||||
|
* E2E Tests: Explicitly enable metrics. (#10962)
|
||||||
|
* Chart: Set `--enable-metrics` depending on `controller.metrics.enabled`. (#10959)
|
||||||
|
* Chart: Remove useless `default` from `_params.tpl`. (#10957)
|
||||||
|
* Fix golang makefile var name (#10932)
|
||||||
|
* Fixing image push (#10931)
|
||||||
|
* fix: live-docs script (#10928)
|
||||||
|
* docs: Add vouch-proxy OAuth example (#10929)
|
||||||
|
* Add OTEL build test and for NGINX v1.25 (#10889)
|
||||||
|
* docs: update annotations docs with missing session-cookie section (#10917)
|
||||||
|
* Release controller 1.9.6 and helm 4.9.1 (#10919)
|
||||||
|
|
||||||
|
### Dependency updates:
|
||||||
|
|
||||||
|
* Bump kubewebhook certgen (#11034)
|
||||||
|
* Bump go libraries (#11023)
|
||||||
|
* Bump modsecurity on nginx 1.25 (#11024)
|
||||||
|
* Bump grpc and reintroduce OTEL compilation (#11021)
|
||||||
|
* Bump github/codeql-action from 3.24.0 to 3.24.5 (#11017)
|
||||||
|
* Bump actions/dependency-review-action from 4.0.0 to 4.1.3 (#11016)
|
||||||
|
* Bump dorny/paths-filter from 3.0.0 to 3.0.1 (#10994)
|
||||||
|
* Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 (#10998)
|
||||||
|
* Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#10978)
|
||||||
|
* Bump actions/download-artifact from 4.1.1 to 4.1.2 (#10981)
|
||||||
|
* Bump aquasecurity/trivy-action from 0.16.1 to 0.17.0 (#10979)
|
||||||
|
* Bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 (#10980)
|
||||||
|
* Bump golang.org/x/crypto from 0.18.0 to 0.19.0 (#10976)
|
||||||
|
* Bump github/codeql-action from 3.23.2 to 3.24.0 (#10971)
|
||||||
|
* Bump github.com/opencontainers/runc from 1.1.11 to 1.1.12 (#10951)
|
||||||
|
* Bump google.golang.org/grpc from 1.60.1 to 1.61.0 (#10938)
|
||||||
|
* Bump actions/upload-artifact from 4.2.0 to 4.3.0 (#10937)
|
||||||
|
* Bump dorny/test-reporter from 1.7.0 to 1.8.0 (#10936)
|
||||||
|
* Bump github/codeql-action from 3.23.1 to 3.23.2 (#10935)
|
||||||
|
* Bump dorny/paths-filter from 2.11.1 to 3.0.0 (#10934)
|
||||||
|
* Bump alpine to 3.19.1 (#10930)
|
||||||
|
* Bump go to v1.21.6 and set a single source of truth (#10926)
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.9.6...controller-v1.10.0
|
57
changelog/controller-1.10.1.md
Normal file
57
changelog/controller-1.10.1.md
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
### controller-v1.10.1
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.10.1@sha256:c155954116b397163c88afcb3252462771bd7867017e8a17623e83601bab7ac7
|
||||||
|
|
||||||
|
### All changes:
|
||||||
|
|
||||||
|
* start 1.10.1 build (#11246)
|
||||||
|
* force nginx rebuild (#11245)
|
||||||
|
* update k8s version to latest kind release (#11241)
|
||||||
|
* remove _ssl_expire_time_seconds metric by identifier (#11239)
|
||||||
|
* update post submit helm ci and clean up (#11221)
|
||||||
|
* Chart: Add unit tests for default backend & topology spread constraints. (#11219)
|
||||||
|
* sort default backend hpa metrics (#11217)
|
||||||
|
* updated certgen image shatag (#11216)
|
||||||
|
* changed testrunner image sha (#11211)
|
||||||
|
* bumped certgeimage tag (#11213)
|
||||||
|
* updated baseimage & deleted a useless file (#11209)
|
||||||
|
* bump ginkgo to 2-17-1 in testrunner (#11204)
|
||||||
|
* chunking related faq update (#11205)
|
||||||
|
* Fix-semver (#11199)
|
||||||
|
* refactor helm ci tests part I (#11188)
|
||||||
|
* Proposal: e2e tests for regex patterns (#11185)
|
||||||
|
* bump ginkgo to v2.17.1 (#11186)
|
||||||
|
* fixes brotli build issue (#11187)
|
||||||
|
* fix geoip2 configuration docs (#11151)
|
||||||
|
* Fix typos in OTel doc (#11081) (#11129)
|
||||||
|
* Chart: Render `controller.ingressClassResource.parameters` natively. (#11126)
|
||||||
|
* Fix admission controller logging of `admissionTime` and `testedConfigurationSize` (#11114)
|
||||||
|
* Chart: Align HPA & KEDA conditions. (#11113)
|
||||||
|
* Chart: Improve IngressClass documentation. (#11111)
|
||||||
|
* Chart: Add Gacko to maintainers. Again. (#11112)
|
||||||
|
* Chart: Deploy `PodDisruptionBudget` with KEDA. (#11105)
|
||||||
|
* Chores: Pick patches from main. (#11103)
|
||||||
|
|
||||||
|
### Dependency updates:
|
||||||
|
|
||||||
|
* Bump google.golang.org/grpc from 1.63.0 to 1.63.2 (#11238)
|
||||||
|
* Bump google.golang.org/grpc from 1.62.1 to 1.63.0 (#11234)
|
||||||
|
* Bump github.com/prometheus/common from 0.51.1 to 0.52.2 (#11233)
|
||||||
|
* Bump golang.org/x/crypto from 0.21.0 to 0.22.0 (#11232)
|
||||||
|
* Bump github.com/prometheus/client_model in the all group (#11231)
|
||||||
|
* Bump the all group with 3 updates (#11230)
|
||||||
|
* Bump the all group with 2 updates (#11190)
|
||||||
|
* Bump actions/add-to-project from 0.6.1 to 1.0.0 (#11189)
|
||||||
|
* Bump the all group with 3 updates (#11166)
|
||||||
|
* Bump github.com/prometheus/common from 0.50.0 to 0.51.1 (#11160)
|
||||||
|
* Bump the all group with 4 updates (#11140)
|
||||||
|
* Bump the all group with 1 update (#11136)
|
||||||
|
* Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /magefiles (#11127)
|
||||||
|
* Bump google.golang.org/protobuf in /images/custom-error-pages/rootfs (#11128)
|
||||||
|
* Bump google.golang.org/protobuf in /images/kube-webhook-certgen/rootfs (#11122)
|
||||||
|
|
130
changelog/controller-1.10.2.md
Normal file
130
changelog/controller-1.10.2.md
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
### controller-v1.10.2
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.10.2@sha256:e3311b3d9671bc52d90572bcbfb7ee5b71c985d6d6cffd445c241f1e2703363c
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.10.2@sha256:c4395cba98f9721e3381d3c06e7994371bae20f5ab30e457cd7debe44a8c8c54
|
||||||
|
|
||||||
|
### All changes:
|
||||||
|
|
||||||
|
* update test runner to latest build (#11557)
|
||||||
|
* add k8s 1.30 to ci build (#11553)
|
||||||
|
* update test runner go base to 3.20 (#11550)
|
||||||
|
* tag new test runner image with new nginx base 0.0.8 (#11549)
|
||||||
|
* bump NGINX_BASE to v0.0.8 (#11543)
|
||||||
|
* trigger build for NGINX-1.25 v0.0.8 (#11542)
|
||||||
|
* Upgrade OWASP_MODSECURITY_CRS_VERSION 3.3.5 to 4.4.0 and update docs (#11548)
|
||||||
|
* [feature] bump nginx to 1.25.5 and add http3 module (#11541)
|
||||||
|
* add ssl patches to nginx-1.25 image for coroutines to work in lua client hello and cert ssl blocks (#11534)
|
||||||
|
* bump alpine version to 3.20 to custom-error-pages (#11537)
|
||||||
|
* fix: Ensure changes in MatchCN annotation are detected (#11528)
|
||||||
|
* Docs: Add information about HTTP/3 support. (#11525)
|
||||||
|
* Docs: Specify `ingressClass` for multi-controller setup. (#11520)
|
||||||
|
* Docs: Improve default certificate usage. (#11519)
|
||||||
|
* docs: Update Ingress-NGINX v1.10.1 compatibility with Kubernetes v1.30 (#11500)
|
||||||
|
* Update getting-started.md with new prerequisites (#11487)
|
||||||
|
* Fix boolean configuration (#11484)
|
||||||
|
* Chores: Align security contacts & chart maintainers to actual owners. (#11480)
|
||||||
|
* CI: Bump forgotten Ginkgo versions. (#11469)
|
||||||
|
* Tests: Replace deprecated `grpc.Dial` by `grpc.NewClient`. (#11468)
|
||||||
|
* Owners: Promote Gacko to admin. (#11464)
|
||||||
|
* fixed fastcgi userguide (#11455)
|
||||||
|
* Remove unnecessary space character (#11451)
|
||||||
|
* fix for docs issue 11432 (#11446)
|
||||||
|
* Update index.md (#11445)
|
||||||
|
* upgrade to alpine 3.20 (#11438)
|
||||||
|
* update golang to 1.22.4 (#11431)
|
||||||
|
* Adapt dashboards for Grafana 11 compatibility (#11414)
|
||||||
|
* Rename variable to fix typo (#11413)
|
||||||
|
* Fix helm install on cloud provider admonition block (#11412)
|
||||||
|
* edited helm-install tips (#11411)
|
||||||
|
* added info for aws helm install (#11410)
|
||||||
|
* added multiplecontrollers-howto to faq (#11409)
|
||||||
|
* removed tlsv1 & tlsv1.1 (#11408)
|
||||||
|
* Docs: Remove opentracing and zipkin from docs (#11405)
|
||||||
|
* Go: Sync modules from `main`. (#11398)
|
||||||
|
* add workflow to helm release and update ct for branch (#11317)
|
||||||
|
* Merge pull request #11277 from strongjz/chart-1.10.1 (#11314)
|
||||||
|
* Release Helm Chart on branch update (#11306)
|
||||||
|
* Release controller 1.10.1 (#11298)
|
||||||
|
* fix path in file changed detected message (#11286)
|
||||||
|
* chore: fix function names in comment (#11281)
|
||||||
|
* fix: update kube version requirement to 1.21 (#11279)
|
||||||
|
* release helm chart from release branch (#11278)
|
||||||
|
* start 1.10.1 build (#11246)
|
||||||
|
* force nginx rebuild (#11245)
|
||||||
|
* update k8s version to latest kind release (#11241)
|
||||||
|
* remove _ssl_expire_time_seconds metric by identifier (#11239)
|
||||||
|
* update post submit helm ci and clean up (#11221)
|
||||||
|
* Chart: Add unit tests for default backend & topology spread constraints. (#11219)
|
||||||
|
* sort default backend hpa metrics (#11217)
|
||||||
|
* updated certgen image shatag (#11216)
|
||||||
|
* changed testrunner image sha (#11211)
|
||||||
|
* bumped certgeimage tag (#11213)
|
||||||
|
* updated baseimage & deleted a useless file (#11209)
|
||||||
|
* bump ginkgo to 2-17-1 in testrunner (#11204)
|
||||||
|
* chunking related faq update (#11205)
|
||||||
|
* Fix-semver (#11199)
|
||||||
|
* refactor helm ci tests part I (#11188)
|
||||||
|
* Proposal: e2e tests for regex patterns (#11185)
|
||||||
|
* bump ginkgo to v2.17.1 (#11186)
|
||||||
|
* fixes brotli build issue (#11187)
|
||||||
|
* fix geoip2 configuration docs (#11151)
|
||||||
|
* Fix typos in OTel doc (#11081) (#11129)
|
||||||
|
* Chart: Render `controller.ingressClassResource.parameters` natively. (#11126)
|
||||||
|
* Fix admission controller logging of `admissionTime` and `testedConfigurationSize` (#11114)
|
||||||
|
* Chart: Align HPA & KEDA conditions. (#11113)
|
||||||
|
* Chart: Improve IngressClass documentation. (#11111)
|
||||||
|
* Chart: Add Gacko to maintainers. Again. (#11112)
|
||||||
|
* Chart: Deploy `PodDisruptionBudget` with KEDA. (#11105)
|
||||||
|
* Chores: Pick patches from main. (#11103)
|
||||||
|
* Start the release of v1.10.0 (#11038)
|
||||||
|
|
||||||
|
### Dependency updates:
|
||||||
|
|
||||||
|
* Bump the all group with 2 updates (#11524)
|
||||||
|
* Bump k8s.io/klog/v2 from 2.130.0 to 2.130.1 in the all group (#11521)
|
||||||
|
* Bump aquasecurity/trivy-action from 0.22.0 to 0.23.0 in the all group (#11501)
|
||||||
|
* Bump k8s.io/klog/v2 from 2.120.1 to 2.130.0 (#11479)
|
||||||
|
* Bump the all group with 3 updates (#11478)
|
||||||
|
* Bump the all group with 2 updates (#11477)
|
||||||
|
* Bump golang.org/x/crypto from 0.23.0 to 0.24.0 (#11471)
|
||||||
|
* Bump sigs.k8s.io/controller-runtime in the all group (#11449)
|
||||||
|
* Bump github.com/prometheus/common from 0.53.0 to 0.54.0 (#11447)
|
||||||
|
* Bump the all group with 3 updates (#11450)
|
||||||
|
* Bump goreleaser/goreleaser-action from 5.1.0 to 6.0.0 (#11448)
|
||||||
|
* Bump github.com/onsi/ginkgo/v2 from 2.17.2 to 2.19.0 (#11422)
|
||||||
|
* Bump the all group with 2 updates (#11421)
|
||||||
|
* Bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#11423)
|
||||||
|
* Bump the all group across 1 directory with 6 updates (#11407)
|
||||||
|
* Bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 (#11406)
|
||||||
|
* Bump the all group with 3 updates (#11404)
|
||||||
|
* Bump Kubernetes version on images (#11403)
|
||||||
|
* Bump golangci/golangci-lint-action from 4.0.0 to 5.0.0 (#11402)
|
||||||
|
* Bump the all group with 4 updates (#11380)
|
||||||
|
* Bump k8s.io/component-base from 0.29.3 to 0.30.0 (#11301)
|
||||||
|
* Bump github.com/prometheus/common from 0.52.3 to 0.53.0 (#11300)
|
||||||
|
* Bump golang.org/x/net from 0.22.0 to 0.23.0 (#11285)
|
||||||
|
* Bump golang.org/x/net in /images/kube-webhook-certgen/rootfs (#11284)
|
||||||
|
* Bump the all group with 2 updates (#11266)
|
||||||
|
* Bump azure/setup-helm from 3.5 to 4 (#11265)
|
||||||
|
* Bump actions/add-to-project from 1.0.0 to 1.0.1 in the all group (#11264)
|
||||||
|
* Bump google.golang.org/grpc from 1.63.0 to 1.63.2 (#11238)
|
||||||
|
* Bump google.golang.org/grpc from 1.62.1 to 1.63.0 (#11234)
|
||||||
|
* Bump github.com/prometheus/common from 0.51.1 to 0.52.2 (#11233)
|
||||||
|
* Bump golang.org/x/crypto from 0.21.0 to 0.22.0 (#11232)
|
||||||
|
* Bump github.com/prometheus/client_model in the all group (#11231)
|
||||||
|
* Bump the all group with 3 updates (#11230)
|
||||||
|
* Bump the all group with 2 updates (#11190)
|
||||||
|
* Bump actions/add-to-project from 0.6.1 to 1.0.0 (#11189)
|
||||||
|
* Bump the all group with 3 updates (#11166)
|
||||||
|
* Bump github.com/prometheus/common from 0.50.0 to 0.51.1 (#11160)
|
||||||
|
* Bump the all group with 4 updates (#11140)
|
||||||
|
* Bump the all group with 1 update (#11136)
|
||||||
|
* Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /magefiles (#11127)
|
||||||
|
* Bump google.golang.org/protobuf in /images/custom-error-pages/rootfs (#11128)
|
||||||
|
* Bump google.golang.org/protobuf in /images/kube-webhook-certgen/rootfs (#11122)
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.10.1...controller-v1.10.2
|
37
changelog/controller-1.10.3.md
Normal file
37
changelog/controller-1.10.3.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
### controller-v1.10.3
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.10.3@sha256:b5a5082f8e508cc1aac1c0ef101dc2f87b63d51598a5747d81d6cf6e7ba058fd
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.10.3@sha256:9033e04bd3cd01f92414f8d5999c5095734d4caceb4923942298152a38373d4b
|
||||||
|
|
||||||
|
### All changes:
|
||||||
|
|
||||||
|
* Images: Trigger `controller` v1.10.3 build. (#11648)
|
||||||
|
* Tests: Bump `test-runner` to v20240717-1fe74b5f. (#11646)
|
||||||
|
* Images: Re-run `test-runner` build. (#11643)
|
||||||
|
* Images: Trigger `test-runner` build. (#11639)
|
||||||
|
* Images: Bump `NGINX_BASE` to v0.0.10. (#11637)
|
||||||
|
* Images: Trigger NGINX build. (#11631)
|
||||||
|
* bump testing runner (#11626)
|
||||||
|
* remove modsecurity coreruleset test files from nginx image (#11619)
|
||||||
|
* unskip the ocsp tests and update images to fix cfssl bug (#11615)
|
||||||
|
* Fix indent in YAML for example pod (#11609)
|
||||||
|
* Images: Bump `test-runner`. (#11604)
|
||||||
|
* Images: Bump `NGINX_BASE` to v0.0.9. (#11601)
|
||||||
|
* revert module upgrade (#11595)
|
||||||
|
* README: Fix support matrix. (#11593)
|
||||||
|
* Mage: Stop mutating release notes. (#11582)
|
||||||
|
* Images: Bump `kube-webhook-certgen`. (#11583)
|
||||||
|
|
||||||
|
### Dependency updates:
|
||||||
|
|
||||||
|
* Bump github.com/prometheus/common from 0.54.0 to 0.55.0 (#11622)
|
||||||
|
* Bump the all group with 5 updates (#11613)
|
||||||
|
* Bump golang.org/x/crypto from 0.24.0 to 0.25.0 (#11579)
|
||||||
|
* Bump google.golang.org/grpc from 1.64.0 to 1.65.0 (#11577)
|
||||||
|
* Bump the all group with 4 updates (#11574)
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.10.2...controller-v1.10.3
|
53
changelog/controller-1.10.4.md
Normal file
53
changelog/controller-1.10.4.md
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
### controller-v1.10.4
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.10.4@sha256:bf71acf6e71830a4470e2183e3bc93c4f006b954f8a05fb434242ef0f8a24858
|
||||||
|
|
||||||
|
### All changes:
|
||||||
|
|
||||||
|
* Chart: Bump Kube Webhook CertGen & OpenTelemetry. (#11811)
|
||||||
|
* Images: Trigger controller build. (#11808)
|
||||||
|
* Tests & Docs: Bump images. (#11804)
|
||||||
|
* Images: Trigger failed builds. (#11801)
|
||||||
|
* Images: Trigger other builds. (#11797)
|
||||||
|
* Controller: Fix panic in alternative backend merging. (#11793)
|
||||||
|
* Tests: Bump `e2e-test-runner` to v20240812-3f0129aa. (#11791)
|
||||||
|
* Images: Trigger `test-runner` build. (#11786)
|
||||||
|
* Images: Bump `NGINX_BASE` to v0.0.12. (#11783)
|
||||||
|
* Images: Trigger NGINX build. (#11780)
|
||||||
|
* Cloud Build: Add missing config, remove unused ones. (#11776)
|
||||||
|
* Generate correct output on NumCPU() when using cgroups2 (#11775)
|
||||||
|
* Cloud Build: Tweak timeouts. (#11762)
|
||||||
|
* Cloud Build: Fix substitutions. (#11759)
|
||||||
|
* Cloud Build: Some chores. (#11756)
|
||||||
|
* Go: Bump to v1.22.6. (#11748)
|
||||||
|
* Images: Bump `NGINX_BASE` to v0.0.11. (#11744)
|
||||||
|
* Images: Trigger NGINX build. (#11736)
|
||||||
|
* docs: update OpenSSL Roadmap link (#11734)
|
||||||
|
* Go: Bump to v1.22.5. (#11731)
|
||||||
|
* Docs: Fix typo in AWS LB Controller reference (#11724)
|
||||||
|
* Perform some cleaning operations on line breaks. (#11722)
|
||||||
|
* Missing anchors in regular expression. (#11718)
|
||||||
|
* Docs: Fix `from-to-www` redirect description. (#11715)
|
||||||
|
* Chart: Remove `isControllerTagValid`. (#11714)
|
||||||
|
* Tests: Bump `e2e-test-runner` to v20240729-04899b27. (#11704)
|
||||||
|
* Docs: Clarify `from-to-www` redirect direction. (#11692)
|
||||||
|
* added real-client-ip faq (#11665)
|
||||||
|
* Docs: Format NGINX configuration table. (#11660)
|
||||||
|
|
||||||
|
### Dependency updates:
|
||||||
|
|
||||||
|
* Bump github.com/onsi/ginkgo/v2 from 2.19.1 to 2.20.0 (#11772)
|
||||||
|
* Bump the all group with 2 updates (#11770)
|
||||||
|
* Bump golang.org/x/crypto from 0.25.0 to 0.26.0 (#11768)
|
||||||
|
* Bump the all group with 3 updates (#11729)
|
||||||
|
* Bump github.com/onsi/ginkgo/v2 from 2.19.0 to 2.19.1 in the all group (#11700)
|
||||||
|
* Bump the all group with 2 updates (#11697)
|
||||||
|
* Bump the all group with 4 updates (#11676)
|
||||||
|
* Bump the all group with 2 updates (#11674)
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.10.3...controller-v1.10.4
|
|
@ -1,10 +1,9 @@
|
||||||
annotations:
|
annotations:
|
||||||
artifacthub.io/changes: |-
|
artifacthub.io/changes: |
|
||||||
- "update web hook cert gen to latest release v20231226-1a7112e06"
|
- Update Ingress-Nginx version controller-v1.10.4
|
||||||
- "Update Ingress-Nginx version controller-v1.9.6"
|
|
||||||
artifacthub.io/prerelease: "false"
|
artifacthub.io/prerelease: "false"
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
appVersion: 1.9.6
|
appVersion: 1.10.4
|
||||||
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and
|
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and
|
||||||
load balancer
|
load balancer
|
||||||
home: https://github.com/kubernetes/ingress-nginx
|
home: https://github.com/kubernetes/ingress-nginx
|
||||||
|
@ -12,12 +11,15 @@ icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/5
|
||||||
keywords:
|
keywords:
|
||||||
- ingress
|
- ingress
|
||||||
- nginx
|
- nginx
|
||||||
kubeVersion: '>=1.20.0-0'
|
kubeVersion: '>=1.21.0-0'
|
||||||
maintainers:
|
maintainers:
|
||||||
|
- name: cpanato
|
||||||
|
- name: Gacko
|
||||||
|
- name: puerco
|
||||||
- name: rikatz
|
- name: rikatz
|
||||||
- name: strongjz
|
- name: strongjz
|
||||||
- name: tao12345666333
|
- name: tao12345666333
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/kubernetes/ingress-nginx
|
- https://github.com/kubernetes/ingress-nginx
|
||||||
version: 4.9.1
|
version: 4.10.4
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md
|
# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners
|
||||||
|
|
||||||
approvers:
|
approvers:
|
||||||
- ingress-nginx-helm-maintainers
|
- ingress-nginx-helm-maintainers
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ingress-nginx](https://github.com/kubernetes/ingress-nginx) Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer
|
[ingress-nginx](https://github.com/kubernetes/ingress-nginx) Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources.
|
To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources.
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ This chart bootstraps an ingress-nginx deployment on a [Kubernetes](http://kuber
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
Kubernetes: `>=1.20.0-0`
|
Kubernetes: `>=1.21.0-0`
|
||||||
|
|
||||||
## Get Repo Info
|
## Get Repo Info
|
||||||
|
|
||||||
|
@ -253,11 +253,11 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
||||||
| controller.admissionWebhooks.namespaceSelector | object | `{}` | |
|
| controller.admissionWebhooks.namespaceSelector | object | `{}` | |
|
||||||
| controller.admissionWebhooks.objectSelector | object | `{}` | |
|
| controller.admissionWebhooks.objectSelector | object | `{}` | |
|
||||||
| controller.admissionWebhooks.patch.enabled | bool | `true` | |
|
| controller.admissionWebhooks.patch.enabled | bool | `true` | |
|
||||||
| controller.admissionWebhooks.patch.image.digest | string | `"sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334"` | |
|
| controller.admissionWebhooks.patch.image.digest | string | `"sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3"` | |
|
||||||
| controller.admissionWebhooks.patch.image.image | string | `"ingress-nginx/kube-webhook-certgen"` | |
|
| controller.admissionWebhooks.patch.image.image | string | `"ingress-nginx/kube-webhook-certgen"` | |
|
||||||
| controller.admissionWebhooks.patch.image.pullPolicy | string | `"IfNotPresent"` | |
|
| controller.admissionWebhooks.patch.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||||
| controller.admissionWebhooks.patch.image.registry | string | `"registry.k8s.io"` | |
|
| controller.admissionWebhooks.patch.image.registry | string | `"registry.k8s.io"` | |
|
||||||
| controller.admissionWebhooks.patch.image.tag | string | `"v1.4.0"` | |
|
| controller.admissionWebhooks.patch.image.tag | string | `"v1.4.3"` | |
|
||||||
| controller.admissionWebhooks.patch.labels | object | `{}` | Labels to be added to patch job resources |
|
| controller.admissionWebhooks.patch.labels | object | `{}` | Labels to be added to patch job resources |
|
||||||
| controller.admissionWebhooks.patch.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not |
|
| controller.admissionWebhooks.patch.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not |
|
||||||
| controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os" | string | `"linux"` | |
|
| controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os" | string | `"linux"` | |
|
||||||
|
@ -317,8 +317,8 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
||||||
| controller.hostname | object | `{}` | Optionally customize the pod hostname. |
|
| controller.hostname | object | `{}` | Optionally customize the pod hostname. |
|
||||||
| controller.image.allowPrivilegeEscalation | bool | `false` | |
|
| controller.image.allowPrivilegeEscalation | bool | `false` | |
|
||||||
| controller.image.chroot | bool | `false` | |
|
| controller.image.chroot | bool | `false` | |
|
||||||
| controller.image.digest | string | `"sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c"` | |
|
| controller.image.digest | string | `"sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc"` | |
|
||||||
| controller.image.digestChroot | string | `"sha256:7eb46ff733429e0e46892903c7394aff149ac6d284d92b3946f3baf7ff26a096"` | |
|
| controller.image.digestChroot | string | `"sha256:bf71acf6e71830a4470e2183e3bc93c4f006b954f8a05fb434242ef0f8a24858"` | |
|
||||||
| controller.image.image | string | `"ingress-nginx/controller"` | |
|
| controller.image.image | string | `"ingress-nginx/controller"` | |
|
||||||
| controller.image.pullPolicy | string | `"IfNotPresent"` | |
|
| controller.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||||
| controller.image.readOnlyRootFilesystem | bool | `false` | |
|
| controller.image.readOnlyRootFilesystem | bool | `false` | |
|
||||||
|
@ -326,14 +326,15 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
||||||
| controller.image.runAsNonRoot | bool | `true` | |
|
| controller.image.runAsNonRoot | bool | `true` | |
|
||||||
| controller.image.runAsUser | int | `101` | |
|
| controller.image.runAsUser | int | `101` | |
|
||||||
| controller.image.seccompProfile.type | string | `"RuntimeDefault"` | |
|
| controller.image.seccompProfile.type | string | `"RuntimeDefault"` | |
|
||||||
| controller.image.tag | string | `"v1.9.6"` | |
|
| controller.image.tag | string | `"v1.10.4"` | |
|
||||||
| controller.ingressClass | string | `"nginx"` | For backwards compatibility with ingress.class annotation, use ingressClass. Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation |
|
| controller.ingressClass | string | `"nginx"` | For backwards compatibility with ingress.class annotation, use ingressClass. Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation |
|
||||||
| controller.ingressClassByName | bool | `false` | Process IngressClass per name (additionally as per spec.controller). |
|
| controller.ingressClassByName | bool | `false` | Process IngressClass per name (additionally as per spec.controller). |
|
||||||
| controller.ingressClassResource.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller-value of the controller that is processing this ingressClass |
|
| controller.ingressClassResource | object | `{"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. |
|
||||||
| controller.ingressClassResource.default | bool | `false` | Is this the default ingressClass for the cluster |
|
| controller.ingressClassResource.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value. This value is also being set as the `--controller-class` argument of this Ingress Controller. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class |
|
||||||
| controller.ingressClassResource.enabled | bool | `true` | Is this ingressClass enabled or not |
|
| controller.ingressClassResource.default | bool | `false` | If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation. Ingress creation gets rejected if there are multiple default IngressClasses. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class |
|
||||||
| controller.ingressClassResource.name | string | `"nginx"` | Name of the ingressClass |
|
| controller.ingressClassResource.enabled | bool | `true` | Create the IngressClass or not |
|
||||||
| controller.ingressClassResource.parameters | object | `{}` | Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters. |
|
| controller.ingressClassResource.name | string | `"nginx"` | Name of the IngressClass |
|
||||||
|
| controller.ingressClassResource.parameters | object | `{}` | A link to a custom resource containing additional configuration for the controller. This is optional if the controller consuming this IngressClass does not require additional parameters. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class |
|
||||||
| controller.keda.apiVersion | string | `"keda.sh/v1alpha1"` | |
|
| controller.keda.apiVersion | string | `"keda.sh/v1alpha1"` | |
|
||||||
| controller.keda.behavior | object | `{}` | |
|
| controller.keda.behavior | object | `{}` | |
|
||||||
| controller.keda.cooldownPeriod | int | `300` | |
|
| controller.keda.cooldownPeriod | int | `300` | |
|
||||||
|
@ -389,11 +390,11 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
||||||
| controller.opentelemetry.containerSecurityContext.runAsUser | int | `65532` | The image's default user, inherited from its base image `cgr.dev/chainguard/static`. |
|
| controller.opentelemetry.containerSecurityContext.runAsUser | int | `65532` | The image's default user, inherited from its base image `cgr.dev/chainguard/static`. |
|
||||||
| controller.opentelemetry.containerSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | |
|
| controller.opentelemetry.containerSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | |
|
||||||
| controller.opentelemetry.enabled | bool | `false` | |
|
| controller.opentelemetry.enabled | bool | `false` | |
|
||||||
| controller.opentelemetry.image.digest | string | `"sha256:13bee3f5223883d3ca62fee7309ad02d22ec00ff0d7033e3e9aca7a9f60fd472"` | |
|
| controller.opentelemetry.image.digest | string | `"sha256:f7604ac0547ed64d79b98d92133234e66c2c8aade3c1f4809fed5eec1fb7f922"` | |
|
||||||
| controller.opentelemetry.image.distroless | bool | `true` | |
|
| controller.opentelemetry.image.distroless | bool | `true` | |
|
||||||
| controller.opentelemetry.image.image | string | `"ingress-nginx/opentelemetry"` | |
|
| controller.opentelemetry.image.image | string | `"ingress-nginx/opentelemetry-1.25.3"` | |
|
||||||
| controller.opentelemetry.image.registry | string | `"registry.k8s.io"` | |
|
| controller.opentelemetry.image.registry | string | `"registry.k8s.io"` | |
|
||||||
| controller.opentelemetry.image.tag | string | `"v20230721-3e2062ee5"` | |
|
| controller.opentelemetry.image.tag | string | `"v20240813-b933310d"` | |
|
||||||
| controller.opentelemetry.name | string | `"opentelemetry"` | |
|
| controller.opentelemetry.name | string | `"opentelemetry"` | |
|
||||||
| controller.opentelemetry.resources | object | `{}` | |
|
| controller.opentelemetry.resources | object | `{}` | |
|
||||||
| controller.podAnnotations | object | `{}` | Annotations to be added to controller pods # |
|
| controller.podAnnotations | object | `{}` | Annotations to be added to controller pods # |
|
||||||
|
|
9
charts/ingress-nginx/changelog/helm-chart-4.10.0.md
Normal file
9
charts/ingress-nginx/changelog/helm-chart-4.10.0.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||||
|
|
||||||
|
### 4.10.0
|
||||||
|
|
||||||
|
* - "Update Ingress-Nginx version controller-v1.10.0"
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.9.1...helm-chart-4.10.0
|
11
charts/ingress-nginx/changelog/helm-chart-4.10.1.md
Normal file
11
charts/ingress-nginx/changelog/helm-chart-4.10.1.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||||
|
|
||||||
|
### 4.10.1
|
||||||
|
|
||||||
|
* - "update post submit helm ci and clean up (#11221)"
|
||||||
|
* - "refactor helm ci tests part I (#11188)"
|
||||||
|
* - "Update Ingress-Nginx version controller-v1.10.1"
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.10.0...helm-chart-4.10.1
|
18
charts/ingress-nginx/changelog/helm-chart-4.10.2.md
Normal file
18
charts/ingress-nginx/changelog/helm-chart-4.10.2.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||||
|
|
||||||
|
### 4.10.2
|
||||||
|
|
||||||
|
* Chores: Align security contacts & chart maintainers to actual owners. (#11480)
|
||||||
|
* Fix helm install on cloud provider admonition block (#11412)
|
||||||
|
* edited helm-install tips (#11411)
|
||||||
|
* added info for aws helm install (#11410)
|
||||||
|
* add workflow to helm release and update ct for branch (#11317)
|
||||||
|
* Merge pull request #11277 from strongjz/chart-1.10.1 (#11314)
|
||||||
|
* release helm chart from release branch (#11278)
|
||||||
|
* update post submit helm ci and clean up (#11221)
|
||||||
|
* refactor helm ci tests part I (#11188)
|
||||||
|
* Update Ingress-Nginx version controller-v1.10.2
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.10.1...helm-chart-4.10.2
|
9
charts/ingress-nginx/changelog/helm-chart-4.10.3.md
Normal file
9
charts/ingress-nginx/changelog/helm-chart-4.10.3.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||||
|
|
||||||
|
### 4.10.3
|
||||||
|
|
||||||
|
* Update Ingress-Nginx version controller-v1.10.3
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.10.2...helm-chart-4.10.3
|
9
charts/ingress-nginx/changelog/helm-chart-4.10.4.md
Normal file
9
charts/ingress-nginx/changelog/helm-chart-4.10.4.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||||
|
|
||||||
|
### 4.10.4
|
||||||
|
|
||||||
|
* Update Ingress-Nginx version controller-v1.10.4
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.10.3...helm-chart-4.10.4
|
|
@ -233,25 +233,6 @@ Return the appropriate apiGroup for PodSecurityPolicy.
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
|
||||||
Check the ingress controller version tag is at most three versions behind the last release
|
|
||||||
*/}}
|
|
||||||
{{- define "isControllerTagValid" -}}
|
|
||||||
{{- if not (semverCompare ">=0.27.0-0" .Values.controller.image.tag) -}}
|
|
||||||
{{- fail "Controller container image tag should be 0.27.0 or higher" -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
IngressClass parameters.
|
|
||||||
*/}}
|
|
||||||
{{- define "ingressClass.parameters" -}}
|
|
||||||
{{- if .Values.controller.ingressClassResource.parameters -}}
|
|
||||||
parameters:
|
|
||||||
{{ toYaml .Values.controller.ingressClassResource.parameters | indent 4}}
|
|
||||||
{{ end }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Extra modules.
|
Extra modules.
|
||||||
*/}}
|
*/}}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{{- if eq .Values.controller.kind "DaemonSet" -}}
|
{{- if eq .Values.controller.kind "DaemonSet" -}}
|
||||||
{{- include "isControllerTagValid" . -}}
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{{- if eq .Values.controller.kind "Deployment" -}}
|
{{- if eq .Values.controller.kind "Deployment" -}}
|
||||||
{{- include "isControllerTagValid" . -}}
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -19,7 +18,7 @@ spec:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{- include "ingress-nginx.selectorLabels" . | nindent 6 }}
|
{{- include "ingress-nginx.selectorLabels" . | nindent 6 }}
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
{{- if not (or .Values.controller.autoscaling.enabled .Values.controller.keda.enabled) }}
|
{{- if eq .Values.controller.autoscaling.enabled .Values.controller.keda.enabled }}
|
||||||
replicas: {{ .Values.controller.replicaCount }}
|
replicas: {{ .Values.controller.replicaCount }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{{- if .Values.controller.ingressClassResource.enabled -}}
|
{{- if .Values.controller.ingressClassResource.enabled -}}
|
||||||
# We don't support namespaced ingressClass yet
|
|
||||||
# So a ClusterRole and a ClusterRoleBinding is required
|
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: IngressClass
|
kind: IngressClass
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -11,11 +9,13 @@ metadata:
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
name: {{ .Values.controller.ingressClassResource.name }}
|
name: {{ .Values.controller.ingressClassResource.name }}
|
||||||
{{- if .Values.controller.ingressClassResource.default }}
|
{{- if .Values.controller.ingressClassResource.default }}
|
||||||
annotations:
|
annotations:
|
||||||
ingressclass.kubernetes.io/is-default-class: "true"
|
ingressclass.kubernetes.io/is-default-class: "true"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
controller: {{ .Values.controller.ingressClassResource.controllerValue }}
|
controller: {{ .Values.controller.ingressClassResource.controllerValue }}
|
||||||
{{ template "ingressClass.parameters" . }}
|
{{- with .Values.controller.ingressClassResource.parameters }}
|
||||||
|
parameters: {{ toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{{- if and .Values.controller.keda.enabled (eq .Values.controller.kind "Deployment") -}}
|
{{- if and (eq .Values.controller.kind "Deployment") .Values.controller.keda.enabled (not .Values.controller.autoscaling.enabled) -}}
|
||||||
apiVersion: {{ .Values.controller.keda.apiVersion }}
|
apiVersion: {{ .Values.controller.keda.apiVersion }}
|
||||||
kind: ScaledObject
|
kind: ScaledObject
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,4 +1,13 @@
|
||||||
{{- if or (and .Values.controller.autoscaling.enabled (gt (.Values.controller.autoscaling.minReplicas | int) 1)) (and (not .Values.controller.autoscaling.enabled) (gt (.Values.controller.replicaCount | int) 1)) }}
|
# PDB is not supported for DaemonSets.
|
||||||
|
# https://github.com/kubernetes/kubernetes/issues/108124
|
||||||
|
{{- if eq .Values.controller.kind "Deployment" }}
|
||||||
|
{{- $replicas := .Values.controller.replicaCount }}
|
||||||
|
{{- if and .Values.controller.autoscaling.enabled (not .Values.controller.keda.enabled) }}
|
||||||
|
{{- $replicas = .Values.controller.autoscaling.minReplicas }}
|
||||||
|
{{- else if and .Values.controller.keda.enabled (not .Values.controller.autoscaling.enabled) }}
|
||||||
|
{{- $replicas = .Values.controller.keda.minReplicas }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if gt ($replicas | int) 1 }}
|
||||||
apiVersion: {{ ternary "policy/v1" "policy/v1beta1" (semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version) }}
|
apiVersion: {{ ternary "policy/v1" "policy/v1beta1" (semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version) }}
|
||||||
kind: PodDisruptionBudget
|
kind: PodDisruptionBudget
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -24,3 +33,4 @@ spec:
|
||||||
maxUnavailable: {{ .Values.controller.maxUnavailable }}
|
maxUnavailable: {{ .Values.controller.maxUnavailable }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -58,7 +58,7 @@ spec:
|
||||||
port: {{ .Values.controller.service.internal.ports.http | default .Values.controller.service.ports.http }}
|
port: {{ .Values.controller.service.internal.ports.http | default .Values.controller.service.ports.http }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: {{ .Values.controller.service.internal.targetPorts.http | default .Values.controller.service.targetPorts.http }}
|
targetPort: {{ .Values.controller.service.internal.targetPorts.http | default .Values.controller.service.targetPorts.http }}
|
||||||
{{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }}
|
{{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }}
|
||||||
appProtocol: http
|
appProtocol: http
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if (and $setNodePorts (not (empty .Values.controller.service.internal.nodePorts.http))) }}
|
{{- if (and $setNodePorts (not (empty .Values.controller.service.internal.nodePorts.http))) }}
|
||||||
|
@ -70,7 +70,7 @@ spec:
|
||||||
port: {{ .Values.controller.service.internal.ports.https | default .Values.controller.service.ports.https }}
|
port: {{ .Values.controller.service.internal.ports.https | default .Values.controller.service.ports.https }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: {{ .Values.controller.service.internal.targetPorts.https | default .Values.controller.service.targetPorts.https }}
|
targetPort: {{ .Values.controller.service.internal.targetPorts.https | default .Values.controller.service.targetPorts.https }}
|
||||||
{{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }}
|
{{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }}
|
||||||
appProtocol: https
|
appProtocol: https
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if (and $setNodePorts (not (empty .Values.controller.service.internal.nodePorts.https))) }}
|
{{- if (and $setNodePorts (not (empty .Values.controller.service.internal.nodePorts.https))) }}
|
||||||
|
|
|
@ -31,7 +31,7 @@ spec:
|
||||||
- name: https-webhook
|
- name: https-webhook
|
||||||
port: 443
|
port: 443
|
||||||
targetPort: webhook
|
targetPort: webhook
|
||||||
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
{{- if semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version }}
|
||||||
appProtocol: https
|
appProtocol: https
|
||||||
{{- end }}
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
|
|
|
@ -58,7 +58,7 @@ spec:
|
||||||
port: {{ .Values.controller.service.ports.http }}
|
port: {{ .Values.controller.service.ports.http }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: {{ .Values.controller.service.targetPorts.http }}
|
targetPort: {{ .Values.controller.service.targetPorts.http }}
|
||||||
{{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }}
|
{{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }}
|
||||||
appProtocol: http
|
appProtocol: http
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.http))) }}
|
{{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.http))) }}
|
||||||
|
@ -70,7 +70,7 @@ spec:
|
||||||
port: {{ .Values.controller.service.ports.https }}
|
port: {{ .Values.controller.service.ports.https }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: {{ .Values.controller.service.targetPorts.https }}
|
targetPort: {{ .Values.controller.service.targetPorts.https }}
|
||||||
{{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }}
|
{{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }}
|
||||||
appProtocol: https
|
appProtocol: https
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.https))) }}
|
{{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.https))) }}
|
||||||
|
|
|
@ -21,14 +21,6 @@ spec:
|
||||||
minReplicas: {{ .Values.defaultBackend.autoscaling.minReplicas }}
|
minReplicas: {{ .Values.defaultBackend.autoscaling.minReplicas }}
|
||||||
maxReplicas: {{ .Values.defaultBackend.autoscaling.maxReplicas }}
|
maxReplicas: {{ .Values.defaultBackend.autoscaling.maxReplicas }}
|
||||||
metrics:
|
metrics:
|
||||||
{{- with .Values.defaultBackend.autoscaling.targetCPUUtilizationPercentage }}
|
|
||||||
- type: Resource
|
|
||||||
resource:
|
|
||||||
name: cpu
|
|
||||||
target:
|
|
||||||
type: Utilization
|
|
||||||
averageUtilization: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.defaultBackend.autoscaling.targetMemoryUtilizationPercentage }}
|
{{- with .Values.defaultBackend.autoscaling.targetMemoryUtilizationPercentage }}
|
||||||
- type: Resource
|
- type: Resource
|
||||||
resource:
|
resource:
|
||||||
|
@ -37,4 +29,12 @@ spec:
|
||||||
type: Utilization
|
type: Utilization
|
||||||
averageUtilization: {{ . }}
|
averageUtilization: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.defaultBackend.autoscaling.targetCPUUtilizationPercentage }}
|
||||||
|
- type: Resource
|
||||||
|
resource:
|
||||||
|
name: cpu
|
||||||
|
target:
|
||||||
|
type: Utilization
|
||||||
|
averageUtilization: {{ . }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -32,7 +32,7 @@ spec:
|
||||||
port: {{ .Values.defaultBackend.service.servicePort }}
|
port: {{ .Values.defaultBackend.service.servicePort }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: http
|
targetPort: http
|
||||||
{{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }}
|
{{- if semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version }}
|
||||||
appProtocol: http
|
appProtocol: http
|
||||||
{{- end }}
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
|
|
|
@ -33,6 +33,15 @@ tests:
|
||||||
path: spec.template.spec.containers[0].args
|
path: spec.template.spec.containers[0].args
|
||||||
content: --enable-metrics=false
|
content: --enable-metrics=false
|
||||||
|
|
||||||
|
- it: should create a DaemonSet with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.kind: DaemonSet
|
||||||
|
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
|
||||||
|
asserts:
|
||||||
|
- contains:
|
||||||
|
path: spec.template.spec.containers[0].args
|
||||||
|
content: --controller-class=k8s.io/ingress-nginx-internal
|
||||||
|
|
||||||
- it: should create a DaemonSet with resource limits if `controller.resources.limits` is set
|
- it: should create a DaemonSet with resource limits if `controller.resources.limits` is set
|
||||||
set:
|
set:
|
||||||
controller.kind: DaemonSet
|
controller.kind: DaemonSet
|
||||||
|
@ -45,3 +54,54 @@ tests:
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].resources.limits.memory
|
path: spec.template.spec.containers[0].resources.limits.memory
|
||||||
value: 512Mi
|
value: 512Mi
|
||||||
|
|
||||||
|
- it: should create a DaemonSet with topology spread constraints if `controller.topologySpreadConstraints` is set
|
||||||
|
set:
|
||||||
|
controller.kind: DaemonSet
|
||||||
|
controller.topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
|
||||||
|
app.kubernetes.io/instance: '{{ .Release.Name }}'
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: topology.kubernetes.io/zone
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
|
||||||
|
app.kubernetes.io/instance: '{{ .Release.Name }}'
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.topologySpreadConstraints
|
||||||
|
value:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: ingress-nginx
|
||||||
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: topology.kubernetes.io/zone
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: ingress-nginx
|
||||||
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
|
||||||
|
- it: should create a DaemonSet with a custom tag if `controller.image.tag` is set
|
||||||
|
set:
|
||||||
|
controller.kind: DaemonSet
|
||||||
|
controller.image.tag: my-little-custom-tag
|
||||||
|
controller.image.digest: sha256:faa2d18687f734994b6bd9e309e7a73852a81c30e1b8f63165fcd4f0a087e3cd
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].image
|
||||||
|
value: registry.k8s.io/ingress-nginx/controller:my-little-custom-tag@sha256:faa2d18687f734994b6bd9e309e7a73852a81c30e1b8f63165fcd4f0a087e3cd
|
||||||
|
|
|
@ -21,6 +21,28 @@ tests:
|
||||||
path: spec.replicas
|
path: spec.replicas
|
||||||
value: 3
|
value: 3
|
||||||
|
|
||||||
|
- it: should create a Deployment without replicas if `controller.autoscaling.enabled` is true
|
||||||
|
set:
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.replicas
|
||||||
|
|
||||||
|
- it: should create a Deployment without replicas if `controller.keda.enabled` is true
|
||||||
|
set:
|
||||||
|
controller.keda.enabled: true
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.replicas
|
||||||
|
|
||||||
|
- it: should create a Deployment with replicas if `controller.autoscaling.enabled` is true and `controller.keda.enabled` is true
|
||||||
|
set:
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
controller.keda.enabled: true
|
||||||
|
asserts:
|
||||||
|
- exists:
|
||||||
|
path: spec.replicas
|
||||||
|
|
||||||
- it: should create a Deployment with argument `--enable-metrics=false` if `controller.metrics.enabled` is false
|
- it: should create a Deployment with argument `--enable-metrics=false` if `controller.metrics.enabled` is false
|
||||||
set:
|
set:
|
||||||
controller.metrics.enabled: false
|
controller.metrics.enabled: false
|
||||||
|
@ -37,6 +59,14 @@ tests:
|
||||||
path: spec.template.spec.containers[0].args
|
path: spec.template.spec.containers[0].args
|
||||||
content: --enable-metrics=false
|
content: --enable-metrics=false
|
||||||
|
|
||||||
|
- it: should create a Deployment with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
|
||||||
|
asserts:
|
||||||
|
- contains:
|
||||||
|
path: spec.template.spec.containers[0].args
|
||||||
|
content: --controller-class=k8s.io/ingress-nginx-internal
|
||||||
|
|
||||||
- it: should create a Deployment with resource limits if `controller.resources.limits` is set
|
- it: should create a Deployment with resource limits if `controller.resources.limits` is set
|
||||||
set:
|
set:
|
||||||
controller.resources.limits.cpu: 500m
|
controller.resources.limits.cpu: 500m
|
||||||
|
@ -48,3 +78,52 @@ tests:
|
||||||
- equal:
|
- equal:
|
||||||
path: spec.template.spec.containers[0].resources.limits.memory
|
path: spec.template.spec.containers[0].resources.limits.memory
|
||||||
value: 512Mi
|
value: 512Mi
|
||||||
|
|
||||||
|
- it: should create a Deployment with topology spread constraints if `controller.topologySpreadConstraints` is set
|
||||||
|
set:
|
||||||
|
controller.topologySpreadConstraints:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
|
||||||
|
app.kubernetes.io/instance: '{{ .Release.Name }}'
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: topology.kubernetes.io/zone
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
|
||||||
|
app.kubernetes.io/instance: '{{ .Release.Name }}'
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.topologySpreadConstraints
|
||||||
|
value:
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: ingress-nginx
|
||||||
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: topology.kubernetes.io/zone
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
- labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: ingress-nginx
|
||||||
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
|
app.kubernetes.io/component: controller
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
maxSkew: 1
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
|
|
||||||
|
- it: should create a Deployment with a custom tag if `controller.image.tag` is set
|
||||||
|
set:
|
||||||
|
controller.image.tag: my-little-custom-tag
|
||||||
|
controller.image.digest: sha256:faa2d18687f734994b6bd9e309e7a73852a81c30e1b8f63165fcd4f0a087e3cd
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].image
|
||||||
|
value: registry.k8s.io/ingress-nginx/controller:my-little-custom-tag@sha256:faa2d18687f734994b6bd9e309e7a73852a81c30e1b8f63165fcd4f0a087e3cd
|
||||||
|
|
|
@ -3,9 +3,8 @@ templates:
|
||||||
- controller-hpa.yaml
|
- controller-hpa.yaml
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
- it: should create a HPA if `controller.kind` is "Deployment" and `controller.autoscaling.enabled` is true
|
- it: should create an HPA if `controller.autoscaling.enabled` is true
|
||||||
set:
|
set:
|
||||||
controller.kind: Deployment
|
|
||||||
controller.autoscaling.enabled: true
|
controller.autoscaling.enabled: true
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
|
@ -15,3 +14,18 @@ tests:
|
||||||
- equal:
|
- equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-ingress-nginx-controller
|
value: RELEASE-NAME-ingress-nginx-controller
|
||||||
|
|
||||||
|
- it: should not create an HPA if `controller.autoscaling.enabled` is true and `controller.keda.enabled` is true
|
||||||
|
set:
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
controller.keda.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: should not create an HPA if `controller.kind` is "DaemonSet"
|
||||||
|
set:
|
||||||
|
controller.kind: DaemonSet
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
77
charts/ingress-nginx/tests/controller-ingressclass_test.yaml
Normal file
77
charts/ingress-nginx/tests/controller-ingressclass_test.yaml
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
suite: Controller > IngressClass
|
||||||
|
templates:
|
||||||
|
- controller-ingressclass.yaml
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- it: should create an IngressClass
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
|
||||||
|
- it: should create an IngressClass with name "nginx-internal" if `controller.ingressClassResource.name` is "nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.name: nginx-internal
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx-internal
|
||||||
|
|
||||||
|
- it: "should create an IngressClass with annotation `ingressclass.kubernetes.io/is-default-class: \"true\"` if `controller.ingressClassResource.default` is true"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.default: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
- equal:
|
||||||
|
path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"]
|
||||||
|
value: "true"
|
||||||
|
|
||||||
|
- it: should create an IngressClass with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal"
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
- equal:
|
||||||
|
path: spec.controller
|
||||||
|
value: k8s.io/ingress-nginx-internal
|
||||||
|
|
||||||
|
- it: should create an IngressClass with parameters if `controller.ingressClassResource.parameters` is set
|
||||||
|
set:
|
||||||
|
controller.ingressClassResource.parameters:
|
||||||
|
apiGroup: k8s.example.com
|
||||||
|
kind: IngressParameters
|
||||||
|
name: external-lb
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: IngressClass
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: nginx
|
||||||
|
- equal:
|
||||||
|
path: spec.parameters
|
||||||
|
value:
|
||||||
|
apiGroup: k8s.example.com
|
||||||
|
kind: IngressParameters
|
||||||
|
name: external-lb
|
|
@ -3,9 +3,8 @@ templates:
|
||||||
- controller-keda.yaml
|
- controller-keda.yaml
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
- it: should create a ScaledObject if `controller.kind` is "Deployment" and `controller.keda.enabled` is true
|
- it: should create a ScaledObject if `controller.keda.enabled` is true
|
||||||
set:
|
set:
|
||||||
controller.kind: Deployment
|
|
||||||
controller.keda.enabled: true
|
controller.keda.enabled: true
|
||||||
asserts:
|
asserts:
|
||||||
- hasDocuments:
|
- hasDocuments:
|
||||||
|
@ -15,3 +14,18 @@ tests:
|
||||||
- equal:
|
- equal:
|
||||||
path: metadata.name
|
path: metadata.name
|
||||||
value: RELEASE-NAME-ingress-nginx-controller
|
value: RELEASE-NAME-ingress-nginx-controller
|
||||||
|
|
||||||
|
- it: should not create a ScaledObject if `controller.keda.enabled` is true and `controller.autoscaling.enabled` is true
|
||||||
|
set:
|
||||||
|
controller.keda.enabled: true
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: should not create a ScaledObject if `controller.kind` is "DaemonSet"
|
||||||
|
set:
|
||||||
|
controller.kind: DaemonSet
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
suite: Controller > PodDisruptionBudget
|
||||||
|
templates:
|
||||||
|
- controller-poddisruptionbudget.yaml
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- it: should create a PodDisruptionBudget if `controller.replicaCount` is greater than 1
|
||||||
|
set:
|
||||||
|
controller.replicaCount: 2
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: PodDisruptionBudget
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: RELEASE-NAME-ingress-nginx-controller
|
||||||
|
|
||||||
|
- it: should not create a PodDisruptionBudget if `controller.replicaCount` is less than or equal 1
|
||||||
|
set:
|
||||||
|
controller.replicaCount: 1
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: should create a PodDisruptionBudget if `controller.autoscaling.enabled` is true and `controller.autoscaling.minReplicas` is greater than 1
|
||||||
|
set:
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
controller.autoscaling.minReplicas: 2
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: PodDisruptionBudget
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: RELEASE-NAME-ingress-nginx-controller
|
||||||
|
|
||||||
|
- it: should not create a PodDisruptionBudget if `controller.autoscaling.enabled` is true and `controller.autoscaling.minReplicas` is less than or equal 1
|
||||||
|
set:
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
controller.autoscaling.minReplicas: 1
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: should create a PodDisruptionBudget if `controller.keda.enabled` is true and `controller.keda.minReplicas` is greater than 1
|
||||||
|
set:
|
||||||
|
controller.keda.enabled: true
|
||||||
|
controller.keda.minReplicas: 2
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: PodDisruptionBudget
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: RELEASE-NAME-ingress-nginx-controller
|
||||||
|
|
||||||
|
- it: should not create a PodDisruptionBudget if `controller.keda.enabled` is true and `controller.keda.minReplicas` is less than or equal 1
|
||||||
|
set:
|
||||||
|
controller.keda.enabled: true
|
||||||
|
controller.keda.minReplicas: 1
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: should not create a PodDisruptionBudget if `controller.autoscaling.enabled` is true and `controller.keda.enabled` is true
|
||||||
|
set:
|
||||||
|
controller.autoscaling.enabled: true
|
||||||
|
controller.keda.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
|
@ -0,0 +1,53 @@
|
||||||
|
suite: Default Backend > Deployment
|
||||||
|
templates:
|
||||||
|
- default-backend-deployment.yaml
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- it: should not create a Deployment if `defaultBackend.enabled` is false
|
||||||
|
set:
|
||||||
|
defaultBackend.enabled: false
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 0
|
||||||
|
|
||||||
|
- it: should create a Deployment if `defaultBackend.enabled` is true
|
||||||
|
set:
|
||||||
|
defaultBackend.enabled: true
|
||||||
|
asserts:
|
||||||
|
- hasDocuments:
|
||||||
|
count: 1
|
||||||
|
- isKind:
|
||||||
|
of: Deployment
|
||||||
|
- equal:
|
||||||
|
path: metadata.name
|
||||||
|
value: RELEASE-NAME-ingress-nginx-defaultbackend
|
||||||
|
|
||||||
|
- it: should create a Deployment with 3 replicas if `defaultBackend.replicaCount` is 3
|
||||||
|
set:
|
||||||
|
defaultBackend.enabled: true
|
||||||
|
defaultBackend.replicaCount: 3
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.replicas
|
||||||
|
value: 3
|
||||||
|
|
||||||
|
- it: should create a Deployment without replicas if `defaultBackend.autoscaling.enabled` is true
|
||||||
|
set:
|
||||||
|
defaultBackend.enabled: true
|
||||||
|
defaultBackend.autoscaling.enabled: true
|
||||||
|
asserts:
|
||||||
|
- notExists:
|
||||||
|
path: spec.replicas
|
||||||
|
|
||||||
|
- it: should create a Deployment with resource limits if `defaultBackend.resources.limits` is set
|
||||||
|
set:
|
||||||
|
defaultBackend.enabled: true
|
||||||
|
defaultBackend.resources.limits.cpu: 500m
|
||||||
|
defaultBackend.resources.limits.memory: 512Mi
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].resources.limits.cpu
|
||||||
|
value: 500m
|
||||||
|
- equal:
|
||||||
|
path: spec.template.spec.containers[0].resources.limits.memory
|
||||||
|
value: 512Mi
|
|
@ -26,9 +26,9 @@ controller:
|
||||||
## for backwards compatibility consider setting the full image url via the repository value below
|
## for backwards compatibility consider setting the full image url via the repository value below
|
||||||
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
||||||
## repository:
|
## repository:
|
||||||
tag: "v1.9.6"
|
tag: "v1.10.4"
|
||||||
digest: sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
digest: sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
digestChroot: sha256:7eb46ff733429e0e46892903c7394aff149ac6d284d92b3946f3baf7ff26a096
|
digestChroot: sha256:bf71acf6e71830a4470e2183e3bc93c4f006b954f8a05fb434242ef0f8a24858
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
# www-data -> uid 101
|
# www-data -> uid 101
|
||||||
|
@ -108,21 +108,30 @@ controller:
|
||||||
enabled: false
|
enabled: false
|
||||||
# -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
|
# -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
|
||||||
electionID: ""
|
electionID: ""
|
||||||
## This section refers to the creation of the IngressClass resource
|
# -- This section refers to the creation of the IngressClass resource.
|
||||||
## IngressClass resources are supported since k8s >= 1.18 and required since k8s >= 1.19
|
# IngressClasses are immutable and cannot be changed after creation.
|
||||||
|
# We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required.
|
||||||
ingressClassResource:
|
ingressClassResource:
|
||||||
# -- Name of the ingressClass
|
# -- Name of the IngressClass
|
||||||
name: nginx
|
name: nginx
|
||||||
# -- Is this ingressClass enabled or not
|
# -- Create the IngressClass or not
|
||||||
enabled: true
|
enabled: true
|
||||||
# -- Is this the default ingressClass for the cluster
|
# -- If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation.
|
||||||
|
# Ingress creation gets rejected if there are multiple default IngressClasses.
|
||||||
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class
|
||||||
default: false
|
default: false
|
||||||
# -- Controller-value of the controller that is processing this ingressClass
|
# -- Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value.
|
||||||
controllerValue: "k8s.io/ingress-nginx"
|
# This value is also being set as the `--controller-class` argument of this Ingress Controller.
|
||||||
# -- Parameters is a link to a custom resource containing additional
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class
|
||||||
# configuration for the controller. This is optional if the controller
|
controllerValue: k8s.io/ingress-nginx
|
||||||
# does not require extra parameters.
|
# -- A link to a custom resource containing additional configuration for the controller.
|
||||||
|
# This is optional if the controller consuming this IngressClass does not require additional parameters.
|
||||||
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class
|
||||||
parameters: {}
|
parameters: {}
|
||||||
|
# parameters:
|
||||||
|
# apiGroup: k8s.example.com
|
||||||
|
# kind: IngressParameters
|
||||||
|
# name: external-lb
|
||||||
# -- For backwards compatibility with ingress.class annotation, use ingressClass.
|
# -- For backwards compatibility with ingress.class annotation, use ingressClass.
|
||||||
# Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
|
# Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
|
||||||
ingressClass: nginx
|
ingressClass: nginx
|
||||||
|
@ -683,12 +692,12 @@ controller:
|
||||||
name: opentelemetry
|
name: opentelemetry
|
||||||
image:
|
image:
|
||||||
registry: registry.k8s.io
|
registry: registry.k8s.io
|
||||||
image: ingress-nginx/opentelemetry
|
image: ingress-nginx/opentelemetry-1.25.3
|
||||||
## for backwards compatibility consider setting the full image url via the repository value below
|
## for backwards compatibility consider setting the full image url via the repository value below
|
||||||
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
||||||
## repository:
|
## repository:
|
||||||
tag: "v20230721-3e2062ee5"
|
tag: v20240813-b933310d
|
||||||
digest: sha256:13bee3f5223883d3ca62fee7309ad02d22ec00ff0d7033e3e9aca7a9f60fd472
|
digest: sha256:f7604ac0547ed64d79b98d92133234e66c2c8aade3c1f4809fed5eec1fb7f922
|
||||||
distroless: true
|
distroless: true
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
|
@ -781,8 +790,8 @@ controller:
|
||||||
## for backwards compatibility consider setting the full image url via the repository value below
|
## for backwards compatibility consider setting the full image url via the repository value below
|
||||||
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
|
||||||
## repository:
|
## repository:
|
||||||
tag: v1.4.0
|
tag: v1.4.3
|
||||||
digest: sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334
|
digest: sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# -- Provide a priority class name to the webhook patching job
|
# -- Provide a priority class name to the webhook patching job
|
||||||
##
|
##
|
||||||
|
@ -1077,13 +1086,13 @@ imagePullSecrets: []
|
||||||
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
|
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
|
||||||
##
|
##
|
||||||
tcp: {}
|
tcp: {}
|
||||||
# 8080: "default/example-tcp-svc:9000"
|
# "8080": "default/example-tcp-svc:9000"
|
||||||
|
|
||||||
# -- UDP service key-value pairs
|
# -- UDP service key-value pairs
|
||||||
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
|
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
|
||||||
##
|
##
|
||||||
udp: {}
|
udp: {}
|
||||||
# 53: "kube-system/kube-dns:53"
|
# "53": "kube-system/kube-dns:53"
|
||||||
|
|
||||||
# -- Prefix for TCP and UDP ports names in ingress controller service
|
# -- Prefix for TCP and UDP ports names in ingress controller service
|
||||||
## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
|
## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
|
||||||
|
|
|
@ -1,25 +1,15 @@
|
||||||
# See https://cloud.google.com/cloud-build/docs/build-config
|
|
||||||
|
|
||||||
timeout: 18000s
|
|
||||||
options:
|
options:
|
||||||
|
# Ignore Prow provided substitutions.
|
||||||
substitution_option: ALLOW_LOOSE
|
substitution_option: ALLOW_LOOSE
|
||||||
steps:
|
steps:
|
||||||
- name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20211118-2f2d816b90'
|
- name: gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20240523-a15ad90fc9
|
||||||
entrypoint: bash
|
|
||||||
env:
|
env:
|
||||||
- DOCKER_CLI_EXPERIMENTAL=enabled
|
|
||||||
- REGISTRY=gcr.io/k8s-staging-ingress-nginx
|
- REGISTRY=gcr.io/k8s-staging-ingress-nginx
|
||||||
- REPO_INFO=https://github.com/kubernetes/ingress-nginx
|
- REPO_INFO=https://github.com/kubernetes/ingress-nginx
|
||||||
- COMMIT_SHA=$_PULL_BASE_SHA
|
- COMMIT_SHA=${_PULL_BASE_SHA}
|
||||||
- BUILD_ID=$BUILD_ID
|
- BUILD_ID=${BUILD_ID}
|
||||||
- HOME=/root
|
entrypoint: bash
|
||||||
- USER=root
|
|
||||||
args:
|
args:
|
||||||
- -c
|
- -c
|
||||||
- |
|
- gcloud auth configure-docker && make release
|
||||||
gcloud auth configure-docker \
|
timeout: 1800s
|
||||||
&& make release
|
|
||||||
substitutions:
|
|
||||||
_GIT_TAG: "12345"
|
|
||||||
_PULL_BASE_REF: "main"
|
|
||||||
_PULL_BASE_SHA: '12345'
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ func main() {
|
||||||
backendsAllCmd := &cobra.Command{
|
backendsAllCmd := &cobra.Command{
|
||||||
Use: "all",
|
Use: "all",
|
||||||
Short: "Output the all dynamic backend information as a JSON array",
|
Short: "Output the all dynamic backend information as a JSON array",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(_ *cobra.Command, _ []string) {
|
||||||
backendsAll()
|
backendsAll()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ func main() {
|
||||||
backendsListCmd := &cobra.Command{
|
backendsListCmd := &cobra.Command{
|
||||||
Use: "list",
|
Use: "list",
|
||||||
Short: "Output a newline-separated list of the backend names",
|
Short: "Output a newline-separated list of the backend names",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(_ *cobra.Command, _ []string) {
|
||||||
backendsList()
|
backendsList()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ func main() {
|
||||||
Use: "get [backend name]",
|
Use: "get [backend name]",
|
||||||
Short: "Output the backend information only for the backend that has this name",
|
Short: "Output the backend information only for the backend that has this name",
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(_ *cobra.Command, args []string) {
|
||||||
backendsGet(args[0])
|
backendsGet(args[0])
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ func main() {
|
||||||
Use: "get [hostname]",
|
Use: "get [hostname]",
|
||||||
Short: "Get the dynamically-loaded certificate information for the given hostname",
|
Short: "Get the dynamically-loaded certificate information for the given hostname",
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, args []string) error {
|
||||||
certGet(args[0])
|
certGet(args[0])
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
@ -93,7 +93,7 @@ func main() {
|
||||||
generalCmd := &cobra.Command{
|
generalCmd := &cobra.Command{
|
||||||
Use: "general",
|
Use: "general",
|
||||||
Short: "Output the general dynamic lua state",
|
Short: "Output the general dynamic lua state",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(_ *cobra.Command, _ []string) {
|
||||||
general()
|
general()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ func main() {
|
||||||
confCmd := &cobra.Command{
|
confCmd := &cobra.Command{
|
||||||
Use: "conf",
|
Use: "conf",
|
||||||
Short: "Dump the contents of /etc/nginx/nginx.conf",
|
Short: "Dump the contents of /etc/nginx/nginx.conf",
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(_ *cobra.Command, _ []string) {
|
||||||
readNginxConf()
|
readNginxConf()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@ func main() {
|
||||||
handleFatalInitError(err)
|
handleFatalInitError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(conf.DefaultService) > 0 {
|
if conf.DefaultService != "" {
|
||||||
err := checkService(conf.DefaultService, kubeClient)
|
err := checkService(conf.DefaultService, kubeClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatal(err)
|
klog.Fatal(err)
|
||||||
|
@ -83,7 +83,7 @@ func main() {
|
||||||
klog.InfoS("Valid default backend", "service", conf.DefaultService)
|
klog.InfoS("Valid default backend", "service", conf.DefaultService)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(conf.PublishService) > 0 {
|
if conf.PublishService != "" {
|
||||||
err := checkService(conf.PublishService, kubeClient)
|
err := checkService(conf.PublishService, kubeClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatal(err)
|
klog.Fatal(err)
|
||||||
|
@ -235,7 +235,6 @@ func createApiserverClient(apiserverHost, rootCAFile, kubeConfig string) (*kuber
|
||||||
retries++
|
retries++
|
||||||
return false, nil
|
return false, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
// err is returned in case of timeout in the exponential backoff (ErrWaitTimeout)
|
// err is returned in case of timeout in the exponential backoff (ErrWaitTimeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, lastErr
|
return nil, lastErr
|
||||||
|
|
|
@ -34,7 +34,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "backends",
|
Use: "backends",
|
||||||
Short: "Inspect the dynamic backend information of an ingress-nginx instance",
|
Short: "Inspect the dynamic backend information of an ingress-nginx instance",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
backend, err := cmd.Flags().GetString("backend")
|
backend, err := cmd.Flags().GetString("backend")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -35,7 +35,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "certs",
|
Use: "certs",
|
||||||
Short: "Output the certificate data stored in an ingress-nginx pod",
|
Short: "Output the certificate data stored in an ingress-nginx pod",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
host, err := cmd.Flags().GetString("host")
|
host, err := cmd.Flags().GetString("host")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -36,7 +36,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "conf",
|
Use: "conf",
|
||||||
Short: "Inspect the generated nginx.conf",
|
Short: "Inspect the generated nginx.conf",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
host, err := cmd.Flags().GetString("host")
|
host, err := cmd.Flags().GetString("host")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -34,7 +34,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "exec",
|
Use: "exec",
|
||||||
Short: "Execute a command inside an ingress-nginx pod",
|
Short: "Execute a command inside an ingress-nginx pod",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, args []string) error {
|
||||||
util.PrintError(exec(flags, *pod, *deployment, *selector, *container, args, opts))
|
util.PrintError(exec(flags, *pod, *deployment, *selector, *container, args, opts))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
|
|
@ -34,7 +34,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "general",
|
Use: "general",
|
||||||
Short: "Inspect the other dynamic ingress-nginx information",
|
Short: "Inspect the other dynamic ingress-nginx information",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, _ []string) error {
|
||||||
util.PrintError(general(flags, *pod, *deployment, *selector, *container))
|
util.PrintError(general(flags, *pod, *deployment, *selector, *container))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
|
|
@ -32,7 +32,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "info",
|
Use: "info",
|
||||||
Short: "Show information about the ingress-nginx service",
|
Short: "Show information about the ingress-nginx service",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
service, err := cmd.Flags().GetString("service")
|
service, err := cmd.Flags().GetString("service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -36,7 +36,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
Use: "ingresses",
|
Use: "ingresses",
|
||||||
Aliases: []string{"ingress", "ing"},
|
Aliases: []string{"ingress", "ing"},
|
||||||
Short: "Provide a short summary of all of the ingress definitions",
|
Short: "Provide a short summary of all of the ingress definitions",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
host, err := cmd.Flags().GetString("host")
|
host, err := cmd.Flags().GetString("host")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -139,14 +139,14 @@ func getIngressRows(ingresses *[]networking.Ingress) []ingressRow {
|
||||||
ing := &(*ingresses)[i]
|
ing := &(*ingresses)[i]
|
||||||
address := ""
|
address := ""
|
||||||
for _, lbIng := range ing.Status.LoadBalancer.Ingress {
|
for _, lbIng := range ing.Status.LoadBalancer.Ingress {
|
||||||
if len(lbIng.IP) > 0 {
|
if lbIng.IP != "" {
|
||||||
address = address + lbIng.IP + ","
|
address = address + lbIng.IP + ","
|
||||||
}
|
}
|
||||||
if len(lbIng.Hostname) > 0 {
|
if lbIng.Hostname != "" {
|
||||||
address = address + lbIng.Hostname + ","
|
address = address + lbIng.Hostname + ","
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(address) > 0 {
|
if address != "" {
|
||||||
address = address[:len(address)-1]
|
address = address[:len(address)-1]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ func getIngressRows(ingresses *[]networking.Ingress) []ingressRow {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle catch-all ingress
|
// Handle catch-all ingress
|
||||||
if len(ing.Spec.Rules) == 0 && len(defaultBackendService) > 0 {
|
if len(ing.Spec.Rules) == 0 && defaultBackendService != "" {
|
||||||
row := ingressRow{
|
row := ingressRow{
|
||||||
Namespace: ing.Namespace,
|
Namespace: ing.Namespace,
|
||||||
IngressName: ing.Name,
|
IngressName: ing.Name,
|
||||||
|
|
|
@ -38,7 +38,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "lint",
|
Use: "lint",
|
||||||
Short: "Inspect kubernetes resources for possible issues",
|
Short: "Inspect kubernetes resources for possible issues",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, _ []string) error {
|
||||||
err := opts.Validate()
|
err := opts.Validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -73,7 +73,7 @@ func createSubcommand(flags *genericclioptions.ConfigFlags, names []string, shor
|
||||||
Use: names[0],
|
Use: names[0],
|
||||||
Aliases: names[1:],
|
Aliases: names[1:],
|
||||||
Short: short,
|
Short: short,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, _ []string) error {
|
||||||
err := opts.Validate()
|
err := opts.Validate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -36,7 +36,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "logs",
|
Use: "logs",
|
||||||
Short: "Get the kubernetes logs for an ingress-nginx pod",
|
Short: "Get the kubernetes logs for an ingress-nginx pod",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, _ []string) error {
|
||||||
util.PrintError(logs(flags, *pod, *deployment, *selector, *container, o))
|
util.PrintError(logs(flags, *pod, *deployment, *selector, *container, o))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
|
|
@ -32,7 +32,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command {
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "ssh",
|
Use: "ssh",
|
||||||
Short: "ssh into a running ingress-nginx pod",
|
Short: "ssh into a running ingress-nginx pod",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(_ *cobra.Command, _ []string) error {
|
||||||
util.PrintError(ssh(flags, *pod, *deployment, *selector, *container))
|
util.PrintError(ssh(flags, *pod, *deployment, *selector, *container))
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,7 +19,7 @@ This folder contains two dashboards that you can import.
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- **Grafana v5.2.0** (or newer)
|
- **Grafana v10.4.3** (or newer)
|
||||||
|
|
||||||
## 2. Request Handling Performance
|
## 2. Request Handling Performance
|
||||||
|
|
||||||
|
@ -36,4 +36,4 @@ This folder contains two dashboards that you can import.
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- **Grafana v6.6.0** (or newer)
|
- **Grafana v10.4.3** (or newer)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,7 +328,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -344,7 +344,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -377,7 +377,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -400,7 +400,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -422,7 +422,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -435,6 +435,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -446,7 +447,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -522,7 +523,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -533,7 +534,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -547,7 +548,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -573,7 +574,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -584,7 +585,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -600,7 +601,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -626,7 +627,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -639,7 +640,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -335,7 +335,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -353,7 +353,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -386,7 +386,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -409,7 +409,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -431,7 +431,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -444,6 +444,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -455,7 +456,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -534,7 +535,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -545,7 +546,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -559,7 +560,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -585,7 +586,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -596,7 +597,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -612,7 +613,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -638,7 +639,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -651,7 +652,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,7 +328,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -340,7 +340,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -372,7 +372,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -395,7 +395,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -417,7 +417,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -429,6 +429,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -440,7 +441,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -516,7 +517,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -527,7 +528,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -541,7 +542,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -567,7 +568,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -578,7 +579,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -594,7 +595,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -620,7 +621,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -633,7 +634,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,7 +328,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -340,7 +340,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -373,7 +373,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -396,7 +396,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -418,7 +418,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -431,6 +431,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -442,7 +443,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -518,7 +519,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -529,7 +530,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -543,7 +544,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -569,7 +570,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -580,7 +581,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -596,7 +597,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -622,7 +623,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -635,7 +636,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -329,7 +329,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -343,7 +343,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -376,7 +376,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -399,7 +399,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -421,7 +421,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -434,6 +434,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -445,7 +446,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -521,7 +522,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -532,7 +533,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -546,7 +547,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -572,7 +573,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -583,7 +584,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -599,7 +600,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -625,7 +626,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -638,7 +639,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,7 +328,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -349,7 +349,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -382,7 +382,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -405,7 +405,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -423,7 +423,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -436,6 +436,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -447,7 +448,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -527,7 +528,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -538,7 +539,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -552,7 +553,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -578,7 +579,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -589,7 +590,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -605,7 +606,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -631,7 +632,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -644,7 +645,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,7 +328,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -340,7 +340,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -372,7 +372,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -395,7 +395,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -417,7 +417,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -430,6 +430,7 @@ spec:
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
- --watch-ingress-without-class=true
|
- --watch-ingress-without-class=true
|
||||||
|
- --enable-metrics=false
|
||||||
- --publish-status-address=localhost
|
- --publish-status-address=localhost
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
|
@ -442,7 +443,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -528,7 +529,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -539,7 +540,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -553,7 +554,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -579,7 +580,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -590,7 +591,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -606,7 +607,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -632,7 +633,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -645,7 +646,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,7 +328,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -344,7 +344,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -377,7 +377,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -400,7 +400,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -422,7 +422,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -435,6 +435,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -446,7 +447,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -522,7 +523,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -533,7 +534,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -547,7 +548,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -573,7 +574,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -584,7 +585,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -600,7 +601,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -626,7 +627,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -639,7 +640,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -27,7 +27,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -39,7 +39,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -129,7 +129,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -148,7 +148,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -230,7 +230,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -249,7 +249,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -269,7 +269,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -288,7 +288,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -307,7 +307,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -329,7 +329,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -343,7 +343,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -376,7 +376,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -399,7 +399,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -421,7 +421,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
|
@ -434,6 +434,7 @@ spec:
|
||||||
- --validating-webhook=:8443
|
- --validating-webhook=:8443
|
||||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||||
- --validating-webhook-key=/usr/local/certificates/key
|
- --validating-webhook-key=/usr/local/certificates/key
|
||||||
|
- --enable-metrics=false
|
||||||
env:
|
env:
|
||||||
- name: POD_NAME
|
- name: POD_NAME
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -445,7 +446,7 @@ spec:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
- name: LD_PRELOAD
|
- name: LD_PRELOAD
|
||||||
value: /usr/local/lib/libmimalloc.so
|
value: /usr/local/lib/libmimalloc.so
|
||||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c
|
image: registry.k8s.io/ingress-nginx/controller:v1.10.4@sha256:505b9048c02dde3d6c8667bf0b52aba7b36adf7b03da34c47d5fa312d2d4c6fc
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -521,7 +522,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -532,7 +533,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -546,7 +547,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -572,7 +573,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -583,7 +584,7 @@ spec:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -599,7 +600,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3@sha256:a320a50cc91bd15fd2d6fa6de58bd98c1bd64b9a6f926ce23a600d87043455a3
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -625,7 +626,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -638,7 +639,7 @@ metadata:
|
||||||
app.kubernetes.io/instance: ingress-nginx
|
app.kubernetes.io/instance: ingress-nginx
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
app.kubernetes.io/version: 1.9.6
|
app.kubernetes.io/version: 1.10.4
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md
|
# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners
|
||||||
|
|
||||||
approvers:
|
approvers:
|
||||||
- ingress-nginx-docs-maintainers
|
- ingress-nginx-docs-maintainers
|
||||||
|
|
||||||
labels:
|
labels:
|
||||||
- area/docs
|
- area/docs
|
||||||
|
|
|
@ -6,10 +6,10 @@ There are multiple ways to install the Ingress-Nginx Controller:
|
||||||
- with `kubectl apply`, using YAML manifests;
|
- with `kubectl apply`, using YAML manifests;
|
||||||
- with specific addons (e.g. for [minikube](#minikube) or [MicroK8s](#microk8s)).
|
- with specific addons (e.g. for [minikube](#minikube) or [MicroK8s](#microk8s)).
|
||||||
|
|
||||||
On most Kubernetes clusters, the ingress controller will work without requiring any extra configuration. If you want to
|
On most Kubernetes clusters, the ingress controller will work without requiring any extra configuration. If you want to
|
||||||
get started as fast as possible, you can check the [quick start](#quick-start) instructions. However, in many
|
get started as fast as possible, you can check the [quick start](#quick-start) instructions. However, in many
|
||||||
environments, you can improve the performance or get better logs by enabling extra features. We recommend that you
|
environments, you can improve the performance or get better logs by enabling extra features. We recommend that you
|
||||||
check the [environment-specific instructions](#environment-specific-instructions) for details about optimizing the
|
check the [environment-specific instructions](#environment-specific-instructions) for details about optimizing the
|
||||||
ingress controller for your particular environment or cloud provider.
|
ingress controller for your particular environment or cloud provider.
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
@ -34,11 +34,11 @@ ingress controller for your particular environment or cloud provider.
|
||||||
- ... [Bare-metal](#bare-metal-clusters)
|
- ... [Bare-metal](#bare-metal-clusters)
|
||||||
- [Miscellaneous](#miscellaneous)
|
- [Miscellaneous](#miscellaneous)
|
||||||
|
|
||||||
<!-- TODO: We have subdirectories for kubernetes versions now because of a PR
|
<!-- TODO: We have subdirectories for kubernetes versions now because of a PR
|
||||||
https://github.com/kubernetes/ingress-nginx/pull/8162 . You can see this here
|
https://github.com/kubernetes/ingress-nginx/pull/8162 . You can see this here
|
||||||
https://github.com/kubernetes/ingress-nginx/tree/main/deploy/static/provider/cloud .
|
https://github.com/kubernetes/ingress-nginx/tree/main/deploy/static/provider/cloud .
|
||||||
We need to add documentation here that is clear and unambiguous in guiding users to pick the deployment manifest
|
We need to add documentation here that is clear and unambiguous in guiding users to pick the deployment manifest
|
||||||
under a subdirectory, based on the K8S version being used. But until the explicit clear docs land here, users are
|
under a subdirectory, based on the K8S version being used. But until the explicit clear docs land here, users are
|
||||||
free to use those subdirectories and get the manifest(s) related to their K8S version. -->
|
free to use those subdirectories and get the manifest(s) related to their K8S version. -->
|
||||||
|
|
||||||
## Quick start
|
## Quick start
|
||||||
|
@ -65,14 +65,33 @@ It will install the controller in the `ingress-nginx` namespace, creating that n
|
||||||
helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx
|
helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
|
!!! attention "Helm install on AWS/GCP/Azure/Other providers"
|
||||||
|
The *ingress-nginx-controller helm-chart is a generic install out of the box*. The default set of helm values is **not** configured for installation on any infra provider. The annotations that are applicable to the cloud provider must be customized by the users.<br/>
|
||||||
|
See [AWS LB Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/service/annotations/).<br/>
|
||||||
|
Examples of some annotations needed for the service resource of `--type LoadBalancer` on AWS are below:
|
||||||
|
```yaml
|
||||||
|
annotations:
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-type: nlb
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules: "true"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "true"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-security-groups: "sg-something1 sg-something2"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: "somebucket"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix: "ingress-nginx"
|
||||||
|
service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "5"
|
||||||
|
```
|
||||||
|
|
||||||
**If you don't have Helm** or if you prefer to use a YAML manifest, you can run the following command instead:
|
**If you don't have Helm** or if you prefer to use a YAML manifest, you can run the following command instead:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/cloud/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
The YAML manifest in the command above was generated with `helm template`, so you will end up with almost the same
|
The YAML manifest in the command above was generated with `helm template`, so you will end up with almost the same
|
||||||
resources as if you had used Helm to install the controller.
|
resources as if you had used Helm to install the controller.
|
||||||
|
|
||||||
!!! attention
|
!!! attention
|
||||||
|
@ -83,6 +102,7 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont
|
||||||
### Firewall configuration
|
### Firewall configuration
|
||||||
|
|
||||||
To check which ports are used by your installation of ingress-nginx, look at the output of `kubectl -n ingress-nginx get pod -o yaml`. In general, you need:
|
To check which ports are used by your installation of ingress-nginx, look at the output of `kubectl -n ingress-nginx get pod -o yaml`. In general, you need:
|
||||||
|
|
||||||
- Port 8443 open between all hosts on which the kubernetes nodes are running. This is used for the ingress-nginx [admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/).
|
- Port 8443 open between all hosts on which the kubernetes nodes are running. This is used for the ingress-nginx [admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/).
|
||||||
- Port 80 (for HTTP) and/or 443 (for HTTPS) open to the public on the kubernetes nodes to which the DNS of your apps are pointing.
|
- Port 80 (for HTTP) and/or 443 (for HTTPS) open to the public on the kubernetes nodes to which the DNS of your apps are pointing.
|
||||||
|
|
||||||
|
@ -94,7 +114,7 @@ A few pods should start in the `ingress-nginx` namespace:
|
||||||
kubectl get pods --namespace=ingress-nginx
|
kubectl get pods --namespace=ingress-nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
After a while, they should all be running. The following command will wait for the ingress controller pod to be up,
|
After a while, they should all be running. The following command will wait for the ingress controller pod to be up,
|
||||||
running, and ready:
|
running, and ready:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
|
@ -104,7 +124,6 @@ kubectl wait --namespace ingress-nginx \
|
||||||
--timeout=120s
|
--timeout=120s
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Local testing
|
### Local testing
|
||||||
|
|
||||||
Let's create a simple web server and the associated service:
|
Let's create a simple web server and the associated service:
|
||||||
|
@ -135,6 +154,7 @@ kubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller
|
||||||
[This issue](https://github.com/kubernetes/ingress-nginx/issues/10014#issuecomment-1567791549described) shows a typical DNS problem and its solution.
|
[This issue](https://github.com/kubernetes/ingress-nginx/issues/10014#issuecomment-1567791549described) shows a typical DNS problem and its solution.
|
||||||
|
|
||||||
At this point, you can access your deployment using curl ;
|
At this point, you can access your deployment using curl ;
|
||||||
|
|
||||||
```console
|
```console
|
||||||
curl --resolve demo.localdev.me:8080:127.0.0.1 http://demo.localdev.me:8080
|
curl --resolve demo.localdev.me:8080:127.0.0.1 http://demo.localdev.me:8080
|
||||||
```
|
```
|
||||||
|
@ -143,7 +163,7 @@ You should see a HTML response containing text like **"It works!"**.
|
||||||
|
|
||||||
### Online testing
|
### Online testing
|
||||||
|
|
||||||
If your Kubernetes cluster is a "real" cluster that supports services of type `LoadBalancer`, it will have allocated an
|
If your Kubernetes cluster is a "real" cluster that supports services of type `LoadBalancer`, it will have allocated an
|
||||||
external IP address or FQDN to the ingress controller.
|
external IP address or FQDN to the ingress controller.
|
||||||
|
|
||||||
You can see that IP address or FQDN with the following command:
|
You can see that IP address or FQDN with the following command:
|
||||||
|
@ -152,10 +172,10 @@ You can see that IP address or FQDN with the following command:
|
||||||
kubectl get service ingress-nginx-controller --namespace=ingress-nginx
|
kubectl get service ingress-nginx-controller --namespace=ingress-nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
It will be the `EXTERNAL-IP` field. If that field shows `<pending>`, this means that your Kubernetes cluster wasn't
|
It will be the `EXTERNAL-IP` field. If that field shows `<pending>`, this means that your Kubernetes cluster wasn't
|
||||||
able to provision the load balancer (generally, this is because it doesn't support services of type `LoadBalancer`).
|
able to provision the load balancer (generally, this is because it doesn't support services of type `LoadBalancer`).
|
||||||
|
|
||||||
Once you have the external IP address (or FQDN), set up a DNS record pointing to it. Then you can create an ingress
|
Once you have the external IP address (or FQDN), set up a DNS record pointing to it. Then you can create an ingress
|
||||||
resource. The following example assumes that you have set up a DNS record for `www.demo.io`:
|
resource. The following example assumes that you have set up a DNS record for `www.demo.io`:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
|
@ -164,13 +184,13 @@ kubectl create ingress demo --class=nginx \
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, the above command can be rewritten as follows for the ```--rule``` command and below.
|
Alternatively, the above command can be rewritten as follows for the ```--rule``` command and below.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl create ingress demo --class=nginx \
|
kubectl create ingress demo --class=nginx \
|
||||||
--rule www.demo.io/=demo:80
|
--rule www.demo.io/=demo:80
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You should then be able to see the "It works!" page when you connect to <http://www.demo.io/>. Congratulations,
|
||||||
You should then be able to see the "It works!" page when you connect to http://www.demo.io/. Congratulations,
|
|
||||||
you are serving a public website hosted on a Kubernetes cluster! 🎉
|
you are serving a public website hosted on a Kubernetes cluster! 🎉
|
||||||
|
|
||||||
## Environment-specific instructions
|
## Environment-specific instructions
|
||||||
|
@ -202,19 +222,19 @@ Kubernetes is available in Docker Desktop:
|
||||||
- Mac, from [version 18.06.0-ce](https://docs.docker.com/docker-for-mac/release-notes/#stable-releases-of-2018)
|
- Mac, from [version 18.06.0-ce](https://docs.docker.com/docker-for-mac/release-notes/#stable-releases-of-2018)
|
||||||
- Windows, from [version 18.06.0-ce](https://docs.docker.com/docker-for-windows/release-notes/#docker-community-edition-18060-ce-win70-2018-07-25)
|
- Windows, from [version 18.06.0-ce](https://docs.docker.com/docker-for-windows/release-notes/#docker-community-edition-18060-ce-win70-2018-07-25)
|
||||||
|
|
||||||
First, make sure that Kubernetes is enabled in the Docker settings. The command `kubectl get nodes` should show a
|
First, make sure that Kubernetes is enabled in the Docker settings. The command `kubectl get nodes` should show a
|
||||||
single node called `docker-desktop`.
|
single node called `docker-desktop`.
|
||||||
|
|
||||||
The ingress controller can be installed on Docker Desktop using the default [quick start](#quick-start) instructions.
|
The ingress controller can be installed on Docker Desktop using the default [quick start](#quick-start) instructions.
|
||||||
|
|
||||||
On most systems, if you don't have any other service of type `LoadBalancer` bound to port 80, the ingress controller
|
On most systems, if you don't have any other service of type `LoadBalancer` bound to port 80, the ingress controller
|
||||||
will be assigned the `EXTERNAL-IP` of `localhost`, which means that it will be reachable on localhost:80. If that
|
will be assigned the `EXTERNAL-IP` of `localhost`, which means that it will be reachable on localhost:80. If that
|
||||||
doesn't work, you might have to fall back to the `kubectl port-forward` method described in the
|
doesn't work, you might have to fall back to the `kubectl port-forward` method described in the
|
||||||
[local testing section](#local-testing).
|
[local testing section](#local-testing).
|
||||||
|
|
||||||
#### Rancher Desktop
|
#### Rancher Desktop
|
||||||
|
|
||||||
Rancher Desktop provides Kubernetes and Container Management on the desktop. Kubernetes is enabled by default in Rancher Desktop.
|
Rancher Desktop provides Kubernetes and Container Management on the desktop. Kubernetes is enabled by default in Rancher Desktop.
|
||||||
|
|
||||||
Rancher Desktop uses K3s under the hood, which in turn uses Traefik as the default ingress controller for the Kubernetes cluster. To use Ingress-Nginx Controller in place of the default Traefik, disable Traefik from Preference > Kubernetes menu.
|
Rancher Desktop uses K3s under the hood, which in turn uses Traefik as the default ingress controller for the Kubernetes cluster. To use Ingress-Nginx Controller in place of the default Traefik, disable Traefik from Preference > Kubernetes menu.
|
||||||
|
|
||||||
|
@ -222,18 +242,18 @@ Once traefik is disabled, the Ingress-Nginx Controller can be installed on Ranch
|
||||||
|
|
||||||
### Cloud deployments
|
### Cloud deployments
|
||||||
|
|
||||||
If the load balancers of your cloud provider do active healthchecks on their backends (most do), you can change the
|
If the load balancers of your cloud provider do active healthchecks on their backends (most do), you can change the
|
||||||
`externalTrafficPolicy` of the ingress controller Service to `Local` (instead of the default `Cluster`) to save an
|
`externalTrafficPolicy` of the ingress controller Service to `Local` (instead of the default `Cluster`) to save an
|
||||||
extra hop in some cases. If you're installing with Helm, this can be done by adding
|
extra hop in some cases. If you're installing with Helm, this can be done by adding
|
||||||
`--set controller.service.externalTrafficPolicy=Local` to the `helm install` or `helm upgrade` command.
|
`--set controller.service.externalTrafficPolicy=Local` to the `helm install` or `helm upgrade` command.
|
||||||
|
|
||||||
Furthermore, if the load balancers of your cloud provider support the PROXY protocol, you can enable it, and it will
|
Furthermore, if the load balancers of your cloud provider support the PROXY protocol, you can enable it, and it will
|
||||||
let the ingress controller see the real IP address of the clients. Otherwise, it will generally see the IP address of
|
let the ingress controller see the real IP address of the clients. Otherwise, it will generally see the IP address of
|
||||||
the upstream load balancer. This must be done both in the ingress controller
|
the upstream load balancer. This must be done both in the ingress controller
|
||||||
(with e.g. `--set controller.config.use-proxy-protocol=true`) and in the cloud provider's load balancer configuration
|
(with e.g. `--set controller.config.use-proxy-protocol=true`) and in the cloud provider's load balancer configuration
|
||||||
to function correctly.
|
to function correctly.
|
||||||
|
|
||||||
In the following sections, we provide YAML manifests that enable these options when possible, using the specific
|
In the following sections, we provide YAML manifests that enable these options when possible, using the specific
|
||||||
options of various cloud providers.
|
options of various cloud providers.
|
||||||
|
|
||||||
#### AWS
|
#### AWS
|
||||||
|
@ -242,54 +262,58 @@ In AWS, we use a Network load balancer (NLB) to expose the Ingress-Nginx Control
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
The provided templates illustrate the setup for legacy in-tree service load balancer for AWS NLB.
|
The provided templates illustrate the setup for legacy in-tree service load balancer for AWS NLB.
|
||||||
AWS provides the documentation on how to use
|
AWS provides the documentation on how to use
|
||||||
[Network load balancing on Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html)
|
[Network load balancing on Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html)
|
||||||
with [AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller).
|
with [AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller).
|
||||||
|
|
||||||
|
|
||||||
##### Network Load Balancer (NLB)
|
##### Network Load Balancer (NLB)
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/aws/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
##### TLS termination in AWS Load Balancer (NLB)
|
##### TLS termination in AWS Load Balancer (NLB)
|
||||||
|
|
||||||
By default, TLS is terminated in the ingress controller. But it is also possible to terminate TLS in the Load Balancer.
|
By default, TLS is terminated in the ingress controller. But it is also possible to terminate TLS in the Load Balancer.
|
||||||
This section explains how to do that on AWS using an NLB.
|
This section explains how to do that on AWS using an NLB.
|
||||||
|
|
||||||
1. Download the [deploy.yaml](https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template
|
1. Download the [deploy.yaml](https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template
|
||||||
|
|
||||||
```console
|
```console
|
||||||
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml
|
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Edit the file and change the VPC CIDR in use for the Kubernetes cluster:
|
2. Edit the file and change the VPC CIDR in use for the Kubernetes cluster:
|
||||||
|
|
||||||
```
|
```
|
||||||
proxy-real-ip-cidr: XXX.XXX.XXX/XX
|
proxy-real-ip-cidr: XXX.XXX.XXX/XX
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Change the AWS Certificate Manager (ACM) ID as well:
|
3. Change the AWS Certificate Manager (ACM) ID as well:
|
||||||
|
|
||||||
```
|
```
|
||||||
arn:aws:acm:us-west-2:XXXXXXXX:certificate/XXXXXX-XXXXXXX-XXXXXXX-XXXXXXXX
|
arn:aws:acm:us-west-2:XXXXXXXX:certificate/XXXXXX-XXXXXXX-XXXXXXX-XXXXXXXX
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Deploy the manifest:
|
4. Deploy the manifest:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f deploy.yaml
|
kubectl apply -f deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
##### NLB Idle Timeouts
|
##### NLB Idle Timeouts
|
||||||
|
|
||||||
Idle timeout value for TCP flows is 350 seconds and
|
Idle timeout value for TCP flows is 350 seconds and
|
||||||
[cannot be modified](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout).
|
[cannot be modified](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout).
|
||||||
|
|
||||||
For this reason, you need to ensure the
|
For this reason, you need to ensure the
|
||||||
[keepalive_timeout](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout)
|
[keepalive_timeout](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout)
|
||||||
value is configured less than 350 seconds to work as expected.
|
value is configured less than 350 seconds to work as expected.
|
||||||
|
|
||||||
By default, NGINX `keepalive_timeout` is set to `75s`.
|
By default, NGINX `keepalive_timeout` is set to `75s`.
|
||||||
|
|
||||||
More information with regard to timeouts can be found in the
|
More information with regard to timeouts can be found in the
|
||||||
[official AWS documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout)
|
[official AWS documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout)
|
||||||
|
|
||||||
#### GCE-GKE
|
#### GCE-GKE
|
||||||
|
@ -304,18 +328,17 @@ kubectl create clusterrolebinding cluster-admin-binding \
|
||||||
|
|
||||||
Then, the ingress controller can be installed like this:
|
Then, the ingress controller can be installed like this:
|
||||||
|
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/cloud/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
For private clusters, you will need to either add a firewall rule that allows master nodes access to
|
For private clusters, you will need to either add a firewall rule that allows master nodes access to
|
||||||
port `8443/tcp` on worker nodes, or change the existing rule that allows access to port `80/tcp`, `443/tcp` and
|
port `8443/tcp` on worker nodes, or change the existing rule that allows access to port `80/tcp`, `443/tcp` and
|
||||||
`10254/tcp` to also allow access to port `8443/tcp`. More information can be found in the
|
`10254/tcp` to also allow access to port `8443/tcp`. More information can be found in the
|
||||||
[Official GCP Documentation](https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp#config-hc-firewall).
|
[Official GCP Documentation](https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp#config-hc-firewall).
|
||||||
|
|
||||||
See the [GKE documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules)
|
See the [GKE documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules)
|
||||||
on adding rules and the [Kubernetes issue](https://github.com/kubernetes/kubernetes/issues/79739) for more detail.
|
on adding rules and the [Kubernetes issue](https://github.com/kubernetes/kubernetes/issues/79739) for more detail.
|
||||||
|
|
||||||
Proxy-protocol is supported in GCE check the [Official Documentations on how to enable.](https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp#proxy-protocol)
|
Proxy-protocol is supported in GCE check the [Official Documentations on how to enable.](https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp#proxy-protocol)
|
||||||
|
@ -323,7 +346,7 @@ Proxy-protocol is supported in GCE check the [Official Documentations on how to
|
||||||
#### Azure
|
#### Azure
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/cloud/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
More information with regard to Azure annotations for ingress controller can be found in the [official AKS documentation](https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip#create-an-ingress-controller).
|
More information with regard to Azure annotations for ingress controller can be found in the [official AKS documentation](https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip#create-an-ingress-controller).
|
||||||
|
@ -331,16 +354,18 @@ More information with regard to Azure annotations for ingress controller can be
|
||||||
#### Digital Ocean
|
#### Digital Ocean
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/do/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/do/deploy.yaml
|
||||||
```
|
```
|
||||||
- By default the service object of the ingress-nginx-controller for Digital-Ocean, only configures one annotation. Its this one `service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"`. While this makes the service functional, it was reported that the Digital-Ocean LoadBalancer graphs shows `no data`, unless a few other annotations are also configured. Some of these other annotations require values that can not be generic and hence not forced in a out-of-the-box installation. These annotations and a discussion on them is well documented in [this issue](https://github.com/kubernetes/ingress-nginx/issues/8965). Please refer to the issue to add annotations, with values specific to user, to get graphs of the DO-LB populated with data.
|
|
||||||
|
|
||||||
|
- By default the service object of the ingress-nginx-controller for Digital-Ocean, only configures one annotation. Its this one `service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"`. While this makes the service functional, it was reported that the Digital-Ocean LoadBalancer graphs shows `no data`, unless a few other annotations are also configured. Some of these other annotations require values that can not be generic and hence not forced in a out-of-the-box installation. These annotations and a discussion on them is well documented in [this issue](https://github.com/kubernetes/ingress-nginx/issues/8965). Please refer to the issue to add annotations, with values specific to user, to get graphs of the DO-LB populated with data.
|
||||||
|
|
||||||
#### Scaleway
|
#### Scaleway
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/scw/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/scw/deploy.yaml
|
||||||
```
|
```
|
||||||
|
Refer to the [dedicated tutorial](https://www.scaleway.com/en/docs/tutorials/proxy-protocol-v2-load-balancer/#configuring-proxy-protocol-for-ingress-nginx) in the Scaleway documentation for configuring the proxy protocol for ingress-nginx with the Scaleway load balancer.
|
||||||
|
|
||||||
|
|
||||||
#### Exoscale
|
#### Exoscale
|
||||||
|
|
||||||
|
@ -348,17 +373,17 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/exoscale/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/exoscale/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
The full list of annotations supported by Exoscale is available in the Exoscale Cloud Controller Manager
|
The full list of annotations supported by Exoscale is available in the Exoscale Cloud Controller Manager
|
||||||
[documentation](https://github.com/exoscale/exoscale-cloud-controller-manager/blob/master/docs/service-loadbalancer.md).
|
[documentation](https://github.com/exoscale/exoscale-cloud-controller-manager/blob/master/docs/service-loadbalancer.md).
|
||||||
|
|
||||||
#### Oracle Cloud Infrastructure
|
#### Oracle Cloud Infrastructure
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/cloud/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
A
|
A
|
||||||
[complete list of available annotations for Oracle Cloud Infrastructure](https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md)
|
[complete list of available annotations for Oracle Cloud Infrastructure](https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md)
|
||||||
can be found in the [OCI Cloud Controller Manager](https://github.com/oracle/oci-cloud-controller-manager) documentation.
|
can be found in the [OCI Cloud Controller Manager](https://github.com/oracle/oci-cloud-controller-manager) documentation.
|
||||||
|
|
||||||
#### OVHcloud
|
#### OVHcloud
|
||||||
|
@ -373,15 +398,15 @@ You can find the [complete tutorial](https://docs.ovh.com/gb/en/kubernetes/insta
|
||||||
|
|
||||||
### Bare metal clusters
|
### Bare metal clusters
|
||||||
|
|
||||||
This section is applicable to Kubernetes clusters deployed on bare metal servers, as well as "raw" VMs where Kubernetes
|
This section is applicable to Kubernetes clusters deployed on bare metal servers, as well as "raw" VMs where Kubernetes
|
||||||
was installed manually, using generic Linux distros (like CentOS, Ubuntu...)
|
was installed manually, using generic Linux distros (like CentOS, Ubuntu...)
|
||||||
|
|
||||||
For quick testing, you can use a
|
For quick testing, you can use a
|
||||||
[NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport).
|
[NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport).
|
||||||
This should work on almost every cluster, but it will typically use a port in the range 30000-32767.
|
This should work on almost every cluster, but it will typically use a port in the range 30000-32767.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/baremetal/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.4/deploy/static/provider/baremetal/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
For more information about bare metal deployments (and how to use port 80 instead of a random port in the 30000-32767 range),
|
For more information about bare metal deployments (and how to use port 80 instead of a random port in the 30000-32767 range),
|
||||||
|
@ -401,20 +426,20 @@ kubectl exec $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version
|
||||||
|
|
||||||
### Scope
|
### Scope
|
||||||
|
|
||||||
By default, the controller watches Ingress objects from all namespaces. If you want to change this behavior,
|
By default, the controller watches Ingress objects from all namespaces. If you want to change this behavior,
|
||||||
use the flag `--watch-namespace` or check the Helm chart value `controller.scope` to limit the controller to a single
|
use the flag `--watch-namespace` or check the Helm chart value `controller.scope` to limit the controller to a single
|
||||||
namespace.
|
namespace.
|
||||||
|
|
||||||
See also
|
See also
|
||||||
[“How to easily install multiple instances of the Ingress NGINX controller in the same cluster”](https://kubernetes.github.io/ingress-nginx/#how-to-easily-install-multiple-instances-of-the-ingress-nginx-controller-in-the-same-cluster)
|
[“How to easily install multiple instances of the Ingress NGINX controller in the same cluster”](https://kubernetes.github.io/ingress-nginx/#how-to-easily-install-multiple-instances-of-the-ingress-nginx-controller-in-the-same-cluster)
|
||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
### Webhook network access
|
### Webhook network access
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
The controller uses an [admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/)
|
The controller uses an [admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/)
|
||||||
to validate Ingress definitions. Make sure that you don't have
|
to validate Ingress definitions. Make sure that you don't have
|
||||||
[Network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
|
[Network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
|
||||||
or additional firewalls preventing connections from the API server to the `ingress-nginx-controller-admission` service.
|
or additional firewalls preventing connections from the API server to the `ingress-nginx-controller-admission` service.
|
||||||
|
|
||||||
### Certificate generation
|
### Certificate generation
|
||||||
|
@ -435,22 +460,24 @@ You can wait until it is ready to run the next command:
|
||||||
|
|
||||||
### Running on Kubernetes versions older than 1.19
|
### Running on Kubernetes versions older than 1.19
|
||||||
|
|
||||||
Ingress resources evolved over time. They started with `apiVersion: extensions/v1beta1`,
|
Ingress resources evolved over time. They started with `apiVersion: extensions/v1beta1`,
|
||||||
then moved to `apiVersion: networking.k8s.io/v1beta1` and more recently to `apiVersion: networking.k8s.io/v1`.
|
then moved to `apiVersion: networking.k8s.io/v1beta1` and more recently to `apiVersion: networking.k8s.io/v1`.
|
||||||
|
|
||||||
Here is how these Ingress versions are supported in Kubernetes:
|
Here is how these Ingress versions are supported in Kubernetes:
|
||||||
|
|
||||||
- before Kubernetes 1.19, only `v1beta1` Ingress resources are supported
|
- before Kubernetes 1.19, only `v1beta1` Ingress resources are supported
|
||||||
- from Kubernetes 1.19 to 1.21, both `v1beta1` and `v1` Ingress resources are supported
|
- from Kubernetes 1.19 to 1.21, both `v1beta1` and `v1` Ingress resources are supported
|
||||||
- in Kubernetes 1.22 and above, only `v1` Ingress resources are supported
|
- in Kubernetes 1.22 and above, only `v1` Ingress resources are supported
|
||||||
|
|
||||||
And here is how these Ingress versions are supported in Ingress-Nginx Controller:
|
And here is how these Ingress versions are supported in Ingress-Nginx Controller:
|
||||||
|
|
||||||
- before version 1.0, only `v1beta1` Ingress resources are supported
|
- before version 1.0, only `v1beta1` Ingress resources are supported
|
||||||
- in version 1.0 and above, only `v1` Ingress resources are
|
- in version 1.0 and above, only `v1` Ingress resources are
|
||||||
|
|
||||||
As a result, if you're running Kubernetes 1.19 or later, you should be able to use the latest version of the NGINX
|
As a result, if you're running Kubernetes 1.19 or later, you should be able to use the latest version of the NGINX
|
||||||
Ingress Controller; but if you're using an old version of Kubernetes (1.18 or earlier) you will have to use version 0.X
|
Ingress Controller; but if you're using an old version of Kubernetes (1.18 or earlier) you will have to use version 0.X
|
||||||
of the Ingress-Nginx Controller (e.g. version 0.49).
|
of the Ingress-Nginx Controller (e.g. version 0.49).
|
||||||
|
|
||||||
The Helm chart of the Ingress-Nginx Controller switched to version 1 in version 4 of the chart. In other words, if
|
The Helm chart of the Ingress-Nginx Controller switched to version 1 in version 4 of the chart. In other words, if
|
||||||
you're running Kubernetes 1.19 or earlier, you should use version 3.X of the chart (this can be done by adding
|
you're running Kubernetes 1.19 or earlier, you should use version 3.X of the chart (this can be done by adding
|
||||||
`--version='<4'` to the `helm install` command ).
|
`--version='<4'` to the `helm install` command ).
|
||||||
|
|
|
@ -19,6 +19,10 @@ Install [Go 1.14](https://golang.org/dl/) or later.
|
||||||
|
|
||||||
Install [Docker](https://docs.docker.com/engine/install/) (v19.03.0 or later with experimental feature on)
|
Install [Docker](https://docs.docker.com/engine/install/) (v19.03.0 or later with experimental feature on)
|
||||||
|
|
||||||
|
Install [kubectl](https://kubernetes.io/docs/tasks/tools/) (1.24.0 or higher)
|
||||||
|
|
||||||
|
Install [Kind](https://kind.sigs.k8s.io/)
|
||||||
|
|
||||||
!!! important
|
!!! important
|
||||||
The majority of make tasks run as docker containers
|
The majority of make tasks run as docker containers
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,8 @@ Do not try to edit it manually.
|
||||||
- [should validate auth-tls-verify-client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L208)
|
- [should validate auth-tls-verify-client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L208)
|
||||||
- [should return 403 using auth-tls-match-cn with no matching CN from client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L267)
|
- [should return 403 using auth-tls-match-cn with no matching CN from client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L267)
|
||||||
- [should return 200 using auth-tls-match-cn with matching CN from client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L296)
|
- [should return 200 using auth-tls-match-cn with matching CN from client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L296)
|
||||||
- [should return 200 using auth-tls-match-cn where atleast one of the regex options matches CN from client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L325)
|
- [should reload the nginx config when auth-tls-match-cn is updated](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L325)
|
||||||
|
- [should return 200 using auth-tls-match-cn where atleast one of the regex options matches CN from client](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/authtls.go#L368)
|
||||||
### [backend-protocol](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/backendprotocol.go#L29)
|
### [backend-protocol](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/backendprotocol.go#L29)
|
||||||
- [should set backend protocol to https:// and use proxy_pass](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/backendprotocol.go#L36)
|
- [should set backend protocol to https:// and use proxy_pass](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/backendprotocol.go#L36)
|
||||||
- [should set backend protocol to https:// and use proxy_pass with lowercase annotation](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/backendprotocol.go#L51)
|
- [should set backend protocol to https:// and use proxy_pass with lowercase annotation](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/backendprotocol.go#L51)
|
||||||
|
@ -147,6 +148,7 @@ Do not try to edit it manually.
|
||||||
- [should not allow - portless origin with wildcard origin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L520)
|
- [should not allow - portless origin with wildcard origin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L520)
|
||||||
- [should allow correct origins - missing subdomain + origin with wildcard origin and correct origin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L540)
|
- [should allow correct origins - missing subdomain + origin with wildcard origin and correct origin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L540)
|
||||||
- [should allow - missing origins (should allow all origins)](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L576)
|
- [should allow - missing origins (should allow all origins)](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L576)
|
||||||
|
- [should allow correct origin but not others - cors allow origin annotations contain trailing comma](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L636)
|
||||||
### [custom-http-errors](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/customhttperrors.go#L34)
|
### [custom-http-errors](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/customhttperrors.go#L34)
|
||||||
- [configures Nginx correctly](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/customhttperrors.go#L41)
|
- [configures Nginx correctly](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/customhttperrors.go#L41)
|
||||||
### [default-backend](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/default_backend.go#L29)
|
### [default-backend](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/default_backend.go#L29)
|
||||||
|
@ -155,6 +157,8 @@ Do not try to edit it manually.
|
||||||
- [disable-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L35)
|
- [disable-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L35)
|
||||||
- [disable-http-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L53)
|
- [disable-http-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L53)
|
||||||
- [disable-stream-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L71)
|
- [disable-stream-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L71)
|
||||||
|
### [disable-proxy-intercept-errors](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableproxyintercepterrors.go#L31)
|
||||||
|
- [configures Nginx correctly](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableproxyintercepterrors.go#L39)
|
||||||
### [backend-protocol - FastCGI](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L30)
|
### [backend-protocol - FastCGI](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L30)
|
||||||
- [should use fastcgi_pass in the configuration file](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L37)
|
- [should use fastcgi_pass in the configuration file](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L37)
|
||||||
- [should add fastcgi_index in the configuration file](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L54)
|
- [should add fastcgi_index in the configuration file](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L54)
|
||||||
|
@ -258,6 +262,9 @@ Do not try to edit it manually.
|
||||||
### [x-forwarded-prefix](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/xforwardedprefix.go#L28)
|
### [x-forwarded-prefix](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/xforwardedprefix.go#L28)
|
||||||
- [should set the X-Forwarded-Prefix to the annotation value](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/xforwardedprefix.go#L35)
|
- [should set the X-Forwarded-Prefix to the annotation value](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/xforwardedprefix.go#L35)
|
||||||
- [should not add X-Forwarded-Prefix if the annotation value is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/xforwardedprefix.go#L57)
|
- [should not add X-Forwarded-Prefix if the annotation value is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/xforwardedprefix.go#L57)
|
||||||
|
### [[CGroups] cgroups](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/cgroups/cgroups.go#L32)
|
||||||
|
- [detects cgroups version v1](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/cgroups/cgroups.go#L40)
|
||||||
|
- [detect cgroups version v2](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/cgroups/cgroups.go#L83)
|
||||||
### [Debug CLI](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/dbg/main.go#L29)
|
### [Debug CLI](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/dbg/main.go#L29)
|
||||||
- [should list the backend servers](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/dbg/main.go#L37)
|
- [should list the backend servers](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/dbg/main.go#L37)
|
||||||
- [should get information for a specific backend server](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/dbg/main.go#L56)
|
- [should get information for a specific backend server](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/dbg/main.go#L56)
|
||||||
|
@ -292,6 +299,10 @@ Do not try to edit it manually.
|
||||||
- [should choose the correct location](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_mixed.go#L39)
|
- [should choose the correct location](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_mixed.go#L39)
|
||||||
### [[Ingress] [PathType] prefix checks](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L28)
|
### [[Ingress] [PathType] prefix checks](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L28)
|
||||||
- [should return 404 when prefix /aaa does not match request /aaaccc](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L35)
|
- [should return 404 when prefix /aaa does not match request /aaaccc](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L35)
|
||||||
|
- [should test prefix path using simple regex pattern for /id/{int}](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L72)
|
||||||
|
- [should test prefix path using regex pattern for /id/{int} ignoring non-digits characters at end of string](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L113)
|
||||||
|
- [should test prefix path using fixed path size regex pattern /id/{int}{3}](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L142)
|
||||||
|
- [should correctly route multi-segment path patterns](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L177)
|
||||||
### [[Ingress] definition without host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L31)
|
### [[Ingress] definition without host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L31)
|
||||||
- [should set ingress details variables for ingresses without a host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L34)
|
- [should set ingress details variables for ingresses without a host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L34)
|
||||||
- [should set ingress details variables for ingresses with host without IngressRuleValue, only Backend](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L55)
|
- [should set ingress details variables for ingresses with host without IngressRuleValue, only Backend](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L55)
|
||||||
|
@ -402,13 +413,13 @@ Do not try to edit it manually.
|
||||||
- [should have worker_rlimit_nofile option and be independent on amount of worker processes](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/global_options.go#L37)
|
- [should have worker_rlimit_nofile option and be independent on amount of worker processes](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/global_options.go#L37)
|
||||||
### [settings-global-rate-limit](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/globalratelimit.go#L30)
|
### [settings-global-rate-limit](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/globalratelimit.go#L30)
|
||||||
- [generates correct NGINX configuration](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/globalratelimit.go#L38)
|
- [generates correct NGINX configuration](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/globalratelimit.go#L38)
|
||||||
### [gzip](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L29)
|
### [gzip](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L30)
|
||||||
- [should be disabled by default](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L32)
|
- [should be disabled by default](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L40)
|
||||||
- [should be enabled with default settings](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L39)
|
- [should be enabled with default settings](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L56)
|
||||||
- [should set gzip_comp_level to 4](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L56)
|
- [should set gzip_comp_level to 4](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L82)
|
||||||
- [should set gzip_disable to msie6](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L67)
|
- [should set gzip_disable to msie6](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L102)
|
||||||
- [should set gzip_min_length to 100](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L78)
|
- [should set gzip_min_length to 100](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L132)
|
||||||
- [should set gzip_types to application/javascript](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L89)
|
- [should set gzip_types to text/html](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L164)
|
||||||
### [hash size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L27)
|
### [hash size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L27)
|
||||||
- [should set server_names_hash_bucket_size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L39)
|
- [should set server_names_hash_bucket_size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L39)
|
||||||
- [should set server_names_hash_max_size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L47)
|
- [should set server_names_hash_max_size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L47)
|
||||||
|
@ -478,26 +489,8 @@ Do not try to edit it manually.
|
||||||
- [should include opentelemetry_trust_incoming_spans on directive when enabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L76)
|
- [should include opentelemetry_trust_incoming_spans on directive when enabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L76)
|
||||||
- [should not exists opentelemetry_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L91)
|
- [should not exists opentelemetry_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L91)
|
||||||
- [should exists opentelemetry_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L106)
|
- [should exists opentelemetry_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L106)
|
||||||
### [Configure OpenTracing](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L52)
|
|
||||||
- [should not exists opentracing directive](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L62)
|
|
||||||
- [should exists opentracing directive when is enabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L75)
|
|
||||||
- [should include opentracing_trust_incoming_span off directive when disabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L89)
|
|
||||||
- [should not exists opentracing_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L104)
|
|
||||||
- [should exists opentracing_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L119)
|
|
||||||
- [should not exists opentracing_location_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L134)
|
|
||||||
- [should exists opentracing_location_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L149)
|
|
||||||
- [should enable opentracing using zipkin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L164)
|
|
||||||
- [should enable opentracing using jaeger](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L176)
|
|
||||||
- [should enable opentracing using jaeger with sampler host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L188)
|
|
||||||
- [should propagate the w3c header when configured with jaeger](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L201)
|
|
||||||
- [should enable opentracing using jaeger with an HTTP endpoint](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L232)
|
|
||||||
- [should enable opentracing using datadog](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L245)
|
|
||||||
### [plugins](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/plugins.go#L28)
|
### [plugins](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/plugins.go#L28)
|
||||||
- [should exist a x-hello-world header](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/plugins.go#L35)
|
- [should exist a x-hello-world header](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/plugins.go#L35)
|
||||||
### [[Security] Pod Security Policies](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy.go#L41)
|
|
||||||
- [should be running with a Pod Security Policy](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy.go#L44)
|
|
||||||
### [[Security] Pod Security Policies with volumes](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy_volumes.go#L37)
|
|
||||||
- [should be running with a Pod Security Policy](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy_volumes.go#L40)
|
|
||||||
### [proxy-connect-timeout](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L29)
|
### [proxy-connect-timeout](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L29)
|
||||||
- [should set valid proxy timeouts using configmap values](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L37)
|
- [should set valid proxy timeouts using configmap values](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L37)
|
||||||
- [should not set invalid proxy timeouts using configmap values](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L53)
|
- [should not set invalid proxy timeouts using configmap values](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L53)
|
||||||
|
|
|
@ -5,8 +5,8 @@ defaultBackend:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
registry: registry.k8s.io
|
registry: registry.k8s.io
|
||||||
image: ingress-nginx/nginx-errors
|
image: ingress-nginx/custom-error-pages
|
||||||
tag: "v20230505@sha256:3600dcd1bbd0d05959bb01af4b272714e94d22d24a64e91838e7183c80e53f7f"
|
tag: v1.0.1@sha256:d8ab7de384cf41bdaa696354e19f1d0efbb0c9ac69f8682ffc0cc008a252eb76
|
||||||
extraVolumes:
|
extraVolumes:
|
||||||
- name: custom-error-pages
|
- name: custom-error-pages
|
||||||
configMap:
|
configMap:
|
||||||
|
|
|
@ -36,7 +36,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx-error-server
|
- name: nginx-error-server
|
||||||
image: registry.k8s.io/ingress-nginx/nginx-errors:v20230505@sha256:3600dcd1bbd0d05959bb01af4b272714e94d22d24a64e91838e7183c80e53f7f
|
image: registry.k8s.io/ingress-nginx/custom-error-pages:v1.0.1@sha256:d8ab7de384cf41bdaa696354e19f1d0efbb0c9ac69f8682ffc0cc008a252eb76
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
# Setting the environment variable DEBUG we can see the headers sent
|
# Setting the environment variable DEBUG we can see the headers sent
|
||||||
|
|
|
@ -31,7 +31,7 @@ Rewriting can be controlled using the following annotations:
|
||||||
[Captured groups](https://www.regular-expressions.info/refcapture.html) are saved in numbered placeholders, chronologically, in the form `$1`, `$2` ... `$n`. These placeholders can be used as parameters in the `rewrite-target` annotation.
|
[Captured groups](https://www.regular-expressions.info/refcapture.html) are saved in numbered placeholders, chronologically, in the form `$1`, `$2` ... `$n`. These placeholders can be used as parameters in the `rewrite-target` annotation.
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
Please see the [FAQ](../faq.md#validation-of-path) for Validation Of __`path`__
|
Please see the [FAQ](../../faq.md#validation-of-path) for Validation Of __`path`__
|
||||||
|
|
||||||
Create an Ingress rule with a rewrite annotation:
|
Create an Ingress rule with a rewrite annotation:
|
||||||
|
|
||||||
|
|
181
docs/faq.md
181
docs/faq.md
|
@ -1,33 +1,190 @@
|
||||||
|
|
||||||
# FAQ
|
# FAQ
|
||||||
|
|
||||||
|
## Multiple controller in one cluster
|
||||||
|
|
||||||
|
Question - How can I easily install multiple instances of the ingress-nginx controller in the same cluster?
|
||||||
|
|
||||||
|
You can install them in different namespaces.
|
||||||
|
|
||||||
|
- Create a new namespace
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl create namespace ingress-nginx-2
|
||||||
|
```
|
||||||
|
|
||||||
|
- Use Helm to install the additional instance of the ingress controller
|
||||||
|
- Ensure you have Helm working (refer to the [Helm documentation](https://helm.sh/docs/))
|
||||||
|
- We have to assume that you have the helm repo for the ingress-nginx controller already added to your Helm config.
|
||||||
|
But, if you have not added the helm repo then you can do this to add the repo to your helm config;
|
||||||
|
|
||||||
|
```
|
||||||
|
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
- Make sure you have updated the helm repo data;
|
||||||
|
|
||||||
|
```
|
||||||
|
helm repo update
|
||||||
|
```
|
||||||
|
|
||||||
|
- Now, install an additional instance of the ingress-nginx controller like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||||
|
--namespace ingress-nginx-2 \
|
||||||
|
--set controller.ingressClassResource.name=nginx-two \
|
||||||
|
--set controller.ingressClass=nginx-two \
|
||||||
|
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||||
|
--set controller.ingressClassResource.enabled=true \
|
||||||
|
--set controller.ingressClassByName=true
|
||||||
|
```
|
||||||
|
|
||||||
|
If you need to install yet another instance, then repeat the procedure to create a new namespace,
|
||||||
|
change the values such as names & namespaces (for example from "-2" to "-3"), or anything else that meets your needs.
|
||||||
|
|
||||||
|
Note that `controller.ingressClassResource.name` and `controller.ingressClass` have to be set correctly.
|
||||||
|
The first is to create the IngressClass object and the other is to modify the deployment of the actual ingress controller pod.
|
||||||
|
|
||||||
|
### I can't use multiple namespaces, what should I do?
|
||||||
|
|
||||||
|
If you need to install all instances in the same namespace, then you need to specify a different **election id**, like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||||
|
--namespace kube-system \
|
||||||
|
--set controller.electionID=nginx-two-leader \
|
||||||
|
--set controller.ingressClassResource.name=nginx-two \
|
||||||
|
--set controller.ingressClass=nginx-two \
|
||||||
|
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||||
|
--set controller.ingressClassResource.enabled=true \
|
||||||
|
--set controller.ingressClassByName=true
|
||||||
|
```
|
||||||
|
|
||||||
## Retaining Client IPAddress
|
## Retaining Client IPAddress
|
||||||
|
|
||||||
Please read [Retain Client IPAddress Guide here](./user-guide/retaining-client-ipaddress.md).
|
Question - How to obtain the real-client-ipaddress ?
|
||||||
|
|
||||||
|
The goto solution for retaining the real-client IPaddress is to enable PROXY protocol.
|
||||||
|
|
||||||
|
Enabling PROXY protocol has to be done on both, the Ingress NGINX controller, as well as the L4 load balancer, in front of the controller.
|
||||||
|
|
||||||
|
The real-client IP address is lost by default, when traffic is forwarded over the network. But enabling PROXY protocol ensures that the connection details are retained and hence the real-client IP address doesn't get lost.
|
||||||
|
|
||||||
|
Enabling proxy-protocol on the controller is documented [here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-proxy-protocol) .
|
||||||
|
|
||||||
|
For enabling proxy-protocol on the LoadBalancer, please refer to the documentation of your infrastructure provider because that is where the LB is provisioned.
|
||||||
|
|
||||||
|
Some more info available [here](https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#source-ip-address)
|
||||||
|
|
||||||
|
Some more info on proxy-protocol is [here](https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#proxy-protocol)
|
||||||
|
|
||||||
|
### client-ipaddress on single-node cluster
|
||||||
|
|
||||||
|
Single node clusters are created for dev & test uses with tools like "kind" or "minikube". A trick to simulate a real use network with these clusters (kind or minikube) is to install Metallb and configure the ipaddress of the kind container or the minikube vm/container, as the starting and ending of the pool for Metallb in L2 mode. Then the host ip becomes a real client ipaddress, for curl requests sent from the host.
|
||||||
|
|
||||||
|
After installing ingress-nginx controller on a kind or a minikube cluster with helm, you can configure it for real-client-ip with a simple change to the service that ingress-nginx controller creates. The service object of --type LoadBalancer has a field service.spec.externalTrafficPolicy. If you set the value of this field to "Local" then the real-ipaddress of a client is visible to the controller.
|
||||||
|
|
||||||
|
```
|
||||||
|
% kubectl explain service.spec.externalTrafficPolicy
|
||||||
|
KIND: Service
|
||||||
|
VERSION: v1
|
||||||
|
|
||||||
|
FIELD: externalTrafficPolicy <string>
|
||||||
|
|
||||||
|
DESCRIPTION:
|
||||||
|
externalTrafficPolicy describes how nodes distribute service traffic they
|
||||||
|
receive on one of the Service's "externally-facing" addresses (NodePorts,
|
||||||
|
ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will
|
||||||
|
configure the service in a way that assumes that external load balancers
|
||||||
|
will take care of balancing the service traffic between nodes, and so each
|
||||||
|
node will deliver traffic only to the node-local endpoints of the service,
|
||||||
|
without masquerading the client source IP. (Traffic mistakenly sent to a
|
||||||
|
node with no endpoints will be dropped.) The default value, "Cluster", uses
|
||||||
|
the standard behavior of routing to all endpoints evenly (possibly modified
|
||||||
|
by topology and other features). Note that traffic sent to an External IP or
|
||||||
|
LoadBalancer IP from within the cluster will always get "Cluster" semantics,
|
||||||
|
but clients sending to a NodePort from within the cluster may need to take
|
||||||
|
traffic policy into account when picking a node.
|
||||||
|
|
||||||
|
Possible enum values:
|
||||||
|
- `"Cluster"` routes traffic to all endpoints.
|
||||||
|
- `"Local"` preserves the source IP of the traffic by routing only to
|
||||||
|
endpoints on the same node as the traffic was received on (dropping the
|
||||||
|
traffic if there are no local endpoints).
|
||||||
|
```
|
||||||
|
|
||||||
|
### client-ipaddress L7
|
||||||
|
|
||||||
|
The solution is to get the real client IPaddress from the ["X-Forward-For" HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)
|
||||||
|
|
||||||
|
Example : If your application pod behind Ingress NGINX controller, uses the NGINX webserver and the reverseproxy inside it, then you can do the following to preserve the remote client IP.
|
||||||
|
|
||||||
|
- First you need to make sure that the X-Forwarded-For header reaches the backend pod. This is done by using a Ingress NGINX conftroller ConfigMap key. Its documented [here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-forwarded-headers)
|
||||||
|
|
||||||
|
- Next, edit `nginx.conf` file inside your app pod, to contain the directives shown below:
|
||||||
|
|
||||||
|
```
|
||||||
|
set_real_ip_from 0.0.0.0/0; # Trust all IPs (use your VPC CIDR block in production)
|
||||||
|
real_ip_header X-Forwarded-For;
|
||||||
|
real_ip_recursive on;
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" '
|
||||||
|
'host=$host x-forwarded-for=$http_x_forwarded_for';
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## Kubernetes v1.22 Migration
|
## Kubernetes v1.22 Migration
|
||||||
|
|
||||||
If you are using Ingress objects in your cluster (running Kubernetes older than v1.22), and you plan to upgrade your Kubernetes version to K8S 1.22 or above, then please read [the migration guide here](./user-guide/k8s-122-migration.md).
|
If you are using Ingress objects in your cluster (running Kubernetes older than
|
||||||
|
version 1.22), and you plan to upgrade your Kubernetes version to K8S 1.22 or
|
||||||
|
above, then please read [the migration guide here](./user-guide/k8s-122-migration.md).
|
||||||
|
|
||||||
## Validation Of __`path`__
|
## Validation Of **`path`**
|
||||||
|
|
||||||
- For improving security and also following desired standards on Kubernetes API spec, the next release, scheduled for v1.8.0, will include a new & optional feature of validating the value for the key `ingress.spec.rules.http.paths.path` .
|
- For improving security and also following desired standards on Kubernetes API
|
||||||
|
spec, the next release, scheduled for v1.8.0, will include a new & optional
|
||||||
|
feature of validating the value for the key `ingress.spec.rules.http.paths.path`.
|
||||||
|
|
||||||
- This behavior will be disabled by default on the 1.8.0 release and enabled by default on the next breaking change release, set for 2.0.0.
|
- This behavior will be disabled by default on the 1.8.0 release and enabled by
|
||||||
|
default on the next breaking change release, set for 2.0.0.
|
||||||
|
|
||||||
- When "`ingress.spec.rules.http.pathType=Exact`" or "`pathType=Prefix`", this validation will limit the characters accepted on the field "`ingress.spec.rules.http.paths.path`", to "`alphanumeric characters`", and `"/," "_," "-."` Also, in this case, the path should start with `"/."`
|
- When "`ingress.spec.rules.http.pathType=Exact`" or "`pathType=Prefix`", this
|
||||||
|
validation will limit the characters accepted on the field "`ingress.spec.rules.http.paths.path`",
|
||||||
|
to "`alphanumeric characters`", and `"/," "_," "-."` Also, in this case,
|
||||||
|
the path should start with `"/."`
|
||||||
|
|
||||||
- When the ingress resource path contains other characters (like on rewrite configurations), the pathType value should be "`ImplementationSpecific`".
|
- When the ingress resource path contains other characters (like on rewrite
|
||||||
|
configurations), the pathType value should be "`ImplementationSpecific`".
|
||||||
|
|
||||||
- API Spec on pathType is documented [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types)
|
- API Spec on pathType is documented [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types)
|
||||||
|
|
||||||
- When this option is enabled, the validation will happen on the Admission Webhook. So if any new ingress object contains characters other than "`alphanumeric characters`", and `"/," "_," "-."` , in the `path` field, but is not using `pathType` value as `ImplementationSpecific`, then the ingress object will be denied admission.
|
- When this option is enabled, the validation will happen on the Admission
|
||||||
|
Webhook. So if any new ingress object contains characters other than
|
||||||
|
alphanumeric characters, and, `"/,","_","-"`, in the `path` field, but
|
||||||
|
is not using `pathType` value as `ImplementationSpecific`, then the ingress
|
||||||
|
object will be denied admission.
|
||||||
|
|
||||||
- The cluster admin should establish validation rules using mechanisms like "`Open Policy Agent`", to validate that only authorized users can use ImplementationSpecific pathType and that only the authorized characters can be used. [The configmap value is here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#strict-validate-path-type)
|
- The cluster admin should establish validation rules using mechanisms like
|
||||||
|
"`Open Policy Agent`", to validate that only authorized users can use
|
||||||
|
ImplementationSpecific pathType and that only the authorized characters can be
|
||||||
|
used. [The configmap value is here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#strict-validate-path-type)
|
||||||
|
|
||||||
- A complete example of an Openpolicyagent gatekeeper rule is available [here](https://kubernetes.github.io/ingress-nginx/examples/openpolicyagent/)
|
- A complete example of an Openpolicyagent gatekeeper rule is available [here](https://kubernetes.github.io/ingress-nginx/examples/openpolicyagent/)
|
||||||
|
|
||||||
- If you have any issues or concerns, please do one of the following:
|
- If you have any issues or concerns, please do one of the following:
|
||||||
- Open a GitHub issue
|
- Open a GitHub issue
|
||||||
- Comment in our Dev Slack Channel
|
- Comment in our Dev Slack Channel
|
||||||
- Open a thread in our Google Group ingress-nginx-dev@kubernetes.io
|
- Open a thread in our Google Group <ingress-nginx-dev@kubernetes.io>
|
||||||
|
|
||||||
|
## Why is chunking not working since controller v1.10 ?
|
||||||
|
|
||||||
|
- If your code is setting the HTTP header `"Transfer-Encoding: chunked"` and
|
||||||
|
the controller log messages show an error about duplicate header, it is
|
||||||
|
because of this change <http://hg.nginx.org/nginx/rev/2bf7792c262e>
|
||||||
|
|
||||||
|
- More details are available in this issue <https://github.com/kubernetes/ingress-nginx/issues/11162>
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
# Exposing FastCGI Servers
|
# Exposing FastCGI Servers
|
||||||
|
|
||||||
> **FastCGI** is a [binary protocol](https://en.wikipedia.org/wiki/Binary_protocol "Binary protocol") for interfacing interactive programs with a [web server](https://en.wikipedia.org/wiki/Web_server "Web server"). [...] (It's) aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.
|
> **FastCGI** is a [binary protocol](https://en.wikipedia.org/wiki/Binary_protocol "Binary protocol") for interfacing interactive programs with a [web server](https://en.wikipedia.org/wiki/Web_server "Web server"). [...] (It's) aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.
|
||||||
|
@ -8,27 +6,60 @@
|
||||||
|
|
||||||
The _ingress-nginx_ ingress controller can be used to directly expose [FastCGI](https://en.wikipedia.org/wiki/FastCGI) servers. Enabling FastCGI in your Ingress only requires setting the _backend-protocol_ annotation to `FCGI`, and with a couple more annotations you can customize the way _ingress-nginx_ handles the communication with your FastCGI _server_.
|
The _ingress-nginx_ ingress controller can be used to directly expose [FastCGI](https://en.wikipedia.org/wiki/FastCGI) servers. Enabling FastCGI in your Ingress only requires setting the _backend-protocol_ annotation to `FCGI`, and with a couple more annotations you can customize the way _ingress-nginx_ handles the communication with your FastCGI _server_.
|
||||||
|
|
||||||
|
For most practical use-cases, php applications are a good example. PHP is not HTML so a FastCGI server like php-fpm processes a index.php script for the response to a request. See a working example below.
|
||||||
|
|
||||||
## Example Objects to Expose a FastCGI Pod
|
This [post in a FactCGI feature issue](https://github.com/kubernetes/ingress-nginx/issues/8207#issuecomment-2161405468) describes a test for the FastCGI feature. The same test is described below here.
|
||||||
|
|
||||||
The _Pod_ example object below exposes port `9000`, which is the conventional FastCGI port.
|
## Example Objects to expose a FastCGI server pod
|
||||||
|
|
||||||
|
### The FasctCGI server pod
|
||||||
|
|
||||||
|
The _Pod_ object example below exposes port `9000`, which is the conventional FastCGI port.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Pod
|
kind: Pod
|
||||||
metadata:
|
metadata:
|
||||||
name: example-app
|
name: example-app
|
||||||
labels:
|
labels:
|
||||||
app: example-app
|
app: example-app
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: example-app
|
- name: example-app
|
||||||
image: example-app:1.0
|
image: php:fpm-alpine
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 9000
|
- containerPort: 9000
|
||||||
name: fastcgi
|
name: fastcgi
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- For this example to work, a HTML response should be received from the FastCGI server being exposed
|
||||||
|
- A HTTP request to the FastCGI server pod should be sent
|
||||||
|
- The response should be generated by a php script as that is what we are demonstrating here
|
||||||
|
|
||||||
|
The image we are using here `php:fpm-alpine` does not ship with a ready to use php script inside it. So we need to provide the image with a simple php-script for this example to work.
|
||||||
|
|
||||||
|
- Use `kubectl exec` to get into the example-app pod
|
||||||
|
- You will land at the path `/var/www/html`
|
||||||
|
- Create a simple php script there at the path /var/www/html called index.php
|
||||||
|
- Make the index.php file look like this
|
||||||
|
|
||||||
|
```
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>PHP Test</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<?php echo '<p>FastCGI Test Worked!</p>'; ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Save and exit from the shell in the pod
|
||||||
|
- If you delete the pod, then you will have to recreate the file as this method is not persistent
|
||||||
|
|
||||||
|
### The FastCGI service
|
||||||
|
|
||||||
The _Service_ object example below matches port `9000` from the _Pod_ object above.
|
The _Service_ object example below matches port `9000` from the _Pod_ object above.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -45,21 +76,41 @@ spec:
|
||||||
name: fastcgi
|
name: fastcgi
|
||||||
```
|
```
|
||||||
|
|
||||||
And the _Ingress_ and _ConfigMap_ objects below demonstrates the supported _FastCGI_ specific annotations (NGINX actually has 50 FastCGI directives, all of which have not been exposed in the ingress yet), and matches the service `example-service`, and the port named `fastcgi` from above. The _ConfigMap_ **must** be created first for the _Ingress Controller_ to be able to find it when the _Ingress_ object is created, otherwise you will need to restart the _Ingress Controller_ pods.
|
### The configMap object and the ingress object
|
||||||
|
|
||||||
|
The _Ingress_ and _ConfigMap_ objects below demonstrate the supported _FastCGI_ specific annotations.
|
||||||
|
|
||||||
|
!!! Important
|
||||||
|
NGINX actually has 50 [FastCGI directives](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#directives)
|
||||||
|
All of the nginx directives have not been exposed in the ingress yet
|
||||||
|
|
||||||
|
### The ConfigMap object
|
||||||
|
|
||||||
|
This configMap object is required to set the parameters of [FastCGI directives](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#directives)
|
||||||
|
|
||||||
|
!!! Attention
|
||||||
|
- The _ConfigMap_ **must** be created before creating the ingress object
|
||||||
|
|
||||||
|
- The _Ingress Controller_ needs to find the configMap when the _Ingress_ object with the FastCGI annotations is created
|
||||||
|
- So create the configMap before the ingress
|
||||||
|
- If the configMap is created after the ingress is created, then you will need to restart the _Ingress Controller_ pods.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# The ConfigMap MUST be created first for the ingress controller to be able to
|
|
||||||
# find it when the Ingress object is created.
|
|
||||||
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
name: example-cm
|
name: example-cm
|
||||||
data:
|
data:
|
||||||
SCRIPT_FILENAME: "/example/index.php"
|
SCRIPT_FILENAME: "/var/www/html/index.php"
|
||||||
|
|
||||||
---
|
```
|
||||||
|
|
||||||
|
### The ingress object
|
||||||
|
|
||||||
|
- Do not create the ingress shown below until you have created the configMap seen above.
|
||||||
|
- You can see that this ingress matches the service `example-service`, and the port named `fastcgi` from above.
|
||||||
|
|
||||||
|
```
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -83,6 +134,44 @@ spec:
|
||||||
name: fastcgi
|
name: fastcgi
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Send a request to the exposed FastCGI server
|
||||||
|
|
||||||
|
You will have to look at the external-ip of the ingress or you have to send the HTTP request to the ClusterIP address of the ingress-nginx controller pod.
|
||||||
|
|
||||||
|
```
|
||||||
|
% curl 172.19.0.2 -H "Host: app.example.com" -vik
|
||||||
|
* Trying 172.19.0.2:80...
|
||||||
|
* Connected to 172.19.0.2 (172.19.0.2) port 80
|
||||||
|
> GET / HTTP/1.1
|
||||||
|
> Host: app.example.com
|
||||||
|
> User-Agent: curl/8.6.0
|
||||||
|
> Accept: */*
|
||||||
|
>
|
||||||
|
< HTTP/1.1 200 OK
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
< Date: Wed, 12 Jun 2024 07:11:59 GMT
|
||||||
|
Date: Wed, 12 Jun 2024 07:11:59 GMT
|
||||||
|
< Content-Type: text/html; charset=UTF-8
|
||||||
|
Content-Type: text/html; charset=UTF-8
|
||||||
|
< Transfer-Encoding: chunked
|
||||||
|
Transfer-Encoding: chunked
|
||||||
|
< Connection: keep-alive
|
||||||
|
Connection: keep-alive
|
||||||
|
< X-Powered-By: PHP/8.3.8
|
||||||
|
X-Powered-By: PHP/8.3.8
|
||||||
|
|
||||||
|
<
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>PHP Test</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>FastCGI Test Worked</p> </body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## FastCGI Ingress Annotations
|
## FastCGI Ingress Annotations
|
||||||
|
|
||||||
To enable FastCGI, the `nginx.ingress.kubernetes.io/backend-protocol` annotation needs to be set to `FCGI`, which overrides the default `HTTP` value.
|
To enable FastCGI, the `nginx.ingress.kubernetes.io/backend-protocol` annotation needs to be set to `FCGI`, which overrides the default `HTTP` value.
|
||||||
|
@ -114,6 +203,7 @@ data:
|
||||||
SCRIPT_FILENAME: "/example/index.php"
|
SCRIPT_FILENAME: "/example/index.php"
|
||||||
HTTP_PROXY: ""
|
HTTP_PROXY: ""
|
||||||
```
|
```
|
||||||
|
|
||||||
Using the _namespace/_ prefix is also supported, for example:
|
Using the _namespace/_ prefix is also supported, for example:
|
||||||
|
|
||||||
> `nginx.ingress.kubernetes.io/fastcgi-params-configmap: "example-namespace/example-configmap"`
|
> `nginx.ingress.kubernetes.io/fastcgi-params-configmap: "example-namespace/example-configmap"`
|
||||||
|
|
|
@ -192,54 +192,3 @@ Bear in mind that if you start Ingress-Nginx B with the command line argument `-
|
||||||
It is highly likely that you will also see the name of the ingress resource in the same error message.
|
It is highly likely that you will also see the name of the ingress resource in the same error message.
|
||||||
This error message has been observed on use the deprecated annotation (`kubernetes.io/ingress.class`) in an Ingress resource manifest.
|
This error message has been observed on use the deprecated annotation (`kubernetes.io/ingress.class`) in an Ingress resource manifest.
|
||||||
It is recommended to use the `.spec.ingressClassName` field of the Ingress resource, to specify the name of the IngressClass of the Ingress you are defining.
|
It is recommended to use the `.spec.ingressClassName` field of the Ingress resource, to specify the name of the IngressClass of the Ingress you are defining.
|
||||||
|
|
||||||
## How can I easily install multiple instances of the ingress-nginx controller in the same cluster?
|
|
||||||
|
|
||||||
You can install them in different namespaces.
|
|
||||||
|
|
||||||
- Create a new namespace
|
|
||||||
```
|
|
||||||
kubectl create namespace ingress-nginx-2
|
|
||||||
```
|
|
||||||
- Use Helm to install the additional instance of the ingress controller
|
|
||||||
- Ensure you have Helm working (refer to the [Helm documentation](https://helm.sh/docs/))
|
|
||||||
- We have to assume that you have the helm repo for the ingress-nginx controller already added to your Helm config.
|
|
||||||
But, if you have not added the helm repo then you can do this to add the repo to your helm config;
|
|
||||||
```
|
|
||||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
|
||||||
```
|
|
||||||
- Make sure you have updated the helm repo data;
|
|
||||||
```
|
|
||||||
helm repo update
|
|
||||||
```
|
|
||||||
- Now, install an additional instance of the ingress-nginx controller like this:
|
|
||||||
```
|
|
||||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
|
||||||
--namespace ingress-nginx-2 \
|
|
||||||
--set controller.ingressClassResource.name=nginx-two \
|
|
||||||
--set controller.ingressClass=nginx-two \
|
|
||||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
|
||||||
--set controller.ingressClassResource.enabled=true \
|
|
||||||
--set controller.ingressClassByName=true
|
|
||||||
```
|
|
||||||
|
|
||||||
If you need to install yet another instance, then repeat the procedure to create a new namespace,
|
|
||||||
change the values such as names & namespaces (for example from "-2" to "-3"), or anything else that meets your needs.
|
|
||||||
|
|
||||||
Note that `controller.ingressClassResource.name` and `controller.ingressClass` have to be set correctly.
|
|
||||||
The first is to create the IngressClass object and the other is to modify the deployment of the actual ingress controller pod.
|
|
||||||
|
|
||||||
### I can't use multiple namespaces, what should I do?
|
|
||||||
|
|
||||||
If you need to install all instances in the same namespace, then you need to specify a different **election id**, like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
|
||||||
--namespace kube-system \
|
|
||||||
--set controller.electionID=nginx-two-leader \
|
|
||||||
--set controller.ingressClassResource.name=nginx-two \
|
|
||||||
--set controller.ingressClass=nginx-two \
|
|
||||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
|
||||||
--set controller.ingressClassResource.enabled=true \
|
|
||||||
--set controller.ingressClassByName=true
|
|
||||||
```
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ By default NGINX path type is Prefix to not break existing definitions
|
||||||
|
|
||||||
## Proxy Protocol
|
## Proxy Protocol
|
||||||
|
|
||||||
If you are using a L4 proxy to forward the traffic to the NGINX pods and terminate HTTP/HTTPS there, you will lose the remote endpoint's IP address. To prevent this you could use the [Proxy Protocol](http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt) for forwarding traffic, this will send the connection details before forwarding the actual TCP connection itself.
|
If you are using a L4 proxy to forward the traffic to the Ingress NGINX pods and terminate HTTP/HTTPS there, you will lose the remote endpoint's IP address. To prevent this you could use the [PROXY Protocol](http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt) for forwarding traffic, this will send the connection details before forwarding the actual TCP connection itself.
|
||||||
|
|
||||||
Amongst others [ELBs in AWS](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html) and [HAProxy](http://www.haproxy.org/) support Proxy Protocol.
|
Amongst others [ELBs in AWS](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html) and [HAProxy](http://www.haproxy.org/) support Proxy Protocol.
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,7 @@ or if installing with Helm:
|
||||||
```yaml
|
```yaml
|
||||||
controller:
|
controller:
|
||||||
electionID: ingress-controller-leader
|
electionID: ingress-controller-leader
|
||||||
|
ingressClass: internal-nginx # default: nginx
|
||||||
ingressClassResource:
|
ingressClassResource:
|
||||||
name: internal-nginx # default: nginx
|
name: internal-nginx # default: nginx
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -123,8 +123,6 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz
|
||||||
|[nginx.ingress.kubernetes.io/ssl-prefer-server-ciphers](#ssl-ciphers)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/ssl-prefer-server-ciphers](#ssl-ciphers)|"true" or "false"|
|
||||||
|[nginx.ingress.kubernetes.io/connection-proxy-header](#connection-proxy-header)|string|
|
|[nginx.ingress.kubernetes.io/connection-proxy-header](#connection-proxy-header)|string|
|
||||||
|[nginx.ingress.kubernetes.io/enable-access-log](#enable-access-log)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/enable-access-log](#enable-access-log)|"true" or "false"|
|
||||||
|[nginx.ingress.kubernetes.io/enable-opentracing](#enable-opentracing)|"true" or "false"|
|
|
||||||
|[nginx.ingress.kubernetes.io/opentracing-trust-incoming-span](#opentracing-trust-incoming-span)|"true" or "false"|
|
|
||||||
|[nginx.ingress.kubernetes.io/enable-opentelemetry](#enable-opentelemetry)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/enable-opentelemetry](#enable-opentelemetry)|"true" or "false"|
|
||||||
|[nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-spans)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-spans)|"true" or "false"|
|
||||||
|[nginx.ingress.kubernetes.io/use-regex](#use-regex)|bool|
|
|[nginx.ingress.kubernetes.io/use-regex](#use-regex)|bool|
|
||||||
|
@ -640,7 +638,10 @@ To preserve the trailing slash in the URI with `ssl-redirect`, set `nginx.ingres
|
||||||
|
|
||||||
### Redirect from/to www
|
### Redirect from/to www
|
||||||
|
|
||||||
In some scenarios is required to redirect from `www.domain.com` to `domain.com` or vice versa.
|
In some scenarios, it is required to redirect from `www.domain.com` to `domain.com` or vice versa, which way the redirect is performed depends on the configured `host` value in the Ingress object.
|
||||||
|
|
||||||
|
For example, if `.spec.rules.host` is configured with a value like `www.example.com`, then this annotation will redirect from `example.com` to `www.example.com`. If `.spec.rules.host` is configured with a value like `example.com`, so without a `www`, then this annotation will redirect from `www.example.com` to `example.com` instead.
|
||||||
|
|
||||||
To enable this feature use the annotation `nginx.ingress.kubernetes.io/from-to-www-redirect: "true"`
|
To enable this feature use the annotation `nginx.ingress.kubernetes.io/from-to-www-redirect: "true"`
|
||||||
|
|
||||||
!!! attention
|
!!! attention
|
||||||
|
@ -813,24 +814,6 @@ Note that rewrite logs are sent to the error_log file at the notice level. To en
|
||||||
nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
|
nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Enable Opentracing
|
|
||||||
|
|
||||||
Opentracing can be enabled or disabled globally through the ConfigMap but this will sometimes need to be overridden
|
|
||||||
to enable it or disable it for a specific ingress (e.g. to turn off tracing of external health check endpoints)
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
nginx.ingress.kubernetes.io/enable-opentracing: "true"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Opentracing Trust Incoming Span
|
|
||||||
|
|
||||||
The option to trust incoming trace spans can be enabled or disabled globally through the ConfigMap but this will
|
|
||||||
sometimes need to be overridden to enable it or disable it for a specific ingress (e.g. only enable on a private endpoint)
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
nginx.ingress.kubernetes.io/opentracing-trust-incoming-span: "true"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Enable Opentelemetry
|
### Enable Opentelemetry
|
||||||
|
|
||||||
Opentelemetry can be enabled or disabled globally through the ConfigMap but this will sometimes need to be overridden
|
Opentelemetry can be enabled or disabled globally through the ConfigMap but this will sometimes need to be overridden
|
||||||
|
@ -955,7 +938,7 @@ Enables a request to be mirrored to a mirror backend. Responses by mirror backen
|
||||||
The mirror backend can be set by applying:
|
The mirror backend can be set by applying:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
nginx.ingress.kubernetes.io/mirror-target: https://test.env.com/$request_uri
|
nginx.ingress.kubernetes.io/mirror-target: https://test.env.com$request_uri
|
||||||
```
|
```
|
||||||
|
|
||||||
By default the request-body is sent to the mirror backend, but can be turned off by applying:
|
By default the request-body is sent to the mirror backend, but can be turned off by applying:
|
||||||
|
@ -967,7 +950,7 @@ nginx.ingress.kubernetes.io/mirror-request-body: "off"
|
||||||
Also by default header Host for mirrored requests will be set the same as a host part of uri in the "mirror-target" annotation. You can override it by "mirror-host" annotation:
|
Also by default header Host for mirrored requests will be set the same as a host part of uri in the "mirror-target" annotation. You can override it by "mirror-host" annotation:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
nginx.ingress.kubernetes.io/mirror-target: https://1.2.3.4/$request_uri
|
nginx.ingress.kubernetes.io/mirror-target: https://1.2.3.4$request_uri
|
||||||
nginx.ingress.kubernetes.io/mirror-host: "test.env.com"
|
nginx.ingress.kubernetes.io/mirror-host: "test.env.com"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -25,214 +25,207 @@ data:
|
||||||
|
|
||||||
The following table shows a configuration option's name, type, and the default value:
|
The following table shows a configuration option's name, type, and the default value:
|
||||||
|
|
||||||
|name|type|default|notes|
|
| name | type | default | notes |
|
||||||
|:---|:---|:------|:----|
|
|:--------------------------------------------------------------------------------|:-------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
|
||||||
|[add-headers](#add-headers)|string|""||
|
| [add-headers](#add-headers) | string | "" | |
|
||||||
|[allow-backend-server-header](#allow-backend-server-header)|bool|"false"||
|
| [allow-backend-server-header](#allow-backend-server-header) | bool | "false" | |
|
||||||
|[allow-cross-namespace-resources](#allow-cross-namespace-resources)|bool|"true"||
|
| [allow-cross-namespace-resources](#allow-cross-namespace-resources) | bool | "true" | |
|
||||||
|[allow-snippet-annotations](#allow-snippet-annotations)|bool|false||
|
| [allow-snippet-annotations](#allow-snippet-annotations) | bool | "false" | |
|
||||||
|[annotations-risk-level](#annotations-risk-level)|string|Critical||
|
| [annotations-risk-level](#annotations-risk-level) | string | Critical | |
|
||||||
|[annotation-value-word-blocklist](#annotation-value-word-blocklist)|string array|""||
|
| [annotation-value-word-blocklist](#annotation-value-word-blocklist) | string array | "" | |
|
||||||
|[hide-headers](#hide-headers)|string array|empty||
|
| [hide-headers](#hide-headers) | string array | empty | |
|
||||||
|[access-log-params](#access-log-params)|string|""||
|
| [access-log-params](#access-log-params) | string | "" | |
|
||||||
|[access-log-path](#access-log-path)|string|"/var/log/nginx/access.log"||
|
| [access-log-path](#access-log-path) | string | "/var/log/nginx/access.log" | |
|
||||||
|[http-access-log-path](#http-access-log-path)|string|""||
|
| [http-access-log-path](#http-access-log-path) | string | "" | |
|
||||||
|[stream-access-log-path](#stream-access-log-path)|string|""||
|
| [stream-access-log-path](#stream-access-log-path) | string | "" | |
|
||||||
|[enable-access-log-for-default-backend](#enable-access-log-for-default-backend)|bool|"false"||
|
| [enable-access-log-for-default-backend](#enable-access-log-for-default-backend) | bool | "false" | |
|
||||||
|[error-log-path](#error-log-path)|string|"/var/log/nginx/error.log"||
|
| [error-log-path](#error-log-path) | string | "/var/log/nginx/error.log" | |
|
||||||
|[enable-modsecurity](#enable-modsecurity)|bool|"false"||
|
| [enable-modsecurity](#enable-modsecurity) | bool | "false" | |
|
||||||
|[modsecurity-snippet](#modsecurity-snippet)|string|""||
|
| [modsecurity-snippet](#modsecurity-snippet) | string | "" | |
|
||||||
|[enable-owasp-modsecurity-crs](#enable-owasp-modsecurity-crs)|bool|"false"||
|
| [enable-owasp-modsecurity-crs](#enable-owasp-modsecurity-crs) | bool | "false" | |
|
||||||
|[client-header-buffer-size](#client-header-buffer-size)|string|"1k"||
|
| [client-header-buffer-size](#client-header-buffer-size) | string | "1k" | |
|
||||||
|[client-header-timeout](#client-header-timeout)|int|60||
|
| [client-header-timeout](#client-header-timeout) | int | 60 | |
|
||||||
|[client-body-buffer-size](#client-body-buffer-size)|string|"8k"||
|
| [client-body-buffer-size](#client-body-buffer-size) | string | "8k" | |
|
||||||
|[client-body-timeout](#client-body-timeout)|int|60||
|
| [client-body-timeout](#client-body-timeout) | int | 60 | |
|
||||||
|[disable-access-log](#disable-access-log)|bool|false||
|
| [disable-access-log](#disable-access-log) | bool | "false" | |
|
||||||
|[disable-ipv6](#disable-ipv6)|bool|false||
|
| [disable-ipv6](#disable-ipv6) | bool | "false" | |
|
||||||
|[disable-ipv6-dns](#disable-ipv6-dns)|bool|false||
|
| [disable-ipv6-dns](#disable-ipv6-dns) | bool | "false" | |
|
||||||
|[enable-underscores-in-headers](#enable-underscores-in-headers)|bool|false||
|
| [enable-underscores-in-headers](#enable-underscores-in-headers) | bool | "false" | |
|
||||||
|[enable-ocsp](#enable-ocsp)|bool|false||
|
| [enable-ocsp](#enable-ocsp) | bool | "false" | |
|
||||||
|[ignore-invalid-headers](#ignore-invalid-headers)|bool|true||
|
| [ignore-invalid-headers](#ignore-invalid-headers) | bool | "true" | |
|
||||||
|[retry-non-idempotent](#retry-non-idempotent)|bool|"false"||
|
| [retry-non-idempotent](#retry-non-idempotent) | bool | "false" | |
|
||||||
|[error-log-level](#error-log-level)|string|"notice"||
|
| [error-log-level](#error-log-level) | string | "notice" | |
|
||||||
|[http2-max-field-size](#http2-max-field-size)|string|""|DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers)|
|
| [http2-max-field-size](#http2-max-field-size) | string | "" | DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers) |
|
||||||
|[http2-max-header-size](#http2-max-header-size)|string|""|DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers)|
|
| [http2-max-header-size](#http2-max-header-size) | string | "" | DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers) |
|
||||||
|[http2-max-requests](#http2-max-requests)|int|0|DEPRECATED in favour of [keepalive_requests](#keepalive-requests)|
|
| [http2-max-requests](#http2-max-requests) | int | 0 | DEPRECATED in favour of [keepalive_requests](#keepalive-requests) |
|
||||||
|[http2-max-concurrent-streams](#http2-max-concurrent-streams)|int|128||
|
| [http2-max-concurrent-streams](#http2-max-concurrent-streams) | int | 128 | |
|
||||||
|[hsts](#hsts)|bool|"true"||
|
| [hsts](#hsts) | bool | "true" | |
|
||||||
|[hsts-include-subdomains](#hsts-include-subdomains)|bool|"true"||
|
| [hsts-include-subdomains](#hsts-include-subdomains) | bool | "true" | |
|
||||||
|[hsts-max-age](#hsts-max-age)|string|"31536000"||
|
| [hsts-max-age](#hsts-max-age) | string | "31536000" | |
|
||||||
|[hsts-preload](#hsts-preload)|bool|"false"||
|
| [hsts-preload](#hsts-preload) | bool | "false" | |
|
||||||
|[keep-alive](#keep-alive)|int|75||
|
| [keep-alive](#keep-alive) | int | 75 | |
|
||||||
|[keep-alive-requests](#keep-alive-requests)|int|1000||
|
| [keep-alive-requests](#keep-alive-requests) | int | 1000 | |
|
||||||
|[large-client-header-buffers](#large-client-header-buffers)|string|"4 8k"||
|
| [large-client-header-buffers](#large-client-header-buffers) | string | "4 8k" | |
|
||||||
|[log-format-escape-none](#log-format-escape-none)|bool|"false"||
|
| [log-format-escape-none](#log-format-escape-none) | bool | "false" | |
|
||||||
|[log-format-escape-json](#log-format-escape-json)|bool|"false"||
|
| [log-format-escape-json](#log-format-escape-json) | bool | "false" | |
|
||||||
|[log-format-upstream](#log-format-upstream)|string|`$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id`||
|
| [log-format-upstream](#log-format-upstream) | string | `$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id` | |
|
||||||
|[log-format-stream](#log-format-stream)|string|`[$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time`||
|
| [log-format-stream](#log-format-stream) | string | `[$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time` | |
|
||||||
|[enable-multi-accept](#enable-multi-accept)|bool|"true"||
|
| [enable-multi-accept](#enable-multi-accept) | bool | "true" | |
|
||||||
|[max-worker-connections](#max-worker-connections)|int|16384||
|
| [max-worker-connections](#max-worker-connections) | int | 16384 | |
|
||||||
|[max-worker-open-files](#max-worker-open-files)|int|0||
|
| [max-worker-open-files](#max-worker-open-files) | int | 0 | |
|
||||||
|[map-hash-bucket-size](#max-hash-bucket-size)|int|64||
|
| [map-hash-bucket-size](#max-hash-bucket-size) | int | 64 | |
|
||||||
|[nginx-status-ipv4-whitelist](#nginx-status-ipv4-whitelist)|[]string|"127.0.0.1"||
|
| [nginx-status-ipv4-whitelist](#nginx-status-ipv4-whitelist) | []string | "127.0.0.1" | |
|
||||||
|[nginx-status-ipv6-whitelist](#nginx-status-ipv6-whitelist)|[]string|"::1"||
|
| [nginx-status-ipv6-whitelist](#nginx-status-ipv6-whitelist) | []string | "::1" | |
|
||||||
|[proxy-real-ip-cidr](#proxy-real-ip-cidr)|[]string|"0.0.0.0/0"||
|
| [proxy-real-ip-cidr](#proxy-real-ip-cidr) | []string | "0.0.0.0/0" | |
|
||||||
|[proxy-set-headers](#proxy-set-headers)|string|""||
|
| [proxy-set-headers](#proxy-set-headers) | string | "" | |
|
||||||
|[server-name-hash-max-size](#server-name-hash-max-size)|int|1024||
|
| [server-name-hash-max-size](#server-name-hash-max-size) | int | 1024 | |
|
||||||
|[server-name-hash-bucket-size](#server-name-hash-bucket-size)|int|`<size of the processor’s cache line>`|
|
| [server-name-hash-bucket-size](#server-name-hash-bucket-size) | int | `<size of the processor’s cache line>` |
|
||||||
|[proxy-headers-hash-max-size](#proxy-headers-hash-max-size)|int|512||
|
| [proxy-headers-hash-max-size](#proxy-headers-hash-max-size) | int | 512 | |
|
||||||
|[proxy-headers-hash-bucket-size](#proxy-headers-hash-bucket-size)|int|64||
|
| [proxy-headers-hash-bucket-size](#proxy-headers-hash-bucket-size) | int | 64 | |
|
||||||
|[plugins](#plugins)|[]string| ||
|
| [plugins](#plugins) | []string | | |
|
||||||
|[reuse-port](#reuse-port)|bool|"true"||
|
| [reuse-port](#reuse-port) | bool | "true" | |
|
||||||
|[server-tokens](#server-tokens)|bool|"false"||
|
| [server-tokens](#server-tokens) | bool | "false" | |
|
||||||
|[ssl-ciphers](#ssl-ciphers)|string|"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"||
|
| [ssl-ciphers](#ssl-ciphers) | string | "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" | |
|
||||||
|[ssl-ecdh-curve](#ssl-ecdh-curve)|string|"auto"||
|
| [ssl-ecdh-curve](#ssl-ecdh-curve) | string | "auto" | |
|
||||||
|[ssl-dh-param](#ssl-dh-param)|string|""||
|
| [ssl-dh-param](#ssl-dh-param) | string | "" | |
|
||||||
|[ssl-protocols](#ssl-protocols)|string|"TLSv1.2 TLSv1.3"||
|
| [ssl-protocols](#ssl-protocols) | string | "TLSv1.2 TLSv1.3" | |
|
||||||
|[ssl-session-cache](#ssl-session-cache)|bool|"true"||
|
| [ssl-session-cache](#ssl-session-cache) | bool | "true" | |
|
||||||
|[ssl-session-cache-size](#ssl-session-cache-size)|string|"10m"||
|
| [ssl-session-cache-size](#ssl-session-cache-size) | string | "10m" | |
|
||||||
|[ssl-session-tickets](#ssl-session-tickets)|bool|"false"||
|
| [ssl-session-tickets](#ssl-session-tickets) | bool | "false" | |
|
||||||
|[ssl-session-ticket-key](#ssl-session-ticket-key)|string|`<Randomly Generated>`|
|
| [ssl-session-ticket-key](#ssl-session-ticket-key) | string | `<Randomly Generated>` |
|
||||||
|[ssl-session-timeout](#ssl-session-timeout)|string|"10m"||
|
| [ssl-session-timeout](#ssl-session-timeout) | string | "10m" | |
|
||||||
|[ssl-buffer-size](#ssl-buffer-size)|string|"4k"||
|
| [ssl-buffer-size](#ssl-buffer-size) | string | "4k" | |
|
||||||
|[use-proxy-protocol](#use-proxy-protocol)|bool|"false"||
|
| [use-proxy-protocol](#use-proxy-protocol) | bool | "false" | |
|
||||||
|[proxy-protocol-header-timeout](#proxy-protocol-header-timeout)|string|"5s"||
|
| [proxy-protocol-header-timeout](#proxy-protocol-header-timeout) | string | "5s" | |
|
||||||
|[enable-aio-write](#enable-aio-write)|bool|"true"||
|
| [enable-aio-write](#enable-aio-write) | bool | "true" | |
|
||||||
|[use-gzip](#use-gzip)|bool|"false"||
|
| [use-gzip](#use-gzip) | bool | "false" | |
|
||||||
|[use-geoip](#use-geoip)|bool|"true"||
|
| [use-geoip](#use-geoip) | bool | "true" | |
|
||||||
|[use-geoip2](#use-geoip2)|bool|"false"||
|
| [use-geoip2](#use-geoip2) | bool | "false" | |
|
||||||
|[enable-brotli](#enable-brotli)|bool|"false"||
|
| [enable-brotli](#enable-brotli) | bool | "false" | |
|
||||||
|[brotli-level](#brotli-level)|int|4||
|
| [brotli-level](#brotli-level) | int | 4 | |
|
||||||
|[brotli-min-length](#brotli-min-length)|int|20||
|
| [brotli-min-length](#brotli-min-length) | int | 20 | |
|
||||||
|[brotli-types](#brotli-types)|string|"application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component"||
|
| [brotli-types](#brotli-types) | string | "application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component" | |
|
||||||
|[use-http2](#use-http2)|bool|"true"||
|
| [use-http2](#use-http2) | bool | "true" | |
|
||||||
|[gzip-disable](#gzip-disable)|string|""||
|
| [gzip-disable](#gzip-disable) | string | "" | |
|
||||||
|[gzip-level](#gzip-level)|int|1||
|
| [gzip-level](#gzip-level) | int | 1 | |
|
||||||
|[gzip-min-length](#gzip-min-length)|int|256||
|
| [gzip-min-length](#gzip-min-length) | int | 256 | |
|
||||||
|[gzip-types](#gzip-types)|string|"application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component"||
|
| [gzip-types](#gzip-types) | string | "application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component" | |
|
||||||
|[worker-processes](#worker-processes)|string|`<Number of CPUs>`||
|
| [worker-processes](#worker-processes) | string | `<Number of CPUs>` | |
|
||||||
|[worker-cpu-affinity](#worker-cpu-affinity)|string|""||
|
| [worker-cpu-affinity](#worker-cpu-affinity) | string | "" | |
|
||||||
|[worker-shutdown-timeout](#worker-shutdown-timeout)|string|"240s"||
|
| [worker-shutdown-timeout](#worker-shutdown-timeout) | string | "240s" | |
|
||||||
|[load-balance](#load-balance)|string|"round_robin"||
|
| [load-balance](#load-balance) | string | "round_robin" | |
|
||||||
|[variables-hash-bucket-size](#variables-hash-bucket-size)|int|128||
|
| [variables-hash-bucket-size](#variables-hash-bucket-size) | int | 128 | |
|
||||||
|[variables-hash-max-size](#variables-hash-max-size)|int|2048||
|
| [variables-hash-max-size](#variables-hash-max-size) | int | 2048 | |
|
||||||
|[upstream-keepalive-connections](#upstream-keepalive-connections)|int|320||
|
| [upstream-keepalive-connections](#upstream-keepalive-connections) | int | 320 | |
|
||||||
|[upstream-keepalive-time](#upstream-keepalive-time)|string|"1h"||
|
| [upstream-keepalive-time](#upstream-keepalive-time) | string | "1h" | |
|
||||||
|[upstream-keepalive-timeout](#upstream-keepalive-timeout)|int|60||
|
| [upstream-keepalive-timeout](#upstream-keepalive-timeout) | int | 60 | |
|
||||||
|[upstream-keepalive-requests](#upstream-keepalive-requests)|int|10000||
|
| [upstream-keepalive-requests](#upstream-keepalive-requests) | int | 10000 | |
|
||||||
|[limit-conn-zone-variable](#limit-conn-zone-variable)|string|"$binary_remote_addr"||
|
| [limit-conn-zone-variable](#limit-conn-zone-variable) | string | "$binary_remote_addr" | |
|
||||||
|[proxy-stream-timeout](#proxy-stream-timeout)|string|"600s"||
|
| [proxy-stream-timeout](#proxy-stream-timeout) | string | "600s" | |
|
||||||
|[proxy-stream-next-upstream](#proxy-stream-next-upstream)|bool|"true"||
|
| [proxy-stream-next-upstream](#proxy-stream-next-upstream) | bool | "true" | |
|
||||||
|[proxy-stream-next-upstream-timeout](#proxy-stream-next-upstream-timeout)|string|"600s"||
|
| [proxy-stream-next-upstream-timeout](#proxy-stream-next-upstream-timeout) | string | "600s" | |
|
||||||
|[proxy-stream-next-upstream-tries](#proxy-stream-next-upstream-tries)|int|3||
|
| [proxy-stream-next-upstream-tries](#proxy-stream-next-upstream-tries) | int | 3 | |
|
||||||
|[proxy-stream-responses](#proxy-stream-responses)|int|1||
|
| [proxy-stream-responses](#proxy-stream-responses) | int | 1 | |
|
||||||
|[bind-address](#bind-address)|[]string|""||
|
| [bind-address](#bind-address) | []string | "" | |
|
||||||
|[use-forwarded-headers](#use-forwarded-headers)|bool|"false"||
|
| [use-forwarded-headers](#use-forwarded-headers) | bool | "false" | |
|
||||||
|[enable-real-ip](#enable-real-ip)|bool|"false"||
|
| [enable-real-ip](#enable-real-ip) | bool | "false" | |
|
||||||
|[forwarded-for-header](#forwarded-for-header)|string|"X-Forwarded-For"||
|
| [forwarded-for-header](#forwarded-for-header) | string | "X-Forwarded-For" | |
|
||||||
|[compute-full-forwarded-for](#compute-full-forwarded-for)|bool|"false"||
|
| [compute-full-forwarded-for](#compute-full-forwarded-for) | bool | "false" | |
|
||||||
|[proxy-add-original-uri-header](#proxy-add-original-uri-header)|bool|"false"||
|
| [proxy-add-original-uri-header](#proxy-add-original-uri-header) | bool | "false" | |
|
||||||
|[generate-request-id](#generate-request-id)|bool|"true"||
|
| [generate-request-id](#generate-request-id) | bool | "true" | |
|
||||||
|[enable-opentracing](#enable-opentracing)|bool|"false"||
|
| [jaeger-collector-host](#jaeger-collector-host) | string | "" | |
|
||||||
|[opentracing-operation-name](#opentracing-operation-name)|string|""||
|
| [jaeger-collector-port](#jaeger-collector-port) | int | 6831 | |
|
||||||
|[opentracing-location-operation-name](#opentracing-location-operation-name)|string|""||
|
| [jaeger-endpoint](#jaeger-endpoint) | string | "" | |
|
||||||
|[zipkin-collector-host](#zipkin-collector-host)|string|""||
|
| [jaeger-service-name](#jaeger-service-name) | string | "nginx" | |
|
||||||
|[zipkin-collector-port](#zipkin-collector-port)|int|9411||
|
| [jaeger-propagation-format](#jaeger-propagation-format) | string | "jaeger" | |
|
||||||
|[zipkin-service-name](#zipkin-service-name)|string|"nginx"||
|
| [jaeger-sampler-type](#jaeger-sampler-type) | string | "const" | |
|
||||||
|[zipkin-sample-rate](#zipkin-sample-rate)|float|1.0||
|
| [jaeger-sampler-param](#jaeger-sampler-param) | string | "1" | |
|
||||||
|[jaeger-collector-host](#jaeger-collector-host)|string|""||
|
| [jaeger-sampler-host](#jaeger-sampler-host) | string | "http://127.0.0.1" | |
|
||||||
|[jaeger-collector-port](#jaeger-collector-port)|int|6831||
|
| [jaeger-sampler-port](#jaeger-sampler-port) | int | 5778 | |
|
||||||
|[jaeger-endpoint](#jaeger-endpoint)|string|""||
|
| [jaeger-trace-context-header-name](#jaeger-trace-context-header-name) | string | uber-trace-id | |
|
||||||
|[jaeger-service-name](#jaeger-service-name)|string|"nginx"||
|
| [jaeger-debug-header](#jaeger-debug-header) | string | uber-debug-id | |
|
||||||
|[jaeger-propagation-format](#jaeger-propagation-format)|string|"jaeger"||
|
| [jaeger-baggage-header](#jaeger-baggage-header) | string | jaeger-baggage | |
|
||||||
|[jaeger-sampler-type](#jaeger-sampler-type)|string|"const"||
|
| [jaeger-trace-baggage-header-prefix](#jaeger-trace-baggage-header-prefix) | string | uberctx- | |
|
||||||
|[jaeger-sampler-param](#jaeger-sampler-param)|string|"1"||
|
| [datadog-collector-host](#datadog-collector-host) | string | "" | |
|
||||||
|[jaeger-sampler-host](#jaeger-sampler-host)|string|"http://127.0.0.1"||
|
| [datadog-collector-port](#datadog-collector-port) | int | 8126 | |
|
||||||
|[jaeger-sampler-port](#jaeger-sampler-port)|int|5778||
|
| [datadog-service-name](#datadog-service-name) | string | "nginx" | |
|
||||||
|[jaeger-trace-context-header-name](#jaeger-trace-context-header-name)|string|uber-trace-id||
|
| [datadog-environment](#datadog-environment) | string | "prod" | |
|
||||||
|[jaeger-debug-header](#jaeger-debug-header)|string|uber-debug-id||
|
| [datadog-operation-name-override](#datadog-operation-name-override) | string | "nginx.handle" | |
|
||||||
|[jaeger-baggage-header](#jaeger-baggage-header)|string|jaeger-baggage||
|
| [datadog-priority-sampling](#datadog-priority-sampling) | bool | "true" | |
|
||||||
|[jaeger-trace-baggage-header-prefix](#jaeger-trace-baggage-header-prefix)|string|uberctx-||
|
| [datadog-sample-rate](#datadog-sample-rate) | float | 1.0 | |
|
||||||
|[datadog-collector-host](#datadog-collector-host)|string|""||
|
| [enable-opentelemetry](#enable-opentelemetry) | bool | "false" | |
|
||||||
|[datadog-collector-port](#datadog-collector-port)|int|8126||
|
| [opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-span) | bool | "true" | |
|
||||||
|[datadog-service-name](#datadog-service-name)|string|"nginx"||
|
| [opentelemetry-operation-name](#opentelemetry-operation-name) | string | "" | |
|
||||||
|[datadog-environment](#datadog-environment)|string|"prod"||
|
| [opentelemetry-config](#/etc/nginx/opentelemetry.toml) | string | "/etc/nginx/opentelemetry.toml" | |
|
||||||
|[datadog-operation-name-override](#datadog-operation-name-override)|string|"nginx.handle"||
|
| [otlp-collector-host](#otlp-collector-host) | string | "" | |
|
||||||
|[datadog-priority-sampling](#datadog-priority-sampling)|bool|"true"||
|
| [otlp-collector-port](#otlp-collector-port) | int | 4317 | |
|
||||||
|[datadog-sample-rate](#datadog-sample-rate)|float|1.0||
|
| [otel-max-queuesize](#otel-max-queuesize) | int | | |
|
||||||
|[enable-opentelemetry](#enable-opentelemetry)|bool|"false"||
|
| [otel-schedule-delay-millis](#otel-schedule-delay-millis) | int | | |
|
||||||
|[opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-span)|bool|"true"||
|
| [otel-max-export-batch-size](#otel-max-export-batch-size) | int | | |
|
||||||
|[opentelemetry-operation-name](#opentelemetry-operation-name)|string|""||
|
| [otel-service-name](#otel-service-name) | string | "nginx" | |
|
||||||
|[opentelemetry-config](#/etc/nginx/opentelemetry.toml)|string|"/etc/nginx/opentelemetry.toml"||
|
| [otel-sampler](#otel-sampler) | string | "AlwaysOff" | |
|
||||||
|[otlp-collector-host](#otlp-collector-host)|string|""||
|
| [otel-sampler-parent-based](#otel-sampler-parent-based) | bool | "false" | |
|
||||||
|[otlp-collector-port](#otlp-collector-port)|int|4317||
|
| [otel-sampler-ratio](#otel-sampler-ratio) | float | 0.01 | |
|
||||||
|[otel-max-queuesize](#otel-max-queuesize)|int|||
|
| [main-snippet](#main-snippet) | string | "" | |
|
||||||
|[otel-schedule-delay-millis](#otel-schedule-delay-millis)|int|||
|
| [http-snippet](#http-snippet) | string | "" | |
|
||||||
|[otel-max-export-batch-size](#otel-max-export-batch-size)|int|||
|
| [server-snippet](#server-snippet) | string | "" | |
|
||||||
|[otel-service-name](#otel-service-name)|string|"nginx"||
|
| [stream-snippet](#stream-snippet) | string | "" | |
|
||||||
|[otel-sampler](#otel-sampler)|string|"AlwaysOff"||
|
| [location-snippet](#location-snippet) | string | "" | |
|
||||||
|[otel-sampler-parent-based](#otel-sampler-parent-based)|bool|"false"||
|
| [custom-http-errors](#custom-http-errors) | []int | []int{} | |
|
||||||
|[otel-sampler-ratio](#otel-sampler-ratio)|float|0.01||
|
| [proxy-body-size](#proxy-body-size) | string | "1m" | |
|
||||||
|[main-snippet](#main-snippet)|string|""||
|
| [proxy-connect-timeout](#proxy-connect-timeout) | int | 5 | |
|
||||||
|[http-snippet](#http-snippet)|string|""||
|
| [proxy-read-timeout](#proxy-read-timeout) | int | 60 | |
|
||||||
|[server-snippet](#server-snippet)|string|""||
|
| [proxy-send-timeout](#proxy-send-timeout) | int | 60 | |
|
||||||
|[stream-snippet](#stream-snippet)|string|""||
|
| [proxy-buffers-number](#proxy-buffers-number) | int | 4 | |
|
||||||
|[location-snippet](#location-snippet)|string|""||
|
| [proxy-buffer-size](#proxy-buffer-size) | string | "4k" | |
|
||||||
|[custom-http-errors](#custom-http-errors)|[]int|[]int{}||
|
| [proxy-cookie-path](#proxy-cookie-path) | string | "off" | |
|
||||||
|[proxy-body-size](#proxy-body-size)|string|"1m"||
|
| [proxy-cookie-domain](#proxy-cookie-domain) | string | "off" | |
|
||||||
|[proxy-connect-timeout](#proxy-connect-timeout)|int|5||
|
| [proxy-next-upstream](#proxy-next-upstream) | string | "error timeout" | |
|
||||||
|[proxy-read-timeout](#proxy-read-timeout)|int|60||
|
| [proxy-next-upstream-timeout](#proxy-next-upstream-timeout) | int | 0 | |
|
||||||
|[proxy-send-timeout](#proxy-send-timeout)|int|60||
|
| [proxy-next-upstream-tries](#proxy-next-upstream-tries) | int | 3 | |
|
||||||
|[proxy-buffers-number](#proxy-buffers-number)|int|4||
|
| [proxy-redirect-from](#proxy-redirect-from) | string | "off" | |
|
||||||
|[proxy-buffer-size](#proxy-buffer-size)|string|"4k"||
|
| [proxy-request-buffering](#proxy-request-buffering) | string | "on" | |
|
||||||
|[proxy-cookie-path](#proxy-cookie-path)|string|"off"||
|
| [ssl-redirect](#ssl-redirect) | bool | "true" | |
|
||||||
|[proxy-cookie-domain](#proxy-cookie-domain)|string|"off"||
|
| [force-ssl-redirect](#force-ssl-redirect) | bool | "false" | |
|
||||||
|[proxy-next-upstream](#proxy-next-upstream)|string|"error timeout"||
|
| [denylist-source-range](#denylist-source-range) | []string | []string{} | |
|
||||||
|[proxy-next-upstream-timeout](#proxy-next-upstream-timeout)|int|0||
|
| [whitelist-source-range](#whitelist-source-range) | []string | []string{} | |
|
||||||
|[proxy-next-upstream-tries](#proxy-next-upstream-tries)|int|3||
|
| [skip-access-log-urls](#skip-access-log-urls) | []string | []string{} | |
|
||||||
|[proxy-redirect-from](#proxy-redirect-from)|string|"off"||
|
| [limit-rate](#limit-rate) | int | 0 | |
|
||||||
|[proxy-request-buffering](#proxy-request-buffering)|string|"on"||
|
| [limit-rate-after](#limit-rate-after) | int | 0 | |
|
||||||
|[ssl-redirect](#ssl-redirect)|bool|"true"||
|
| [lua-shared-dicts](#lua-shared-dicts) | string | "" | |
|
||||||
|[force-ssl-redirect](#force-ssl-redirect)|bool|"false"||
|
| [http-redirect-code](#http-redirect-code) | int | 308 | |
|
||||||
|[denylist-source-range](#denylist-source-range)|[]string|[]string{}||
|
| [proxy-buffering](#proxy-buffering) | string | "off" | |
|
||||||
|[whitelist-source-range](#whitelist-source-range)|[]string|[]string{}||
|
| [limit-req-status-code](#limit-req-status-code) | int | 503 | |
|
||||||
|[skip-access-log-urls](#skip-access-log-urls)|[]string|[]string{}||
|
| [limit-conn-status-code](#limit-conn-status-code) | int | 503 | |
|
||||||
|[limit-rate](#limit-rate)|int|0||
|
| [enable-syslog](#enable-syslog) | bool | "false" | |
|
||||||
|[limit-rate-after](#limit-rate-after)|int|0||
|
| [syslog-host](#syslog-host) | string | "" | |
|
||||||
|[lua-shared-dicts](#lua-shared-dicts)|string|""||
|
| [syslog-port](#syslog-port) | int | 514 | |
|
||||||
|[http-redirect-code](#http-redirect-code)|int|308||
|
| [no-tls-redirect-locations](#no-tls-redirect-locations) | string | "/.well-known/acme-challenge" | |
|
||||||
|[proxy-buffering](#proxy-buffering)|string|"off"||
|
| [global-auth-url](#global-auth-url) | string | "" | |
|
||||||
|[limit-req-status-code](#limit-req-status-code)|int|503||
|
| [global-auth-method](#global-auth-method) | string | "" | |
|
||||||
|[limit-conn-status-code](#limit-conn-status-code)|int|503||
|
| [global-auth-signin](#global-auth-signin) | string | "" | |
|
||||||
|[enable-syslog](#enable-syslog)|bool|false||
|
| [global-auth-signin-redirect-param](#global-auth-signin-redirect-param) | string | "rd" | |
|
||||||
|[syslog-host](#syslog-host)|string|""||
|
| [global-auth-response-headers](#global-auth-response-headers) | string | "" | |
|
||||||
|[syslog-port](#syslog-port)|int|514||
|
| [global-auth-request-redirect](#global-auth-request-redirect) | string | "" | |
|
||||||
|[no-tls-redirect-locations](#no-tls-redirect-locations)|string|"/.well-known/acme-challenge"||
|
| [global-auth-snippet](#global-auth-snippet) | string | "" | |
|
||||||
|[global-auth-url](#global-auth-url)|string|""||
|
| [global-auth-cache-key](#global-auth-cache-key) | string | "" | |
|
||||||
|[global-auth-method](#global-auth-method)|string|""||
|
| [global-auth-cache-duration](#global-auth-cache-duration) | string | "200 202 401 5m" | |
|
||||||
|[global-auth-signin](#global-auth-signin)|string|""||
|
| [no-auth-locations](#no-auth-locations) | string | "/.well-known/acme-challenge" | |
|
||||||
|[global-auth-signin-redirect-param](#global-auth-signin-redirect-param)|string|"rd"||
|
| [block-cidrs](#block-cidrs) | []string | "" | |
|
||||||
|[global-auth-response-headers](#global-auth-response-headers)|string|""||
|
| [block-user-agents](#block-user-agents) | []string | "" | |
|
||||||
|[global-auth-request-redirect](#global-auth-request-redirect)|string|""||
|
| [block-referers](#block-referers) | []string | "" | |
|
||||||
|[global-auth-snippet](#global-auth-snippet)|string|""||
|
| [proxy-ssl-location-only](#proxy-ssl-location-only) | bool | "false" | |
|
||||||
|[global-auth-cache-key](#global-auth-cache-key)|string|""||
|
| [default-type](#default-type) | string | "text/html" | |
|
||||||
|[global-auth-cache-duration](#global-auth-cache-duration)|string|"200 202 401 5m"||
|
| [global-rate-limit-memcached-host](#global-rate-limit) | string | "" | |
|
||||||
|[no-auth-locations](#no-auth-locations)|string|"/.well-known/acme-challenge"||
|
| [global-rate-limit-memcached-port](#global-rate-limit) | int | 11211 | |
|
||||||
|[block-cidrs](#block-cidrs)|[]string|""||
|
| [global-rate-limit-memcached-connect-timeout](#global-rate-limit) | int | 50 | |
|
||||||
|[block-user-agents](#block-user-agents)|[]string|""||
|
| [global-rate-limit-memcached-max-idle-timeout](#global-rate-limit) | int | 10000 | |
|
||||||
|[block-referers](#block-referers)|[]string|""||
|
| [global-rate-limit-memcached-pool-size](#global-rate-limit) | int | 50 | |
|
||||||
|[proxy-ssl-location-only](#proxy-ssl-location-only)|bool|"false"||
|
| [global-rate-limit-status-code](#global-rate-limit) | int | 429 | |
|
||||||
|[default-type](#default-type)|string|"text/html"||
|
| [service-upstream](#service-upstream) | bool | "false" | |
|
||||||
|[global-rate-limit-memcached-host](#global-rate-limit)|string|""||
|
| [ssl-reject-handshake](#ssl-reject-handshake) | bool | "false" | |
|
||||||
|[global-rate-limit-memcached-port](#global-rate-limit)|int|11211||
|
| [debug-connections](#debug-connections) | []string | "127.0.0.1,1.1.1.1/24" | |
|
||||||
|[global-rate-limit-memcached-connect-timeout](#global-rate-limit)|int|50||
|
| [strict-validate-path-type](#strict-validate-path-type) | bool | "false" (v1.7.x) | |
|
||||||
|[global-rate-limit-memcached-max-idle-timeout](#global-rate-limit)|int|10000||
|
|
||||||
|[global-rate-limit-memcached-pool-size](#global-rate-limit)|int|50||
|
|
||||||
|[global-rate-limit-status-code](#global-rate-limit)|int|429||
|
|
||||||
|[service-upstream](#service-upstream)|bool|"false"||
|
|
||||||
|[ssl-reject-handshake](#ssl-reject-handshake)|bool|"false"||
|
|
||||||
|[debug-connections](#debug-connections)|[]string|"127.0.0.1,1.1.1.1/24"||
|
|
||||||
|[strict-validate-path-type](#strict-validate-path-type)|bool|"false" (v1.7.x)||
|
|
||||||
|
|
||||||
## add-headers
|
## add-headers
|
||||||
|
|
||||||
|
@ -730,7 +723,7 @@ _**default:**_ true
|
||||||
Enables the [geoip2 module](https://github.com/leev/ngx_http_geoip2_module) for NGINX.
|
Enables the [geoip2 module](https://github.com/leev/ngx_http_geoip2_module) for NGINX.
|
||||||
Since `0.27.0` and due to a [change in the MaxMind databases](https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases) a license is required to have access to the databases.
|
Since `0.27.0` and due to a [change in the MaxMind databases](https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases) a license is required to have access to the databases.
|
||||||
For this reason, it is required to define a new flag `--maxmind-license-key` in the ingress controller deployment to download the databases needed during the initialization of the ingress controller.
|
For this reason, it is required to define a new flag `--maxmind-license-key` in the ingress controller deployment to download the databases needed during the initialization of the ingress controller.
|
||||||
Alternatively, it is possible to use a volume to mount the files `/etc/nginx/geoip/GeoLite2-City.mmdb` and `/etc/nginx/geoip/GeoLite2-ASN.mmdb`, avoiding the overhead of the download.
|
Alternatively, it is possible to use a volume to mount the files `/etc/ingress-controller/geoip/GeoLite2-City.mmdb` and `/etc/ingress-controller/geoip/GeoLite2-ASN.mmdb`, avoiding the overhead of the download.
|
||||||
|
|
||||||
!!! important
|
!!! important
|
||||||
If the feature is enabled but the files are missing, GeoIP2 will not be enabled.
|
If the feature is enabled but the files are missing, GeoIP2 will not be enabled.
|
||||||
|
@ -935,41 +928,6 @@ Adds an X-Original-Uri header with the original request URI to the backend reque
|
||||||
|
|
||||||
Ensures that X-Request-ID is defaulted to a random value, if no X-Request-ID is present in the request
|
Ensures that X-Request-ID is defaulted to a random value, if no X-Request-ID is present in the request
|
||||||
|
|
||||||
## enable-opentracing
|
|
||||||
|
|
||||||
Enables the nginx Opentracing extension. _**default:**_ is disabled
|
|
||||||
|
|
||||||
_References:_
|
|
||||||
[https://github.com/opentracing-contrib/nginx-opentracing](https://github.com/opentracing-contrib/nginx-opentracing)
|
|
||||||
|
|
||||||
## opentracing-operation-name
|
|
||||||
|
|
||||||
Specifies a custom name for the server span. _**default:**_ is empty
|
|
||||||
|
|
||||||
For example, set to "HTTP $request_method $uri".
|
|
||||||
|
|
||||||
## opentracing-location-operation-name
|
|
||||||
|
|
||||||
Specifies a custom name for the location span. _**default:**_ is empty
|
|
||||||
|
|
||||||
For example, set to "HTTP $request_method $uri".
|
|
||||||
|
|
||||||
## zipkin-collector-host
|
|
||||||
|
|
||||||
Specifies the host to use when uploading traces. It must be a valid URL.
|
|
||||||
|
|
||||||
## zipkin-collector-port
|
|
||||||
|
|
||||||
Specifies the port to use when uploading traces. _**default:**_ 9411
|
|
||||||
|
|
||||||
## zipkin-service-name
|
|
||||||
|
|
||||||
Specifies the service name to use for any traces created. _**default:**_ nginx
|
|
||||||
|
|
||||||
## zipkin-sample-rate
|
|
||||||
|
|
||||||
Specifies sample rate for any traces created. _**default:**_ 1.0
|
|
||||||
|
|
||||||
## jaeger-collector-host
|
## jaeger-collector-host
|
||||||
|
|
||||||
Specifies the host to use when uploading traces. It must be a valid URL.
|
Specifies the host to use when uploading traces. It must be a valid URL.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue