Merge branch 'master' of https://github.com/advatys/ingress-nginx into openshift
This commit is contained in:
commit
944bbb33ad
166 changed files with 5049 additions and 2004 deletions
20
.github/ISSUE_TEMPLATE/cve_report.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/cve_report.md
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
name: CVE Finding Report
|
||||||
|
about: CVE reporting for ingress-nginx
|
||||||
|
title: ''
|
||||||
|
labels: kind/bug
|
||||||
|
assignees:
|
||||||
|
- strongjz
|
||||||
|
- rikatz
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- if you found something that impacts directly ingress-nginx and
|
||||||
|
is not a public CVE yet, please reach out security@kubernetes.io" -->
|
||||||
|
|
||||||
|
<!-- What scanner and version reported the CVE? -->
|
||||||
|
|
||||||
|
<!-- What CVE was reported in the scanner findings? -->
|
||||||
|
|
||||||
|
<!-- What versions of the controller did you test with? -->
|
||||||
|
|
||||||
|
<!-- Please provider other details that will help us determine the severity of the issue -->
|
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -15,8 +15,6 @@ The announcement in the dev mailing list is here https://groups.google.com/a/kub
|
||||||
|
|
||||||
Thank you,
|
Thank you,
|
||||||
Ingress-Nginx maintainer
|
Ingress-Nginx maintainer
|
||||||
|
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- What do you want to happen? -->
|
<!-- What do you want to happen? -->
|
||||||
|
|
36
.github/PULL_REQUEST_TEMPLATE.md
vendored
36
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -9,6 +9,7 @@
|
||||||
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
|
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
|
||||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||||
- [ ] New feature (non-breaking change which adds functionality)
|
- [ ] New feature (non-breaking change which adds functionality)
|
||||||
|
- [ ] CVE Report (Scanner found CVE and adding report)
|
||||||
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
||||||
- [ ] Documentation only
|
- [ ] Documentation only
|
||||||
|
|
||||||
|
@ -30,5 +31,38 @@ fixes #
|
||||||
- [ ] My change requires a change to the documentation.
|
- [ ] My change requires a change to the documentation.
|
||||||
- [ ] I have updated the documentation accordingly.
|
- [ ] I have updated the documentation accordingly.
|
||||||
- [ ] I've read the [CONTRIBUTION](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md) guide
|
- [ ] I've read the [CONTRIBUTION](https://github.com/kubernetes/ingress-nginx/blob/main/CONTRIBUTING.md) guide
|
||||||
- [ ] I have added tests to cover my changes.
|
- [ ] I have added unit and/or e2e tests to cover my changes.
|
||||||
- [ ] All new and existing tests passed.
|
- [ ] All new and existing tests passed.
|
||||||
|
- [ ] Added Release Notes.
|
||||||
|
|
||||||
|
## Does my pull request need a release note?
|
||||||
|
Any user-visible or operator-visible change qualifies for a release note. This could be a:
|
||||||
|
|
||||||
|
- CLI change
|
||||||
|
- API change
|
||||||
|
- UI change
|
||||||
|
- configuration schema change
|
||||||
|
- behavioral change
|
||||||
|
- change in non-functional attributes such as efficiency or availability, availability of a new platform
|
||||||
|
- a warning about a deprecation
|
||||||
|
- fix of a previous Known Issue
|
||||||
|
- fix of a vulnerability (CVE)
|
||||||
|
|
||||||
|
No release notes are required for changes to the following:
|
||||||
|
|
||||||
|
- Tests
|
||||||
|
- Build infrastructure
|
||||||
|
- Fixes for unreleased bugs
|
||||||
|
|
||||||
|
For more tips on writing good release notes, check out the [Release Notes Handbook](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-notes)
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If no, just write "NONE" in the release-note block below.
|
||||||
|
If yes, a release note is required:
|
||||||
|
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
|
||||||
|
|
||||||
|
For more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md
|
||||||
|
-->
|
||||||
|
```release-note
|
||||||
|
PLACE RELEASE NOTES HERE
|
||||||
|
```
|
||||||
|
|
102
.github/workflows/ci.yaml
vendored
102
.github/workflows/ci.yaml
vendored
|
@ -9,6 +9,13 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
run_e2e:
|
||||||
|
description: 'Force e2e to run'
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
@ -26,9 +33,9 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 # v2.10.2
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.10.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -40,9 +47,11 @@ jobs:
|
||||||
- 'rootfs/**/*'
|
- 'rootfs/**/*'
|
||||||
- 'TAG'
|
- 'TAG'
|
||||||
- 'test/e2e/**/*'
|
- 'test/e2e/**/*'
|
||||||
|
- 'NGINX_BASE'
|
||||||
charts:
|
charts:
|
||||||
- 'charts/ingress-nginx/Chart.yaml'
|
- 'charts/ingress-nginx/Chart.yaml'
|
||||||
- 'charts/ingress-nginx/**/*'
|
- 'charts/ingress-nginx/**/*'
|
||||||
|
- 'NGINX_BASE'
|
||||||
|
|
||||||
|
|
||||||
security:
|
security:
|
||||||
|
@ -50,10 +59,10 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- name: Run Gosec Security Scanner
|
- name: Run Gosec Security Scanner
|
||||||
uses: securego/gosec@b99b5f7838e43a4104354ad92a6a1774302ee1f9 # master
|
uses: securego/gosec@1af1d5bb49259b62e45c505db397dd2ada5d74f8 # master
|
||||||
with:
|
with:
|
||||||
# G601 for zz_generated.deepcopy.go
|
# G601 for zz_generated.deepcopy.go
|
||||||
# G306 TODO: Expect WriteFile permissions to be 0600 or less
|
# G306 TODO: Expect WriteFile permissions to be 0600 or less
|
||||||
|
@ -68,20 +77,20 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- name: Set up Go 1.18
|
- name: Set up Go 1.19.2
|
||||||
id: go
|
id: go
|
||||||
uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3.2.0
|
uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # v3.2.0
|
||||||
with:
|
with:
|
||||||
go-version: '1.18.2'
|
go-version: '1.19.2'
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@8b122486cedac8393e77aa9734c3528886e4a1a8 #v2.0.0
|
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 #v2.0.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6 # v2.0.0
|
uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 # v2.0.0
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
|
|
||||||
|
@ -114,7 +123,7 @@ jobs:
|
||||||
| pigz > docker.tar.gz
|
| pigz > docker.tar.gz
|
||||||
|
|
||||||
- name: cache
|
- name: cache
|
||||||
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
|
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.1
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
path: docker.tar.gz
|
path: docker.tar.gz
|
||||||
|
@ -126,20 +135,24 @@ jobs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
- build
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.charts == 'true')
|
(needs.changes.outputs.charts == 'true') || ${{ inputs.run_e2e }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
k8s: [v1.23.13, v1.24.7, v1.25.3]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- name: Setup Go
|
- name: Setup Go
|
||||||
uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3.2.0
|
uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # v3.2.0
|
||||||
with:
|
with:
|
||||||
go-version: '1.18.2'
|
go-version: '1.19.2'
|
||||||
|
|
||||||
- name: cache
|
- name: cache
|
||||||
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # v3
|
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # v3
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
|
|
||||||
|
@ -149,7 +162,7 @@ jobs:
|
||||||
|
|
||||||
- name: Run helm-docs
|
- name: Run helm-docs
|
||||||
run: |
|
run: |
|
||||||
GOBIN=$PWD GO111MODULE=on go install github.com/norwoodj/helm-docs/cmd/helm-docs@e91c4c3337d3bf3fdad8de1763999a5c3325567f # v1.8.1
|
GOBIN=$PWD GO111MODULE=on go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.11.0
|
||||||
./helm-docs --chart-search-root=${GITHUB_WORKSPACE}/charts
|
./helm-docs --chart-search-root=${GITHUB_WORKSPACE}/charts
|
||||||
DIFF=$(git diff ${GITHUB_WORKSPACE}/charts/ingress-nginx/README.md)
|
DIFF=$(git diff ${GITHUB_WORKSPACE}/charts/ingress-nginx/README.md)
|
||||||
if [ ! -z "$DIFF" ]; then
|
if [ ! -z "$DIFF" ]; then
|
||||||
|
@ -161,6 +174,7 @@ jobs:
|
||||||
- name: Run Artifact Hub lint
|
- name: Run Artifact Hub lint
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/artifacthub/hub/releases/download/v1.5.0/ah_1.5.0_linux_amd64.tar.gz
|
wget https://github.com/artifacthub/hub/releases/download/v1.5.0/ah_1.5.0_linux_amd64.tar.gz
|
||||||
|
echo 'ad0e44c6ea058ab6b85dbf582e88bad9fdbc64ded0d1dd4edbac65133e5c87da *ah_1.5.0_linux_amd64.tar.gz' | shasum -c
|
||||||
tar -xzvf ah_1.5.0_linux_amd64.tar.gz ah
|
tar -xzvf ah_1.5.0_linux_amd64.tar.gz ah
|
||||||
./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
|
||||||
|
@ -170,14 +184,14 @@ jobs:
|
||||||
sudo mkdir -p $HOME/.kube
|
sudo mkdir -p $HOME/.kube
|
||||||
sudo chmod -R 777 $HOME/.kube
|
sudo chmod -R 777 $HOME/.kube
|
||||||
|
|
||||||
- name: Create Kubernetes cluster
|
- name: Create Kubernetes ${{ matrix.k8s }} cluster
|
||||||
id: kind
|
id: kind
|
||||||
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
||||||
with:
|
with:
|
||||||
version: v0.14.0
|
version: v0.15.0
|
||||||
image: kindest/node:v1.21.12
|
image: kindest/node:${{ matrix.k8s }}
|
||||||
|
|
||||||
- uses: geekyeggo/delete-artifact@a6ab43859c960a8b74cbc6291f362c7fb51829ba # v1
|
- uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af # v1
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
failOnError: false
|
failOnError: false
|
||||||
|
@ -204,19 +218,19 @@ jobs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
- build
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true')
|
(needs.changes.outputs.go == 'true') || ${{ inputs.run_e2e }}
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
k8s: [v1.21.2, v1.22.9, v1.23.6, v1.24.0]
|
k8s: [v1.23.13, v1.24.7, v1.25.3]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- name: cache
|
- name: cache
|
||||||
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # v2
|
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # v2
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
|
|
||||||
|
@ -224,17 +238,17 @@ jobs:
|
||||||
id: kind
|
id: kind
|
||||||
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
||||||
with:
|
with:
|
||||||
version: v0.14.0
|
version: v0.15.0
|
||||||
config: test/e2e/kind.yaml
|
config: test/e2e/kind.yaml
|
||||||
image: kindest/node:${{ matrix.k8s }}
|
image: kindest/node:${{ matrix.k8s }}
|
||||||
|
|
||||||
- uses: geekyeggo/delete-artifact@a6ab43859c960a8b74cbc6291f362c7fb51829ba # v1
|
- uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af # v1
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
failOnError: false
|
failOnError: false
|
||||||
|
|
||||||
- name: Prepare cluster for testing
|
- name: Prepare cluster for testing
|
||||||
uses: azure/setup-helm@217bf70cbd2e930ba2e81ba7e1de2f7faecc42ba #v2.1
|
uses: azure/setup-helm@f382f75448129b3be48f8121b9857be18d815a82 #v2.1
|
||||||
with:
|
with:
|
||||||
version: 'v3.8.0'
|
version: 'v3.8.0'
|
||||||
id: local-path
|
id: local-path
|
||||||
|
@ -261,19 +275,19 @@ jobs:
|
||||||
- changes
|
- changes
|
||||||
- build
|
- build
|
||||||
if: |
|
if: |
|
||||||
(needs.changes.outputs.go == 'true')
|
(needs.changes.outputs.go == 'true') || ${{ inputs.run_e2e }}
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
k8s: [v1.21.10, v1.22.9, v1.23.6, v1.24.0]
|
k8s: [v1.23.13, v1.24.7, v1.25.3]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- name: cache
|
- name: cache
|
||||||
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741
|
uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
|
|
||||||
|
@ -281,17 +295,17 @@ jobs:
|
||||||
id: kind
|
id: kind
|
||||||
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
||||||
with:
|
with:
|
||||||
version: v0.14.0
|
version: v0.15.0
|
||||||
config: test/e2e/kind.yaml
|
config: test/e2e/kind.yaml
|
||||||
image: kindest/node:${{ matrix.k8s }}
|
image: kindest/node:${{ matrix.k8s }}
|
||||||
|
|
||||||
- uses: geekyeggo/delete-artifact@a6ab43859c960a8b74cbc6291f362c7fb51829ba
|
- uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af
|
||||||
with:
|
with:
|
||||||
name: docker.tar.gz
|
name: docker.tar.gz
|
||||||
failOnError: false
|
failOnError: false
|
||||||
|
|
||||||
- name: Prepare cluster for testing
|
- name: Prepare cluster for testing
|
||||||
uses: azure/setup-helm@217bf70cbd2e930ba2e81ba7e1de2f7faecc42ba #v2.1
|
uses: azure/setup-helm@f382f75448129b3be48f8121b9857be18d815a82 #v2.1
|
||||||
with:
|
with:
|
||||||
version: 'v3.8.0'
|
version: 'v3.8.0'
|
||||||
id: local-path
|
id: local-path
|
||||||
|
@ -321,9 +335,9 @@ jobs:
|
||||||
PLATFORMS: linux/amd64,linux/arm64
|
PLATFORMS: linux/amd64,linux/arm64
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 # v2.10.2
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.10.2
|
||||||
id: filter-images
|
id: filter-images
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -388,9 +402,9 @@ jobs:
|
||||||
PLATFORMS: linux/amd64
|
PLATFORMS: linux/amd64
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 # v2.10.2
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.10.2
|
||||||
id: filter-images
|
id: filter-images
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -403,15 +417,15 @@ jobs:
|
||||||
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
||||||
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
uses: engineerd/setup-kind@aa272fe2a7309878ffc2a81c56cfe3ef108ae7d0 #v0.5.0
|
||||||
with:
|
with:
|
||||||
version: v0.14.0
|
version: v0.15.0
|
||||||
image: kindest/node:v1.21.12
|
image: kindest/node:v1.25.2
|
||||||
|
|
||||||
- name: Set up Go 1.18
|
- name: Set up Go 1.19.2
|
||||||
id: go
|
id: go
|
||||||
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
||||||
uses: actions/setup-go@84cbf8094393cdc5fe1fe1671ff2647332956b1a # v3.2.0
|
uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # v3.2.0
|
||||||
with:
|
with:
|
||||||
go-version: '1.18.2'
|
go-version: '1.19.2'
|
||||||
|
|
||||||
- name: kube-webhook-certgen image build
|
- name: kube-webhook-certgen image build
|
||||||
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
||||||
|
|
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@2541b1294d2704b0964813337f33b291d3f8596b #v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.0.2
|
||||||
- name: 'Dependency Review'
|
- name: 'Dependency Review'
|
||||||
uses: actions/dependency-review-action@94145f3150bfabdc97540cbd5f7e926306ea7744 #v2.0.2
|
uses: actions/dependency-review-action@30d582111533d59ab793fd9f971817241654f3ec #v2.0.2
|
||||||
|
|
6
.github/workflows/docs.yaml
vendored
6
.github/workflows/docs.yaml
vendored
|
@ -24,9 +24,9 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b #v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.0.2
|
||||||
|
|
||||||
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 # v2.10.2
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.10.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -49,7 +49,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout master
|
- name: Checkout master
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b #v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.0.2
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
uses: ./.github/actions/mkdocs
|
uses: ./.github/actions/mkdocs
|
||||||
|
|
11
.github/workflows/helm.yaml
vendored
11
.github/workflows/helm.yaml
vendored
|
@ -4,7 +4,6 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- legacy
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -25,16 +24,16 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
|
|
||||||
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 # v2.10.2
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.10.2
|
||||||
id: filter
|
id: filter
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
filters: |
|
filters: |
|
||||||
charts:
|
charts:
|
||||||
- 'charts/ingress-nginx/Chart.yaml'
|
- 'charts/ingress-nginx/Chart.yaml'
|
||||||
- 'charts/ingress-nginx/**/*'
|
- 'charts/ingress-nginx/values.yaml'
|
||||||
|
|
||||||
chart:
|
chart:
|
||||||
name: Release Chart
|
name: Release Chart
|
||||||
|
@ -52,7 +51,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout master
|
- name: Checkout master
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||||
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
|
||||||
|
@ -64,7 +63,7 @@ jobs:
|
||||||
git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
|
|
||||||
- name: Helm Chart Releaser
|
- name: Helm Chart Releaser
|
||||||
uses: helm/chart-releaser-action@v1.4.0
|
uses: helm/chart-releaser-action@98bccfd32b0f76149d188912ac8e45ddd3f8695f #v1.4.1
|
||||||
env:
|
env:
|
||||||
CR_SKIP_EXISTING: "false"
|
CR_SKIP_EXISTING: "false"
|
||||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
3
.github/workflows/perftest.yaml
vendored
3
.github/workflows/perftest.yaml
vendored
|
@ -18,11 +18,12 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||||
|
|
||||||
- name: Install K6
|
- name: Install K6
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/grafana/k6/releases/download/v0.38.2/k6-v0.38.2-linux-amd64.tar.gz
|
wget https://github.com/grafana/k6/releases/download/v0.38.2/k6-v0.38.2-linux-amd64.tar.gz
|
||||||
|
echo '7c9e5a26aaa2c638c042f6dfda7416161b8d2e0d4cb930721a38083b8be109ab *k6-v0.38.2-linux-amd64.tar.gz' | shasum -c
|
||||||
tar -xvf k6-v0.38.2-linux-amd64.tar.gz k6-v0.38.2-linux-amd64/k6
|
tar -xvf k6-v0.38.2-linux-amd64.tar.gz k6-v0.38.2-linux-amd64/k6
|
||||||
mv k6-v0.38.2-linux-amd64/k6 .
|
mv k6-v0.38.2-linux-amd64/k6 .
|
||||||
./k6
|
./k6
|
||||||
|
|
11
.github/workflows/plugin.yaml
vendored
11
.github/workflows/plugin.yaml
vendored
|
@ -9,22 +9,25 @@ on:
|
||||||
tags:
|
tags:
|
||||||
- "v*"
|
- "v*"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write # for goreleaser/goreleaser-action
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release-plugin:
|
release-plugin:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@b22fbbc2921299758641fab08929b4ac52b32923 # v3.2.0
|
uses: actions/setup-go@c4a742cab115ed795e34d4513e2cf7d472deb55f # v3.2.0
|
||||||
with:
|
with:
|
||||||
go-version: 1.18
|
go-version: 1.19.2
|
||||||
|
|
||||||
- name: Run GoReleaser
|
- name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@68acf3b1adf004ac9c2f0a4259e85c5f66e99bef # v3.0.0
|
uses: goreleaser/goreleaser-action@b508e2e3ef3b19d4e4146d4f8fb3ba9db644a757 # v3.0.0
|
||||||
with:
|
with:
|
||||||
version: latest
|
version: latest
|
||||||
args: release --rm-dist
|
args: release --rm-dist
|
||||||
|
|
8
.github/workflows/scorecards.yml
vendored
8
.github/workflows/scorecards.yml
vendored
|
@ -25,12 +25,12 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout code"
|
- name: "Checkout code"
|
||||||
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.0.0
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: "Run analysis"
|
- name: "Run analysis"
|
||||||
uses: ossf/scorecard-action@ce330fde6b1a5c9c75b417e7efc510b822a35564 # v1.1.1
|
uses: ossf/scorecard-action@99c53751e09b9529366343771cc321ec74e9bd3d # v1.1.1
|
||||||
with:
|
with:
|
||||||
results_file: results.sarif
|
results_file: results.sarif
|
||||||
results_format: sarif
|
results_format: sarif
|
||||||
|
@ -49,7 +49,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@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0
|
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.0.0
|
||||||
with:
|
with:
|
||||||
name: SARIF file
|
name: SARIF file
|
||||||
path: results.sarif
|
path: results.sarif
|
||||||
|
@ -57,6 +57,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@2ca79b6fa8d3ec278944088b4aa5f46912db5d63 # v2.1.14
|
uses: github/codeql-action/upload-sarif@c3b6fce4ee2ca25bc1066aa3bf73962fda0e8898 # v2.1.14
|
||||||
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@2541b1294d2704b0964813337f33b291d3f8596b
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||||
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@2541b1294d2704b0964813337f33b291d3f8596b
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||||
|
|
||||||
- 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@0105373003c89c494a3f436bd5efc57f3ac1ca20 #v0.5.1
|
uses: aquasecurity/trivy-action@9ab158e8597f3b310480b9a69402b419bc03dbd5 #v0.5.1
|
||||||
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@0c670bbf0414f39666df6ce8e718ec5662c21e03
|
uses: github/codeql-action/upload-sarif@c3b6fce4ee2ca25bc1066aa3bf73962fda0e8898
|
||||||
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
|
||||||
|
|
|
@ -47,3 +47,6 @@ Whether you are a user or contributor, official support channels include:
|
||||||
- Post: [Kubernetes Forum](https://discuss.kubernetes.io)
|
- Post: [Kubernetes Forum](https://discuss.kubernetes.io)
|
||||||
|
|
||||||
Before opening a new issue or submitting a new pull request, it's helpful to search the project - it's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of.
|
Before opening a new issue or submitting a new pull request, it's helpful to search the project - it's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of.
|
||||||
|
|
||||||
|
## New Contributor Tips
|
||||||
|
If you're a new contributor, you can follow the [New Contributor Tips guide](NEW_CONTRIBUTOR.md)
|
||||||
|
|
273
Changelog.md
273
Changelog.md
|
@ -1,5 +1,278 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
### 1.5.1
|
||||||
|
|
||||||
|
* Upgrade NGINX to 1.21.6
|
||||||
|
* Upgrade Golang 1.19.2
|
||||||
|
* Fix Service Name length Bug [9245](https://github.com/kubernetes/ingress-nginx/pull/9245)
|
||||||
|
* CVE fixes CVE-2022-32149, CVE-2022-27664, CVE-2022-1996
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.5.1@sha256:c1c091b88a6c936a83bd7b098662760a87868d12452529bad0d178fb36147345
|
||||||
|
|
||||||
|
### All Changes:
|
||||||
|
|
||||||
|
* chore Fixed to Support Versions table by @yutachaos in https://github.com/kubernetes/ingress-nginx/pull/9117
|
||||||
|
* Updated incorrect version number in the Installation Guide by @afro-coder in https://github.com/kubernetes/ingress-nginx/pull/9120
|
||||||
|
* Updated the Developer guide with New Contributor information by @afro-coder in https://github.com/kubernetes/ingress-nginx/pull/9114
|
||||||
|
* Remove deprecated net dependency by @rikatz in https://github.com/kubernetes/ingress-nginx/pull/9110
|
||||||
|
* Fixed docs helm-docs version by @yutachaos in https://github.com/kubernetes/ingress-nginx/pull/9121
|
||||||
|
* Fix CVE 2022 27664 by @strongjz in https://github.com/kubernetes/ingress-nginx/pull/9109
|
||||||
|
* upgrade to golang 1.19.2 by @strongjz in https://github.com/kubernetes/ingress-nginx/pull/9124
|
||||||
|
* fix e2e resource leak when ginkgo exit before clear resource by @loveRhythm1990 in https://github.com/kubernetes/ingress-nginx/pull/9103
|
||||||
|
* fix: handle 401 and 403 by external auth by @johanneswuerbach in https://github.com/kubernetes/ingress-nginx/pull/9131
|
||||||
|
* Move bowei to emeritus owner by @rikatz in https://github.com/kubernetes/ingress-nginx/pull/9150
|
||||||
|
* fix null ports by @tombokombo in https://github.com/kubernetes/ingress-nginx/pull/9149
|
||||||
|
* Documentation added for implemented redirection in the proxy to ensure image pulling by @Sanghamitra-PERSONAL in https://github.com/kubernetes/ingress-nginx/pull/9098
|
||||||
|
* updating runner with golang 1.19.2 by @strongjz in https://github.com/kubernetes/ingress-nginx/pull/9158
|
||||||
|
* Add install command for OVHcloud by @scraly in https://github.com/kubernetes/ingress-nginx/pull/9171
|
||||||
|
* GitHub Templates: Remove trailing whitespaces. by @Gacko in https://github.com/kubernetes/ingress-nginx/pull/9172
|
||||||
|
* Update helm chart changelog to show that kubernetes v1.21.x is no longer supported by @cskinfill in https://github.com/kubernetes/ingress-nginx/pull/9147
|
||||||
|
* Add section to troubleshooting docs for failure to listen on port by @jrhunger in https://github.com/kubernetes/ingress-nginx/pull/9185
|
||||||
|
* Implement parseFloat for annotations by @kirs in https://github.com/kubernetes/ingress-nginx/pull/9195
|
||||||
|
* fix typo in docs. by @guettli in https://github.com/kubernetes/ingress-nginx/pull/9167
|
||||||
|
* add:(admission-webhooks) ability to set securityContext by @ybelMekk in https://github.com/kubernetes/ingress-nginx/pull/9186
|
||||||
|
* Fix Markdown header level by @jaens in https://github.com/kubernetes/ingress-nginx/pull/9210
|
||||||
|
* chore: bump NGINX version v1.21.4 by @tao12345666333 in https://github.com/kubernetes/ingress-nginx/pull/8889
|
||||||
|
* chore: update NGINX to 1.21.6 by @tao12345666333 in https://github.com/kubernetes/ingress-nginx/pull/9231
|
||||||
|
* fix svc long name by @tombokombo in https://github.com/kubernetes/ingress-nginx/pull/9245
|
||||||
|
* update base image of nginx to 1.21.6 by @strongjz in https://github.com/kubernetes/ingress-nginx/pull/9257
|
||||||
|
* Fix CVE-2022-32149 by @esigo in https://github.com/kubernetes/ingress-nginx/pull/9258
|
||||||
|
* Fix CVE-2022-1996 by @esigo in https://github.com/kubernetes/ingress-nginx/pull/9244
|
||||||
|
* Adding support for disabling liveness and readiness probes to the Helm chart by @njegosrailic in https://github.com/kubernetes/ingress-nginx/pull/9238
|
||||||
|
* fix CVE-2022-27664 by @esigo in https://github.com/kubernetes/ingress-nginx/pull/9273
|
||||||
|
* Add CVE-2022-27664 #9273 in latest release by @strongjz in https://github.com/kubernetes/ingress-nginx/pull/9275
|
||||||
|
|
||||||
|
### Dependencies updates:
|
||||||
|
|
||||||
|
* Bump docker/setup-buildx-action from 2.0.0 to 2.1.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9180
|
||||||
|
* Bump dorny/paths-filter from 2.10.2 to 2.11.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9183
|
||||||
|
* Bump helm/chart-releaser-action from 1.4.0 to 1.4.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9136
|
||||||
|
* Bump github/codeql-action from 2.1.25 to 2.1.27 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9137
|
||||||
|
* Bump ossf/scorecard-action from 2.0.3 to 2.0.4 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9138
|
||||||
|
* Bump google.golang.org/grpc from 1.49.0 to 1.50.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9134
|
||||||
|
* Bump actions/checkout from 3.0.2 to 3.1.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9135
|
||||||
|
* Bump actions/dependency-review-action from 2.5.0 to 2.5.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9237
|
||||||
|
* Bump github/codeql-action from 2.1.28 to 2.1.29 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9236
|
||||||
|
* Bump github.com/spf13/cobra from 1.6.0 to 1.6.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9233
|
||||||
|
* Bump actions/upload-artifact from 3.1.0 to 3.1.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9234
|
||||||
|
* Bump azure/setup-helm from 3.3 to 3.4 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9235
|
||||||
|
* Bump github.com/onsi/ginkgo/v2 from 2.3.1 to 2.4.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9201
|
||||||
|
* Bump goreleaser/goreleaser-action from 3.1.0 to 3.2.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9208
|
||||||
|
* Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9202
|
||||||
|
* Bump ossf/scorecard-action from 2.0.4 to 2.0.6 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9203
|
||||||
|
* Bump docker/setup-buildx-action from 2.1.0 to 2.2.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9204
|
||||||
|
* Bump actions/setup-go from 3.3.0 to 3.3.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9205
|
||||||
|
* Bump github/codeql-action from 2.1.27 to 2.1.28 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9206
|
||||||
|
* Bump actions/download-artifact from 3.0.0 to 3.0.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9207
|
||||||
|
* Bump github.com/prometheus/client_model from 0.2.0 to 0.3.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9200
|
||||||
|
* Bump github.com/spf13/cobra from 1.5.0 to 1.6.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9173
|
||||||
|
* Bump google.golang.org/grpc from 1.50.0 to 1.50.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9174
|
||||||
|
* Bump k8s.io/component-base from 0.25.2 to 0.25.3 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9175
|
||||||
|
* Bump github.com/fsnotify/fsnotify from 1.5.4 to 1.6.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9176
|
||||||
|
* Bump github.com/onsi/ginkgo/v2 from 2.2.0 to 2.3.1 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9177
|
||||||
|
* Bump geekyeggo/delete-artifact from 1.0.0 to 2.0.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9178
|
||||||
|
* Bump actions/dependency-review-action from 2.4.0 to 2.5.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9179
|
||||||
|
* Bump docker/setup-qemu-action from 2.0.0 to 2.1.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9181
|
||||||
|
* Bump securego/gosec from 2.13.1 to 2.14.0 by @dependabot in https://github.com/kubernetes/ingress-nginx/pull/9182
|
||||||
|
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @yutachaos made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9117
|
||||||
|
* @Gacko made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9123
|
||||||
|
* @loveRhythm1990 made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9103
|
||||||
|
* @johanneswuerbach made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9131
|
||||||
|
* @FutureMatt made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9133
|
||||||
|
* @Sanghamitra-PERSONAL made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9098
|
||||||
|
* @scraly made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9171
|
||||||
|
* @cskinfill made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9147
|
||||||
|
* @jrhunger made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9185
|
||||||
|
* @guettli made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9167
|
||||||
|
* @ybelMekk made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9186
|
||||||
|
* @jaens made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9210
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.4.0...controller-v1.5.1
|
||||||
|
|
||||||
|
### 1.4.0
|
||||||
|
|
||||||
|
### Community Updates
|
||||||
|
|
||||||
|
We will discuss the results of our Community Survey, progress on the stabilization project, and ideas going
|
||||||
|
forward with the project at
|
||||||
|
[Kubecon NA 2022 in Detroit](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/). Come join us
|
||||||
|
and let us hear what you'd like to see in the future for ingress-nginx.
|
||||||
|
|
||||||
|
https://kccncna2022.sched.com/event/18lgl?iframe=no
|
||||||
|
|
||||||
|
[**Kubernetes Registry change notice**](https://twitter.com/BenTheElder/status/1575898507235323904)
|
||||||
|
The [@kubernetesio](https://twitter.com/kubernetesio) container image host http://k8s.gcr.io is
|
||||||
|
*actually* getting redirected to the community controlled http://registry.k8s.io starting with a small portion of
|
||||||
|
traffic on October 3rd.
|
||||||
|
|
||||||
|
If you notice any issues, *please* ping [Ben Elder](https://twitter.com/BenTheElder),
|
||||||
|
[@thockin](https://twitter.com/thockin), [@ameukam](https://twitter.com/ameukam),or report issues in slack to
|
||||||
|
[sig-k8s-infra slack channel](https://kubernetes.slack.com/archives/CCK68P2Q2).
|
||||||
|
|
||||||
|
### What's Changed
|
||||||
|
|
||||||
|
* 1.4.0 updates ingress-nginx to use Endpointslices instead of Endpoints. Thank you, @tombokombo, for your work in
|
||||||
|
[8890](https://github.com/kubernetes/ingress-nginx/pull/8890)
|
||||||
|
* Update to Prometheus metric names, more information [available here]( https://github.com/kubernetes/ingress-nginx/pull/8728
|
||||||
|
)
|
||||||
|
* Deprecated Kubernetes versions 1.20-1.21, Added support for, 1.25, currently supported versions v1.22, v1.23, v1.24, v1.25
|
||||||
|
|
||||||
|
ADDED
|
||||||
|
* `_request_duration_seconds` Histogram
|
||||||
|
* `_connect_duration_seconds` Histogram
|
||||||
|
* `_header_duration_seconds` Histogram
|
||||||
|
* `_response_duration_seconds` Histogram
|
||||||
|
|
||||||
|
Updated
|
||||||
|
* `_response_size` Histogram
|
||||||
|
* `_request_size` Histogram
|
||||||
|
* `_requests` Counter
|
||||||
|
|
||||||
|
DEPRECATED
|
||||||
|
* `_bytes_sent` Histogram
|
||||||
|
* _ingress_upstream_latency_seconds` Summary
|
||||||
|
|
||||||
|
REMOVED
|
||||||
|
* `ingress_upstream_header_seconds` Summary
|
||||||
|
|
||||||
|
Also upgraded to golang 1.19.1
|
||||||
|
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.4.0@sha256:34ee929b111ffc7aa426ffd409af44da48e5a0eea1eb2207994d9e0c0882d143
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.4.0@sha256:b67e889f1db8692de7e41d4d9aef8de56645bf048261f31fa7f8bfc6ea2222a0
|
||||||
|
|
||||||
|
|
||||||
|
### All Changes:
|
||||||
|
|
||||||
|
* [9104](https://github.com/kubernetes/ingress-nginx/pull/9104) Fix yaml formatting error with multiple annotations
|
||||||
|
* [9090](https://github.com/kubernetes/ingress-nginx/pull/9090) fix chroot module mount path
|
||||||
|
* [9088](https://github.com/kubernetes/ingress-nginx/pull/9088) Add annotation for setting sticky cookie domain
|
||||||
|
* [9086](https://github.com/kubernetes/ingress-nginx/pull/9086) Update Version ModSecurity and Coreruleset
|
||||||
|
* [9081](https://github.com/kubernetes/ingress-nginx/pull/9081) plugin - endpoints to slices
|
||||||
|
* [9078](https://github.com/kubernetes/ingress-nginx/pull/9078) expand CI testing for all stable versions of Kubernetes
|
||||||
|
* [9074](https://github.com/kubernetes/ingress-nginx/pull/9074) fix: do not apply job-patch psp on Kubernetes 1.25 and newer
|
||||||
|
* [9072](https://github.com/kubernetes/ingress-nginx/pull/9072) Added a Link to the New Contributors Tips
|
||||||
|
* [9069](https://github.com/kubernetes/ingress-nginx/pull/9069) Add missing space to error message
|
||||||
|
* [9059](https://github.com/kubernetes/ingress-nginx/pull/9059) kubewebhookcertgen sha change after go1191
|
||||||
|
* [9058](https://github.com/kubernetes/ingress-nginx/pull/9058) updated testrunner image sha after bump to go1191
|
||||||
|
* [9046](https://github.com/kubernetes/ingress-nginx/pull/9046) Parameterize metrics port name
|
||||||
|
* [9036](https://github.com/kubernetes/ingress-nginx/pull/9036) update OpenTelemetry image
|
||||||
|
* [9035](https://github.com/kubernetes/ingress-nginx/pull/9035) Added instructions for Rancher Desktop
|
||||||
|
* [9028](https://github.com/kubernetes/ingress-nginx/pull/9028) fix otel init_module
|
||||||
|
* [9023](https://github.com/kubernetes/ingress-nginx/pull/9023) updates for fixing 1.3.1 release
|
||||||
|
* [9018](https://github.com/kubernetes/ingress-nginx/pull/9018) Add v1.25 test and reduce amount of e2e tests
|
||||||
|
* [9017](https://github.com/kubernetes/ingress-nginx/pull/9017) fix LD_LIBRARY_PATH for opentelemetry
|
||||||
|
|
||||||
|
### Dependencies updates:
|
||||||
|
|
||||||
|
* [9085](https://github.com/kubernetes/ingress-nginx/pull/9085) Bump actions/dependency-review-action from 2.1.0 to 2.4.0
|
||||||
|
* [9084](https://github.com/kubernetes/ingress-nginx/pull/9084) Bump actions/checkout from 1 to 3
|
||||||
|
* [9083](https://github.com/kubernetes/ingress-nginx/pull/9083) Bump github/codeql-action from 2.1.24 to 2.1.25
|
||||||
|
* [9089](https://github.com/kubernetes/ingress-nginx/pull/9089) Bump k8s.io/component-base from 0.25.1 to 0.25.2
|
||||||
|
* [9066](https://github.com/kubernetes/ingress-nginx/pull/9066) Bump github/codeql-action from 2.1.23 to 2.1.24
|
||||||
|
* [9065](https://github.com/kubernetes/ingress-nginx/pull/9065) Bump k8s.io/component-base from 0.25.0 to 0.25.1
|
||||||
|
* [9064](https://github.com/kubernetes/ingress-nginx/pull/9064) Bump github.com/onsi/ginkgo/v2 from 2.1.6 to 2.2.0
|
||||||
|
* [9057](https://github.com/kubernetes/ingress-nginx/pull/9057) bump go to v1.19.1
|
||||||
|
* [9053](https://github.com/kubernetes/ingress-nginx/pull/9053) Bump ossf/scorecard-action from 2.0.2 to 2.0.3
|
||||||
|
* [9052](https://github.com/kubernetes/ingress-nginx/pull/9052) Bump github/codeql-action from 2.1.22 to 2.1.23
|
||||||
|
* [9045](https://github.com/kubernetes/ingress-nginx/pull/9045) Bump actions/upload-artifact from 3.0.0 to 3.1.0
|
||||||
|
* [9044](https://github.com/kubernetes/ingress-nginx/pull/9044) Bump ossf/scorecard-action from 1.1.2 to 2.0.2
|
||||||
|
* [9043](https://github.com/kubernetes/ingress-nginx/pull/9043) Bump k8s.io/klog/v2 from 2.80.0 to 2.80.1
|
||||||
|
* [9022](https://github.com/kubernetes/ingress-nginx/pull/9022) Bump github.com/onsi/ginkgo/v2 from 2.1.4 to 2.1.6
|
||||||
|
* [9021](https://github.com/kubernetes/ingress-nginx/pull/9021) Bump k8s.io/klog/v2 from 2.70.1 to 2.80.0
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @gunamata made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9035
|
||||||
|
* @afro-coder made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8924
|
||||||
|
* @wilmardo made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9074
|
||||||
|
* @nicolasjulian made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9086
|
||||||
|
* @mtneug made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9088
|
||||||
|
* @knbnnate made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8692
|
||||||
|
* @mklauber made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9104
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.3.1...controller-v1.4.0
|
||||||
|
|
||||||
|
### 1.3.1
|
||||||
|
|
||||||
|
In v1.3.1 leader elections will be done entirely using the Lease API and no longer using configmaps.
|
||||||
|
v1.3.0 is a safe transition version, using v1.3.0 can automatically complete the merging of election locks, and then you can safely upgrade to v1.3.1.
|
||||||
|
|
||||||
|
Also, *important note*, with the Release of Kubernetes v1.25 we are dropping support for the legacy branches,
|
||||||
|
Also, *important note*, with the release of Kubernetes v1.25, we are dropping support for the legacy edition,
|
||||||
|
that means all version <1.0.0 of the ingress-nginx-controller.
|
||||||
|
|
||||||
|
## Image:
|
||||||
|
- registry.k8s.io/ingress-nginx/controller:v1.3.1@sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974
|
||||||
|
- registry.k8s.io/ingress-nginx/controller-chroot:v1.3.1@sha256:a8466b19c621bd550b1645e27a004a5cc85009c858a9ab19490216735ac432b1
|
||||||
|
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
|
||||||
|
_IMPORTANT CHANGES:_
|
||||||
|
- Update to golang 1.19
|
||||||
|
- Started migration for Data and Control Plane splits
|
||||||
|
- Upgrade to Alpine 3.16.2
|
||||||
|
- New kubectl plugin release workflow
|
||||||
|
- New CVE findings template
|
||||||
|
|
||||||
|
All other Changes
|
||||||
|
- [9006](https://github.com/kubernetes/ingress-nginx/pull/9006) issue:8739 fix doc issue
|
||||||
|
- [9003](https://github.com/kubernetes/ingress-nginx/pull/9003) Bump github/codeql-action from 2.1.21 to 2.1.22
|
||||||
|
- [9001](https://github.com/kubernetes/ingress-nginx/pull/9001) GitHub Workflows security hardening
|
||||||
|
- [8992](https://github.com/kubernetes/ingress-nginx/pull/8992) Bump github.com/opencontainers/runc from 1.1.3 to 1.1.4
|
||||||
|
- [8991](https://github.com/kubernetes/ingress-nginx/pull/8991) Bump google.golang.org/grpc from 1.48.0 to 1.49.0
|
||||||
|
- [8986](https://github.com/kubernetes/ingress-nginx/pull/8986) Bump goreleaser/goreleaser-action from 3.0.0 to 3.1.0
|
||||||
|
- [8984](https://github.com/kubernetes/ingress-nginx/pull/8984) fixed deprecated ginkgo flags
|
||||||
|
- [8982](https://github.com/kubernetes/ingress-nginx/pull/8982) Bump github/codeql-action from 2.1.20 to 2.1.21
|
||||||
|
- [8981](https://github.com/kubernetes/ingress-nginx/pull/8981) Bump actions/setup-go from 3.2.1 to 3.3.0
|
||||||
|
- [8976](https://github.com/kubernetes/ingress-nginx/pull/8976) Update apiserver to 0.25 to remove v2 go-restful
|
||||||
|
- [8970](https://github.com/kubernetes/ingress-nginx/pull/8970) bump Golang to 1.19 #8932
|
||||||
|
- [8969](https://github.com/kubernetes/ingress-nginx/pull/8969) fix: go-restful CVE #8745
|
||||||
|
- [8967](https://github.com/kubernetes/ingress-nginx/pull/8967) updated to testrunnerimage with updated yamale yamllint
|
||||||
|
- [8966](https://github.com/kubernetes/ingress-nginx/pull/8966) added note on digitalocean annotations
|
||||||
|
- [8960](https://github.com/kubernetes/ingress-nginx/pull/8960) upgrade yamale and yamllint version
|
||||||
|
- [8959](https://github.com/kubernetes/ingress-nginx/pull/8959) revert changes to configmap resource permissions
|
||||||
|
- [8957](https://github.com/kubernetes/ingress-nginx/pull/8957) Bump github/codeql-action from 2.1.19 to 2.1.20
|
||||||
|
- [8956](https://github.com/kubernetes/ingress-nginx/pull/8956) Bump azure/setup-helm from 2.1 to 3.3
|
||||||
|
- [8954](https://github.com/kubernetes/ingress-nginx/pull/8954) Bump actions/dependency-review-action from 2.0.4 to 2.1.0
|
||||||
|
- [8953](https://github.com/kubernetes/ingress-nginx/pull/8953) Bump aquasecurity/trivy-action from 0.5.1 to 0.7.1
|
||||||
|
- [8952](https://github.com/kubernetes/ingress-nginx/pull/8952) Bump securego/gosec from b99b5f7838e43a4104354ad92a6a1774302ee1f9 to 2.13.1
|
||||||
|
- [8951](https://github.com/kubernetes/ingress-nginx/pull/8951) Bump geekyeggo/delete-artifact from a6ab43859c960a8b74cbc6291f362c7fb51829ba to 1
|
||||||
|
- [8950](https://github.com/kubernetes/ingress-nginx/pull/8950) Bump github/codeql-action from 2.1.18 to 2.1.19
|
||||||
|
- [8948](https://github.com/kubernetes/ingress-nginx/pull/8948) updated testrunner and testecho images
|
||||||
|
- [8946](https://github.com/kubernetes/ingress-nginx/pull/8946) Clean old code and move helper functions
|
||||||
|
- [8944](https://github.com/kubernetes/ingress-nginx/pull/8944) Make keep-alive documentation more explicit for clarity
|
||||||
|
- [8939](https://github.com/kubernetes/ingress-nginx/pull/8939) bump baseimage alpine to v3.16.2 for zlib CVE fix
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @mtnezm made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8817
|
||||||
|
* @tamcore made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8821
|
||||||
|
* @guilhem made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8827
|
||||||
|
* @lilien1010 made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8830
|
||||||
|
* @qilongqiu made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8855
|
||||||
|
* @dgoffredo made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8848
|
||||||
|
* @Volatus made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8859
|
||||||
|
* @europ made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8841
|
||||||
|
* @mrksngl made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/7892
|
||||||
|
* @omichels made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8895
|
||||||
|
* @zeeZ made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8881
|
||||||
|
* @mjudeikis made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8928
|
||||||
|
* @NissesSenap made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8873
|
||||||
|
* @anders-swanson made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8665
|
||||||
|
* @aslafy-z made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8905
|
||||||
|
* @harry1064 made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/8825
|
||||||
|
* @sashashura made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9001
|
||||||
|
* @sreelakshminarayananm made their first contribution in https://github.com/kubernetes/ingress-nginx/pull/9006
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.3.0...controller-v1.3.1
|
||||||
|
|
||||||
### 1.3.0
|
### 1.3.0
|
||||||
|
|
||||||
Image:
|
Image:
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -53,14 +53,6 @@ ifneq ($(PLATFORM),)
|
||||||
PLATFORM_FLAG="--platform"
|
PLATFORM_FLAG="--platform"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
MAC_OS = $(shell uname -s)
|
|
||||||
|
|
||||||
ifeq ($(MAC_OS), Darwin)
|
|
||||||
MAC_DOCKER_FLAGS="--load"
|
|
||||||
else
|
|
||||||
MAC_DOCKER_FLAGS=
|
|
||||||
endif
|
|
||||||
|
|
||||||
REGISTRY ?= gcr.io/k8s-staging-ingress-nginx
|
REGISTRY ?= gcr.io/k8s-staging-ingress-nginx
|
||||||
|
|
||||||
BASE_IMAGE ?= $(shell cat NGINX_BASE)
|
BASE_IMAGE ?= $(shell cat NGINX_BASE)
|
||||||
|
@ -76,7 +68,6 @@ image: clean-image ## Build image for a particular arch.
|
||||||
docker build \
|
docker build \
|
||||||
${PLATFORM_FLAG} ${PLATFORM} \
|
${PLATFORM_FLAG} ${PLATFORM} \
|
||||||
--no-cache \
|
--no-cache \
|
||||||
$(MAC_DOCKER_FLAGS) \
|
|
||||||
--pull \
|
--pull \
|
||||||
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
||||||
--build-arg VERSION="$(TAG)" \
|
--build-arg VERSION="$(TAG)" \
|
||||||
|
@ -94,7 +85,6 @@ image-chroot: clean-chroot-image ## Build image for a particular arch.
|
||||||
echo "Building docker image ($(ARCH))..."
|
echo "Building docker image ($(ARCH))..."
|
||||||
docker build \
|
docker build \
|
||||||
--no-cache \
|
--no-cache \
|
||||||
$(MAC_DOCKER_FLAGS) \
|
|
||||||
--pull \
|
--pull \
|
||||||
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
--build-arg BASE_IMAGE="$(BASE_IMAGE)" \
|
||||||
--build-arg VERSION="$(TAG)" \
|
--build-arg VERSION="$(TAG)" \
|
||||||
|
|
850
NEW_CONTRIBUTOR.md
Normal file
850
NEW_CONTRIBUTOR.md
Normal file
|
@ -0,0 +1,850 @@
|
||||||
|
## New Contributor Tips
|
||||||
|
|
||||||
|
Welcome to the Ingress Nginx new contributor tips.
|
||||||
|
This guide briefly outlines the necessary knowledge & tools, required to start working on Ingress-NGINX Issues.
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
- Basic understanding of linux
|
||||||
|
- Familiarity with the command line on linux
|
||||||
|
- OSI Model(Links below)
|
||||||
|
|
||||||
|
### Introduction
|
||||||
|
It all starts with the OSI model...
|
||||||
|
> The Open Systems Interconnection (OSI) model describes seven layers that computer systems use to communicate over a network. It was the first standard model for network communications, adopted by all major computer and telecommunication companies
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### Reading material for OSI Model
|
||||||
|
[OSI Model CertificationKits](https://www.certificationkits.com/cisco-certification/cisco-ccna-640-802-exam-certification-guide/cisco-ccna-the-osi-model/)
|
||||||
|
|
||||||
|
### Approaching the problem
|
||||||
|
|
||||||
|
|
||||||
|
Not everybody knows everything. But the factors that help are a love/passion for this to begin. But to move forward, its the approach and not the knowledge that sustains prolonged joy, while working on issues. If the approach is simple and powered by good-wishes-for-community, then info & tools are forthcoming and easy.
|
||||||
|
|
||||||
|
Here we take a bird's eye-view of the hops in the network plumbing, that a packet takes, from source to destination, when we run `curl`, from a laptop to a nginx webserver process, running in a container, inside a pod, inside a Kubernetes cluster, created using `kind` or `minikube` or any other cluster-management tool.
|
||||||
|
|
||||||
|
### [Kind](https://kind.sigs.k8s.io/) cluster example on a Linux Host
|
||||||
|
|
||||||
|
#### TL;DR
|
||||||
|
The destination of the packet from the curl command, is looked up, in the `routing table`. Based on the route, the the packet first travels to the virtual bridge `172.18.0.1` interface, created by docker, when we created the kind cluster on a laptop. Next the packet is forwarded to `172.18.0.2`(See below on how we got this IP address), within the kind cluster. The `kube-proxy` container creates iptables rules that make sure the packet goes to the correct pod ip in this case `10.244.0.5`
|
||||||
|
|
||||||
|
Command:
|
||||||
|
```
|
||||||
|
# docker ps
|
||||||
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
|
230e7246a32c kindest/node:v1.24.1 "/usr/local/bin/entr…" 2 weeks ago Up 54 seconds 127.0.0.1:38143->6443/tcp kind-control-plane
|
||||||
|
|
||||||
|
# docker inspect kind-control-plane -f '{{ .NetworkSettings.Networks.kind.IPAddress }}'
|
||||||
|
172.18.0.2
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
If this part is confusing, you would first need to understand what a [bridge](https://tldp.org/HOWTO/BRIDGE-STP-HOWTO/what-is-a-bridge.html) is and what [docker network](https://docs.docker.com/network/) is.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### The journey of a curl packet.
|
||||||
|
Let's begin with creating a [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/) Cluster on your laptop
|
||||||
|
```
|
||||||
|
# kind create cluster
|
||||||
|
```
|
||||||
|
This will create a cluster called `kind`, to view the clusters type
|
||||||
|
```
|
||||||
|
# kind get clusters
|
||||||
|
kind
|
||||||
|
```
|
||||||
|
Kind ships with `kubectl`, so we can use that to communicate with our clusters.
|
||||||
|
```
|
||||||
|
# kubectl get no -o wide
|
||||||
|
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
|
||||||
|
kind-control-plane Ready control-plane 5d23h v1.24.1 172.18.0.2 <none> Ubuntu 21.10 5.18.12-arch1-1 containerd://1.6.4
|
||||||
|
```
|
||||||
|
Kind creates a cluster using docker container as nodes, it does this using [containerd](https://containerd.io/) within the docker container.
|
||||||
|
The concept of Docker in Docker is very important here.
|
||||||
|
|
||||||
|
To start with simply create a nginx deployment using `kubectl`.
|
||||||
|
```
|
||||||
|
# kubectl create deployment nginx --image nginx:alpine --port=80
|
||||||
|
deployment.apps/nginx created
|
||||||
|
```
|
||||||
|
Then we expose this as a NodePort Service.
|
||||||
|
```
|
||||||
|
# kubectl expose deployment/nginx --type=NodePort
|
||||||
|
service/nginx-new exposed
|
||||||
|
```
|
||||||
|
Command: Now we can see that the service has been exposed.
|
||||||
|
```
|
||||||
|
# kubectl get svc -o wide
|
||||||
|
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
|
||||||
|
nginx NodePort 10.96.176.241 <none> 80:32329/TCP 4d8h app=nginx
|
||||||
|
```
|
||||||
|
Output Relevance: From the above output, we can see that our nginx pod is being exposed as the `NodePort` service type, and now we can curl the Node IP `172.18.0.2` with the exposed port `32329`
|
||||||
|
|
||||||
|
Command: The pod has an IP as shown below
|
||||||
|
```
|
||||||
|
# kubectl get po -o wide
|
||||||
|
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
|
||||||
|
nginx-6c8b449b8f-pdvdk 1/1 Running 1 (32h ago) 4d8h 10.244.0.5 kind-control-plane <none> <none>
|
||||||
|
```
|
||||||
|
|
||||||
|
Command: We can use `curl` on the laptop to view the nginx container that is running on port `32329`.
|
||||||
|
|
||||||
|
```
|
||||||
|
# curl 172.18.0.2:32329
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Welcome to nginx!</title>
|
||||||
|
<style>
|
||||||
|
html { color-scheme: light dark; }
|
||||||
|
body { width: 35em; margin: 0 auto;
|
||||||
|
font-family: Tahoma, Verdana, Arial, sans-serif; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Welcome to nginx!</h1>
|
||||||
|
<p>If you see this page, the nginx web server is successfully installed and
|
||||||
|
working. Further configuration is required.</p>
|
||||||
|
|
||||||
|
<p>For online documentation and support please refer to
|
||||||
|
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
||||||
|
Commercial support is available at
|
||||||
|
<a href="http://nginx.com/">nginx.com</a>.</p>
|
||||||
|
|
||||||
|
<p><em>Thank you for using nginx.</em></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
Now, we can check the ip interfaces as well subnets for our system is connected to:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ifconfig
|
||||||
|
ethbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||||
|
inet 192.168.31.9 netmask 255.255.255.0 broadcast 192.168.31.255
|
||||||
|
inet6 fe80::7530:9ae5:3e8d:e45a prefixlen 64 scopeid 0x20<link>
|
||||||
|
ether 2e:90:b3:e8:52:5b txqueuelen 1000 (Ethernet)
|
||||||
|
RX packets 31220566 bytes 44930589084 (41.8 GiB)
|
||||||
|
RX errors 0 dropped 0 overruns 0 frame 0
|
||||||
|
TX packets 18104006 bytes 1757183680 (1.6 GiB)
|
||||||
|
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
||||||
|
|
||||||
|
br-2fffe5cd5d9e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||||
|
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
|
||||||
|
inet6 fc00:f853:ccd:e793::1 prefixlen 64 scopeid 0x0<global>
|
||||||
|
inet6 fe80::42:12ff:fed3:8fb0 prefixlen 64 scopeid 0x20<link>
|
||||||
|
inet6 fe80::1 prefixlen 64 scopeid 0x20<link>
|
||||||
|
ether 02:42:12:d3:8f:b0 txqueuelen 0 (Ethernet)
|
||||||
|
RX packets 3547 bytes 414792 (405.0 KiB)
|
||||||
|
RX errors 0 dropped 0 overruns 0 frame 0
|
||||||
|
TX packets 6267 bytes 8189931 (7.8 MiB)
|
||||||
|
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
||||||
|
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
|
||||||
|
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
|
||||||
|
inet6 fe80::42:a2ff:fe09:5edb prefixlen 64 scopeid 0x20<link>
|
||||||
|
ether 02:42:a2:09:5e:db txqueuelen 0 (Ethernet)
|
||||||
|
RX packets 14 bytes 2143 (2.0 KiB)
|
||||||
|
RX errors 0 dropped 0 overruns 0 frame 0
|
||||||
|
TX packets 40 bytes 6406 (6.2 KiB)
|
||||||
|
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
||||||
|
```
|
||||||
|
From the above output we can see that, there are two bridges connected to our systems network interface,one is the docker default bridge`docker0` and the other created by kind
|
||||||
|
`br-2fffe5cd5d9e`.
|
||||||
|
|
||||||
|
Since kind creates nodes as containers, this is easily accessible via `docker ps`.
|
||||||
|
```
|
||||||
|
$ docker ps
|
||||||
|
|
||||||
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
|
230e7246a32c kindest/node:v1.24.1 "/usr/local/bin/entr…" 6 days ago Up 33 hours 127.0.0.1:38143->6443/tcp kind-control-plane
|
||||||
|
```
|
||||||
|
If we do a docker `exec` we can enter the container, we can also see the network interfaces within the container.
|
||||||
|
```
|
||||||
|
# docker exec -it 230e7246a32c bash
|
||||||
|
|
||||||
|
# root@kind-control-plane:/# ip a
|
||||||
|
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
||||||
|
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||||
|
inet 127.0.0.1/8 scope host lo
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
inet6 ::1/128 scope host
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
2: vethdb0d1da1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether a2:a1:ce:08:d2:39 brd ff:ff:ff:ff:ff:ff link-netns cni-ddc25710-030a-cc05-c600-5a183fae01f7
|
||||||
|
inet 10.244.0.1/32 scope global vethdb0d1da1
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
3: veth4d76603f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 9a:9b:6b:3e:d1:53 brd ff:ff:ff:ff:ff:ff link-netns cni-f2270000-8fc8-6f89-e56b-4759ae10a084
|
||||||
|
inet 10.244.0.1/32 scope global veth4d76603f
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
4: vethcc2586d6@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 52:f9:20:63:62:a2 brd ff:ff:ff:ff:ff:ff link-netns cni-97e337cd-1322-c1fa-7523-789af94f397f
|
||||||
|
inet 10.244.0.1/32 scope global vethcc2586d6
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
5: veth783189a9@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether ba:e1:55:1f:6f:12 brd ff:ff:ff:ff:ff:ff link-netns cni-90849001-668a-03d2-7d9e-192de79ccc59
|
||||||
|
inet 10.244.0.1/32 scope global veth783189a9
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
6: veth79c98c12@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 22:05:55:c7:86:e9 brd ff:ff:ff:ff:ff:ff link-netns cni-734dfac9-9f70-ab33-265b-21569d90312a
|
||||||
|
inet 10.244.0.1/32 scope global veth79c98c12
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
7: veth5b221c83@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 92:3f:04:54:72:5a brd ff:ff:ff:ff:ff:ff link-netns cni-d8f6666b-1cfb-ef08-4bf8-237a7fc32da2
|
||||||
|
inet 10.244.0.1/32 scope global veth5b221c83
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
8: vethad630fb8@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 32:78:ec:f6:01:ea brd ff:ff:ff:ff:ff:ff link-netns cni-6cb3c179-cb17-3b81-2051-27231c44a3c4
|
||||||
|
inet 10.244.0.1/32 scope global vethad630fb8
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
9: veth573a629b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether e2:57:f8:c9:bc:94 brd ff:ff:ff:ff:ff:ff link-netns cni-d2dbb903-8310-57b4-7ba4-9f353dbc79dc
|
||||||
|
inet 10.244.0.1/32 scope global veth573a629b
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
|
||||||
|
inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
inet6 fc00:f853:ccd:e793::2/64 scope global nodad
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
inet6 fe80::42:acff:fe12:2/64 scope link
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
11: vethd7368e27@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 8a:74:ec:f6:d6:c9 brd ff:ff:ff:ff:ff:ff link-netns cni-7c7eb9cd-bbb1-65b0-0480-b8f1265f2f36
|
||||||
|
inet 10.244.0.1/32 scope global vethd7368e27
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
12: veth7cadbf2b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
|
||||||
|
link/ether 12:48:10:b7:b8:f5 brd ff:ff:ff:ff:ff:ff link-netns cni-b39e37b5-1bc8-626a-a553-a0be2f94a117
|
||||||
|
inet 10.244.0.1/32 scope global veth7cadbf2b
|
||||||
|
valid_lft forever preferred_lft forever
|
||||||
|
|
||||||
|
```
|
||||||
|
When we run `curl 172.18.0.2:32329` on the laptop it first needs to figure out where `172.18.0.2`, to do this it refers to the host routing table.
|
||||||
|
```
|
||||||
|
sudo netstat -rn main
|
||||||
|
Kernel IP routing table
|
||||||
|
Destination Gateway Genmask Flags MSS Window irtt Iface
|
||||||
|
0.0.0.0 192.168.31.1 0.0.0.0 UG 0 0 0 ethbr0
|
||||||
|
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
|
||||||
|
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-2fffe5cd5d9e
|
||||||
|
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-be5b544733a3
|
||||||
|
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ethbr0
|
||||||
|
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ethbr0
|
||||||
|
192.168.39.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr2
|
||||||
|
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
|
||||||
|
```
|
||||||
|
Output Relevance: From the above output, you can see that the `iface`(Interface) for `172.18.0.0` is `br-2fffe5cd5d9e`, which means traffic that needs to go to `172.18.0.0` will go through `br-2fffe5cd5d9e` which is created by docker for the kind container (this is the node in case of kind cluster).
|
||||||
|
|
||||||
|
Now we need to understand how the packet travels from the container interface to the pod with IP `10.244.0.5`. The component that handles this is called kube-proxy
|
||||||
|
|
||||||
|
So what exactly is [kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy):
|
||||||
|
> Kube-Proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
|
||||||
|
kube-proxy maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster
|
||||||
|
|
||||||
|
So, as we can see that kube proxy handles the network rules required to aid the communication to the pods, we will look at the [iptables](https://linux.die.net/man/8/iptables)
|
||||||
|
> `iptables` is a command line interface used to set up and maintain tables for the Netfilter firewall for IPv4, included in the Linux kernel. The firewall matches packets with rules defined in these tables and then takes the specified action on a possible match. Tables is the name for a set of chains
|
||||||
|
|
||||||
|
Command:
|
||||||
|
```
|
||||||
|
# iptables -t nat -L PREROUTING -n
|
||||||
|
Chain PREROUTING (policy ACCEPT)
|
||||||
|
target prot opt source destination
|
||||||
|
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes service portals */
|
||||||
|
DOCKER_OUTPUT all -- 0.0.0.0/0 172.18.0.1
|
||||||
|
CNI-HOSTPORT-DNAT all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
# iptables-save | grep PREROUTING
|
||||||
|
-A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
|
||||||
|
```
|
||||||
|
Output Relevance:
|
||||||
|
> -A: append new iptable rule
|
||||||
|
> -j: jump to the target
|
||||||
|
> KUBE-SERVICES: target
|
||||||
|
|
||||||
|
> The above output appends a new rule for PREROUTING which every network packet will go through first as they try to access any kubernetes service
|
||||||
|
|
||||||
|
|
||||||
|
What is `PREROUTING` in iptables?
|
||||||
|
>PREROUTING: This chain is used to make any routing related decisions before (PRE) sending any packets
|
||||||
|
|
||||||
|
To dig in further we need to go to the target, `KUBE-SERVICES` for our nginx service.
|
||||||
|
```
|
||||||
|
# iptables -t nat -L KUBE-SERVICES -n| grep nginx
|
||||||
|
KUBE-SVC-2CMXP7HKUVJN7L6M tcp -- 0.0.0.0/0 10.96.176.241 /* default/nginx cluster IP */ tcp dpt:80
|
||||||
|
```
|
||||||
|
Command:
|
||||||
|
```
|
||||||
|
# iptables -t nat -L KUBE-SVC-2CMXP7HKUVJN7L6M -n
|
||||||
|
Chain KUBE-SVC-2CMXP7HKUVJN7L6M (2 references)
|
||||||
|
target prot opt source destination
|
||||||
|
KUBE-MARK-MASQ tcp -- !10.244.0.0/16 10.96.176.241 /* default/nginx cluster IP */ tcp dpt:80
|
||||||
|
KUBE-SEP-4IEO3WJHPKXV3AOH all -- 0.0.0.0/0 0.0.0.0/0 /* default/nginx -> 10.244.0.5:80 */
|
||||||
|
|
||||||
|
# iptables -t nat -L KUBE-MARK-MASQ -n
|
||||||
|
Chain KUBE-MARK-MASQ (31 references)
|
||||||
|
target prot opt source destination
|
||||||
|
MARK all -- 0.0.0.0/0 0.0.0.0/0 MARK or 0x4000
|
||||||
|
|
||||||
|
# iptables -t nat -L KUBE-SEP-4IEO3WJHPKXV3AOH -n
|
||||||
|
Chain KUBE-SEP-4IEO3WJHPKXV3AOH (1 references)
|
||||||
|
target prot opt source destination
|
||||||
|
KUBE-MARK-MASQ all -- 10.244.0.5 0.0.0.0/0 /* default/nginx */
|
||||||
|
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 /* default/nginx */ tcp to:10.244.0.5:80
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
iptables-save | grep 10.96.176.241
|
||||||
|
|
||||||
|
-A KUBE-SERVICES -d 10.96.176.241/32 -p tcp -m comment --comment "default/nginx cluster IP" -m tcp --dport 80 -j KUBE-SVC-2CMXP7HKUVJN7L6M
|
||||||
|
-A KUBE-SVC-2CMXP7HKUVJN7L6M ! -s 10.244.0.0/16 -d 10.96.176.241/32 -p tcp -m comment --comment "default/nginx cluster IP" -m tcp --dport 80 -j KUBE-MARK-MASQ
|
||||||
|
```
|
||||||
|
|
||||||
|
As you can see the rules added by `kube-proxy` helps the packet reach to the destination service.
|
||||||
|
|
||||||
|
### Minikube KVM VM Example on Linux
|
||||||
|
|
||||||
|
#### TL;DR
|
||||||
|
Now we look at the curl packet journey on minikube. The `routing table` is looked up to know the destination of the curl packet. The packet then first travels to the virtual bridge `192.168.39.1`, created by minikube kvm2 driver, when we created the minikube cluster, on a linux laptop. Then this packet is forwarded to `192.168.39.57`, within the minikube VM. We have docker containers running in the VM. Among them, the `kube-proxy` container creates iptables rules that make sure the packet goes to the correct pod ip, in this case `172.17.0.4`.
|
||||||
|
|
||||||
|
|
||||||
|
To begin with the minikube example, we first need to create a minikube cluster on a linux laptop. In this example I'll be using the `kvm2` driver option for `minikube start` command, as default.
|
||||||
|
|
||||||
|
```
|
||||||
|
minikube start
|
||||||
|
😄 minikube v1.26.0 on Arch "rolling"
|
||||||
|
🆕 Kubernetes 1.24.2 is now available. If you would like to upgrade, specify: --kubernetes-version=v1.24.2
|
||||||
|
✨ Using the kvm2 driver based on existing profile
|
||||||
|
👍 Starting control plane node minikube in cluster minikube
|
||||||
|
🏃 Updating the running kvm2 "minikube" VM ...
|
||||||
|
🐳 Preparing Kubernetes v1.23.3 on Docker 20.10.12 ...
|
||||||
|
▪ kubelet.housekeeping-interval=5m
|
||||||
|
🔎 Verifying Kubernetes components...
|
||||||
|
▪ Using image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
|
||||||
|
▪ Using image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
|
||||||
|
▪ Using image k8s.gcr.io/ingress-nginx/controller:v1.2.1
|
||||||
|
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
|
||||||
|
🔎 Verifying ingress addon...
|
||||||
|
🌟 Enabled addons: ingress, storage-provisioner, default-storageclass
|
||||||
|
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
|
||||||
|
```
|
||||||
|
**Note**: The KVM driver provides a lot of options on customizing the cluster, however that is currently beyond the scope of this guide.
|
||||||
|
|
||||||
|
Next we will get the Node IP.
|
||||||
|
```
|
||||||
|
$ kubectl get no -o wide
|
||||||
|
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
|
||||||
|
minikube Ready control-plane,master 25d v1.23.3 192.168.39.57 <none> Buildroot 2021.02.4 4.19.202 docker://20.10.12
|
||||||
|
```
|
||||||
|
Minikube creates a Virtual Machine using the KVM2 driver(Other drivers such as Virtualbox do exist see `minikube start --help` for more information ), you should be able to see this with the following output(You may have to use sudo to get this output)
|
||||||
|
|
||||||
|
```
|
||||||
|
$ virsh --connect qemu:///system list
|
||||||
|
Id Name State
|
||||||
|
--------------------------
|
||||||
|
1 minikube running
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
$ sudo virsh list
|
||||||
|
Id Name State
|
||||||
|
--------------------------
|
||||||
|
1 minikube running
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Moving on, simply create a nginx deployment using `kubectl`.
|
||||||
|
```
|
||||||
|
# kubectl create deployment nginx --image nginx:alpine --port=80
|
||||||
|
deployment.apps/nginx created
|
||||||
|
```
|
||||||
|
Then we expose this as a NodePort Service.
|
||||||
|
```
|
||||||
|
# kubectl expose deployment/nginx --type=NodePort
|
||||||
|
service/nginx-new exposed
|
||||||
|
```
|
||||||
|
Command: Now we can see that the service has been exposed.
|
||||||
|
```
|
||||||
|
# kubectl get svc -o wide main
|
||||||
|
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
|
||||||
|
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25d <none>
|
||||||
|
nginx-minikube NodePort 10.97.44.4 <none> 80:32007/TCP 45h app=nginx-minikube
|
||||||
|
```
|
||||||
|
Output Relevance: From the above output, we can see that our nginx pod is being exposed as the `NodePort` service type, and now we can curl the Node IP `192.168.39.57` with the exposed port `32007`
|
||||||
|
|
||||||
|
Command: The pod has an IP as shown below
|
||||||
|
```
|
||||||
|
# kubectl get po -o wide
|
||||||
|
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
|
||||||
|
nginx-minikube-7546f79bd8-x88bt 1/1 Running 3 (43m ago) 45h 172.17.0.4 minikube <none> <none>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Command: We can use `curl` on the laptop to view the nginx container that is running on port `32007`.
|
||||||
|
```
|
||||||
|
curl 192.168.39.57:32007
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Welcome to nginx!</title>
|
||||||
|
<style>
|
||||||
|
html { color-scheme: light dark; }
|
||||||
|
body { width: 35em; margin: 0 auto;
|
||||||
|
font-family: Tahoma, Verdana, Arial, sans-serif; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Welcome to nginx!</h1>
|
||||||
|
<p>If you see this page, the nginx web server is successfully installed and
|
||||||
|
working. Further configuration is required.</p>
|
||||||
|
|
||||||
|
<p>For online documentation and support please refer to
|
||||||
|
<a href="http://nginx.org/">nginx.org</a>.<br/>
|
||||||
|
Commercial support is available at
|
||||||
|
<a href="http://nginx.com/">nginx.com</a>.</p>
|
||||||
|
|
||||||
|
<p><em>Thank you for using nginx.</em></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
So, how does this packet travel, lets dive in.
|
||||||
|
We can check the ip interfaces as well subnets for our system is connected to:
|
||||||
|
```
|
||||||
|
$ ifconfig
|
||||||
|
virbr2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||||
|
inet 192.168.39.1 netmask 255.255.255.0 broadcast 192.168.39.255
|
||||||
|
ether 52:54:00:19:29:93 txqueuelen 1000 (Ethernet)
|
||||||
|
RX packets 5132 bytes 1777099 (1.6 MiB)
|
||||||
|
RX errors 0 dropped 0 overruns 0 frame 0
|
||||||
|
TX packets 6113 bytes 998530 (975.1 KiB)
|
||||||
|
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
||||||
|
|
||||||
|
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||||
|
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
|
||||||
|
ether 52:54:00:48:ee:35 txqueuelen 1000 (Ethernet)
|
||||||
|
RX packets 23648 bytes 1265196 (1.2 MiB)
|
||||||
|
RX errors 0 dropped 0 overruns 0 frame 0
|
||||||
|
TX packets 40751 bytes 60265308 (57.4 MiB)
|
||||||
|
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
||||||
|
```
|
||||||
|
Output Relevance: From the above output you can see there are two Virtual Bridges created by minikube when we created the cluster on the network. Here, `virbr0` is the default NAT network bridge while `virbr2` is a isolated network bridge on which the pods run.
|
||||||
|
|
||||||
|
Minikube creates a Virtual Machine, to enter the virtual machine we can simple do:
|
||||||
|
```
|
||||||
|
# minikube ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
The interfaces within the Virtual Machine are as follows.
|
||||||
|
```
|
||||||
|
docker0 Link encap:Ethernet HWaddr 02:42:03:24:26:78
|
||||||
|
inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0
|
||||||
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||||
|
RX packets:31478 errors:0 dropped:0 overruns:0 frame:0
|
||||||
|
TX packets:36704 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:0
|
||||||
|
RX bytes:3264056 (3.1 MiB) TX bytes:14061883 (13.4 MiB)
|
||||||
|
|
||||||
|
eth0 Link encap:Ethernet HWaddr 52:54:00:C9:3A:73
|
||||||
|
inet addr:192.168.39.57 Bcast:192.168.39.255 Mask:255.255.255.0
|
||||||
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||||
|
RX packets:8245 errors:0 dropped:9 overruns:0 frame:0
|
||||||
|
TX packets:3876 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:1000
|
||||||
|
RX bytes:812006 (792.9 KiB) TX bytes:1044724 (1020.2 KiB)
|
||||||
|
|
||||||
|
eth1 Link encap:Ethernet HWaddr 52:54:00:7B:37:79
|
||||||
|
inet addr:192.168.122.35 Bcast:192.168.122.255 Mask:255.255.255.0
|
||||||
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||||
|
RX packets:4459 errors:0 dropped:9 overruns:0 frame:0
|
||||||
|
TX packets:201 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:1000
|
||||||
|
RX bytes:298528 (291.5 KiB) TX bytes:25813 (25.2 KiB)
|
||||||
|
|
||||||
|
lo Link encap:Local Loopback
|
||||||
|
inet addr:127.0.0.1 Mask:255.0.0.0
|
||||||
|
UP LOOPBACK RUNNING MTU:65536 Metric:1
|
||||||
|
RX packets:946772 errors:0 dropped:0 overruns:0 frame:0
|
||||||
|
TX packets:946772 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:1000
|
||||||
|
RX bytes:213465460 (203.5 MiB) TX bytes:213465460 (203.5 MiB)
|
||||||
|
|
||||||
|
vetha4f1dc5 Link encap:Ethernet HWaddr 3E:1C:FE:C9:75:86
|
||||||
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||||
|
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
|
||||||
|
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:0
|
||||||
|
RX bytes:1413 (1.3 KiB) TX bytes:955 (955.0 B)
|
||||||
|
|
||||||
|
vethbf35613 Link encap:Ethernet HWaddr BA:31:7D:AE:2A:BF
|
||||||
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||||
|
RX packets:3526 errors:0 dropped:0 overruns:0 frame:0
|
||||||
|
TX packets:3934 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:0
|
||||||
|
RX bytes:342408 (334.3 KiB) TX bytes:380193 (371.2 KiB)
|
||||||
|
|
||||||
|
vethe092a51 Link encap:Ethernet HWaddr 8A:37:D3:D9:D9:0E
|
||||||
|
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
|
||||||
|
RX packets:9603 errors:0 dropped:0 overruns:0 frame:0
|
||||||
|
TX packets:11151 errors:0 dropped:0 overruns:0 carrier:0
|
||||||
|
collisions:0 txqueuelen:0
|
||||||
|
RX bytes:1199235 (1.1 MiB) TX bytes:5449408 (5.1 MiB)
|
||||||
|
```
|
||||||
|
Output Relevance: Here we have the Virtual Ethernet and we have docker bridges too since docker runs within the Virtual Machine.
|
||||||
|
|
||||||
|
When we do a `curl` to `192.168.39.57:32007` on the laptop the packet first goes to the route table
|
||||||
|
```
|
||||||
|
Destination Gateway Genmask Flags MSS Window irtt Iface
|
||||||
|
0.0.0.0 192.168.31.1 0.0.0.0 UG 0 0 0 ethbr0
|
||||||
|
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
|
||||||
|
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-2fffe5cd5d9e
|
||||||
|
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-be5b544733a3
|
||||||
|
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ethbr0
|
||||||
|
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ethbr0
|
||||||
|
192.168.39.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr2
|
||||||
|
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
|
||||||
|
```
|
||||||
|
Output Relevance: As you can see multiple routes are defined here, of which our Virtual Machine Node IP(192.168.39.57) is also shown in the table, so the packet now knows where it has to go.
|
||||||
|
|
||||||
|
With that clear we now know how the packet goes from the laptop to the virtual bridge and then enters the Virtual Machine.
|
||||||
|
|
||||||
|
Inside the virtual machine, [kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy) handles the routing using iptables.
|
||||||
|
|
||||||
|
So what exactly is [kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy)(For those who skipped the kind example):
|
||||||
|
> Kube-Proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
|
||||||
|
kube-proxy maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster
|
||||||
|
|
||||||
|
So, as we can see that kube proxy handles the network rules required to aid the communication to the pods, we will look at the [iptables](https://linux.die.net/man/8/iptables)
|
||||||
|
> `iptables` is a command line interface used to set up and maintain tables for the Netfilter firewall for IPv4, included in the Linux kernel. The firewall matches packets with rules defined in these tables and then takes the specified action on a possible match. Tables is the name for a set of chains
|
||||||
|
|
||||||
|
Command:
|
||||||
|
|
||||||
|
```
|
||||||
|
# minikube ssh
|
||||||
|
_ _
|
||||||
|
_ _ ( ) ( )
|
||||||
|
___ ___ (_) ___ (_)| |/') _ _ | |_ __
|
||||||
|
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
|
||||||
|
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
|
||||||
|
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
|
||||||
|
|
||||||
|
$ sudo iptables -t nat -L PREROUTING -n
|
||||||
|
Chain PREROUTING (policy ACCEPT)
|
||||||
|
target prot opt source destination
|
||||||
|
KUBE-SERVICES all -- 0.0.0.0/0 0.0.0.0/0 /* kubernetes service portals */
|
||||||
|
DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
|
||||||
|
|
||||||
|
$ iptables-save | grep PREROUTING
|
||||||
|
-A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Output Relevance:
|
||||||
|
> -A: append new iptable rule
|
||||||
|
> -j: jump to the target
|
||||||
|
> KUBE-SERVICES: target
|
||||||
|
|
||||||
|
> The above output appends a new rule for PREROUTING which every network packet will go through first as they try to access any kubernetes service
|
||||||
|
|
||||||
|
|
||||||
|
What is `PREROUTING` in iptables?
|
||||||
|
>PREROUTING: This chain is used to make any routing related decisions before (PRE) sending any packets
|
||||||
|
|
||||||
|
To dig in further we need to go to the target, `KUBE-SERVICES` for our nginx service.
|
||||||
|
```
|
||||||
|
# iptables -t nat -L KUBE-SERVICES -n| grep nginx
|
||||||
|
KUBE-SVC-NRDCJV6H42SDXARP tcp -- 0.0.0.0/0 10.97.44.4 /* default/nginx-minikube cluster IP */ tcp dpt:80
|
||||||
|
```
|
||||||
|
Command:
|
||||||
|
```
|
||||||
|
$ sudo iptables -t nat -L| grep KUBE-SVC-NRDCJV6H42SDXARP
|
||||||
|
KUBE-SVC-NRDCJV6H42SDXARP tcp -- 0.0.0.0/0 0.0.0.0/0 /* default/nginx-minikube */ tcp dpt:32007
|
||||||
|
KUBE-SVC-NRDCJV6H42SDXARP tcp -- 0.0.0.0/0 10.97.44.4 /* default/nginx-minikube cluster IP */ tcp dpt:80
|
||||||
|
|
||||||
|
$ sudo iptables -t nat -L KUBE-MARK-MASQ -n
|
||||||
|
Chain KUBE-MARK-MASQ (19 references)
|
||||||
|
target prot opt source destination
|
||||||
|
MARK all -- 0.0.0.0/0 0.0.0.0/0 MARK or 0x4000
|
||||||
|
|
||||||
|
sudo iptables-save | grep 172.17.0.4
|
||||||
|
-A KUBE-SEP-AHQQ7ZFXMEBNX76B -s 172.17.0.4/32 -m comment --comment "default/nginx-minikube" -j KUBE-MARK-MASQ
|
||||||
|
-A KUBE-SEP-AHQQ7ZFXMEBNX76B -p tcp -m comment --comment "default/nginx-minikube" -m tcp -j DNAT --to-destination 172.17.0.4:80
|
||||||
|
```
|
||||||
|
As you can see the rules added by kube-proxy helps the packet reach to the destination service.
|
||||||
|
|
||||||
|
|
||||||
|
### Connection termination
|
||||||
|
Connection termination is a type of event that occurs when there are load balancers present, the information for this is quite scarce, however I've found the following article, [IBM - Network Termination](https://www.ibm.com/docs/en/sva/9.0.4?topic=balancer-network-termination) that describes what it means by connection termination between clients(laptop) and server(load balancer) and the various other services.
|
||||||
|
|
||||||
|
### Different types of connection errors.
|
||||||
|
The following article on [TCP/IP errors](https://www.ibm.com/docs/en/db2/11.1?topic=message-tcpip-errors) has a list of the important tcp timeout errors that we need to know.
|
||||||
|
|
||||||
|
|
||||||
|
| Common TCP/IP errors | Meaning |
|
||||||
|
| -------- | -------- |
|
||||||
|
| Resource temporarily unavailable.| Self-explanatory. |
|
||||||
|
| No space is left on a device or system table.|The disk partition is full|
|
||||||
|
|No route to the host is available.|The routing table doesn't know where to route the packet.|
|
||||||
|
|Connection was reset by the partner.|This usually means the packet was dropped as soon as it reached the server can be due to a firewall.|
|
||||||
|
|The connection was timed out.|This indicates the firewall blocking your connection or the connection took too long.|
|
||||||
|
|
||||||
|
## OSI Model Layer 7 (Application Layer)
|
||||||
|
|
||||||
|
[What is layer 7?](https://www.cloudflare.com/learning/ddos/what-is-layer-7/)
|
||||||
|
#### Summary
|
||||||
|
Layer 7 refers to the seventh and topmost layer of the Open Systems Interconnect (OSI) Model known as the application layer. This is the highest layer which supports end-user processes and applications. Layer 7 identifies the communicating parties and the quality of service between them, considers privacy and user authentication, as well as identifies any constraints on the data syntax. This layer is wholly application-specific.
|
||||||
|
|
||||||
|
|
||||||
|
## Setting up Ingress-Nginx Controller
|
||||||
|
|
||||||
|
Since we are doing this on our local laptop, we are going to use the following tools:
|
||||||
|
- [Minikube using KVM driver](https://minikube.sigs.k8s.io/docs/start/) - The host is linux-based in our example
|
||||||
|
- [Metallb](https://metallb.universe.tf/) - Baremetal load-balancer.
|
||||||
|
- [KVM](https://www.linux-kvm.org/page/Main_Page) / [Oracle VirtualBox](https://www.virtualbox.org/wiki/Downloads) / [VMWare](https://www.vmware.com/in/products/workstation-pro.html)
|
||||||
|
|
||||||
|
|
||||||
|
### So let's begin with Metallb and Ingress-Nginx setup.
|
||||||
|
|
||||||
|
For setting up metallb, we are going to follow the below steps:
|
||||||
|
|
||||||
|
- To begin the installation, we will execute:
|
||||||
|
```
|
||||||
|
minikube start
|
||||||
|
```
|
||||||
|
- To install Metallb, one can install it using the [manifest](https://metallb.universe.tf/installation/#installation-by-manifest) or by using [helm](https://metallb.universe.tf/installation/#installation-with-helm), for now we will use the Manifest method:
|
||||||
|
```
|
||||||
|
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.4/config/manifests/metallb-native.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
- We need to now configure Metallb, we are using [Layer 2 configuration](https://metallb.universe.tf/configuration/#announce-the-service-ips), let's head over to the [Metallb Configuration](https://metallb.universe.tf/configuration/) website, here you will see how to setup metallb.
|
||||||
|
>Layer 2 mode does not require the IPs to be bound to the network interfaces of your worker nodes. It works by responding to ARP requests on your local network directly, to give the machine’s MAC address to clients.
|
||||||
|
In order to advertise the IP coming from an IPAddressPool, an L2Advertisement instance must be associated to the IPAddressPool.
|
||||||
|
- We have modified the IP address pool so that our loadbalancer knows which subnet to choose an IP from.Since we have only one minikube IP we need to modify the code given in the documentation.
|
||||||
|
Save this as `metallb-config.yaml`:
|
||||||
|
```
|
||||||
|
apiVersion: metallb.io/v1beta1
|
||||||
|
kind: IPAddressPool
|
||||||
|
metadata:
|
||||||
|
name: first-pool
|
||||||
|
namespace: metallb-system
|
||||||
|
spec:
|
||||||
|
addresses:
|
||||||
|
# The configuration website show's you this
|
||||||
|
|
||||||
|
#- 192.168.10.0/24
|
||||||
|
#- 192.168.9.1-192.168.9.5
|
||||||
|
#- fc00:f853:0ccd:e799::/124
|
||||||
|
|
||||||
|
# We are going to change this to `minikube ip` as such
|
||||||
|
- 192.168.39.57/32
|
||||||
|
```
|
||||||
|
Now deploy it using `kubectl`
|
||||||
|
```
|
||||||
|
kubectl apply -f metallb-config.yaml
|
||||||
|
```
|
||||||
|
- Now that metallb is setup, let's install [ingress-nginx](https://kubernetes.github.io/ingress-nginx/deploy/#quick-start) on the laptop.
|
||||||
|
Note: We are using the install by manifest option from the Installation manual
|
||||||
|
```
|
||||||
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/cloud/deploy.yaml
|
||||||
|
```
|
||||||
|
or one can also install it using the minikube addons:
|
||||||
|
```
|
||||||
|
minikube addons enable ingress
|
||||||
|
```
|
||||||
|
- Once your Ingress-Nginx controller is created you can run the following commands to see the output of the setup done.
|
||||||
|
```
|
||||||
|
kubectl get pods -n ingress-nginx
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
ingress-nginx-admission-create-65bld 0/1 Completed 0 14m
|
||||||
|
ingress-nginx-admission-patch-rwq4x 0/1 Completed 0 14m
|
||||||
|
ingress-nginx-controller-6dc865cd86-7c5zd 1/1 Running 0 14m
|
||||||
|
```
|
||||||
|
The Ingress controller creates a Service with the type LoadBalancer and metallb provides the IP address.
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl -n ingress-nginx get svc
|
||||||
|
|
||||||
|
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||||
|
ingress-nginx-controller LoadBalancer 10.108.154.53 192.168.39.223 80:30367/TCP,443:31491/TCP 4d15h
|
||||||
|
ingress-nginx-controller-admission ClusterIP 10.98.54.3 <none> 443/TCP 4d15h
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Creating an Ingress
|
||||||
|
|
||||||
|
We will deploy a `httpd` service in a `httpd` namespace and create a ingress for it.
|
||||||
|
|
||||||
|
First, let's create a namespace.
|
||||||
|
```
|
||||||
|
kubectl create namespace httpd
|
||||||
|
```
|
||||||
|
|
||||||
|
Next we will create a deployment
|
||||||
|
```
|
||||||
|
kubectl create deployment httpd -n httpd --image=httpd:alpine
|
||||||
|
```
|
||||||
|
|
||||||
|
Now, In order to create a service, let's expose this deployment
|
||||||
|
```
|
||||||
|
kubectl expose deployment -n httpd httpd --port 80
|
||||||
|
```
|
||||||
|
Let's check the `pod` that is created
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl get po -n httpd
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
httpd-fb7fcdc77-w287c 1/1 Running 0 64s
|
||||||
|
```
|
||||||
|
|
||||||
|
Let's list the services in the `httpd` namespace
|
||||||
|
```
|
||||||
|
kubectl get svc -n httpd
|
||||||
|
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||||
|
httpd ClusterIP 10.104.111.0 <none> 80/TCP 13s
|
||||||
|
```
|
||||||
|
|
||||||
|
Once we have this we can now create a n ingress using the following
|
||||||
|
```
|
||||||
|
kubectl -n httpd create ingress httpd --class nginx --rule httpd.dev.leonnunes.com/"*"=httpd:80
|
||||||
|
```
|
||||||
|
The above output, creates an ingress, for us with the rule to match the service if the host is `httpd.dev.leonnunes.com`. The class here is retrieved from the below command.
|
||||||
|
|
||||||
|
To list the `ingressclasses` use
|
||||||
|
```
|
||||||
|
kubectl get ingressclasses
|
||||||
|
NAME CONTROLLER PARAMETERS AGE
|
||||||
|
nginx k8s.io/ingress-nginx <none> 6h49m
|
||||||
|
```
|
||||||
|
|
||||||
|
The following command shows the ingress created
|
||||||
|
```
|
||||||
|
$ kubectl get ingress -A -o wide
|
||||||
|
|
||||||
|
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE
|
||||||
|
httpd httpd nginx httpd.dev.leonnunes.com 192.168.39.223 80 11d
|
||||||
|
```
|
||||||
|
|
||||||
|
To test if the rule works we can now do
|
||||||
|
```
|
||||||
|
$ minikube ip
|
||||||
|
192.168.39.223
|
||||||
|
|
||||||
|
$ curl --resolve httpd.dev.leonnunes.com:80:192.168.39.223 httpd.dev.leonnunes.com
|
||||||
|
<html><body><h1>It works!</h1></body></html>
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
curl -H "Host: httpd.dev.leonnunes.com" 192.168.39.223
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Example of Information found on layer 7
|
||||||
|
We have setup `Ingress-Nginx`, using `nginx` as a class and `httpd` for this example.
|
||||||
|
|
||||||
|
In order to display the info on Layer - 7, we have extracted the Layer 7 information from a simple `curl` request, and then using `tcpdump` command within the `httpd` pod we extracted the network packets and opened it using the `Wireshark` utility.
|
||||||
|
|
||||||
|
Below given is the output that is important:
|
||||||
|
```bash
|
||||||
|
Frame 4: 391 bytes on wire (3128 bits), 391 bytes captured (3128 bits)
|
||||||
|
Linux cooked capture v2
|
||||||
|
Internet Protocol Version 4, Src: 172.17.0.4, Dst: 172.17.0.3
|
||||||
|
Transmission Control Protocol, Src Port: 49074, Dst Port: 80, Seq: 1, Ack: 1, Len: 319
|
||||||
|
Hypertext Transfer Protocol
|
||||||
|
GET / HTTP/1.1\r\n
|
||||||
|
Host: httpd.dev.leonnunes.com\r\n
|
||||||
|
X-Request-ID: 6e1a790412a0d1615dc0231358dc9c8b\r\n
|
||||||
|
X-Real-IP: 172.17.0.1\r\n
|
||||||
|
X-Forwarded-For: 172.17.0.1\r\n
|
||||||
|
X-Forwarded-Host: httpd.dev.leonnunes.com\r\n
|
||||||
|
X-Forwarded-Port: 80\r\n
|
||||||
|
X-Forwarded-Proto: http\r\n
|
||||||
|
X-Forwarded-Scheme: http\r\n
|
||||||
|
X-Scheme: http\r\n
|
||||||
|
User-Agent: curl/7.84.0\r\n
|
||||||
|
Accept: */*\r\n
|
||||||
|
\r\n
|
||||||
|
[Full request URI: http://httpd.dev.leonnunes.com/]
|
||||||
|
[HTTP request 1/1]
|
||||||
|
[Response in frame: 6]
|
||||||
|
|
||||||
|
```
|
||||||
|
The above output shows the information that the `httpd` pod recieves. The `curl` command sends the host header, `Host: httpd.dev.leonnunes.com`, to the nginx controller, that then matches the rule and sends the information to the right controller
|
||||||
|
|
||||||
|
The following output shows what is sent via the laptop.
|
||||||
|
```
|
||||||
|
curl --resolve httpd.dev.leonnunes.com:80:192.168.39.57 -H "Host: httpd.dev.leonnunes.com" 192.168.39.57 -vL
|
||||||
|
* Added httpd.dev.leonnunes.com:80:192.168.39.57 to DNS cache
|
||||||
|
* Trying 192.168.39.57:80...
|
||||||
|
* Connected to 192.168.39.57 (192.168.39.57) port 80 (#0)
|
||||||
|
> GET / HTTP/1.1
|
||||||
|
> Host: httpd.dev.leonnunes.com
|
||||||
|
> User-Agent: curl/7.84.0
|
||||||
|
> Accept: */*
|
||||||
|
>
|
||||||
|
* Mark bundle as not supporting multiuse
|
||||||
|
< HTTP/1.1 200 OK
|
||||||
|
< Date: Mon, 22 Aug 2022 16:05:27 GMT
|
||||||
|
< Content-Type: text/html
|
||||||
|
< Content-Length: 45
|
||||||
|
< Connection: keep-alive
|
||||||
|
< Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
|
||||||
|
< ETag: "2d-432a5e4a73a80"
|
||||||
|
< Accept-Ranges: bytes
|
||||||
|
<
|
||||||
|
<html><body><h1>It works!</h1></body></html>
|
||||||
|
* Connection #0 to host 192.168.39.57 left intact
|
||||||
|
```
|
||||||
|
As you can see from the above output there are several headers added to the curl output after it reaches the `httpd` pod, these headers are added by the Ingress Nginx Controller.
|
||||||
|
|
||||||
|
|
||||||
|
### References
|
||||||
|
#### Basics of Networking
|
||||||
|
- https://www.cisco.com/en/US/docs/security/vpn5000/manager/reference/guide/appA.html
|
||||||
|
- http://web.stanford.edu/class/cs101/
|
||||||
|
- https://www.geeksforgeeks.org/basics-computer-networking/
|
||||||
|
- Subnetting
|
||||||
|
- https://www.computernetworkingnotes.com/ccna-study-guide/subnetting-tutorial-subnetting-explained-with-examples.html
|
||||||
|
|
||||||
|
#### Video Links
|
||||||
|
- https://www.youtube.com/playlist?list=PLhfrWIlLOoKPc2RecyiM_A9nf3fUU3e6g
|
||||||
|
- https://www.youtube.com/watch?v=S7MNX_UD7vY&list=PLIhvC56v63IJVXv0GJcl9vO5Z6znCVb1P
|
||||||
|
|
||||||
|
### Topics to read about
|
||||||
|
- Docker in Docker
|
||||||
|
- [Docker/Containers](https://www.oreilly.com/library/view/docker-deep-dive/9781800565135/)
|
||||||
|
- Containers
|
||||||
|
|
||||||
|
### Basics of Kubernetes
|
||||||
|
#### Reading Material
|
||||||
|
- https://nubenetes.com/kubernetes-tutorials/
|
||||||
|
- https://kubernetes.io/docs/concepts/
|
||||||
|
#### Video Material
|
||||||
|
- [Techworld with Nana 101](https://www.youtube.com/playlist?list=PLy7NrYWoggjziYQIDorlXjTvvwweTYoNC)
|
||||||
|
- [Jeff Geerling Kubernetes 101](https://www.youtube.com/watch?v=IcslsH7OoYo&list=PL2_OBreMn7FoYmfx27iSwocotjiikS5BD)
|
||||||
|
|
||||||
|
#### Hands-On Kubernetes
|
||||||
|
- https://kube.academy/
|
||||||
|
- https://www.civo.com/academy
|
||||||
|
|
||||||
|
### Networking in Kubernetes
|
||||||
|
- [Kubernetes Networking 101](https://youtu.be/CYnwBIpvSlM?t=284)
|
||||||
|
- [CNCF Kubernetes 101](https://www.youtube.com/watch?v=cUGXu2tiZMc)
|
||||||
|
|
||||||
|
### Tools/Commands to help with troubleshooting.
|
||||||
|
- [mtr](https://www.redhat.com/sysadmin/linux-mtr-command) - Tracing the packet from the source to destination
|
||||||
|
- [tcpdump](https://linuxconfig.org/how-to-use-tcpdump-command-on-linux) - Monitor packets
|
||||||
|
- [wireshark](https://www.lifewire.com/wireshark-tutorial-4143298) - Read/Sniff packets
|
||||||
|
- [nslookup](https://phoenixnap.com/kb/nslookup-command) - Lookup Nameservers
|
||||||
|
- [netstat](https://www.lifewire.com/netstat-command-2618098) - List network details
|
||||||
|
- [curl](https://linuxhandbook.com/curl-command-examples/) - Curl a website from the command line
|
||||||
|
- [ifconfig](https://www.tecmint.com/ifconfig-command-examples/)/[ip](https://www.geeksforgeeks.org/ip-command-in-linux-with-examples/) - Show ip address configuration
|
||||||
|
- [dig](https://www.geeksforgeeks.org/dig-command-in-linux-with-examples/) - Query Nameservers
|
||||||
|
- [ipcalc](https://www.linux.com/topic/networking/how-calculate-network-addresses-ipcalc/) - Calculate IP addresses
|
||||||
|
- Advanced Tools for troubleshooting
|
||||||
|
- [Netshoot](https://github.com/nicolaka/netshoot) - Troubleshoot Networks
|
||||||
|
- Cluster Creation tools
|
||||||
|
- [kind](https://kind.sigs.k8s.io/docs/user/quick-start/)
|
||||||
|
- [minikube](https://minikube.sigs.k8s.io/docs/start/)
|
|
@ -1 +1 @@
|
||||||
registry.k8s.io/ingress-nginx/nginx:9fdbef829c327b95a3c6d6816a301df41bda997f@sha256:46c27294e467f46d0006ad1eb5fd3f7005eb3cbd00dd43be2ed9b02edfc6e828
|
registry.k8s.io/ingress-nginx/nginx:0b5e0685112e4537ee20a0bdbba451e9f6158aa3@sha256:3f5e28bb248d5170e77b77fc2a1a385724aeff41a0b34b5afad7dd9cf93de000
|
||||||
|
|
1
OWNERS
1
OWNERS
|
@ -8,3 +8,4 @@ reviewers:
|
||||||
|
|
||||||
emeritus_approvers:
|
emeritus_approvers:
|
||||||
- aledbf # 2020-04-02
|
- aledbf # 2020-04-02
|
||||||
|
- bowei # 2022-10-12
|
||||||
|
|
|
@ -7,7 +7,6 @@ aliases:
|
||||||
- thockin
|
- thockin
|
||||||
|
|
||||||
ingress-nginx-admins:
|
ingress-nginx-admins:
|
||||||
- bowei
|
|
||||||
- rikatz
|
- rikatz
|
||||||
- strongjz
|
- strongjz
|
||||||
|
|
||||||
|
|
52
README.md
52
README.md
|
@ -5,11 +5,12 @@
|
||||||
[](https://github.com/kubernetes/ingress-nginx/blob/main/LICENSE)
|
[](https://github.com/kubernetes/ingress-nginx/blob/main/LICENSE)
|
||||||
[](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)
|
||||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fkubernetes%2Fingress-nginx?ref=badge_shield)
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
ingress-nginx is an Ingress controller for Kubernetes using [NGINX](https://www.nginx.org/) as a reverse proxy and load balancer.
|
ingress-nginx is an Ingress controller for Kubernetes using [NGINX](https://www.nginx.org/) as a reverse proxy and load
|
||||||
|
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 main Kubernetes documentation site](https://kubernetes.io/docs/concepts/services-networking/ingress/).
|
||||||
|
|
||||||
|
@ -19,18 +20,27 @@ See the [Getting Started](https://kubernetes.github.io/ingress-nginx/deploy/) do
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
If you encounter issues, review the [troubleshooting docs](docs/troubleshooting.md), [file an issue](https://github.com/kubernetes/ingress-nginx/issues), or talk to us on the [#ingress-nginx channel](https://kubernetes.slack.com/messages/ingress-nginx) on the Kubernetes Slack server.
|
If you encounter issues, review the [troubleshooting docs](docs/troubleshooting.md),
|
||||||
|
[file an issue](https://github.com/kubernetes/ingress-nginx/issues), or talk to us on the
|
||||||
|
[#ingress-nginx channel](https://kubernetes.slack.com/messages/ingress-nginx) on the Kubernetes Slack server.
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
See [the list of releases](https://github.com/kubernetes/ingress-nginx/releases) to find out about feature changes.
|
See [the list of releases](https://github.com/kubernetes/ingress-nginx/releases) to find out about feature changes.
|
||||||
For detailed changes for each release; please check the [Changelog.md](Changelog.md) file.
|
For detailed changes for each release; please check the [Changelog.md](Changelog.md) file.
|
||||||
For detailed changes on the `ingress-nginx` helm chart, please check the following [CHANGELOG.md](charts/ingress-nginx/CHANGELOG.md) file.
|
For detailed changes on the `ingress-nginx` helm chart, please check the following
|
||||||
|
[CHANGELOG.md](charts/ingress-nginx/CHANGELOG.md) file.
|
||||||
|
|
||||||
### Support Versions table
|
### Supported Versions table
|
||||||
|
|
||||||
|
Supported versions for the ingress-nginx project mean that we have completed E2E tests, and they are passing for
|
||||||
|
the versions listed. Ingress-Nginx versions may work on older versions but the project does not make that guarantee.
|
||||||
|
|
||||||
| Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version |
|
| Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version |
|
||||||
|-----------------------|------------------------------|----------------|---------------|
|
|-----------------------|------------------------------|----------------|---------------|
|
||||||
|
| v1.5.1 | 1.25, 1.24, 1.23 | 3.16.2 | 1.21.6 |
|
||||||
|
| v1.4.0 | 1.25, 1.24, 1.23, 1.22 | 3.16.2 | 1.19.10† |
|
||||||
|
| v1.3.1 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.2 | 1.19.10† |
|
||||||
| v1.3.0 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.0 | 1.19.10† |
|
| v1.3.0 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.0 | 1.19.10† |
|
||||||
| v1.2.1 | 1.23, 1.22, 1.21, 1.20, 1.19 | 3.14.6 | 1.19.10† |
|
| v1.2.1 | 1.23, 1.22, 1.21, 1.20, 1.19 | 3.14.6 | 1.19.10† |
|
||||||
| v1.1.3 | 1.23, 1.22, 1.21, 1.20, 1.19 | 3.14.4 | 1.19.10† |
|
| v1.1.3 | 1.23, 1.22, 1.21, 1.20, 1.19 | 3.14.4 | 1.19.10† |
|
||||||
|
@ -43,36 +53,30 @@ For detailed changes on the `ingress-nginx` helm chart, please check the followi
|
||||||
| v1.0.2 | 1.22, 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
| v1.0.2 | 1.22, 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
||||||
| v1.0.1 | 1.22, 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
| v1.0.1 | 1.22, 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
||||||
| v1.0.0 | 1.22, 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 |
|
| v1.0.0 | 1.22, 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 |
|
||||||
| v0.51.0 | 1.21, 1.20, 1.19 | 3.14.4 | 1.19.10† |
|
|
||||||
| v0.49.3 | 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
|
||||||
| v0.49.2 | 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
|
||||||
| v0.49.1 | 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† |
|
|
||||||
| v0.49.0 | 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 |
|
|
||||||
| v0.48.1 | 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 |
|
|
||||||
|
|
||||||
† _This build is [patched against CVE-2021-23017](https://github.com/openresty/openresty/commit/4b5ec7edd78616f544abc194308e0cf4b788725b#diff-42ef841dc27fe0b5aa2d06bd31308bb63a59cdcddcbcddd917248349d22020a3)._
|
|
||||||
|
|
||||||
See [this article](https://kubernetes.io/blog/2021/07/26/update-with-ingress-nginx/) if you want upgrade to the stable Ingress API.
|
† _This build is
|
||||||
|
[patched against CVE-2021-23017](https://github.com/openresty/openresty/commit/4b5ec7edd78616f544abc194308e0cf4b788725b#diff-42ef841dc27fe0b5aa2d06bd31308bb63a59cdcddcbcddd917248349d22020a3)._
|
||||||
|
|
||||||
|
See [this article](https://kubernetes.io/blog/2021/07/26/update-with-ingress-nginx/) if you want upgrade to the stable
|
||||||
|
Ingress API.
|
||||||
|
|
||||||
## Get Involved
|
## Get Involved
|
||||||
|
|
||||||
Thanks for taking the time to join our community and start contributing!
|
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). By participating in this project, you agree to abide by its terms.
|
- 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.
|
||||||
|
|
||||||
- **Contributing**: Contributions of all kind are welcome!
|
- **Contributing**: Contributions of all kind are welcome!
|
||||||
|
|
||||||
- Read [`CONTRIBUTING.md`](CONTRIBUTING.md) for information about setting up your environment, the workflow that we expect, and instructions on the developer certificate of origin that we require.
|
- Read [`CONTRIBUTING.md`](CONTRIBUTING.md) for information about setting up your environment, the workflow that we
|
||||||
|
expect, and instructions on the developer certificate of origin that we require.
|
||||||
- Join our Kubernetes Slack channel for developer discussion : [#ingress-nginx-dev](https://kubernetes.slack.com/archives/C021E147ZA4).
|
- Join our Kubernetes Slack channel for developer discussion : [#ingress-nginx-dev](https://kubernetes.slack.com/archives/C021E147ZA4).
|
||||||
|
- 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**.
|
||||||
- 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**.
|
- **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.
|
||||||
|
- The [GitHub issues](https://github.com/kubernetes/ingress-nginx/issues) in the repository are **exclusively** for bug reports and feature requests.
|
||||||
- **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.
|
- **Discuss**: Tweet using the `#IngressNginx` hashtag.
|
||||||
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ Promoting the images basically means that images, that were pushed to staging co
|
||||||
- Run the below command and save the output to a txt file
|
- Run the below command and save the output to a txt file
|
||||||
|
|
||||||
```
|
```
|
||||||
gh pr list -s merged -L 38 -B main | cut -f1,2 | tee ~/Downloads/prlist.txt
|
gh pr list -R kubernetes/ingress-nginx -s merged -L 38 -B main | cut -f1,2 | tee ~/Downloads/prlist.txt
|
||||||
```
|
```
|
||||||
- The -L 38 was used for 2 reasons.
|
- The -L 38 was used for 2 reasons.
|
||||||
- Default number of results is 30 and there were more than 30 PRs merged while releasing v1.1.1. If you see the current/soon-to-be-old changelog, you can look at the most recent PR number that has been accounted for already, and start from after that last accounted for PR.
|
- Default number of results is 30 and there were more than 30 PRs merged while releasing v1.1.1. If you see the current/soon-to-be-old changelog, you can look at the most recent PR number that has been accounted for already, and start from after that last accounted for PR.
|
||||||
|
@ -222,7 +222,7 @@ Promoting the images basically means that images, that were pushed to staging co
|
||||||
- If you saved the bash script content above, in a file like `$HOME/bin/prlist_to_changelog.sh`, then you could execute a command like this to get your prlist in a text file called changelog_content.txt;`
|
- If you saved the bash script content above, in a file like `$HOME/bin/prlist_to_changelog.sh`, then you could execute a command like this to get your prlist in a text file called changelog_content.txt;`
|
||||||
|
|
||||||
```
|
```
|
||||||
prlist_to_changelog.sh ~/Downloads/prlist.txt | tee ~/Downloads//changelog_content.txt`
|
prlist_to_changelog.sh ~/Downloads/prlist.txt | tee ~/Downloads//changelog_content.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
### d. Edit the values.yaml and run helm-docs
|
### d. Edit the values.yaml and run helm-docs
|
||||||
|
@ -233,7 +233,7 @@ Promoting the images basically means that images, that were pushed to staging co
|
||||||
|
|
||||||
- [helm-docs](https://github.com/norwoodj/helm-docs) is a tool that generates the README.md for a helm-chart automatically. In the CI pipeline workflow of github actions (/.github/workflows/ci.yaml), you can see how helm-docs is used. But the CI pipeline is not designed to make commits back into the project. So we need to run helm-docs manually, and check in the resulting autogenerated README.md at the path /charts/ingress-nginx/README.md
|
- [helm-docs](https://github.com/norwoodj/helm-docs) is a tool that generates the README.md for a helm-chart automatically. In the CI pipeline workflow of github actions (/.github/workflows/ci.yaml), you can see how helm-docs is used. But the CI pipeline is not designed to make commits back into the project. So we need to run helm-docs manually, and check in the resulting autogenerated README.md at the path /charts/ingress-nginx/README.md
|
||||||
```
|
```
|
||||||
GOBIN=$PWD GO111MODULE=on go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.6.0
|
GOBIN=$PWD GO111MODULE=on go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.11.0
|
||||||
./helm-docs --chart-search-root=${GITHUB_WORKSPACE}/charts
|
./helm-docs --chart-search-root=${GITHUB_WORKSPACE}/charts
|
||||||
git diff --exit-code
|
git diff --exit-code
|
||||||
rm -f ./helm-docs
|
rm -f ./helm-docs
|
||||||
|
|
2
TAG
2
TAG
|
@ -1 +1 @@
|
||||||
v1.3.0
|
v1.5.1
|
||||||
|
|
|
@ -49,29 +49,30 @@ echo "Building targets for ${ARCH}, generated targets in ${TARGETS_DIR} director
|
||||||
|
|
||||||
echo "Building ${PKG}/cmd/nginx"
|
echo "Building ${PKG}/cmd/nginx"
|
||||||
|
|
||||||
git config --add safe.directory /go/src/k8s.io/ingress-nginx
|
|
||||||
${GO_BUILD_CMD} \
|
${GO_BUILD_CMD} \
|
||||||
-trimpath -ldflags="-buildid= -w -s \
|
-trimpath -ldflags="-buildid= -w -s \
|
||||||
-X ${PKG}/version.RELEASE=${TAG} \
|
-X ${PKG}/version.RELEASE=${TAG} \
|
||||||
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
||||||
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
||||||
|
-buildvcs=false \
|
||||||
-o "${TARGETS_DIR}/nginx-ingress-controller" "${PKG}/cmd/nginx"
|
-o "${TARGETS_DIR}/nginx-ingress-controller" "${PKG}/cmd/nginx"
|
||||||
|
|
||||||
echo "Building ${PKG}/cmd/dbg"
|
echo "Building ${PKG}/cmd/dbg"
|
||||||
|
|
||||||
${GO_BUILD_CMD} \
|
${GO_BUILD_CMD} \
|
||||||
-trimpath -ldflags="-buildid= -w -s \
|
-trimpath -ldflags="-buildid= -w -s \
|
||||||
-X ${PKG}/version.RELEASE=${TAG} \
|
-X ${PKG}/version.RELEASE=${TAG} \
|
||||||
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
||||||
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
||||||
|
-buildvcs=false \
|
||||||
-o "${TARGETS_DIR}/dbg" "${PKG}/cmd/dbg"
|
-o "${TARGETS_DIR}/dbg" "${PKG}/cmd/dbg"
|
||||||
|
|
||||||
echo "Building ${PKG}/cmd/waitshutdown"
|
echo "Building ${PKG}/cmd/waitshutdown"
|
||||||
|
|
||||||
${GO_BUILD_CMD} \
|
${GO_BUILD_CMD} \
|
||||||
-trimpath -ldflags="-buildid= -w -s \
|
-trimpath -ldflags="-buildid= -w -s \
|
||||||
-X ${PKG}/version.RELEASE=${TAG} \
|
-X ${PKG}/version.RELEASE=${TAG} \
|
||||||
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
-X ${PKG}/version.COMMIT=${COMMIT_SHA} \
|
||||||
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
-X ${PKG}/version.REPO=${REPO_INFO}" \
|
||||||
|
-buildvcs=false \
|
||||||
-o "${TARGETS_DIR}/wait-shutdown" "${PKG}/cmd/waitshutdown"
|
-o "${TARGETS_DIR}/wait-shutdown" "${PKG}/cmd/waitshutdown"
|
||||||
|
|
||||||
|
|
|
@ -45,9 +45,10 @@ if ! command -v helm &> /dev/null; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
HELM_VERSION=$(helm version 2>&1 | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+') || true
|
HELM_VERSION=$(helm version 2>&1 | cut -f1 -d"," | grep -oE '[0-9]+\.[0-9]+\.[0-9]+') || true
|
||||||
if [[ ${HELM_VERSION} < "v3.9.0" ]]; then
|
echo $HELM_VERSION
|
||||||
echo "Please upgrade helm to v3.9.0 or higher"
|
if [[ ${HELM_VERSION} -lt 3.10.0 ]]; then
|
||||||
|
echo "Please upgrade helm to v3.10.0 or higher"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -61,32 +62,13 @@ 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.24.2@sha256:1f0cee2282f43150b52dc7933183ed96abdcfc8d293f30ec07082495874876f1}
|
export K8S_VERSION=${K8S_VERSION:-v1.25.2@sha256:9be91e9e9cdf116809841fc77ebdb8845443c4c72fe5218f3ae9eb57fdb4bace}
|
||||||
|
|
||||||
KIND_CLUSTER_NAME="ingress-nginx-dev"
|
KIND_CLUSTER_NAME="ingress-nginx-dev"
|
||||||
|
|
||||||
if ! kind get clusters -q | grep -q ${KIND_CLUSTER_NAME}; then
|
if ! kind get clusters -q | grep -q ${KIND_CLUSTER_NAME}; then
|
||||||
echo "[dev-env] creating Kubernetes cluster with kind"
|
echo "[dev-env] creating Kubernetes cluster with kind"
|
||||||
cat <<EOF | kind create cluster --name ${KIND_CLUSTER_NAME} --image "kindest/node:${K8S_VERSION}" --config=-
|
kind create cluster --name ${KIND_CLUSTER_NAME} --image "kindest/node:${K8S_VERSION}" --config ${DIR}/kind.yaml
|
||||||
kind: Cluster
|
|
||||||
apiVersion: kind.x-k8s.io/v1alpha4
|
|
||||||
nodes:
|
|
||||||
- role: control-plane
|
|
||||||
kubeadmConfigPatches:
|
|
||||||
- |
|
|
||||||
kind: InitConfiguration
|
|
||||||
nodeRegistration:
|
|
||||||
kubeletExtraArgs:
|
|
||||||
node-labels: "ingress-ready=true"
|
|
||||||
authorization-mode: "AlwaysAllow"
|
|
||||||
extraPortMappings:
|
|
||||||
- containerPort: 80
|
|
||||||
hostPort: 80
|
|
||||||
protocol: TCP
|
|
||||||
- containerPort: 443
|
|
||||||
hostPort: 443
|
|
||||||
protocol: TCP
|
|
||||||
EOF
|
|
||||||
else
|
else
|
||||||
echo "[dev-env] using existing Kubernetes kind cluster"
|
echo "[dev-env] using existing Kubernetes kind cluster"
|
||||||
fi
|
fi
|
||||||
|
|
18
build/kind.yaml
Normal file
18
build/kind.yaml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
kind: Cluster
|
||||||
|
apiVersion: kind.x-k8s.io/v1alpha4
|
||||||
|
nodes:
|
||||||
|
- role: control-plane
|
||||||
|
kubeadmConfigPatches:
|
||||||
|
- |
|
||||||
|
kind: InitConfiguration
|
||||||
|
nodeRegistration:
|
||||||
|
kubeletExtraArgs:
|
||||||
|
node-labels: "ingress-ready=true"
|
||||||
|
authorization-mode: "AlwaysAllow"
|
||||||
|
extraPortMappings:
|
||||||
|
- containerPort: 80
|
||||||
|
hostPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 443
|
||||||
|
hostPort: 443
|
||||||
|
protocol: TCP
|
|
@ -38,7 +38,7 @@ function cleanup {
|
||||||
}
|
}
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20220624-g3348cd71e@sha256:2a34e322b7ff89abdfa0b6202f903bf5618578b699ff609a3ddabac0aae239c8}
|
E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20221012-controller-v1.4.0-14-g93df79676@sha256:9ab6a412b0ea6ae77abc80309608976ec15141e146fa91ef4352400cb9051086}
|
||||||
|
|
||||||
DOCKER_OPTS=${DOCKER_OPTS:-}
|
DOCKER_OPTS=${DOCKER_OPTS:-}
|
||||||
DOCKER_IN_DOCKER_ENABLED=${DOCKER_IN_DOCKER_ENABLED:-}
|
DOCKER_IN_DOCKER_ENABLED=${DOCKER_IN_DOCKER_ENABLED:-}
|
||||||
|
@ -65,15 +65,6 @@ fi
|
||||||
|
|
||||||
USER=${USER:-nobody}
|
USER=${USER:-nobody}
|
||||||
|
|
||||||
MAC_OS="`uname -s`"
|
|
||||||
MAC_OS="${MAC_OS:-}"
|
|
||||||
if [[ ${MAC_OS} == "Darwin" ]]; then
|
|
||||||
MAC_DOCKER_FLAGS=""
|
|
||||||
else
|
|
||||||
MAC_DOCKER_FLAGS="-u $(id -u ${USER}):$(id -g ${USER})" #idk why mac/git fails on the gobuild if these are presented to dockerrun.sh script
|
|
||||||
fi
|
|
||||||
echo "MAC_OS = ${MAC_OS}, MAC_OS_FLAGS = ${MAC_DOCKER_FLAGS}"
|
|
||||||
|
|
||||||
echo "..printing env & other vars to stdout"
|
echo "..printing env & other vars to stdout"
|
||||||
echo "HOSTNAME=`hostname`"
|
echo "HOSTNAME=`hostname`"
|
||||||
uname -a
|
uname -a
|
||||||
|
@ -108,6 +99,5 @@ else
|
||||||
-v "/var/run/docker.sock:/var/run/docker.sock" \
|
-v "/var/run/docker.sock:/var/run/docker.sock" \
|
||||||
-v "${INGRESS_VOLUME}:/etc/ingress-controller/" \
|
-v "${INGRESS_VOLUME}:/etc/ingress-controller/" \
|
||||||
-w "/go/src/${PKG}" \
|
-w "/go/src/${PKG}" \
|
||||||
${MAC_DOCKER_FLAGS} \
|
|
||||||
${E2E_IMAGE} /bin/bash -c "${FLAGS}"
|
${E2E_IMAGE} /bin/bash -c "${FLAGS}"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,6 +2,21 @@
|
||||||
|
|
||||||
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).
|
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.4.0
|
||||||
|
|
||||||
|
* Adding support for disabling liveness and readiness probes to the Helm chart by @njegosrailic in https://github.com/kubernetes/ingress-nginx/pull/9238
|
||||||
|
* add:(admission-webhooks) ability to set securityContext by @ybelMekk in https://github.com/kubernetes/ingress-nginx/pull/9186
|
||||||
|
* #7652 - Updated Helm chart to use the fullname for the electionID if not specified. by @FutureMatt in https://github.com/kubernetes/ingress-nginx/pull/9133
|
||||||
|
* Rename controller-wehbooks-networkpolicy.yaml. by @Gacko in https://github.com/kubernetes/ingress-nginx/pull/9123
|
||||||
|
|
||||||
|
### 4.3.0
|
||||||
|
- Support for Kubernetes v.1.25.0 was added and support for endpoint slices
|
||||||
|
- Support for Kubernetes v1.20.0 and v1.21.0 was removed
|
||||||
|
- [8890](https://github.com/kubernetes/ingress-nginx/pull/8890) migrate to endpointslices
|
||||||
|
- [9059](https://github.com/kubernetes/ingress-nginx/pull/9059) kubewebhookcertgen sha change after go1191
|
||||||
|
- [9046](https://github.com/kubernetes/ingress-nginx/pull/9046) Parameterize metrics port name
|
||||||
|
- [9104](https://github.com/kubernetes/ingress-nginx/pull/9104) Fix yaml formatting error with multiple annotations
|
||||||
|
|
||||||
### 4.2.1
|
### 4.2.1
|
||||||
|
|
||||||
- The sha of kube-webhook-certgen image & the opentelemetry image, in values file, was changed to new images built on alpine-v3.16.1
|
- The sha of kube-webhook-certgen image & the opentelemetry image, in values file, was changed to new images built on alpine-v3.16.1
|
||||||
|
|
|
@ -2,8 +2,8 @@ apiVersion: v2
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
# When the version is modified, make sure the artifacthub.io/changes list is updated
|
# When the version is modified, make sure the artifacthub.io/changes list is updated
|
||||||
# Also update CHANGELOG.md
|
# Also update CHANGELOG.md
|
||||||
version: 4.2.1
|
version: 4.4.0
|
||||||
appVersion: 1.3.0
|
appVersion: 1.5.1
|
||||||
home: https://github.com/kubernetes/ingress-nginx
|
home: https://github.com/kubernetes/ingress-nginx
|
||||||
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer
|
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer
|
||||||
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png
|
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png
|
||||||
|
@ -12,7 +12,6 @@ keywords:
|
||||||
- nginx
|
- nginx
|
||||||
sources:
|
sources:
|
||||||
- https://github.com/kubernetes/ingress-nginx
|
- https://github.com/kubernetes/ingress-nginx
|
||||||
type: application
|
|
||||||
maintainers:
|
maintainers:
|
||||||
- name: rikatz
|
- name: rikatz
|
||||||
- name: strongjz
|
- name: strongjz
|
||||||
|
@ -26,4 +25,7 @@ annotations:
|
||||||
# List of changes for the release in artifacthub.io
|
# List of changes for the release in artifacthub.io
|
||||||
# https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx?modal=changelog
|
# https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx?modal=changelog
|
||||||
artifacthub.io/changes: |
|
artifacthub.io/changes: |
|
||||||
- "[8896](https://github.com/kubernetes/ingress-nginx/pull/8896) updated to new images built today"
|
- Adding support for disabling liveness and readiness probes to the Helm chart
|
||||||
|
- add:(admission-webhooks) ability to set securityContext
|
||||||
|
- Updated Helm chart to use the fullname for the electionID if not specified
|
||||||
|
- Rename controller-wehbooks-networkpolicy.yaml
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
@ -242,6 +242,7 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.admissionWebhooks.annotations | object | `{}` | |
|
| controller.admissionWebhooks.annotations | object | `{}` | |
|
||||||
| controller.admissionWebhooks.certificate | string | `"/usr/local/certificates/cert"` | |
|
| controller.admissionWebhooks.certificate | string | `"/usr/local/certificates/cert"` | |
|
||||||
| controller.admissionWebhooks.createSecretJob.resources | object | `{}` | |
|
| controller.admissionWebhooks.createSecretJob.resources | object | `{}` | |
|
||||||
|
| controller.admissionWebhooks.createSecretJob.securityContext.allowPrivilegeEscalation | bool | `false` | |
|
||||||
| controller.admissionWebhooks.enabled | bool | `true` | |
|
| controller.admissionWebhooks.enabled | bool | `true` | |
|
||||||
| controller.admissionWebhooks.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
| controller.admissionWebhooks.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
||||||
| controller.admissionWebhooks.existingScc | string | `""` | Use an existing SCC instead of creating one |
|
| controller.admissionWebhooks.existingScc | string | `""` | Use an existing SCC instead of creating one |
|
||||||
|
@ -251,30 +252,33 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.admissionWebhooks.key | string | `"/usr/local/certificates/key"` | |
|
| controller.admissionWebhooks.key | string | `"/usr/local/certificates/key"` | |
|
||||||
| controller.admissionWebhooks.labels | object | `{}` | Labels to be added to admission webhooks |
|
| controller.admissionWebhooks.labels | object | `{}` | Labels to be added to admission webhooks |
|
||||||
| controller.admissionWebhooks.namespaceSelector | object | `{}` | |
|
| controller.admissionWebhooks.namespaceSelector | object | `{}` | |
|
||||||
|
| controller.admissionWebhooks.networkPolicyEnabled | bool | `false` | |
|
||||||
| controller.admissionWebhooks.objectSelector | object | `{}` | |
|
| controller.admissionWebhooks.objectSelector | object | `{}` | |
|
||||||
| controller.admissionWebhooks.patch.enabled | bool | `true` | |
|
| controller.admissionWebhooks.patch.enabled | bool | `true` | |
|
||||||
| controller.admissionWebhooks.patch.fsGroup | int | `2000` | |
|
| controller.admissionWebhooks.patch.image.digest | string | `"sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f"` | |
|
||||||
| controller.admissionWebhooks.patch.image.digest | string | `"sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47"` | |
|
|
||||||
| 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.3.0"` | |
|
| controller.admissionWebhooks.patch.image.tag | string | `"v20220916-gd32f8c343"` | |
|
||||||
| 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.nodeSelector."kubernetes.io/os" | string | `"linux"` | |
|
| controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os" | string | `"linux"` | |
|
||||||
| controller.admissionWebhooks.patch.podAnnotations | object | `{}` | |
|
| controller.admissionWebhooks.patch.podAnnotations | object | `{}` | |
|
||||||
| controller.admissionWebhooks.patch.priorityClassName | string | `""` | Provide a priority class name to the webhook patching job |
|
| controller.admissionWebhooks.patch.priorityClassName | string | `""` | Provide a priority class name to the webhook patching job # |
|
||||||
| controller.admissionWebhooks.patch.runAsUser | int | `2000` | |
|
| controller.admissionWebhooks.patch.securityContext.fsGroup | int | `2000` | |
|
||||||
|
| controller.admissionWebhooks.patch.securityContext.runAsNonRoot | bool | `true` | |
|
||||||
|
| controller.admissionWebhooks.patch.securityContext.runAsUser | int | `2000` | |
|
||||||
| controller.admissionWebhooks.patch.tolerations | list | `[]` | |
|
| controller.admissionWebhooks.patch.tolerations | list | `[]` | |
|
||||||
| controller.admissionWebhooks.patchWebhookJob.resources | object | `{}` | |
|
| controller.admissionWebhooks.patchWebhookJob.resources | object | `{}` | |
|
||||||
|
| controller.admissionWebhooks.patchWebhookJob.securityContext.allowPrivilegeEscalation | bool | `false` | |
|
||||||
| controller.admissionWebhooks.port | int | `8443` | |
|
| controller.admissionWebhooks.port | int | `8443` | |
|
||||||
| controller.admissionWebhooks.service.annotations | object | `{}` | |
|
| controller.admissionWebhooks.service.annotations | object | `{}` | |
|
||||||
| controller.admissionWebhooks.service.externalIPs | list | `[]` | |
|
| controller.admissionWebhooks.service.externalIPs | list | `[]` | |
|
||||||
| controller.admissionWebhooks.service.loadBalancerSourceRanges | list | `[]` | |
|
| controller.admissionWebhooks.service.loadBalancerSourceRanges | list | `[]` | |
|
||||||
| controller.admissionWebhooks.service.servicePort | int | `443` | |
|
| controller.admissionWebhooks.service.servicePort | int | `443` | |
|
||||||
| controller.admissionWebhooks.service.type | string | `"ClusterIP"` | |
|
| controller.admissionWebhooks.service.type | string | `"ClusterIP"` | |
|
||||||
| controller.affinity | object | `{}` | Affinity and anti-affinity rules for server scheduling to nodes |
|
| controller.affinity | object | `{}` | Affinity and anti-affinity rules for server scheduling to nodes # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity # |
|
||||||
| controller.allowSnippetAnnotations | bool | `true` | This configuration defines if Ingress Controller should allow users to set their own *-snippet annotations, otherwise this is forbidden / dropped when users add those annotations. Global snippets in ConfigMap are still respected |
|
| controller.allowSnippetAnnotations | bool | `true` | This configuration defines if Ingress Controller should allow users to set their own *-snippet annotations, otherwise this is forbidden / dropped when users add those annotations. Global snippets in ConfigMap are still respected |
|
||||||
| controller.annotations | object | `{}` | Annotations to be added to the controller Deployment or DaemonSet |
|
| controller.annotations | object | `{}` | Annotations to be added to the controller Deployment or DaemonSet # |
|
||||||
| controller.autoscaling.behavior | object | `{}` | |
|
| controller.autoscaling.behavior | object | `{}` | |
|
||||||
| controller.autoscaling.enabled | bool | `false` | |
|
| controller.autoscaling.enabled | bool | `false` | |
|
||||||
| controller.autoscaling.maxReplicas | int | `11` | |
|
| controller.autoscaling.maxReplicas | int | `11` | |
|
||||||
|
@ -291,15 +295,15 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.customTemplate.configMapName | string | `""` | |
|
| controller.customTemplate.configMapName | string | `""` | |
|
||||||
| controller.dnsConfig | object | `{}` | Optionally customize the pod dnsConfig. |
|
| controller.dnsConfig | object | `{}` | Optionally customize the pod dnsConfig. |
|
||||||
| controller.dnsPolicy | string | `"ClusterFirst"` | Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'. By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller to keep resolving names inside the k8s network, use ClusterFirstWithHostNet. |
|
| controller.dnsPolicy | string | `"ClusterFirst"` | Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'. By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller to keep resolving names inside the k8s network, use ClusterFirstWithHostNet. |
|
||||||
| controller.electionID | string | `"ingress-controller-leader"` | Election ID to use for status update |
|
| controller.electionID | string | `""` | Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader' |
|
||||||
| controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. |
|
| controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. # ref: https://github.com/microsoft/mimalloc # |
|
||||||
| controller.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
| controller.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
||||||
| controller.existingScc | string | `""` | Use an existing SCC instead of creating one |
|
| controller.existingScc | string | `""` | Use an existing SCC instead of creating one |
|
||||||
| controller.extraArgs | object | `{}` | Additional command line arguments to pass to nginx-ingress-controller E.g. to specify the default SSL certificate you can use |
|
| controller.extraArgs | object | `{}` | Additional command line arguments to pass to nginx-ingress-controller E.g. to specify the default SSL certificate you can use |
|
||||||
| controller.extraContainers | list | `[]` | Additional containers to be added to the controller pod. See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example. |
|
| controller.extraContainers | list | `[]` | Additional containers to be added to the controller pod. See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example. |
|
||||||
| controller.extraEnvs | list | `[]` | Additional environment variables to set |
|
| controller.extraEnvs | list | `[]` | Additional environment variables to set |
|
||||||
| controller.extraInitContainers | list | `[]` | Containers, which are run before the app containers are started. |
|
| controller.extraInitContainers | list | `[]` | Containers, which are run before the app containers are started. |
|
||||||
| controller.extraModules | list | `[]` | |
|
| controller.extraModules | list | `[]` | Modules, which are mounted into the core nginx image. See values.yaml for a sample to add opentelemetry module |
|
||||||
| controller.extraVolumeMounts | list | `[]` | Additional volumeMounts to the controller main container. |
|
| controller.extraVolumeMounts | list | `[]` | Additional volumeMounts to the controller main container. |
|
||||||
| controller.extraVolumes | list | `[]` | Additional volumes to the controller pod. |
|
| controller.extraVolumes | list | `[]` | Additional volumes to the controller pod. |
|
||||||
| controller.healthCheckHost | string | `""` | Address to bind the health check endpoint. It is better to set this option to the internal node address if the ingress nginx controller is running in the `hostNetwork: true` mode. |
|
| controller.healthCheckHost | string | `""` | Address to bind the health check endpoint. It is better to set this option to the internal node address if the ingress nginx controller is running in the `hostNetwork: true` mode. |
|
||||||
|
@ -311,13 +315,13 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.hostname | object | `{}` | Optionally customize the pod hostname. |
|
| controller.hostname | object | `{}` | Optionally customize the pod hostname. |
|
||||||
| controller.image.allowPrivilegeEscalation | bool | `true` | |
|
| controller.image.allowPrivilegeEscalation | bool | `true` | |
|
||||||
| controller.image.chroot | bool | `false` | |
|
| controller.image.chroot | bool | `false` | |
|
||||||
| controller.image.digest | string | `"sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5"` | |
|
| controller.image.digest | string | `"sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629"` | |
|
||||||
| controller.image.digestChroot | string | `"sha256:0fcb91216a22aae43b374fc2e6a03b8afe9e8c78cbf07a09d75636dc4ea3c191"` | |
|
| controller.image.digestChroot | string | `"sha256:c1c091b88a6c936a83bd7b098662760a87868d12452529bad0d178fb36147345"` | |
|
||||||
| 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.registry | string | `"registry.k8s.io"` | |
|
| controller.image.registry | string | `"registry.k8s.io"` | |
|
||||||
| controller.image.runAsUser | int | `101` | |
|
| controller.image.runAsUser | int | `101` | |
|
||||||
| controller.image.tag | string | `"v1.3.0"` | |
|
| controller.image.tag | string | `"v1.5.1"` | |
|
||||||
| 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.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller-value of the controller that is processing this ingressClass |
|
||||||
|
@ -336,8 +340,8 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.keda.scaledObject.annotations | object | `{}` | |
|
| controller.keda.scaledObject.annotations | object | `{}` | |
|
||||||
| controller.keda.triggers | list | `[]` | |
|
| controller.keda.triggers | list | `[]` | |
|
||||||
| controller.kind | string | `"Deployment"` | Use a `DaemonSet` or `Deployment` |
|
| controller.kind | string | `"Deployment"` | Use a `DaemonSet` or `Deployment` |
|
||||||
| controller.labels | object | `{}` | Labels to be added to the controller Deployment or DaemonSet and other resources that do not have option to specify labels |
|
| controller.labels | object | `{}` | Labels to be added to the controller Deployment or DaemonSet and other resources that do not have option to specify labels # |
|
||||||
| controller.lifecycle | object | `{"preStop":{"exec":{"command":["/wait-shutdown"]}}}` | Improve connection draining when ingress controller pod is deleted using a lifecycle hook: With this new hook, we increased the default terminationGracePeriodSeconds from 30 seconds to 300, allowing the draining of connections up to five minutes. If the active connections end before that, the pod will terminate gracefully at that time. To effectively take advantage of this feature, the Configmap feature worker-shutdown-timeout new value is 240s instead of 10s. |
|
| controller.lifecycle | object | `{"preStop":{"exec":{"command":["/wait-shutdown"]}}}` | Improve connection draining when ingress controller pod is deleted using a lifecycle hook: With this new hook, we increased the default terminationGracePeriodSeconds from 30 seconds to 300, allowing the draining of connections up to five minutes. If the active connections end before that, the pod will terminate gracefully at that time. To effectively take advantage of this feature, the Configmap feature worker-shutdown-timeout new value is 240s instead of 10s. # |
|
||||||
| controller.livenessProbe.failureThreshold | int | `5` | |
|
| controller.livenessProbe.failureThreshold | int | `5` | |
|
||||||
| controller.livenessProbe.httpGet.path | string | `"/healthz"` | |
|
| controller.livenessProbe.httpGet.path | string | `"/healthz"` | |
|
||||||
| controller.livenessProbe.httpGet.port | int | `10254` | |
|
| controller.livenessProbe.httpGet.port | int | `10254` | |
|
||||||
|
@ -346,14 +350,15 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.livenessProbe.periodSeconds | int | `10` | |
|
| controller.livenessProbe.periodSeconds | int | `10` | |
|
||||||
| controller.livenessProbe.successThreshold | int | `1` | |
|
| controller.livenessProbe.successThreshold | int | `1` | |
|
||||||
| controller.livenessProbe.timeoutSeconds | int | `1` | |
|
| controller.livenessProbe.timeoutSeconds | int | `1` | |
|
||||||
| controller.maxmindLicenseKey | string | `""` | Maxmind license key to download GeoLite2 Databases. |
|
| controller.maxmindLicenseKey | string | `""` | Maxmind license key to download GeoLite2 Databases. # https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases |
|
||||||
| controller.metrics.enabled | bool | `false` | |
|
| controller.metrics.enabled | bool | `false` | |
|
||||||
| controller.metrics.port | int | `10254` | |
|
| controller.metrics.port | int | `10254` | |
|
||||||
|
| controller.metrics.portName | string | `"metrics"` | |
|
||||||
| controller.metrics.prometheusRule.additionalLabels | object | `{}` | |
|
| controller.metrics.prometheusRule.additionalLabels | object | `{}` | |
|
||||||
| controller.metrics.prometheusRule.enabled | bool | `false` | |
|
| controller.metrics.prometheusRule.enabled | bool | `false` | |
|
||||||
| controller.metrics.prometheusRule.rules | list | `[]` | |
|
| controller.metrics.prometheusRule.rules | list | `[]` | |
|
||||||
| controller.metrics.service.annotations | object | `{}` | |
|
| controller.metrics.service.annotations | object | `{}` | |
|
||||||
| controller.metrics.service.externalIPs | list | `[]` | List of IP addresses at which the stats-exporter service is available |
|
| controller.metrics.service.externalIPs | list | `[]` | List of IP addresses at which the stats-exporter service is available # Ref: https://kubernetes.io/docs/user-guide/services/#external-ips # |
|
||||||
| controller.metrics.service.loadBalancerSourceRanges | list | `[]` | |
|
| controller.metrics.service.loadBalancerSourceRanges | list | `[]` | |
|
||||||
| controller.metrics.service.servicePort | int | `10254` | |
|
| controller.metrics.service.servicePort | int | `10254` | |
|
||||||
| controller.metrics.service.type | string | `"ClusterIP"` | |
|
| controller.metrics.service.type | string | `"ClusterIP"` | |
|
||||||
|
@ -365,11 +370,11 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.metrics.serviceMonitor.relabelings | list | `[]` | |
|
| controller.metrics.serviceMonitor.relabelings | list | `[]` | |
|
||||||
| controller.metrics.serviceMonitor.scrapeInterval | string | `"30s"` | |
|
| controller.metrics.serviceMonitor.scrapeInterval | string | `"30s"` | |
|
||||||
| controller.metrics.serviceMonitor.targetLabels | list | `[]` | |
|
| controller.metrics.serviceMonitor.targetLabels | list | `[]` | |
|
||||||
| controller.minAvailable | int | `1` | |
|
| controller.minAvailable | int | `1` | Define either 'minAvailable' or 'maxUnavailable', never both. |
|
||||||
| controller.minReadySeconds | int | `0` | `minReadySeconds` to avoid killing pods before we are ready |
|
| controller.minReadySeconds | int | `0` | `minReadySeconds` to avoid killing pods before we are ready # |
|
||||||
| controller.name | string | `"controller"` | |
|
| controller.name | string | `"controller"` | |
|
||||||
| controller.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for controller pod assignment |
|
| controller.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for controller pod assignment # Ref: https://kubernetes.io/docs/user-guide/node-selection/ # |
|
||||||
| controller.podAnnotations | object | `{}` | Annotations to be added to controller pods |
|
| controller.podAnnotations | object | `{}` | Annotations to be added to controller pods # |
|
||||||
| controller.podLabels | object | `{}` | Labels to add to the pod container metadata |
|
| controller.podLabels | object | `{}` | Labels to add to the pod container metadata |
|
||||||
| controller.podSecurityContext | object | `{}` | Security Context policies for controller pods |
|
| controller.podSecurityContext | object | `{}` | Security Context policies for controller pods |
|
||||||
| controller.priorityClassName | string | `""` | |
|
| controller.priorityClassName | string | `""` | |
|
||||||
|
@ -393,17 +398,17 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.scope.namespace | string | `""` | Namespace to limit the controller to; defaults to $(POD_NAMESPACE) |
|
| controller.scope.namespace | string | `""` | Namespace to limit the controller to; defaults to $(POD_NAMESPACE) |
|
||||||
| controller.scope.namespaceSelector | string | `""` | When scope.enabled == false, instead of watching all namespaces, we watching namespaces whose labels only match with namespaceSelector. Format like foo=bar. Defaults to empty, means watching all namespaces. |
|
| controller.scope.namespaceSelector | string | `""` | When scope.enabled == false, instead of watching all namespaces, we watching namespaces whose labels only match with namespaceSelector. Format like foo=bar. Defaults to empty, means watching all namespaces. |
|
||||||
| controller.service.annotations | object | `{}` | |
|
| controller.service.annotations | object | `{}` | |
|
||||||
| controller.service.appProtocol | bool | `true` | If enabled is adding an appProtocol option for Kubernetes service. An appProtocol field replacing annotations that were using for setting a backend protocol. Here is an example for AWS: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http It allows choosing the protocol for each backend specified in the Kubernetes service. See the following GitHub issue for more details about the purpose: https://github.com/kubernetes/kubernetes/issues/40244 Will be ignored for Kubernetes versions older than 1.20 |
|
| controller.service.appProtocol | bool | `true` | If enabled is adding an appProtocol option for Kubernetes service. An appProtocol field replacing annotations that were using for setting a backend protocol. Here is an example for AWS: service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http It allows choosing the protocol for each backend specified in the Kubernetes service. See the following GitHub issue for more details about the purpose: https://github.com/kubernetes/kubernetes/issues/40244 Will be ignored for Kubernetes versions older than 1.20 # |
|
||||||
| controller.service.enableHttp | bool | `true` | |
|
| controller.service.enableHttp | bool | `true` | |
|
||||||
| controller.service.enableHttps | bool | `true` | |
|
| controller.service.enableHttps | bool | `true` | |
|
||||||
| controller.service.enabled | bool | `true` | |
|
| controller.service.enabled | bool | `true` | |
|
||||||
| controller.service.external.enabled | bool | `true` | |
|
| controller.service.external.enabled | bool | `true` | |
|
||||||
| controller.service.externalIPs | list | `[]` | List of IP addresses at which the controller services are available |
|
| controller.service.externalIPs | list | `[]` | List of IP addresses at which the controller services are available # Ref: https://kubernetes.io/docs/user-guide/services/#external-ips # |
|
||||||
| controller.service.internal.annotations | object | `{}` | Annotations are mandatory for the load balancer to come up. Varies with the cloud service. |
|
| controller.service.internal.annotations | object | `{}` | Annotations are mandatory for the load balancer to come up. Varies with the cloud service. |
|
||||||
| controller.service.internal.enabled | bool | `false` | Enables an additional internal load balancer (besides the external one). |
|
| controller.service.internal.enabled | bool | `false` | Enables an additional internal load balancer (besides the external one). |
|
||||||
| controller.service.internal.loadBalancerSourceRanges | list | `[]` | Restrict access For LoadBalancer service. Defaults to 0.0.0.0/0. |
|
| controller.service.internal.loadBalancerSourceRanges | list | `[]` | Restrict access For LoadBalancer service. Defaults to 0.0.0.0/0. |
|
||||||
| controller.service.ipFamilies | list | `["IPv4"]` | List of IP families (e.g. IPv4, IPv6) assigned to the service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. |
|
| controller.service.ipFamilies | list | `["IPv4"]` | List of IP families (e.g. IPv4, IPv6) assigned to the service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/ |
|
||||||
| controller.service.ipFamilyPolicy | string | `"SingleStack"` | Represents the dual-stack-ness requested or required by this Service. Possible values are SingleStack, PreferDualStack or RequireDualStack. The ipFamilies and clusterIPs fields depend on the value of this field. |
|
| controller.service.ipFamilyPolicy | string | `"SingleStack"` | Represents the dual-stack-ness requested or required by this Service. Possible values are SingleStack, PreferDualStack or RequireDualStack. The ipFamilies and clusterIPs fields depend on the value of this field. # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/ |
|
||||||
| controller.service.labels | object | `{}` | |
|
| controller.service.labels | object | `{}` | |
|
||||||
| controller.service.loadBalancerIP | string | `""` | Used by cloud providers to connect the resulting `LoadBalancer` to a pre-existing static IP according to https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer |
|
| controller.service.loadBalancerIP | string | `""` | Used by cloud providers to connect the resulting `LoadBalancer` to a pre-existing static IP according to https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer |
|
||||||
| controller.service.loadBalancerSourceRanges | list | `[]` | |
|
| controller.service.loadBalancerSourceRanges | list | `[]` | |
|
||||||
|
@ -420,12 +425,12 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| controller.sysctls | object | `{}` | See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls |
|
| controller.sysctls | object | `{}` | See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls |
|
||||||
| controller.tcp.annotations | object | `{}` | Annotations to be added to the tcp config configmap |
|
| controller.tcp.annotations | object | `{}` | Annotations to be added to the tcp config configmap |
|
||||||
| controller.tcp.configMapNamespace | string | `""` | Allows customization of the tcp-services-configmap; defaults to $(POD_NAMESPACE) |
|
| controller.tcp.configMapNamespace | string | `""` | Allows customization of the tcp-services-configmap; defaults to $(POD_NAMESPACE) |
|
||||||
| controller.terminationGracePeriodSeconds | int | `300` | `terminationGracePeriodSeconds` to avoid killing pods before we are ready |
|
| controller.terminationGracePeriodSeconds | int | `300` | `terminationGracePeriodSeconds` to avoid killing pods before we are ready # wait up to five minutes for the drain of connections # |
|
||||||
| controller.tolerations | list | `[]` | Node tolerations for server scheduling to nodes with taints |
|
| controller.tolerations | list | `[]` | Node tolerations for server scheduling to nodes with taints # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ # |
|
||||||
| controller.topologySpreadConstraints | list | `[]` | Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in. |
|
| controller.topologySpreadConstraints | list | `[]` | Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in. # Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ # |
|
||||||
| controller.udp.annotations | object | `{}` | Annotations to be added to the udp config configmap |
|
| controller.udp.annotations | object | `{}` | Annotations to be added to the udp config configmap |
|
||||||
| controller.udp.configMapNamespace | string | `""` | Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE) |
|
| controller.udp.configMapNamespace | string | `""` | Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE) |
|
||||||
| controller.updateStrategy | object | `{}` | The update strategy to apply to the Deployment or DaemonSet |
|
| controller.updateStrategy | object | `{}` | The update strategy to apply to the Deployment or DaemonSet # |
|
||||||
| controller.watchIngressWithoutClass | bool | `false` | Process Ingress objects without ingressClass annotation/ingressClassName field Overrides value for --watch-ingress-without-class flag of the controller binary Defaults to false |
|
| controller.watchIngressWithoutClass | bool | `false` | Process Ingress objects without ingressClass annotation/ingressClassName field Overrides value for --watch-ingress-without-class flag of the controller binary Defaults to false |
|
||||||
| defaultBackend.affinity | object | `{}` | |
|
| defaultBackend.affinity | object | `{}` | |
|
||||||
| defaultBackend.autoscaling.annotations | object | `{}` | |
|
| defaultBackend.autoscaling.annotations | object | `{}` | |
|
||||||
|
@ -434,7 +439,7 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| defaultBackend.autoscaling.minReplicas | int | `1` | |
|
| defaultBackend.autoscaling.minReplicas | int | `1` | |
|
||||||
| defaultBackend.autoscaling.targetCPUUtilizationPercentage | int | `50` | |
|
| defaultBackend.autoscaling.targetCPUUtilizationPercentage | int | `50` | |
|
||||||
| defaultBackend.autoscaling.targetMemoryUtilizationPercentage | int | `50` | |
|
| defaultBackend.autoscaling.targetMemoryUtilizationPercentage | int | `50` | |
|
||||||
| defaultBackend.containerSecurityContext | object | `{}` | Security Context policies for controller main container. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls |
|
| defaultBackend.containerSecurityContext | object | `{}` | Security Context policies for controller main container. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls # |
|
||||||
| defaultBackend.enabled | bool | `false` | |
|
| defaultBackend.enabled | bool | `false` | |
|
||||||
| defaultBackend.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
| defaultBackend.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
||||||
| defaultBackend.existingScc | string | `""` | Use an existing SCC instead of creating one |
|
| defaultBackend.existingScc | string | `""` | Use an existing SCC instead of creating one |
|
||||||
|
@ -458,10 +463,10 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| defaultBackend.livenessProbe.timeoutSeconds | int | `5` | |
|
| defaultBackend.livenessProbe.timeoutSeconds | int | `5` | |
|
||||||
| defaultBackend.minAvailable | int | `1` | |
|
| defaultBackend.minAvailable | int | `1` | |
|
||||||
| defaultBackend.name | string | `"defaultbackend"` | |
|
| defaultBackend.name | string | `"defaultbackend"` | |
|
||||||
| defaultBackend.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for default backend pod assignment |
|
| defaultBackend.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for default backend pod assignment # Ref: https://kubernetes.io/docs/user-guide/node-selection/ # |
|
||||||
| defaultBackend.podAnnotations | object | `{}` | Annotations to be added to default backend pods |
|
| defaultBackend.podAnnotations | object | `{}` | Annotations to be added to default backend pods # |
|
||||||
| defaultBackend.podLabels | object | `{}` | Labels to add to the pod container metadata |
|
| defaultBackend.podLabels | object | `{}` | Labels to add to the pod container metadata |
|
||||||
| defaultBackend.podSecurityContext | object | `{}` | Security Context policies for controller pods See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls |
|
| defaultBackend.podSecurityContext | object | `{}` | Security Context policies for controller pods See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for notes on enabling and using sysctls # |
|
||||||
| defaultBackend.port | int | `8080` | |
|
| defaultBackend.port | int | `8080` | |
|
||||||
| defaultBackend.priorityClassName | string | `""` | |
|
| defaultBackend.priorityClassName | string | `""` | |
|
||||||
| defaultBackend.readinessProbe.failureThreshold | int | `6` | |
|
| defaultBackend.readinessProbe.failureThreshold | int | `6` | |
|
||||||
|
@ -472,18 +477,18 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| defaultBackend.replicaCount | int | `1` | |
|
| defaultBackend.replicaCount | int | `1` | |
|
||||||
| defaultBackend.resources | object | `{}` | |
|
| defaultBackend.resources | object | `{}` | |
|
||||||
| defaultBackend.service.annotations | object | `{}` | |
|
| defaultBackend.service.annotations | object | `{}` | |
|
||||||
| defaultBackend.service.externalIPs | list | `[]` | List of IP addresses at which the default backend service is available |
|
| defaultBackend.service.externalIPs | list | `[]` | List of IP addresses at which the default backend service is available # Ref: https://kubernetes.io/docs/user-guide/services/#external-ips # |
|
||||||
| defaultBackend.service.loadBalancerSourceRanges | list | `[]` | |
|
| defaultBackend.service.loadBalancerSourceRanges | list | `[]` | |
|
||||||
| defaultBackend.service.servicePort | int | `80` | |
|
| defaultBackend.service.servicePort | int | `80` | |
|
||||||
| defaultBackend.service.type | string | `"ClusterIP"` | |
|
| defaultBackend.service.type | string | `"ClusterIP"` | |
|
||||||
| defaultBackend.serviceAccount.automountServiceAccountToken | bool | `true` | |
|
| defaultBackend.serviceAccount.automountServiceAccountToken | bool | `true` | |
|
||||||
| defaultBackend.serviceAccount.create | bool | `true` | |
|
| defaultBackend.serviceAccount.create | bool | `true` | |
|
||||||
| defaultBackend.serviceAccount.name | string | `""` | |
|
| defaultBackend.serviceAccount.name | string | `""` | |
|
||||||
| defaultBackend.tolerations | list | `[]` | Node tolerations for server scheduling to nodes with taints |
|
| defaultBackend.tolerations | list | `[]` | Node tolerations for server scheduling to nodes with taints # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ # |
|
||||||
| dhParam | string | `nil` | A base64-encoded Diffie-Hellman parameter. This can be generated with: `openssl dhparam 4096 2> /dev/null | base64` |
|
| dhParam | string | `nil` | A base64-encoded Diffie-Hellman parameter. This can be generated with: `openssl dhparam 4096 2> /dev/null | base64` # Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param |
|
||||||
| imagePullSecrets | list | `[]` | Optional array of imagePullSecrets containing private registry credentials |
|
| imagePullSecrets | list | `[]` | Optional array of imagePullSecrets containing private registry credentials # Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ |
|
||||||
| podSecurityPolicy.enabled | bool | `false` | |
|
| podSecurityPolicy.enabled | bool | `false` | |
|
||||||
| portNamePrefix | string | `""` | Prefix for TCP and UDP ports names in ingress controller service |
|
| portNamePrefix | string | `""` | 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 |
|
||||||
| rbac.create | bool | `true` | |
|
| rbac.create | bool | `true` | |
|
||||||
| rbac.scope | bool | `false` | |
|
| rbac.scope | bool | `false` | |
|
||||||
| revisionHistoryLimit | int | `10` | Rollback limit |
|
| revisionHistoryLimit | int | `10` | Rollback limit |
|
||||||
|
@ -492,6 +497,6 @@ Kubernetes: `>=1.20.0-0`
|
||||||
| serviceAccount.automountServiceAccountToken | bool | `true` | |
|
| serviceAccount.automountServiceAccountToken | bool | `true` | |
|
||||||
| serviceAccount.create | bool | `true` | |
|
| serviceAccount.create | bool | `true` | |
|
||||||
| serviceAccount.name | string | `""` | |
|
| serviceAccount.name | string | `""` | |
|
||||||
| tcp | object | `{}` | TCP service key-value pairs |
|
| tcp | object | `{}` | TCP service key-value pairs # Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md # |
|
||||||
| udp | object | `{}` | UDP service key-value pairs |
|
| udp | object | `{}` | UDP service key-value pairs # Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md # |
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
controller:
|
||||||
|
image:
|
||||||
|
repository: ingress-controller/controller
|
||||||
|
tag: 1.0.0-dev
|
||||||
|
digest: null
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
containerSecurityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
extraModules:
|
||||||
|
- name: opentelemetry
|
||||||
|
image: busybox
|
|
@ -0,0 +1,12 @@
|
||||||
|
controller:
|
||||||
|
image:
|
||||||
|
repository: ingress-controller/controller
|
||||||
|
tag: 1.0.0-dev
|
||||||
|
digest: null
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
extraModules:
|
||||||
|
- name: opentelemetry
|
||||||
|
image: busybox
|
||||||
|
containerSecurityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
|
@ -85,6 +85,16 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
|
||||||
{{- printf "%s-%s" (include "ingress-nginx.fullname" .) .Values.controller.name | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-%s" (include "ingress-nginx.fullname" .) .Values.controller.name | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Construct a unique electionID.
|
||||||
|
Users can provide an override for an explicit electionID if they want via `.Values.controller.electionID`
|
||||||
|
*/}}
|
||||||
|
{{- define "ingress-nginx.controller.electionID" -}}
|
||||||
|
{{- $defElectionID := printf "%s-leader" (include "ingress-nginx.fullname" .) -}}
|
||||||
|
{{- $electionID := default $defElectionID .Values.controller.electionID -}}
|
||||||
|
{{- print $electionID -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Construct the path for the publish-service.
|
Construct the path for the publish-service.
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
- --publish-service={{ template "ingress-nginx.controller.publishServicePath" . }}-internal
|
- --publish-service={{ template "ingress-nginx.controller.publishServicePath" . }}-internal
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- --election-id={{ .Values.controller.electionID }}
|
- --election-id={{ include "ingress-nginx.controller.electionID" . }}
|
||||||
- --controller-class={{ .Values.controller.ingressClassResource.controllerValue }}
|
- --controller-class={{ .Values.controller.ingressClassResource.controllerValue }}
|
||||||
{{- if .Values.controller.ingressClass }}
|
{{- if .Values.controller.ingressClass }}
|
||||||
- --ingress-class={{ .Values.controller.ingressClass }}
|
- --ingress-class={{ .Values.controller.ingressClass }}
|
||||||
|
|
|
@ -59,8 +59,9 @@ spec:
|
||||||
{{- if .Values.controller.admissionWebhooks.extraEnvs }}
|
{{- if .Values.controller.admissionWebhooks.extraEnvs }}
|
||||||
{{- toYaml .Values.controller.admissionWebhooks.extraEnvs | nindent 12 }}
|
{{- toYaml .Values.controller.admissionWebhooks.extraEnvs | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
securityContext:
|
{{- if .Values.controller.admissionWebhooks.createSecretJob.securityContext }}
|
||||||
allowPrivilegeEscalation: false
|
securityContext: {{ toYaml .Values.controller.admissionWebhooks.createSecretJob.securityContext | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.controller.admissionWebhooks.createSecretJob.resources }}
|
{{- if .Values.controller.admissionWebhooks.createSecretJob.resources }}
|
||||||
resources: {{ toYaml .Values.controller.admissionWebhooks.createSecretJob.resources | nindent 12 }}
|
resources: {{ toYaml .Values.controller.admissionWebhooks.createSecretJob.resources | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -72,8 +73,8 @@ spec:
|
||||||
{{- if .Values.controller.admissionWebhooks.patch.tolerations }}
|
{{- if .Values.controller.admissionWebhooks.patch.tolerations }}
|
||||||
tolerations: {{ toYaml .Values.controller.admissionWebhooks.patch.tolerations | nindent 8 }}
|
tolerations: {{ toYaml .Values.controller.admissionWebhooks.patch.tolerations | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.controller.admissionWebhooks.patch.securityContext }}
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsNonRoot: true
|
{{- toYaml .Values.controller.admissionWebhooks.patch.securityContext | nindent 8 }}
|
||||||
runAsUser: {{ .Values.controller.admissionWebhooks.patch.runAsUser }}
|
{{- end }}
|
||||||
fsGroup: {{ .Values.controller.admissionWebhooks.patch.fsGroup }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -61,8 +61,9 @@ spec:
|
||||||
{{- if .Values.controller.admissionWebhooks.extraEnvs }}
|
{{- if .Values.controller.admissionWebhooks.extraEnvs }}
|
||||||
{{- toYaml .Values.controller.admissionWebhooks.extraEnvs | nindent 12 }}
|
{{- toYaml .Values.controller.admissionWebhooks.extraEnvs | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
securityContext:
|
{{- if .Values.controller.admissionWebhooks.patchWebhookJob.securityContext }}
|
||||||
allowPrivilegeEscalation: false
|
securityContext: {{ toYaml .Values.controller.admissionWebhooks.patchWebhookJob.securityContext | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.controller.admissionWebhooks.patchWebhookJob.resources }}
|
{{- if .Values.controller.admissionWebhooks.patchWebhookJob.resources }}
|
||||||
resources: {{ toYaml .Values.controller.admissionWebhooks.patchWebhookJob.resources | nindent 12 }}
|
resources: {{ toYaml .Values.controller.admissionWebhooks.patchWebhookJob.resources | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -74,8 +75,8 @@ spec:
|
||||||
{{- if .Values.controller.admissionWebhooks.patch.tolerations }}
|
{{- if .Values.controller.admissionWebhooks.patch.tolerations }}
|
||||||
tolerations: {{ toYaml .Values.controller.admissionWebhooks.patch.tolerations | nindent 8 }}
|
tolerations: {{ toYaml .Values.controller.admissionWebhooks.patch.tolerations | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.controller.admissionWebhooks.patch.securityContext }}
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsNonRoot: true
|
{{- toYaml .Values.controller.admissionWebhooks.patch.securityContext | nindent 8 }}
|
||||||
runAsUser: {{ .Values.controller.admissionWebhooks.patch.runAsUser }}
|
{{- end }}
|
||||||
fsGroup: {{ .Values.controller.admissionWebhooks.patch.fsGroup }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{- if (semverCompare "<1.25.0-0" .Capabilities.KubeVersion.Version) }}
|
||||||
{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.podSecurityPolicy.enabled (empty .Values.controller.admissionWebhooks.existingPsp) -}}
|
{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.podSecurityPolicy.enabled (empty .Values.controller.admissionWebhooks.existingPsp) -}}
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: policy/v1beta1
|
||||||
kind: PodSecurityPolicy
|
kind: PodSecurityPolicy
|
||||||
|
@ -37,3 +38,4 @@ spec:
|
||||||
- secret
|
- secret
|
||||||
- downwardAPI
|
- downwardAPI
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -89,6 +89,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -102,8 +102,12 @@ spec:
|
||||||
{{- if .Values.controller.startupProbe }}
|
{{- if .Values.controller.startupProbe }}
|
||||||
startupProbe: {{ toYaml .Values.controller.startupProbe | nindent 12 }}
|
startupProbe: {{ toYaml .Values.controller.startupProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.controller.livenessProbe }}
|
||||||
livenessProbe: {{ toYaml .Values.controller.livenessProbe | nindent 12 }}
|
livenessProbe: {{ toYaml .Values.controller.livenessProbe | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.controller.readinessProbe }}
|
||||||
readinessProbe: {{ toYaml .Values.controller.readinessProbe | nindent 12 }}
|
readinessProbe: {{ toYaml .Values.controller.readinessProbe | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
{{- range $key, $value := .Values.controller.containerPort }}
|
{{- range $key, $value := .Values.controller.containerPort }}
|
||||||
- name: {{ $key }}
|
- name: {{ $key }}
|
||||||
|
@ -114,7 +118,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.controller.metrics.enabled }}
|
{{- if .Values.controller.metrics.enabled }}
|
||||||
- name: metrics
|
- name: {{ .Values.controller.metrics.portName }}
|
||||||
containerPort: {{ .Values.controller.metrics.port }}
|
containerPort: {{ .Values.controller.metrics.port }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -177,6 +181,12 @@ spec:
|
||||||
- name: {{ .Name }}
|
- name: {{ .Name }}
|
||||||
image: {{ .Image }}
|
image: {{ .Image }}
|
||||||
command: ['sh', '-c', '/usr/local/bin/init_module.sh']
|
command: ['sh', '-c', '/usr/local/bin/init_module.sh']
|
||||||
|
{{- if (or $.Values.controller.containerSecurityContext .containerSecurityContext) }}
|
||||||
|
securityContext: {{ .containerSecurityContext | default $.Values.controller.containerSecurityContext | toYaml | nindent 14 }}
|
||||||
|
{{- end }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: modules
|
||||||
|
mountPath: /modules_mount
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -106,8 +106,12 @@ spec:
|
||||||
{{- if .Values.controller.startupProbe }}
|
{{- if .Values.controller.startupProbe }}
|
||||||
startupProbe: {{ toYaml .Values.controller.startupProbe | nindent 12 }}
|
startupProbe: {{ toYaml .Values.controller.startupProbe | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.controller.livenessProbe }}
|
||||||
livenessProbe: {{ toYaml .Values.controller.livenessProbe | nindent 12 }}
|
livenessProbe: {{ toYaml .Values.controller.livenessProbe | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.controller.readinessProbe }}
|
||||||
readinessProbe: {{ toYaml .Values.controller.readinessProbe | nindent 12 }}
|
readinessProbe: {{ toYaml .Values.controller.readinessProbe | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
{{- range $key, $value := .Values.controller.containerPort }}
|
{{- range $key, $value := .Values.controller.containerPort }}
|
||||||
- name: {{ $key }}
|
- name: {{ $key }}
|
||||||
|
@ -118,7 +122,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.controller.metrics.enabled }}
|
{{- if .Values.controller.metrics.enabled }}
|
||||||
- name: metrics
|
- name: {{ .Values.controller.metrics.portName }}
|
||||||
containerPort: {{ .Values.controller.metrics.port }}
|
containerPort: {{ .Values.controller.metrics.port }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -147,7 +151,11 @@ spec:
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- if .Values.controller.extraModules }}
|
{{- if .Values.controller.extraModules }}
|
||||||
- name: modules
|
- name: modules
|
||||||
|
{{ if .Values.controller.image.chroot }}
|
||||||
|
mountPath: /chroot/modules_mount
|
||||||
|
{{ else }}
|
||||||
mountPath: /modules_mount
|
mountPath: /modules_mount
|
||||||
|
{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.controller.customTemplate.configMapName }}
|
{{- if .Values.controller.customTemplate.configMapName }}
|
||||||
- mountPath: /etc/nginx/template
|
- mountPath: /etc/nginx/template
|
||||||
|
@ -179,6 +187,9 @@ spec:
|
||||||
- name: {{ .name }}
|
- name: {{ .name }}
|
||||||
image: {{ .image }}
|
image: {{ .image }}
|
||||||
command: ['sh', '-c', '/usr/local/bin/init_module.sh']
|
command: ['sh', '-c', '/usr/local/bin/init_module.sh']
|
||||||
|
{{- if (or $.Values.controller.containerSecurityContext .containerSecurityContext) }}
|
||||||
|
securityContext: {{ .containerSecurityContext | default $.Values.controller.containerSecurityContext | toYaml | nindent 14 }}
|
||||||
|
{{- end }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: modules
|
- name: modules
|
||||||
mountPath: /modules_mount
|
mountPath: /modules_mount
|
||||||
|
|
|
@ -15,5 +15,9 @@ 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 .Values.controller.minAvailable }}
|
||||||
minAvailable: {{ .Values.controller.minAvailable }}
|
minAvailable: {{ .Values.controller.minAvailable }}
|
||||||
|
{{- else if .Values.controller.maxUnavailable }}
|
||||||
|
maxUnavailable: {{ .Values.controller.maxUnavailable }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{- if (semverCompare "<1.25.0-0" .Capabilities.KubeVersion.Version) }}
|
||||||
{{- if and .Values.podSecurityPolicy.enabled (empty .Values.controller.existingPsp) -}}
|
{{- if and .Values.podSecurityPolicy.enabled (empty .Values.controller.existingPsp) -}}
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: policy/v1beta1
|
||||||
kind: PodSecurityPolicy
|
kind: PodSecurityPolicy
|
||||||
|
@ -90,3 +91,4 @@ spec:
|
||||||
seLinux:
|
seLinux:
|
||||||
rule: 'RunAsAny'
|
rule: 'RunAsAny'
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -58,12 +58,17 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
# TODO(Jintao Zhang)
|
||||||
|
# Once we release a new version of the controller,
|
||||||
|
# we will be able to remove the configmap related permissions
|
||||||
|
# We have used the Lease API for selection
|
||||||
|
# ref: https://github.com/kubernetes/ingress-nginx/pull/8921
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- {{ .Values.controller.electionID }}
|
- {{ include "ingress-nginx.controller.electionID" . }}
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- update
|
- update
|
||||||
|
@ -78,7 +83,7 @@ rules:
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- {{ .Values.controller.electionID }}
|
- {{ include "ingress-nginx.controller.electionID" . }}
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- update
|
- update
|
||||||
|
@ -95,6 +100,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
{{- if .Values.podSecurityPolicy.enabled }}
|
{{- if .Values.podSecurityPolicy.enabled }}
|
||||||
- apiGroups: [{{ template "podSecurityPolicy.apiGroup" . }}]
|
- apiGroups: [{{ template "podSecurityPolicy.apiGroup" . }}]
|
||||||
resources: ['podsecuritypolicies']
|
resources: ['podsecuritypolicies']
|
||||||
|
|
|
@ -31,10 +31,10 @@ spec:
|
||||||
externalTrafficPolicy: {{ .Values.controller.metrics.service.externalTrafficPolicy }}
|
externalTrafficPolicy: {{ .Values.controller.metrics.service.externalTrafficPolicy }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: metrics
|
- name: {{ .Values.controller.metrics.portName }}
|
||||||
port: {{ .Values.controller.metrics.service.servicePort }}
|
port: {{ .Values.controller.metrics.service.servicePort }}
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
targetPort: metrics
|
targetPort: {{ .Values.controller.metrics.portName }}
|
||||||
{{- $setNodePorts := (or (eq .Values.controller.metrics.service.type "NodePort") (eq .Values.controller.metrics.service.type "LoadBalancer")) }}
|
{{- $setNodePorts := (or (eq .Values.controller.metrics.service.type "NodePort") (eq .Values.controller.metrics.service.type "LoadBalancer")) }}
|
||||||
{{- if (and $setNodePorts (not (empty .Values.controller.metrics.service.nodePort))) }}
|
{{- if (and $setNodePorts (not (empty .Values.controller.metrics.service.nodePort))) }}
|
||||||
nodePort: {{ .Values.controller.metrics.service.nodePort }}
|
nodePort: {{ .Values.controller.metrics.service.nodePort }}
|
||||||
|
|
|
@ -12,7 +12,7 @@ metadata:
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{- if .Values.serviceAccount.annotations }}
|
{{- if .Values.serviceAccount.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.serviceAccount.annotations | indent 4 }}
|
{{- toYaml .Values.serviceAccount.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -14,7 +14,7 @@ metadata:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
endpoints:
|
endpoints:
|
||||||
- port: metrics
|
- port: {{ .Values.controller.metrics.portName }}
|
||||||
interval: {{ .Values.controller.metrics.serviceMonitor.scrapeInterval }}
|
interval: {{ .Values.controller.metrics.serviceMonitor.scrapeInterval }}
|
||||||
{{- if .Values.controller.metrics.serviceMonitor.honorLabels }}
|
{{- if .Values.controller.metrics.serviceMonitor.honorLabels }}
|
||||||
honorLabels: true
|
honorLabels: true
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
{{- if .Values.controller.admissionWebhooks.enabled }}
|
||||||
|
{{- if .Values.controller.admissionWebhooks.networkPolicyEnabled }}
|
||||||
|
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: {{ include "ingress-nginx.fullname" . }}-webhooks-allow
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
spec:
|
||||||
|
ingress:
|
||||||
|
- {}
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ include "ingress-nginx.name" . }}
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{- if (semverCompare "<1.25.0-0" .Capabilities.KubeVersion.Version) }}
|
||||||
{{- if and .Values.podSecurityPolicy.enabled .Values.defaultBackend.enabled (empty .Values.defaultBackend.existingPsp) -}}
|
{{- if and .Values.podSecurityPolicy.enabled .Values.defaultBackend.enabled (empty .Values.defaultBackend.existingPsp) -}}
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: policy/v1beta1
|
||||||
kind: PodSecurityPolicy
|
kind: PodSecurityPolicy
|
||||||
|
@ -34,3 +35,4 @@ spec:
|
||||||
- secret
|
- secret
|
||||||
- downwardAPI
|
- downwardAPI
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -23,9 +23,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.3.0"
|
tag: "v1.5.1"
|
||||||
digest: sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
digest: sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
digestChroot: sha256:0fcb91216a22aae43b374fc2e6a03b8afe9e8c78cbf07a09d75636dc4ea3c191
|
digestChroot: sha256:c1c091b88a6c936a83bd7b098662760a87868d12452529bad0d178fb36147345
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# www-data -> uid 101
|
# www-data -> uid 101
|
||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
|
@ -102,8 +102,8 @@ controller:
|
||||||
# -- 'hostPort' https port
|
# -- 'hostPort' https port
|
||||||
https: 443
|
https: 443
|
||||||
|
|
||||||
# -- Election ID to use for status update
|
# -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
|
||||||
electionID: ingress-controller-leader
|
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
|
## IngressClass resources are supported since k8s >= 1.18 and required since k8s >= 1.19
|
||||||
|
@ -348,7 +348,10 @@ controller:
|
||||||
|
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
|
# -- Define either 'minAvailable' or 'maxUnavailable', never both.
|
||||||
minAvailable: 1
|
minAvailable: 1
|
||||||
|
# -- Define either 'minAvailable' or 'maxUnavailable', never both.
|
||||||
|
# maxUnavailable: 1
|
||||||
|
|
||||||
## Define requests resources to avoid probe issues due to CPU utilization in busy nodes
|
## Define requests resources to avoid probe issues due to CPU utilization in busy nodes
|
||||||
## ref: https://github.com/kubernetes/ingress-nginx/issues/4735#issuecomment-551204903
|
## ref: https://github.com/kubernetes/ingress-nginx/issues/4735#issuecomment-551204903
|
||||||
|
@ -372,7 +375,7 @@ controller:
|
||||||
behavior: {}
|
behavior: {}
|
||||||
# scaleDown:
|
# scaleDown:
|
||||||
# stabilizationWindowSeconds: 300
|
# stabilizationWindowSeconds: 300
|
||||||
# policies:
|
# policies:
|
||||||
# - type: Pods
|
# - type: Pods
|
||||||
# value: 1
|
# value: 1
|
||||||
# periodSeconds: 180
|
# periodSeconds: 180
|
||||||
|
@ -580,10 +583,12 @@ controller:
|
||||||
# image: busybox
|
# image: busybox
|
||||||
# command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
|
# command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
|
||||||
|
|
||||||
|
# -- Modules, which are mounted into the core nginx image. See values.yaml for a sample to add opentelemetry module
|
||||||
extraModules: []
|
extraModules: []
|
||||||
## Modules, which are mounted into the core nginx image
|
|
||||||
# - name: opentelemetry
|
# - name: opentelemetry
|
||||||
# image: registry.k8s.io/ingress-nginx/opentelemetry:v20220801-g00ee51f09@sha256:482562feba02ad178411efc284f8eb803a185e3ea5588b6111ccbc20b816b427
|
# image: registry.k8s.io/ingress-nginx/opentelemetry:v20220906-g981ce38a7@sha256:aa079daa7efd93aa830e26483a49a6343354518360929494bad1d0ad3303142e
|
||||||
|
# containerSecurityContext:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
#
|
#
|
||||||
# The image must contain a `/usr/local/bin/init_module.sh` executable, which
|
# The image must contain a `/usr/local/bin/init_module.sh` executable, which
|
||||||
# will be executed as initContainers, to move its config files within the
|
# will be executed as initContainers, to move its config files within the
|
||||||
|
@ -618,6 +623,7 @@ controller:
|
||||||
|
|
||||||
# -- Use an existing PSP instead of creating one
|
# -- Use an existing PSP instead of creating one
|
||||||
existingPsp: ""
|
existingPsp: ""
|
||||||
|
networkPolicyEnabled: false
|
||||||
|
|
||||||
# -- Use an existing SCC instead of creating one
|
# -- Use an existing SCC instead of creating one
|
||||||
existingScc: ""
|
existingScc: ""
|
||||||
|
@ -632,6 +638,8 @@ controller:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
|
|
||||||
createSecretJob:
|
createSecretJob:
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
resources: {}
|
resources: {}
|
||||||
# limits:
|
# limits:
|
||||||
# cpu: 10m
|
# cpu: 10m
|
||||||
|
@ -641,6 +649,8 @@ controller:
|
||||||
# memory: 20Mi
|
# memory: 20Mi
|
||||||
|
|
||||||
patchWebhookJob:
|
patchWebhookJob:
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
resources: {}
|
resources: {}
|
||||||
|
|
||||||
patch:
|
patch:
|
||||||
|
@ -651,8 +661,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.3.0
|
tag: v20220916-gd32f8c343
|
||||||
digest: sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
digest: sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# -- Provide a priority class name to the webhook patching job
|
# -- Provide a priority class name to the webhook patching job
|
||||||
##
|
##
|
||||||
|
@ -663,11 +673,15 @@ controller:
|
||||||
tolerations: []
|
tolerations: []
|
||||||
# -- Labels to be added to patch job resources
|
# -- Labels to be added to patch job resources
|
||||||
labels: {}
|
labels: {}
|
||||||
runAsUser: 2000
|
securityContext:
|
||||||
fsGroup: 2000
|
runAsNonRoot: true
|
||||||
|
runAsUser: 2000
|
||||||
|
fsGroup: 2000
|
||||||
|
|
||||||
|
|
||||||
metrics:
|
metrics:
|
||||||
port: 10254
|
port: 10254
|
||||||
|
portName: metrics
|
||||||
# if this port is changed, change healthz-port: in extraArgs: accordingly
|
# if this port is changed, change healthz-port: in extraArgs: accordingly
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
|
|
@ -22,11 +22,13 @@ import (
|
||||||
|
|
||||||
appsv1 "k8s.io/api/apps/v1"
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
apiv1 "k8s.io/api/core/v1"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
|
discoveryv1 "k8s.io/api/discovery/v1"
|
||||||
networking "k8s.io/api/networking/v1"
|
networking "k8s.io/api/networking/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/cli-runtime/pkg/genericclioptions"
|
"k8s.io/cli-runtime/pkg/genericclioptions"
|
||||||
appsv1client "k8s.io/client-go/kubernetes/typed/apps/v1"
|
appsv1client "k8s.io/client-go/kubernetes/typed/apps/v1"
|
||||||
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||||
|
discoveryv1client "k8s.io/client-go/kubernetes/typed/discovery/v1"
|
||||||
typednetworking "k8s.io/client-go/kubernetes/typed/networking/v1"
|
typednetworking "k8s.io/client-go/kubernetes/typed/networking/v1"
|
||||||
|
|
||||||
"k8s.io/ingress-nginx/cmd/plugin/util"
|
"k8s.io/ingress-nginx/cmd/plugin/util"
|
||||||
|
@ -129,55 +131,61 @@ func GetIngressDefinitions(flags *genericclioptions.ConfigFlags, namespace strin
|
||||||
return pods.Items, nil
|
return pods.Items, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNumEndpoints counts the number of endpoints for the service with the given name
|
// GetNumEndpoints counts the number of endpointslices adresses for the service with the given name
|
||||||
func GetNumEndpoints(flags *genericclioptions.ConfigFlags, namespace string, serviceName string) (*int, error) {
|
func GetNumEndpoints(flags *genericclioptions.ConfigFlags, namespace string, serviceName string) (*int, error) {
|
||||||
endpoints, err := GetEndpointsByName(flags, namespace, serviceName)
|
epss, err := GetEndpointSlicesByName(flags, namespace, serviceName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if endpoints == nil {
|
if len(epss) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ret := 0
|
ret := 0
|
||||||
for _, subset := range endpoints.Subsets {
|
for _, eps := range epss {
|
||||||
ret += len(subset.Addresses)
|
for _, ep := range eps.Endpoints {
|
||||||
|
ret += len(ep.Addresses)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return &ret, nil
|
return &ret, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetEndpointsByName returns the endpoints for the service with the given name
|
// GetEndpointSlicesByName returns the endpointSlices for the service with the given name
|
||||||
func GetEndpointsByName(flags *genericclioptions.ConfigFlags, namespace string, name string) (*apiv1.Endpoints, error) {
|
func GetEndpointSlicesByName(flags *genericclioptions.ConfigFlags, namespace string, name string) ([]discoveryv1.EndpointSlice, error) {
|
||||||
allEndpoints, err := getEndpoints(flags, namespace)
|
allEndpointsSlices, err := getEndpointSlices(flags, namespace)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
var eps []discoveryv1.EndpointSlice
|
||||||
for _, endpoints := range allEndpoints {
|
for _, slice := range allEndpointsSlices {
|
||||||
if endpoints.Name == name {
|
if svcName, ok := slice.ObjectMeta.GetLabels()[discoveryv1.LabelServiceName]; ok {
|
||||||
return &endpoints, nil
|
if svcName == name {
|
||||||
|
eps = append(eps, slice)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, nil
|
return eps, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var endpointsCache = make(map[string]*[]apiv1.Endpoints)
|
var endpointSlicesCache = make(map[string]*[]discoveryv1.EndpointSlice)
|
||||||
|
|
||||||
|
func getEndpointSlices(flags *genericclioptions.ConfigFlags, namespace string) ([]discoveryv1.EndpointSlice, error) {
|
||||||
|
cachedEndpointSlices, ok := endpointSlicesCache[namespace]
|
||||||
|
|
||||||
func getEndpoints(flags *genericclioptions.ConfigFlags, namespace string) ([]apiv1.Endpoints, error) {
|
|
||||||
cachedEndpoints, ok := endpointsCache[namespace]
|
|
||||||
if ok {
|
if ok {
|
||||||
return *cachedEndpoints, nil
|
return *cachedEndpointSlices, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if namespace != "" {
|
if namespace != "" {
|
||||||
tryAllNamespacesEndpointsCache(flags)
|
tryAllNamespacesEndpointSlicesCache(flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
cachedEndpoints = tryFilteringEndpointsFromAllNamespacesCache(flags, namespace)
|
cachedEndpointSlices = tryFilteringEndpointSlicesFromAllNamespacesCache(flags, namespace)
|
||||||
if cachedEndpoints != nil {
|
|
||||||
return *cachedEndpoints, nil
|
if cachedEndpointSlices != nil {
|
||||||
|
return *cachedEndpointSlices, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
rawConfig, err := flags.ToRESTConfig()
|
rawConfig, err := flags.ToRESTConfig()
|
||||||
|
@ -185,42 +193,41 @@ func getEndpoints(flags *genericclioptions.ConfigFlags, namespace string) ([]api
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
api, err := corev1.NewForConfig(rawConfig)
|
api, err := discoveryv1client.NewForConfig(rawConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
endpointSlicesList, err := api.EndpointSlices(namespace).List(context.TODO(), metav1.ListOptions{})
|
||||||
endpointsList, err := api.Endpoints(namespace).List(context.TODO(), metav1.ListOptions{})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
endpoints := endpointsList.Items
|
endpointSlices := endpointSlicesList.Items
|
||||||
|
|
||||||
endpointsCache[namespace] = &endpoints
|
endpointSlicesCache[namespace] = &endpointSlices
|
||||||
return endpoints, nil
|
return endpointSlices, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func tryAllNamespacesEndpointsCache(flags *genericclioptions.ConfigFlags) {
|
func tryAllNamespacesEndpointSlicesCache(flags *genericclioptions.ConfigFlags) {
|
||||||
_, ok := endpointsCache[""]
|
_, ok := endpointSlicesCache[""]
|
||||||
if !ok {
|
if !ok {
|
||||||
_, err := getEndpoints(flags, "")
|
_, err := getEndpointSlices(flags, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
endpointsCache[""] = nil
|
endpointSlicesCache[""] = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func tryFilteringEndpointsFromAllNamespacesCache(flags *genericclioptions.ConfigFlags, namespace string) *[]apiv1.Endpoints {
|
func tryFilteringEndpointSlicesFromAllNamespacesCache(flags *genericclioptions.ConfigFlags, namespace string) *[]discoveryv1.EndpointSlice {
|
||||||
allEndpoints := endpointsCache[""]
|
allEndpointSlices := endpointSlicesCache[""]
|
||||||
if allEndpoints != nil {
|
if allEndpointSlices != nil {
|
||||||
endpoints := make([]apiv1.Endpoints, 0)
|
endpointSlices := make([]discoveryv1.EndpointSlice, 0)
|
||||||
for _, thisEndpoints := range *allEndpoints {
|
for _, slice := range *allEndpointSlices {
|
||||||
if thisEndpoints.Namespace == namespace {
|
if slice.Namespace == namespace {
|
||||||
endpoints = append(endpoints, thisEndpoints)
|
endpointSlices = append(endpointSlices, slice)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
endpointsCache[namespace] = &endpoints
|
endpointSlicesCache[namespace] = &endpointSlices
|
||||||
return &endpoints
|
return &endpointSlices
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -327,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -343,7 +359,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -376,7 +392,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -399,7 +415,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -421,7 +437,7 @@ spec:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -439,7 +455,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -511,7 +527,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -522,7 +538,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -536,7 +552,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -558,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -569,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -585,7 +601,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -607,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -620,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -334,7 +350,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -352,7 +368,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -385,7 +401,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -408,7 +424,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -430,7 +446,7 @@ spec:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -448,7 +464,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -523,7 +539,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -534,7 +550,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -548,7 +564,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -570,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -581,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -597,7 +613,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -619,7 +635,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -632,7 +648,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -327,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -339,7 +355,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -371,7 +387,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -394,7 +410,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -415,7 +431,7 @@ spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -433,7 +449,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -505,7 +521,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -516,7 +532,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -530,7 +546,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -552,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -563,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -579,7 +595,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -601,7 +617,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -614,7 +630,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -327,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -339,7 +355,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -372,7 +388,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -395,7 +411,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -417,7 +433,7 @@ spec:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -435,7 +451,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -507,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -518,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -532,7 +548,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -554,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -565,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -581,7 +597,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -603,7 +619,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -616,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -342,7 +358,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -375,7 +391,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -398,7 +414,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -420,7 +436,7 @@ spec:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -438,7 +454,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -510,7 +526,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -521,7 +537,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -535,7 +551,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -557,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -568,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -584,7 +600,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -606,7 +622,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -619,7 +635,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -327,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -348,7 +364,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -381,7 +397,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -404,7 +420,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -426,7 +442,7 @@ spec:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -444,7 +460,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -516,7 +532,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -527,7 +543,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -541,7 +557,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -563,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -574,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -590,7 +606,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -612,7 +628,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -625,7 +641,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -327,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -339,7 +355,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -371,7 +387,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -394,7 +410,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -419,7 +435,7 @@ spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -439,7 +455,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -521,7 +537,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -532,7 +548,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -546,7 +562,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -568,7 +584,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -579,7 +595,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -595,7 +611,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -617,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -630,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -93,7 +93,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -108,7 +108,7 @@ rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- coordination.k8s.io
|
- coordination.k8s.io
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- ingress-controller-leader
|
- ingress-nginx-leader
|
||||||
resources:
|
resources:
|
||||||
- leases
|
- leases
|
||||||
verbs:
|
verbs:
|
||||||
|
@ -127,6 +127,14 @@ rules:
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- patch
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
|
@ -136,7 +144,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
|
@ -155,7 +163,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -220,6 +228,14 @@ rules:
|
||||||
- get
|
- get
|
||||||
- list
|
- list
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- discovery.k8s.io
|
||||||
|
resources:
|
||||||
|
- endpointslices
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
|
@ -229,7 +245,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
|
@ -248,7 +264,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -268,7 +284,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
|
@ -287,7 +303,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -306,7 +322,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
@ -328,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
---
|
---
|
||||||
|
@ -342,7 +358,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -375,7 +391,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller-admission
|
name: ingress-nginx-controller-admission
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -398,7 +414,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-controller
|
name: ingress-nginx-controller
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -420,7 +436,7 @@ spec:
|
||||||
- args:
|
- args:
|
||||||
- /nginx-ingress-controller
|
- /nginx-ingress-controller
|
||||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
- --election-id=ingress-controller-leader
|
- --election-id=ingress-nginx-leader
|
||||||
- --controller-class=k8s.io/ingress-nginx
|
- --controller-class=k8s.io/ingress-nginx
|
||||||
- --ingress-class=nginx
|
- --ingress-class=nginx
|
||||||
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
- --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
|
||||||
|
@ -438,7 +454,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.3.0@sha256:d1707ca76d3b044ab8a28277a2466a02100ee9f58a86af1535a3edf9323ea1b5
|
image: registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
|
@ -510,7 +526,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -521,7 +537,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-create
|
name: ingress-nginx-admission-create
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -535,7 +551,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: create
|
name: create
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -557,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
spec:
|
spec:
|
||||||
|
@ -568,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission-patch
|
name: ingress-nginx-admission-patch
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -584,7 +600,7 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.namespace
|
fieldPath: metadata.namespace
|
||||||
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: patch
|
name: patch
|
||||||
securityContext:
|
securityContext:
|
||||||
|
@ -606,7 +622,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: nginx
|
name: nginx
|
||||||
spec:
|
spec:
|
||||||
controller: k8s.io/ingress-nginx
|
controller: k8s.io/ingress-nginx
|
||||||
|
@ -619,7 +635,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.3.0
|
app.kubernetes.io/version: 1.5.1
|
||||||
name: ingress-nginx-admission
|
name: ingress-nginx-admission
|
||||||
webhooks:
|
webhooks:
|
||||||
- admissionReviewVersions:
|
- admissionReviewVersions:
|
||||||
|
|
|
@ -30,7 +30,8 @@ the traffic for the `ingress-nginx` Service IP. See [Traffic policies][metallb-t
|
||||||
yourself by reading the official documentation thoroughly.
|
yourself by reading the official documentation thoroughly.
|
||||||
|
|
||||||
MetalLB can be deployed either with a simple Kubernetes manifest or with Helm. The rest of this example assumes MetalLB
|
MetalLB can be deployed either with a simple Kubernetes manifest or with Helm. The rest of this example assumes MetalLB
|
||||||
was deployed following the [Installation][metallb-install] instructions.
|
was deployed following the [Installation][metallb-install] instructions, and that the NGINX Ingress controller was installed
|
||||||
|
using the steps described in the [quickstart section of the installation guide][install-quickstart].
|
||||||
|
|
||||||
MetalLB requires a pool of IP addresses in order to be able to take ownership of the `ingress-nginx` Service. This pool
|
MetalLB requires a pool of IP addresses in order to be able to take ownership of the `ingress-nginx` Service. This pool
|
||||||
can be defined through `IPAddressPool` objects in the same namespace as the MetalLB controller. This pool of IPs **must** be dedicated to MetalLB's use, you can't reuse the Kubernetes node IPs or IPs handed out by a DHCP server.
|
can be defined through `IPAddressPool` objects in the same namespace as the MetalLB controller. This pool of IPs **must** be dedicated to MetalLB's use, you can't reuse the Kubernetes node IPs or IPs handed out by a DHCP server.
|
||||||
|
@ -257,6 +258,7 @@ for generating redirect URLs that take into account the URL used by external cli
|
||||||
```
|
```
|
||||||
|
|
||||||
[install-baremetal]: ./index.md#bare-metal
|
[install-baremetal]: ./index.md#bare-metal
|
||||||
|
[install-quickstart]: ./index.md#quick-start
|
||||||
[nodeport-def]: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
[nodeport-def]: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
||||||
[nodeport-nat]: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-type-nodeport
|
[nodeport-nat]: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-type-nodeport
|
||||||
[pod-assign]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
[pod-assign]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
||||||
|
|
|
@ -8,7 +8,7 @@ There are multiple ways to install the NGINX ingress controller:
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ ingress controller for your particular environment or cloud provider.
|
||||||
|
|
||||||
- [Environment-specific instructions](#environment-specific-instructions)
|
- [Environment-specific instructions](#environment-specific-instructions)
|
||||||
- ... [Docker Desktop](#docker-desktop)
|
- ... [Docker Desktop](#docker-desktop)
|
||||||
|
- ... [Rancher Desktop](#rancher-desktop)
|
||||||
- ... [minikube](#minikube)
|
- ... [minikube](#minikube)
|
||||||
- ... [MicroK8s](#microk8s)
|
- ... [MicroK8s](#microk8s)
|
||||||
- ... [AWS](#aws)
|
- ... [AWS](#aws)
|
||||||
|
@ -29,6 +30,7 @@ ingress controller for your particular environment or cloud provider.
|
||||||
- ... [Scaleway](#scaleway)
|
- ... [Scaleway](#scaleway)
|
||||||
- ... [Exoscale](#exoscale)
|
- ... [Exoscale](#exoscale)
|
||||||
- ... [Oracle Cloud Infrastructure](#oracle-cloud-infrastructure)
|
- ... [Oracle Cloud Infrastructure](#oracle-cloud-infrastructure)
|
||||||
|
- ... [OVHcloud](#ovhcloud)
|
||||||
- ... [Bare-metal](#bare-metal-clusters)
|
- ... [Bare-metal](#bare-metal-clusters)
|
||||||
- [Miscellaneous](#miscellaneous)
|
- [Miscellaneous](#miscellaneous)
|
||||||
|
|
||||||
|
@ -60,7 +62,7 @@ It will install the controller in the `ingress-nginx` namespace, creating that n
|
||||||
**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.3.0/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
|
@ -186,6 +188,14 @@ will be assigned the `EXTERNAL-IP` of `localhost`, which means that it will be r
|
||||||
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 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 NGINX ingress controller in place of the default Traefik, disable Traefik from Preference > Kubernetes menu.
|
||||||
|
|
||||||
|
Once traefik is disabled, the NGINX ingress controller can be installed on Rancher Desktop using the default [quick start](#quick-start) instructions. Follow the instructions described in the [local testing section](#local-testing) to try a sample.
|
||||||
|
|
||||||
### 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
|
||||||
|
@ -215,7 +225,7 @@ In AWS, we use a Network load balancer (NLB) to expose the NGINX Ingress control
|
||||||
##### Network Load Balancer (NLB)
|
##### Network Load Balancer (NLB)
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/aws/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/aws/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
##### TLS termination in AWS Load Balancer (NLB)
|
##### TLS termination in AWS Load Balancer (NLB)
|
||||||
|
@ -223,10 +233,10 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont
|
||||||
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.3.0/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.5.1/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template
|
||||||
|
|
||||||
```console
|
```console
|
||||||
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml
|
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/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:
|
||||||
|
@ -272,7 +282,7 @@ Then, the ingress controller can be installed like this:
|
||||||
|
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
|
@ -289,7 +299,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.3.0/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/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).
|
||||||
|
@ -297,13 +307,15 @@ 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.3.0/deploy/static/provider/do/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/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.
|
||||||
|
|
||||||
|
|
||||||
#### Scaleway
|
#### Scaleway
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/scw/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/scw/deploy.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Exoscale
|
#### Exoscale
|
||||||
|
@ -318,13 +330,23 @@ The full list of annotations supported by Exoscale is available in the Exoscale
|
||||||
#### Oracle Cloud Infrastructure
|
#### Oracle Cloud Infrastructure
|
||||||
|
|
||||||
```console
|
```console
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/cloud/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/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
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||||
|
helm repo update
|
||||||
|
helm -n ingress-nginx install ingress-nginx ingress-nginx/ingress-nginx --create-namespace
|
||||||
|
```
|
||||||
|
|
||||||
|
You can find the [complete tutorial](https://docs.ovh.com/gb/en/kubernetes/installing-nginx-ingress/).
|
||||||
|
|
||||||
### 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
|
||||||
|
@ -335,7 +357,7 @@ For quick testing, you can use a
|
||||||
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.3.0/deploy/static/provider/baremetal/deploy.yaml
|
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/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),
|
||||||
|
|
|
@ -1,7 +1,15 @@
|
||||||
# Developing for NGINX Ingress Controller
|
Developing for NGINX Ingress Controller
|
||||||
|
|
||||||
This document explains how to get started with developing for NGINX Ingress controller.
|
This document explains how to get started with developing for NGINX Ingress controller.
|
||||||
|
|
||||||
|
For the really new contributors, who want to contribute to the INGRESS-NGINX project, but need help with understanding some basic concepts,
|
||||||
|
that are needed to work with the Kubernetes ingress resource, here is a link to the [New Contributors Guide](https://github.com/kubernetes/ingress-nginx/blob/main/NEW_CONTRIBUTOR.md).
|
||||||
|
This guide contains tips on how a http/https request travels, from a browser or a curl command,
|
||||||
|
to the webserver process running inside a container, in a pod, in a Kubernetes cluster, but enters the cluster via a ingress resource.
|
||||||
|
For those who are familiar with those basic networking concepts like routing of a packet with regards to a
|
||||||
|
http request, termination of connection, reverseproxy etc. etc., you can skip this and move on to the sections below.
|
||||||
|
(or read it anyways just for context and also provide feedbacks if any)
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
Install [Go 1.14](https://golang.org/dl/) or later.
|
Install [Go 1.14](https://golang.org/dl/) or later.
|
||||||
|
|
|
@ -14,6 +14,7 @@ Session affinity can be configured using the following annotations:
|
||||||
|nginx.ingress.kubernetes.io/session-cookie-name|Name of the cookie that will be created|string (defaults to `INGRESSCOOKIE`)|
|
|nginx.ingress.kubernetes.io/session-cookie-name|Name of the cookie that will be created|string (defaults to `INGRESSCOOKIE`)|
|
||||||
|nginx.ingress.kubernetes.io/session-cookie-secure|Set the cookie as secure regardless the protocol of the incoming request|`"true"` or `"false"`|
|
|nginx.ingress.kubernetes.io/session-cookie-secure|Set the cookie as secure regardless the protocol of the incoming request|`"true"` or `"false"`|
|
||||||
|nginx.ingress.kubernetes.io/session-cookie-path|Path that will be set on the cookie (required if your [Ingress paths][ingress-paths] use regular expressions)|string (defaults to the currently [matched path][ingress-paths])|
|
|nginx.ingress.kubernetes.io/session-cookie-path|Path that will be set on the cookie (required if your [Ingress paths][ingress-paths] use regular expressions)|string (defaults to the currently [matched path][ingress-paths])|
|
||||||
|
|nginx.ingress.kubernetes.io/session-cookie-domain|Domain that will be set on the cookie|string|
|
||||||
|nginx.ingress.kubernetes.io/session-cookie-samesite|`SameSite` attribute to apply to the cookie|Browser accepted values are `None`, `Lax`, and `Strict`|
|
|nginx.ingress.kubernetes.io/session-cookie-samesite|`SameSite` attribute to apply to the cookie|Browser accepted values are `None`, `Lax`, and `Strict`|
|
||||||
|nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none|Will omit `SameSite=None` attribute for older browsers which reject the more-recently defined `SameSite=None` value|`"true"` or `"false"`
|
|nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none|Will omit `SameSite=None` attribute for older browsers which reject the more-recently defined `SameSite=None` value|`"true"` or `"false"`
|
||||||
|nginx.ingress.kubernetes.io/session-cookie-max-age|Time until the cookie expires, corresponds to the `Max-Age` cookie directive|number of seconds|
|
|nginx.ingress.kubernetes.io/session-cookie-max-age|Time until the cookie expires, corresponds to the `Max-Age` cookie directive|number of seconds|
|
||||||
|
|
|
@ -6,7 +6,7 @@ defaultBackend:
|
||||||
image:
|
image:
|
||||||
registry: registry.k8s.io
|
registry: registry.k8s.io
|
||||||
image: ingress-nginx/nginx-errors
|
image: ingress-nginx/nginx-errors
|
||||||
tag: "1.3.0"
|
tag: "v20220916-gd32f8c343@sha256:09c421ac743bace19ab77979b82186941c5125c95e62cdb40bdf41293b5c275c"
|
||||||
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:1.3.0
|
image: registry.k8s.io/ingress-nginx/nginx-errors:v20220916-gd32f8c343@sha256:09c421ac743bace19ab77979b82186941c5125c95e62cdb40bdf41293b5c275c
|
||||||
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
|
||||||
|
|
|
@ -18,7 +18,7 @@ spec:
|
||||||
terminationGracePeriodSeconds: 60
|
terminationGracePeriodSeconds: 60
|
||||||
containers:
|
containers:
|
||||||
- name: echo-service
|
- name: echo-service
|
||||||
image: gcr.io/k8s-staging-ingress-nginx/e2e-test-echo:v1.0.0
|
image: registry.k8s.io/ingress-nginx/e2e-test-echo:v20220819-ga98c63787@sha256:778ac6d1188c8de8ecabeddd3c37b72c8adc8c712bad2bd7a81fb23a3514934c
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
resources:
|
resources:
|
||||||
|
|
|
@ -223,6 +223,7 @@ If you start Ingress-Nginx B with the command line argument `--watch-ingress-wit
|
||||||
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
helm install ingress-nginx-2 ingress-nginx/ingress-nginx \
|
||||||
--namespace ingress-nginx-2 \
|
--namespace ingress-nginx-2 \
|
||||||
--set controller.ingressClassResource.name=nginx-two \
|
--set controller.ingressClassResource.name=nginx-two \
|
||||||
|
--set controller.ingressClass=nginx-two \
|
||||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||||
--set controller.ingressClassResource.enabled=true \
|
--set controller.ingressClassResource.enabled=true \
|
||||||
--set controller.ingressClassByName=true
|
--set controller.ingressClassByName=true
|
||||||
|
@ -234,7 +235,9 @@ If you start Ingress-Nginx B with the command line argument `--watch-ingress-wit
|
||||||
--namespace kube-system \
|
--namespace kube-system \
|
||||||
--set controller.electionID=nginx-two-leader \
|
--set controller.electionID=nginx-two-leader \
|
||||||
--set controller.ingressClassResource.name=nginx-two \
|
--set controller.ingressClassResource.name=nginx-two \
|
||||||
|
--set controller.ingressClass=nginx-two \
|
||||||
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \
|
||||||
--set controller.ingressClassResource.enabled=true \
|
--set controller.ingressClassResource.enabled=true \
|
||||||
--set controller.ingressClassByName=true
|
--set controller.ingressClassByName=true
|
||||||
```
|
```
|
||||||
|
- Note, controller.ingressClassResource.name and controller.ingressClass have to be set with the value of the new class as the first is to create the IngressClass object and the other is to modify the deployment of the actuall ingress controller pod.
|
||||||
|
|
|
@ -316,3 +316,166 @@ Note: The below is based on the nginx [documentation](https://docs.nginx.com/ngi
|
||||||
```console
|
```console
|
||||||
cat nginx_conf.txt
|
cat nginx_conf.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Image related issues faced on Nginx 4.2.5 or other versions (Helm chart versions)
|
||||||
|
|
||||||
|
1. Incase you face below error while installing Nginx using helm chart (either by helm commands or helm_release terraform provider )
|
||||||
|
```
|
||||||
|
Warning Failed 5m5s (x4 over 6m34s) kubelet Failed to pull image "registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.3.0@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47": rpc error: code = Unknown desc = failed to pull and unpack image "registry.k8s.io/ingress-nginx/kube-webhook-certgen@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47": failed to resolve reference "registry.k8s.io/ingress-nginx/kube-webhook-certgen@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47": failed to do request: Head "https://eu.gcr.io/v2/k8s-artifacts-prod/ingress-nginx/kube-webhook-certgen/manifests/sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47": EOF
|
||||||
|
```
|
||||||
|
Then please follow the below steps.
|
||||||
|
|
||||||
|
2. During troubleshooting you can also execute the below commands to test the connectivities from you local machines and repositories details
|
||||||
|
|
||||||
|
a. curl registry.k8s.io/ingress-nginx/kube-webhook-certgen@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47 > /dev/null
|
||||||
|
```
|
||||||
|
(⎈ |myprompt)➜ ~ curl registry.k8s.io/ingress-nginx/kube-webhook-certgen@sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47 > /dev/null
|
||||||
|
% Total % Received % Xferd Average Speed Time Time Time Current
|
||||||
|
Dload Upload Total Spent Left Speed
|
||||||
|
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
|
||||||
|
(⎈ |myprompt)➜ ~
|
||||||
|
```
|
||||||
|
b. curl -I https://eu.gcr.io/v2/k8s-artifacts-prod/ingress-nginx/kube-webhook-certgen/manifests/sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
||||||
|
```
|
||||||
|
(⎈ |myprompt)➜ ~ curl -I https://eu.gcr.io/v2/k8s-artifacts-prod/ingress-nginx/kube-webhook-certgen/manifests/sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
||||||
|
HTTP/2 200
|
||||||
|
docker-distribution-api-version: registry/2.0
|
||||||
|
content-type: application/vnd.docker.distribution.manifest.list.v2+json
|
||||||
|
docker-content-digest: sha256:549e71a6ca248c5abd51cdb73dbc3083df62cf92ed5e6147c780e30f7e007a47
|
||||||
|
content-length: 1384
|
||||||
|
date: Wed, 28 Sep 2022 16:46:28 GMT
|
||||||
|
server: Docker Registry
|
||||||
|
x-xss-protection: 0
|
||||||
|
x-frame-options: SAMEORIGIN
|
||||||
|
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
|
||||||
|
|
||||||
|
(⎈ |myprompt)➜ ~
|
||||||
|
```
|
||||||
|
Redirection in the proxy is implemented to ensure the pulling of the images.
|
||||||
|
|
||||||
|
3. This is the solution recommended to whitelist the below image repositories :
|
||||||
|
```
|
||||||
|
*.appspot.com
|
||||||
|
*.k8s.io
|
||||||
|
*.pkg.dev
|
||||||
|
*.gcr.io
|
||||||
|
|
||||||
|
```
|
||||||
|
More details about the above repos :
|
||||||
|
a. *.k8s.io -> To ensure you can pull any images from registry.k8s.io
|
||||||
|
b. *.gcr.io -> GCP services are used for image hosting. This is part of the domains suggested by GCP to allow and ensure users can pull images from their container registry services.
|
||||||
|
c. *.appspot.com -> This a Google domain. part of the domain used for GCR.
|
||||||
|
|
||||||
|
## Unable to listen on port (80/443)
|
||||||
|
One possible reason for this error is lack of permission to bind to the port. Ports 80, 443, and any other port < 1024 are Linux privileged ports which historically could only be bound by root. The ingress-nginx-controller uses the CAP_NET_BIND_SERVICE [linux capability](https://man7.org/linux/man-pages/man7/capabilities.7.html) to allow binding these ports as a normal user (www-data / 101). This involves two components:
|
||||||
|
1. In the image, the /nginx-ingress-controller file has the cap_net_bind_service capability added (e.g. via [setcap](https://man7.org/linux/man-pages/man8/setcap.8.html))
|
||||||
|
2. The NET_BIND_SERVICE capability is added to the container in the containerSecurityContext of the deployment.
|
||||||
|
|
||||||
|
If encountering this on one/some node(s) and not on others, try to purge and pull a fresh copy of the image to the affected node(s), in case there has been corruption of the underlying layers to lose the capability on the executable.
|
||||||
|
|
||||||
|
### Create a test pod
|
||||||
|
The /nginx-ingress-controller process exits/crashes when encountering this error, making it difficult to troubleshoot what is happening inside the container. To get around this, start an equivalent container running "sleep 3600", and exec into it for further troubleshooting. For example:
|
||||||
|
```yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: ingress-nginx-sleep
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: ##_CONTROLLER_IMAGE_##
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "512Mi"
|
||||||
|
cpu: "500m"
|
||||||
|
limits:
|
||||||
|
memory: "1Gi"
|
||||||
|
cpu: "1"
|
||||||
|
command: ["sleep"]
|
||||||
|
args: ["3600"]
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 443
|
||||||
|
name: https
|
||||||
|
protocol: TCP
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: true
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- NET_BIND_SERVICE
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
runAsUser: 101
|
||||||
|
restartPolicy: Never
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: ##_NODE_NAME_##
|
||||||
|
tolerations:
|
||||||
|
- key: "node.kubernetes.io/unschedulable"
|
||||||
|
operator: "Exists"
|
||||||
|
effect: NoSchedule
|
||||||
|
```
|
||||||
|
* update the namespace if applicable/desired
|
||||||
|
* replace `##_NODE_NAME_##` with the problematic node (or remove nodeSelector section if problem is not confined to one node)
|
||||||
|
* replace `##_CONTROLLER_IMAGE_##` with the same image as in use by your ingress-nginx deployment
|
||||||
|
* confirm the securityContext section matches what is in place for ingress-nginx-controller pods in your cluster
|
||||||
|
|
||||||
|
Apply the YAML and open a shell into the pod.
|
||||||
|
Try to manually run the controller process:
|
||||||
|
```console
|
||||||
|
$ /nginx-ingress-controller
|
||||||
|
```
|
||||||
|
You should get the same error as from the ingress controller pod logs.
|
||||||
|
|
||||||
|
Confirm the capabilities are properly surfacing into the pod:
|
||||||
|
```console
|
||||||
|
$ grep CapBnd /proc/1/status
|
||||||
|
CapBnd: 0000000000000400
|
||||||
|
```
|
||||||
|
The above value has only net_bind_service enabled (per security context in YAML which adds that and drops all). If you get a different value, then you can decode it on another linux box (capsh not available in this container) like below, and then figure out why specified capabilities are not propagating into the pod/container.
|
||||||
|
```console
|
||||||
|
$ capsh --decode=0000000000000400
|
||||||
|
0x0000000000000400=cap_net_bind_service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Create a test pod as root
|
||||||
|
(Note, this may be restricted by PodSecurityPolicy, PodSecurityAdmission/Standards, OPA Gatekeeper, etc. in which case you will need to do the appropriate workaround for testing, e.g. deploy in a new namespace without the restrictions.)
|
||||||
|
To test further you may want to install additional utilities, etc. Modify the pod yaml by:
|
||||||
|
* changing runAsUser from 101 to 0
|
||||||
|
* removing the "drop..ALL" section from the capabilities.
|
||||||
|
|
||||||
|
Some things to try after shelling into this container:
|
||||||
|
|
||||||
|
Try running the controller as the www-data (101) user:
|
||||||
|
```console
|
||||||
|
$ chmod 4755 /nginx-ingress-controller
|
||||||
|
$ /nginx-ingress-controller
|
||||||
|
```
|
||||||
|
Examine the errors to see if there is still an issue listening on the port or if it passed that and moved on to other expected errors due to running out of context.
|
||||||
|
|
||||||
|
Install the libcap package and check capabilities on the file:
|
||||||
|
```console
|
||||||
|
$ apk add libcap
|
||||||
|
(1/1) Installing libcap (2.50-r0)
|
||||||
|
Executing busybox-1.33.1-r7.trigger
|
||||||
|
OK: 26 MiB in 41 packages
|
||||||
|
$ getcap /nginx-ingress-controller
|
||||||
|
/nginx-ingress-controller cap_net_bind_service=ep
|
||||||
|
```
|
||||||
|
(if missing, see above about purging image on the server and re-pulling)
|
||||||
|
|
||||||
|
Strace the executable to see what system calls are being executed when it fails:
|
||||||
|
```console
|
||||||
|
$ apk add strace
|
||||||
|
(1/1) Installing strace (5.12-r0)
|
||||||
|
Executing busybox-1.33.1-r7.trigger
|
||||||
|
OK: 28 MiB in 42 packages
|
||||||
|
$ strace /nginx-ingress-controller
|
||||||
|
execve("/nginx-ingress-controller", ["/nginx-ingress-controller"], 0x7ffeb9eb3240 /* 131 vars */) = 0
|
||||||
|
arch_prctl(ARCH_SET_FS, 0x29ea690) = 0
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
|
@ -30,7 +30,9 @@ They are set in the container spec of the `ingress-nginx-controller` Deployment
|
||||||
| `--https-port` | Port to use for servicing HTTPS traffic. (default 443) |
|
| `--https-port` | Port to use for servicing HTTPS traffic. (default 443) |
|
||||||
| `--ingress-class` | Name of the ingress class this controller satisfies. The class of an Ingress object is set using the field IngressClassName in Kubernetes clusters version v1.18.0 or higher or the annotation "kubernetes.io/ingress.class" (deprecated). If this parameter is not set, or set to the default value of "nginx", it will handle ingresses with either an empty or "nginx" class name. |
|
| `--ingress-class` | Name of the ingress class this controller satisfies. The class of an Ingress object is set using the field IngressClassName in Kubernetes clusters version v1.18.0 or higher or the annotation "kubernetes.io/ingress.class" (deprecated). If this parameter is not set, or set to the default value of "nginx", it will handle ingresses with either an empty or "nginx" class name. |
|
||||||
| `--ingress-class-by-name` | Define if Ingress Controller should watch for Ingress Class by Name together with Controller Class. (default false) |
|
| `--ingress-class-by-name` | Define if Ingress Controller should watch for Ingress Class by Name together with Controller Class. (default false) |
|
||||||
|
| `--internal-logger-address` | Define the internal logger address to use when chroot images is used. (default 127.0.0.1:11514) |
|
||||||
| `--kubeconfig` | Path to a kubeconfig file containing authorization and API server information. |
|
| `--kubeconfig` | Path to a kubeconfig file containing authorization and API server information. |
|
||||||
|
| `--length-buckets` | Set of buckets which will be used for prometheus histogram metrics such as RequestLength, ResponseLength. (default `[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]`) |
|
||||||
| `--log_backtrace_at` | when logging hits line file:N, emit a stack trace (default :0) |
|
| `--log_backtrace_at` | when logging hits line file:N, emit a stack trace (default :0) |
|
||||||
| `--log_dir` | If non-empty, write log files in this directory |
|
| `--log_dir` | If non-empty, write log files in this directory |
|
||||||
| `--log_file` | If non-empty, use this log file |
|
| `--log_file` | If non-empty, use this log file |
|
||||||
|
@ -51,6 +53,7 @@ They are set in the container spec of the `ingress-nginx-controller` Deployment
|
||||||
| `--skip_headers` | If true, avoid header prefixes in the log messages |
|
| `--skip_headers` | If true, avoid header prefixes in the log messages |
|
||||||
| `--skip_log_headers` | If true, avoid headers when opening log files |
|
| `--skip_log_headers` | If true, avoid headers when opening log files |
|
||||||
| `--ssl-passthrough-proxy-port` | Port to use internally for SSL Passthrough. (default 442) |
|
| `--ssl-passthrough-proxy-port` | Port to use internally for SSL Passthrough. (default 442) |
|
||||||
|
| `--size-buckets` | Set of buckets which will be used for prometheus histogram metrics such as BytesSent. (default `[10, 100, 1000, 10000, 100000, 1e+06, 1e+07]`) |
|
||||||
| `--status-port` | Port to use for the lua HTTP endpoint configuration. (default 10246) |
|
| `--status-port` | Port to use for the lua HTTP endpoint configuration. (default 10246) |
|
||||||
| `--status-update-interval` | Time interval in seconds in which the status should check if an update is required. Default is 60 seconds (default 60) |
|
| `--status-update-interval` | Time interval in seconds in which the status should check if an update is required. Default is 60 seconds (default 60) |
|
||||||
| `--stderrthreshold` | logs at or above this threshold go to stderr (default 2) |
|
| `--stderrthreshold` | logs at or above this threshold go to stderr (default 2) |
|
||||||
|
@ -58,6 +61,7 @@ They are set in the container spec of the `ingress-nginx-controller` Deployment
|
||||||
| `--sync-period` | Period at which the controller forces the repopulation of its local object stores. Disabled by default. |
|
| `--sync-period` | Period at which the controller forces the repopulation of its local object stores. Disabled by default. |
|
||||||
| `--sync-rate-limit` | Define the sync frequency upper limit (default 0.3) |
|
| `--sync-rate-limit` | Define the sync frequency upper limit (default 0.3) |
|
||||||
| `--tcp-services-configmap` | Name of the ConfigMap containing the definition of the TCP services to expose. The key in the map indicates the external port to be used. The value is a reference to a Service in the form "namespace/name:port", where "port" can either be a port number or name. TCP ports 80 and 443 are reserved by the controller for servicing HTTP traffic. |
|
| `--tcp-services-configmap` | Name of the ConfigMap containing the definition of the TCP services to expose. The key in the map indicates the external port to be used. The value is a reference to a Service in the form "namespace/name:port", where "port" can either be a port number or name. TCP ports 80 and 443 are reserved by the controller for servicing HTTP traffic. |
|
||||||
|
| `--time-buckets` | Set of buckets which will be used for prometheus histogram metrics such as RequestTime, ResponseTime. (default `[0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]`) |
|
||||||
| `--udp-services-configmap` | Name of the ConfigMap containing the definition of the UDP services to expose. The key in the map indicates the external port to be used. The value is a reference to a Service in the form "namespace/name:port", where "port" can either be a port name or number. |
|
| `--udp-services-configmap` | Name of the ConfigMap containing the definition of the UDP services to expose. The key in the map indicates the external port to be used. The value is a reference to a Service in the form "namespace/name:port", where "port" can either be a port name or number. |
|
||||||
| `--update-status` | Update the load-balancer status of Ingress objects this controller satisfies. Requires setting the publish-service parameter to a valid Service reference. (default true) |
|
| `--update-status` | Update the load-balancer status of Ingress objects this controller satisfies. Requires setting the publish-service parameter to a valid Service reference. (default true) |
|
||||||
| `--update-status-on-shutdown` | Update the load-balancer status of Ingress objects when the controller shuts down. Requires the update-status parameter. (default true) |
|
| `--update-status-on-shutdown` | Update the load-balancer status of Ingress objects when the controller shuts down. Requires the update-status parameter. (default true) |
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
# Prometheus and Grafana installation
|
# Monitoring
|
||||||
Two different methods to install and configure Prometheus and Grafana are described in this doc.
|
|
||||||
- Prometheus and Grafana installation using Pod Annotations. This installs Prometheus and Grafana in the same namespace as NGINX Ingress
|
Two different methods to install and configure Prometheus and Grafana are described in this doc.
|
||||||
- Prometheus and Grafana installation using Service Monitors. This installs Prometheus and Grafana in two different namespaces. This is the preferred method, and helm charts supports this by default.
|
* Prometheus and Grafana installation using Pod Annotations. This installs Prometheus and Grafana in the same namespace as NGINX Ingress
|
||||||
|
* Prometheus and Grafana installation using Service Monitors. This installs Prometheus and Grafana in two different namespaces. This is the preferred method, and helm charts supports this by default.
|
||||||
|
|
||||||
|
## Prometheus and Grafana installation using Pod Annotations
|
||||||
|
|
||||||
## PROMETHEUS AND GRAFANA INSTALLATION USING POD ANNOTATIONS
|
|
||||||
This tutorial will show you how to install [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/) for scraping the metrics of the NGINX Ingress controller.
|
This tutorial will show you how to install [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/) for scraping the metrics of the NGINX Ingress controller.
|
||||||
|
|
||||||
!!! important
|
!!! important
|
||||||
|
@ -179,7 +181,7 @@ According to the above example, this URL will be http://10.192.0.3:31086
|
||||||
- create a ingress resource with backend as "grafana" and port as "3000"
|
- create a ingress resource with backend as "grafana" and port as "3000"
|
||||||
- Similarly, you can edit the service "prometheus-server" and add a ingress resource.
|
- Similarly, you can edit the service "prometheus-server" and add a ingress resource.
|
||||||
|
|
||||||
## PROMETHEUS AND GRAFANA INSTALLATION USING SERVICE MONITORS
|
## Prometheus and Grafana installation using Service Monitors
|
||||||
This document assumes you're using helm and using the kube-prometheus-stack package to install Prometheus and Grafana.
|
This document assumes you're using helm and using the kube-prometheus-stack package to install Prometheus and Grafana.
|
||||||
|
|
||||||
### Verify NGINX Ingress controller is installed
|
### Verify NGINX Ingress controller is installed
|
||||||
|
@ -346,3 +348,148 @@ This document assumes you're using helm and using the kube-prometheus-stack pack
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
## Exposed metrics
|
||||||
|
|
||||||
|
Prometheus metrics are exposed on port 10254.
|
||||||
|
|
||||||
|
### Request metrics
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_request_duration_seconds` Histogram
|
||||||
|
|
||||||
|
The request processing time in milliseconds (affected by client speed)
|
||||||
|
|
||||||
|
nginx var: `request_time`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_response_duration_seconds` Histogram
|
||||||
|
|
||||||
|
The time spent on receiving the response from the upstream server (affected by client speed)
|
||||||
|
|
||||||
|
nginx var: `upstream_response_time`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_header_duration_seconds` Histogram
|
||||||
|
|
||||||
|
The time spent on receiving first header from the upstream server
|
||||||
|
|
||||||
|
nginx var: `upstream_header_time`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_connect_duration_seconds` Histogram
|
||||||
|
|
||||||
|
The time spent on establishing a connection with the upstream server
|
||||||
|
|
||||||
|
nginx var: `upstream_connect_time`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_response_size` Histogram
|
||||||
|
|
||||||
|
The response length (including request line, header, and request body)
|
||||||
|
|
||||||
|
nginx var: `bytes_sent`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_request_size` Histogram
|
||||||
|
|
||||||
|
The request length (including request line, header, and request body)
|
||||||
|
|
||||||
|
nginx var: `request_length`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_requests` Counter
|
||||||
|
|
||||||
|
The total number of client requests
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_bytes_sent` Histogram
|
||||||
|
|
||||||
|
The number of bytes sent to a client. **Deprecated**, use `nginx_ingress_controller_response_size`
|
||||||
|
|
||||||
|
nginx var: `bytes_sent`
|
||||||
|
|
||||||
|
* `nginx_ingress_controller_ingress_upstream_latency_seconds` Summary
|
||||||
|
|
||||||
|
Upstream service latency per Ingress. **Deprecated**, use `nginx_ingress_controller_connect_duration_seconds`
|
||||||
|
|
||||||
|
nginx var: `upstream_connect_time`
|
||||||
|
|
||||||
|
```
|
||||||
|
# HELP nginx_ingress_controller_bytes_sent The number of bytes sent to a client. DEPRECATED! Use nginx_ingress_controller_response_size
|
||||||
|
# TYPE nginx_ingress_controller_bytes_sent histogram
|
||||||
|
# HELP nginx_ingress_controller_connect_duration_seconds The time spent on establishing a connection with the upstream server
|
||||||
|
# TYPE nginx_ingress_controller_connect_duration_seconds nginx_ingress_controller_connect_duration_seconds
|
||||||
|
* HELP nginx_ingress_controller_header_duration_seconds The time spent on receiving first header from the upstream server
|
||||||
|
# TYPE nginx_ingress_controller_header_duration_seconds histogram
|
||||||
|
# HELP nginx_ingress_controller_ingress_upstream_latency_seconds Upstream service latency per Ingress DEPRECATED! Use nginx_ingress_controller_connect_duration_seconds
|
||||||
|
# TYPE nginx_ingress_controller_ingress_upstream_latency_seconds summary
|
||||||
|
# HELP nginx_ingress_controller_request_duration_seconds The request processing time in milliseconds
|
||||||
|
# TYPE nginx_ingress_controller_request_duration_seconds histogram
|
||||||
|
# HELP nginx_ingress_controller_request_size The request length (including request line, header, and request body)
|
||||||
|
# TYPE nginx_ingress_controller_request_size histogram
|
||||||
|
# HELP nginx_ingress_controller_requests The total number of client requests.
|
||||||
|
# TYPE nginx_ingress_controller_requests counter
|
||||||
|
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
||||||
|
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
||||||
|
# HELP nginx_ingress_controller_response_size The response length (including request line, header, and request body)
|
||||||
|
# TYPE nginx_ingress_controller_response_size histogram
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Nginx process metrics
|
||||||
|
```
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_connections current number of client connections with state {active, reading, writing, waiting}
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_connections gauge
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_connections_total total number of connections with state {accepted, handled}
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_connections_total counter
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_cpu_seconds_total Cpu usage in seconds
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_cpu_seconds_total counter
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_num_procs number of processes
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_num_procs gauge
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_oldest_start_time_seconds start time in seconds since 1970/01/01
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_oldest_start_time_seconds gauge
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_read_bytes_total number of bytes read
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_read_bytes_total counter
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_requests_total total number of client requests
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_requests_total counter
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_resident_memory_bytes number of bytes of memory in use
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_resident_memory_bytes gauge
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_virtual_memory_bytes number of bytes of memory in use
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_virtual_memory_bytes gauge
|
||||||
|
# HELP nginx_ingress_controller_nginx_process_write_bytes_total number of bytes written
|
||||||
|
# TYPE nginx_ingress_controller_nginx_process_write_bytes_total counter
|
||||||
|
```
|
||||||
|
|
||||||
|
### Controller metrics
|
||||||
|
```
|
||||||
|
# HELP nginx_ingress_controller_build_info A metric with a constant '1' labeled with information about the build.
|
||||||
|
# TYPE nginx_ingress_controller_build_info gauge
|
||||||
|
# HELP nginx_ingress_controller_check_success Cumulative number of Ingress controller syntax check operations
|
||||||
|
# TYPE nginx_ingress_controller_check_success counter
|
||||||
|
# HELP nginx_ingress_controller_config_hash Running configuration hash actually running
|
||||||
|
# TYPE nginx_ingress_controller_config_hash gauge
|
||||||
|
# HELP nginx_ingress_controller_config_last_reload_successful Whether the last configuration reload attempt was successful
|
||||||
|
# TYPE nginx_ingress_controller_config_last_reload_successful gauge
|
||||||
|
# HELP nginx_ingress_controller_config_last_reload_successful_timestamp_seconds Timestamp of the last successful configuration reload.
|
||||||
|
# TYPE nginx_ingress_controller_config_last_reload_successful_timestamp_seconds gauge
|
||||||
|
# HELP nginx_ingress_controller_ssl_certificate_info Hold all labels associated to a certificate
|
||||||
|
# TYPE nginx_ingress_controller_ssl_certificate_info gauge
|
||||||
|
# HELP nginx_ingress_controller_success Cumulative number of Ingress controller reload operations
|
||||||
|
# TYPE nginx_ingress_controller_success counter
|
||||||
|
```
|
||||||
|
|
||||||
|
### Admission metrics
|
||||||
|
```
|
||||||
|
# HELP nginx_ingress_controller_admission_config_size The size of the tested configuration
|
||||||
|
# TYPE nginx_ingress_controller_admission_config_size gauge
|
||||||
|
# HELP nginx_ingress_controller_admission_render_duration The processing duration of ingresses rendering by the admission controller (float seconds)
|
||||||
|
# TYPE nginx_ingress_controller_admission_render_duration gauge
|
||||||
|
# HELP nginx_ingress_controller_admission_render_ingresses The length of ingresses rendered by the admission controller
|
||||||
|
# TYPE nginx_ingress_controller_admission_render_ingresses gauge
|
||||||
|
# HELP nginx_ingress_controller_admission_roundtrip_duration The complete duration of the admission controller at the time to process a new event (float seconds)
|
||||||
|
# TYPE nginx_ingress_controller_admission_roundtrip_duration gauge
|
||||||
|
# HELP nginx_ingress_controller_admission_tested_duration The processing duration of the admission controller tests (float seconds)
|
||||||
|
# TYPE nginx_ingress_controller_admission_tested_duration gauge
|
||||||
|
# HELP nginx_ingress_controller_admission_tested_ingresses The length of ingresses processed by the admission controller
|
||||||
|
# TYPE nginx_ingress_controller_admission_tested_ingresses gauge
|
||||||
|
```
|
||||||
|
|
||||||
|
### Histogram buckets
|
||||||
|
|
||||||
|
You can configure buckets for histogram metrics using these command line options (here are their default values):
|
||||||
|
* `--time-buckets=[0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]`
|
||||||
|
* `--length-buckets=[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]`
|
||||||
|
* `--size-buckets=[10, 100, 1000, 10000, 100000, 1e+06, 1e+07]`
|
||||||
|
|
|
@ -98,6 +98,7 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz
|
||||||
|[nginx.ingress.kubernetes.io/service-upstream](#service-upstream)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/service-upstream](#service-upstream)|"true" or "false"|
|
||||||
|[nginx.ingress.kubernetes.io/session-cookie-name](#cookie-affinity)|string|
|
|[nginx.ingress.kubernetes.io/session-cookie-name](#cookie-affinity)|string|
|
||||||
|[nginx.ingress.kubernetes.io/session-cookie-path](#cookie-affinity)|string|
|
|[nginx.ingress.kubernetes.io/session-cookie-path](#cookie-affinity)|string|
|
||||||
|
|[nginx.ingress.kubernetes.io/session-cookie-domain](#cookie-affinity)|string|
|
||||||
|[nginx.ingress.kubernetes.io/session-cookie-change-on-failure](#cookie-affinity)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/session-cookie-change-on-failure](#cookie-affinity)|"true" or "false"|
|
||||||
|[nginx.ingress.kubernetes.io/session-cookie-samesite](#cookie-affinity)|string|
|
|[nginx.ingress.kubernetes.io/session-cookie-samesite](#cookie-affinity)|string|
|
||||||
|[nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none](#cookie-affinity)|"true" or "false"|
|
|[nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none](#cookie-affinity)|"true" or "false"|
|
||||||
|
@ -189,6 +190,8 @@ If you use the ``cookie`` affinity type you can also specify the name of the coo
|
||||||
|
|
||||||
The NGINX annotation `nginx.ingress.kubernetes.io/session-cookie-path` defines the path that will be set on the cookie. This is optional unless the annotation `nginx.ingress.kubernetes.io/use-regex` is set to true; Session cookie paths do not support regex.
|
The NGINX annotation `nginx.ingress.kubernetes.io/session-cookie-path` defines the path that will be set on the cookie. This is optional unless the annotation `nginx.ingress.kubernetes.io/use-regex` is set to true; Session cookie paths do not support regex.
|
||||||
|
|
||||||
|
Use `nginx.ingress.kubernetes.io/session-cookie-domain` to set the `Domain` attribute of the sticky cookie.
|
||||||
|
|
||||||
Use `nginx.ingress.kubernetes.io/session-cookie-samesite` to apply a `SameSite` attribute to the sticky cookie. Browser accepted values are `None`, `Lax`, and `Strict`. Some browsers reject cookies with `SameSite=None`, including those created before the `SameSite=None` specification (e.g. Chrome 5X). Other browsers mistakenly treat `SameSite=None` cookies as `SameSite=Strict` (e.g. Safari running on OSX 14). To omit `SameSite=None` from browsers with these incompatibilities, add the annotation `nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none: "true"`.
|
Use `nginx.ingress.kubernetes.io/session-cookie-samesite` to apply a `SameSite` attribute to the sticky cookie. Browser accepted values are `None`, `Lax`, and `Strict`. Some browsers reject cookies with `SameSite=None`, including those created before the `SameSite=None` specification (e.g. Chrome 5X). Other browsers mistakenly treat `SameSite=None` cookies as `SameSite=Strict` (e.g. Safari running on OSX 14). To omit `SameSite=None` from browsers with these incompatibilities, add the annotation `nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none: "true"`.
|
||||||
|
|
||||||
### Authentication
|
### Authentication
|
||||||
|
|
|
@ -64,6 +64,7 @@ The following table shows a configuration option's name, type, and the default v
|
||||||
|[keep-alive](#keep-alive)|int|75|
|
|[keep-alive](#keep-alive)|int|75|
|
||||||
|[keep-alive-requests](#keep-alive-requests)|int|100|
|
|[keep-alive-requests](#keep-alive-requests)|int|100|
|
||||||
|[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-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`|
|
||||||
|
@ -431,7 +432,7 @@ Enables or disables the preload attribute in the HSTS feature (when it is enable
|
||||||
|
|
||||||
## keep-alive
|
## keep-alive
|
||||||
|
|
||||||
Sets the time during which a keep-alive client connection will stay open on the server side. The zero value disables keep-alive client connections.
|
Sets the time, in seconds, during which a keep-alive client connection will stay open on the server side. The zero value disables keep-alive client connections.
|
||||||
|
|
||||||
_References:_
|
_References:_
|
||||||
[https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout)
|
[https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout)
|
||||||
|
@ -468,6 +469,10 @@ Sets the maximum number and size of buffers used for reading large client reques
|
||||||
_References:_
|
_References:_
|
||||||
[https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers](https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers)
|
[https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers](https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers)
|
||||||
|
|
||||||
|
## log-format-escape-none
|
||||||
|
|
||||||
|
Sets if the escape parameter is disabled entirely for character escaping in variables ("true") or controlled by log-format-escape-json ("false") Sets the nginx [log format](https://nginx.org/en/docs/http/ngx_http_log_module.html#log_format).
|
||||||
|
|
||||||
## log-format-escape-json
|
## log-format-escape-json
|
||||||
|
|
||||||
Sets if the escape parameter allows JSON ("true") or default characters escaping in variables ("false") Sets the nginx [log format](https://nginx.org/en/docs/http/ngx_http_log_module.html#log_format).
|
Sets if the escape parameter allows JSON ("true") or default characters escaping in variables ("false") Sets the nginx [log format](https://nginx.org/en/docs/http/ngx_http_log_module.html#log_format).
|
||||||
|
|
|
@ -10,7 +10,7 @@ Anytime we reference a TLS secret, we mean a PEM-encoded X.509, RSA (2048) secre
|
||||||
You can generate a self-signed certificate and private key with:
|
You can generate a self-signed certificate and private key with:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ${KEY_FILE} -out ${CERT_FILE} -subj "/CN=${HOST}/O=${HOST}"
|
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ${KEY_FILE} -out ${CERT_FILE} -subj "/CN=${HOST}/O=${HOST}" -addext "subjectAltName = DNS:${HOST}"
|
||||||
```
|
```
|
||||||
|
|
||||||
Then create the secret in the cluster via:
|
Then create the secret in the cluster via:
|
||||||
|
|
112
go.mod
112
go.mod
|
@ -1,12 +1,11 @@
|
||||||
module k8s.io/ingress-nginx
|
module k8s.io/ingress-nginx
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/armon/go-proxyproto v0.0.0-20210323213023-7e956b284f0a
|
github.com/armon/go-proxyproto v0.0.0-20210323213023-7e956b284f0a
|
||||||
github.com/eapache/channels v1.1.0
|
github.com/eapache/channels v1.1.0
|
||||||
github.com/fsnotify/fsnotify v1.5.4
|
github.com/fsnotify/fsnotify v1.6.0
|
||||||
github.com/gavv/httpexpect/v2 v2.3.1
|
|
||||||
github.com/imdario/mergo v0.3.13
|
github.com/imdario/mergo v0.3.13
|
||||||
github.com/json-iterator/go v1.1.12
|
github.com/json-iterator/go v1.1.12
|
||||||
github.com/kylelemons/godebug v1.1.0
|
github.com/kylelemons/godebug v1.1.0
|
||||||
|
@ -15,91 +14,87 @@ require (
|
||||||
github.com/mitchellh/mapstructure v1.5.0
|
github.com/mitchellh/mapstructure v1.5.0
|
||||||
github.com/moul/pb v0.0.0-20220425114252-bca18df4138c
|
github.com/moul/pb v0.0.0-20220425114252-bca18df4138c
|
||||||
github.com/ncabatoff/process-exporter v0.7.10
|
github.com/ncabatoff/process-exporter v0.7.10
|
||||||
github.com/onsi/ginkgo/v2 v2.1.4
|
github.com/onsi/ginkgo/v2 v2.4.0
|
||||||
github.com/opencontainers/runc v1.1.3
|
github.com/opencontainers/runc v1.1.4
|
||||||
github.com/pmezard/go-difflib v1.0.0
|
github.com/pmezard/go-difflib v1.0.0
|
||||||
github.com/prometheus/client_golang v1.13.0
|
github.com/prometheus/client_golang v1.13.1
|
||||||
github.com/prometheus/client_model v0.2.0
|
github.com/prometheus/client_model v0.3.0
|
||||||
github.com/prometheus/common v0.37.0
|
github.com/prometheus/common v0.37.0
|
||||||
github.com/spf13/cobra v1.5.0
|
github.com/spf13/cobra v1.6.1
|
||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.8.0
|
github.com/stretchr/testify v1.8.1
|
||||||
|
github.com/yudai/gojsondiff v1.0.0
|
||||||
github.com/zakjan/cert-chain-resolver v0.0.0-20211122211144-c6b0b792af9a
|
github.com/zakjan/cert-chain-resolver v0.0.0-20211122211144-c6b0b792af9a
|
||||||
golang.org/x/crypto v0.0.0-20220214200702-86341886e292
|
golang.org/x/crypto v0.1.0
|
||||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
google.golang.org/grpc v1.50.1
|
||||||
google.golang.org/grpc v1.48.0
|
|
||||||
gopkg.in/go-playground/pool.v3 v3.1.1
|
gopkg.in/go-playground/pool.v3 v3.1.1
|
||||||
gopkg.in/mcuadros/go-syslog.v2 v2.3.0
|
gopkg.in/mcuadros/go-syslog.v2 v2.3.0
|
||||||
k8s.io/api v0.23.6
|
k8s.io/api v0.25.4
|
||||||
k8s.io/apiextensions-apiserver v0.23.5
|
k8s.io/apiextensions-apiserver v0.25.0
|
||||||
k8s.io/apimachinery v0.23.6
|
k8s.io/apimachinery v0.25.4
|
||||||
k8s.io/apiserver v0.23.5
|
k8s.io/apiserver v0.25.0
|
||||||
k8s.io/cli-runtime v0.23.5
|
k8s.io/cli-runtime v0.25.0
|
||||||
k8s.io/client-go v0.23.6
|
k8s.io/client-go v0.25.4
|
||||||
k8s.io/code-generator v0.23.5
|
k8s.io/code-generator v0.25.0
|
||||||
k8s.io/component-base v0.23.6
|
k8s.io/component-base v0.25.4
|
||||||
k8s.io/klog/v2 v2.70.1
|
k8s.io/klog/v2 v2.80.1
|
||||||
pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732
|
pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732
|
||||||
sigs.k8s.io/controller-runtime v0.11.2
|
sigs.k8s.io/controller-runtime v0.13.1
|
||||||
sigs.k8s.io/mdtoc v1.1.0
|
sigs.k8s.io/mdtoc v1.1.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go v0.81.0 // indirect
|
cloud.google.com/go v0.97.0 // indirect
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||||
github.com/Azure/go-autorest/autorest v0.11.18 // indirect
|
github.com/Azure/go-autorest/autorest v0.11.27 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.13 // indirect
|
github.com/Azure/go-autorest/autorest/adal v0.9.20 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
|
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
|
||||||
github.com/Azure/go-autorest/logger v0.2.1 // indirect
|
github.com/Azure/go-autorest/logger v0.2.1 // indirect
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
|
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
|
||||||
github.com/BurntSushi/toml v0.3.1 // indirect
|
github.com/BurntSushi/toml v0.3.1 // indirect
|
||||||
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||||
github.com/ajg/form v1.5.1 // indirect
|
|
||||||
github.com/andybalholm/brotli v1.0.4 // indirect
|
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/blang/semver v3.5.1+incompatible // indirect
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
|
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
|
||||||
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
|
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/eapache/queue v1.1.0 // indirect
|
github.com/eapache/queue v1.1.0 // indirect
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible // indirect
|
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
||||||
github.com/fatih/structs v1.0.0 // indirect
|
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
|
||||||
github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
|
|
||||||
github.com/fullsailor/pkcs7 v0.0.0-20160414161337-2585af45975b // indirect
|
github.com/fullsailor/pkcs7 v0.0.0-20160414161337-2585af45975b // indirect
|
||||||
github.com/go-errors/errors v1.0.1 // indirect
|
github.com/go-errors/errors v1.0.1 // indirect
|
||||||
github.com/go-logr/logr v1.2.0 // indirect
|
github.com/go-logr/logr v1.2.3 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.19.5 // indirect
|
github.com/go-openapi/jsonreference v0.19.5 // indirect
|
||||||
github.com/go-openapi/swag v0.19.14 // indirect
|
github.com/go-openapi/swag v0.19.14 // indirect
|
||||||
github.com/godbus/dbus/v5 v5.0.6 // indirect
|
github.com/godbus/dbus/v5 v5.0.6 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
|
github.com/golang-jwt/jwt/v4 v4.2.0 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
github.com/golang/protobuf v1.5.2 // indirect
|
||||||
github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7 // indirect
|
github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7 // indirect
|
||||||
github.com/google/btree v1.0.1 // indirect
|
github.com/google/btree v1.0.1 // indirect
|
||||||
|
github.com/google/gnostic v0.5.7-v3refs // indirect
|
||||||
github.com/google/go-cmp v0.5.8 // indirect
|
github.com/google/go-cmp v0.5.8 // indirect
|
||||||
github.com/google/go-querystring v1.0.0 // indirect
|
|
||||||
github.com/google/gofuzz v1.1.0 // indirect
|
github.com/google/gofuzz v1.1.0 // indirect
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||||
github.com/google/uuid v1.2.0 // indirect
|
github.com/google/uuid v1.2.0 // indirect
|
||||||
github.com/googleapis/gnostic v0.5.5 // indirect
|
|
||||||
github.com/gorilla/websocket v1.4.2 // indirect
|
|
||||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
|
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
|
||||||
github.com/imkira/go-interpol v1.0.0 // indirect
|
github.com/inconshreveable/mousetrap v1.0.1 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.0.0 // indirect
|
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/klauspost/compress v1.15.7 // indirect
|
|
||||||
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
|
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
|
||||||
github.com/mailru/easyjson v0.7.6 // indirect
|
github.com/mailru/easyjson v0.7.6 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
||||||
github.com/mmarkdown/mmark v2.0.40+incompatible // indirect
|
github.com/mmarkdown/mmark v2.0.40+incompatible // indirect
|
||||||
github.com/moby/sys/mountinfo v0.5.0 // indirect
|
github.com/moby/sys/mountinfo v0.5.0 // indirect
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
|
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
|
||||||
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
github.com/ncabatoff/go-seq v0.0.0-20180805175032-b08ef85ed833 // indirect
|
github.com/ncabatoff/go-seq v0.0.0-20180805175032-b08ef85ed833 // indirect
|
||||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect
|
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
|
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
|
||||||
|
@ -107,38 +102,31 @@ require (
|
||||||
github.com/prometheus/procfs v0.8.0 // indirect
|
github.com/prometheus/procfs v0.8.0 // indirect
|
||||||
github.com/sergi/go-diff v1.1.0 // indirect
|
github.com/sergi/go-diff v1.1.0 // indirect
|
||||||
github.com/sirupsen/logrus v1.8.1 // indirect
|
github.com/sirupsen/logrus v1.8.1 // indirect
|
||||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
github.com/xlab/treeprint v1.1.0 // indirect
|
||||||
github.com/valyala/fasthttp v1.38.0 // indirect
|
|
||||||
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
|
|
||||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
|
||||||
github.com/xeipuuv/gojsonschema v1.1.0 // indirect
|
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca // indirect
|
|
||||||
github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 // indirect
|
|
||||||
github.com/yudai/gojsondiff v1.0.0 // indirect
|
|
||||||
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
|
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
|
||||||
|
github.com/yudai/pp v2.0.1+incompatible // indirect
|
||||||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
|
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
|
golang.org/x/mod v0.6.0 // indirect
|
||||||
|
golang.org/x/net v0.1.0 // indirect
|
||||||
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
|
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
|
golang.org/x/sys v0.1.0 // indirect
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
|
golang.org/x/term v0.1.0 // indirect
|
||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.4.0 // indirect
|
||||||
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
|
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
|
||||||
golang.org/x/tools v0.1.10 // indirect
|
golang.org/x/tools v0.2.0 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2 // indirect
|
google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect
|
||||||
google.golang.org/protobuf v1.28.1 // indirect
|
google.golang.org/protobuf v1.28.1 // indirect
|
||||||
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
|
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c // indirect
|
k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 // indirect
|
||||||
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect
|
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect
|
||||||
k8s.io/utils v0.0.0-20211116205334-6203023598ed // indirect
|
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect
|
||||||
moul.io/http2curl v1.0.1-0.20190925090545-5cd742060b0e // indirect
|
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
|
||||||
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect
|
sigs.k8s.io/kustomize/api v0.12.1 // indirect
|
||||||
sigs.k8s.io/kustomize/api v0.10.1 // indirect
|
sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
|
||||||
sigs.k8s.io/kustomize/kyaml v0.13.0 // indirect
|
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
|
|
||||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,5 +19,6 @@ set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
KUBE_ROOT="$( cd "$(dirname "$0")../" >/dev/null 2>&1 ; pwd -P )"
|
KUBE_ROOT="$( cd "$(dirname "$0")../" >/dev/null 2>&1 ; pwd -P )"
|
||||||
|
# TODO: This is a temporary workaround while we don't update Helm Chart test
|
||||||
ct lint --charts ${KUBE_ROOT}/charts/ingress-nginx --validate-maintainers=false
|
curl https://raw.githubusercontent.com/helm/chart-testing/v3.7.0/etc/chart_schema.yaml -o /tmp/chart_schema.yaml
|
||||||
|
ct lint --charts ${KUBE_ROOT}/charts/ingress-nginx --validate-maintainers=false --chart-yaml-schema=/tmp/chart_schema.yaml
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
# 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.
|
||||||
|
|
||||||
FROM golang:1.18.2-alpine as builder
|
FROM golang:1.19.1-alpine as builder
|
||||||
RUN apk add git
|
RUN apk add git
|
||||||
|
|
||||||
WORKDIR /go/src/k8s.io/ingress-nginx/images/custom-error-pages
|
WORKDIR /go/src/k8s.io/ingress-nginx/images/custom-error-pages
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module k8s.io/ingress-nginx/custom-error-pages
|
module k8s.io/ingress-nginx/custom-error-pages
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require github.com/prometheus/client_golang v1.11.0
|
require github.com/prometheus/client_golang v1.11.0
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.18.2-alpine3.15 as builder
|
FROM golang:1.19.2-alpine3.16 as builder
|
||||||
RUN mkdir /authsvc
|
RUN mkdir /authsvc
|
||||||
WORKDIR /authsvc
|
WORKDIR /authsvc
|
||||||
COPY . ./
|
COPY . ./
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module example.com/authsvc
|
module example.com/authsvc
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require k8s.io/apimachinery v0.23.1
|
require k8s.io/apimachinery v0.23.1
|
||||||
|
|
||||||
|
|
|
@ -105,19 +105,7 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
|
||||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
@ -141,12 +129,7 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
# 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.
|
||||||
|
|
||||||
FROM --platform=$BUILDPLATFORM golang:1.18.2 as builder
|
FROM --platform=$BUILDPLATFORM golang:1.19.2 as builder
|
||||||
ARG BUILDPLATFORM
|
ARG BUILDPLATFORM
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module github.com/jet/kube-webhook-certgen
|
module github.com/jet/kube-webhook-certgen
|
||||||
|
|
||||||
go 1.18
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/onrik/logrus v0.9.0
|
github.com/onrik/logrus v0.9.0
|
||||||
|
@ -29,11 +29,11 @@ require (
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/tidwall/gjson v1.14.0 // indirect
|
github.com/tidwall/gjson v1.14.0 // indirect
|
||||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63 // indirect
|
golang.org/x/net v0.1.0 // indirect
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect
|
||||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 // indirect
|
golang.org/x/sys v0.1.0 // indirect
|
||||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect
|
golang.org/x/term v0.1.0 // indirect
|
||||||
golang.org/x/text v0.3.6 // indirect
|
golang.org/x/text v0.4.0 // indirect
|
||||||
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
|
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
|
||||||
google.golang.org/appengine v1.6.5 // indirect
|
google.golang.org/appengine v1.6.5 // indirect
|
||||||
google.golang.org/protobuf v1.26.0 // indirect
|
google.golang.org/protobuf v1.26.0 // indirect
|
||||||
|
|
|
@ -88,7 +88,7 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v2.16.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
|
@ -451,39 +451,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
|
||||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
|
||||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
|
||||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY=
|
|
||||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
|
@ -535,28 +504,23 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22 h1:RqytpXGR1iVNX7psjB3ff8y7sNFinVFvkx1c8SjBkio=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
|
||||||
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE=
|
|
||||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
|
|
|
@ -18,13 +18,13 @@ set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
export NGINX_VERSION=1.19.10
|
export NGINX_VERSION=1.21.6
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/vision5/ngx_devel_kit/compare/v0.3.1...master
|
# Check for recent changes: https://github.com/vision5/ngx_devel_kit/compare/v0.3.1...master
|
||||||
export NDK_VERSION=0.3.1
|
export NDK_VERSION=0.3.1
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/set-misc-nginx-module/compare/v0.32...master
|
# Check for recent changes: https://github.com/openresty/set-misc-nginx-module/compare/v0.33...master
|
||||||
export SETMISC_VERSION=0.32
|
export SETMISC_VERSION=0.33
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/headers-more-nginx-module/compare/v0.33...master
|
# Check for recent changes: https://github.com/openresty/headers-more-nginx-module/compare/v0.33...master
|
||||||
export MORE_HEADERS_VERSION=0.33
|
export MORE_HEADERS_VERSION=0.33
|
||||||
|
@ -60,33 +60,35 @@ export DATADOG_CPP_VERSION=1.3.2
|
||||||
export MODSECURITY_VERSION=1.0.2
|
export MODSECURITY_VERSION=1.0.2
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/SpiderLabs/ModSecurity/compare/v3.0.5...v3/master
|
# Check for recent changes: https://github.com/SpiderLabs/ModSecurity/compare/v3.0.5...v3/master
|
||||||
export MODSECURITY_LIB_VERSION=v3.0.5
|
export MODSECURITY_LIB_VERSION=v3.0.8
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/coreruleset/coreruleset/compare/v3.3.2...v3.3/master
|
# Check for recent changes: https://github.com/coreruleset/coreruleset/compare/v3.3.2...v3.3/master
|
||||||
export OWASP_MODSECURITY_CRS_VERSION=v3.3.2
|
export OWASP_MODSECURITY_CRS_VERSION=v3.3.4
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-nginx-module/compare/v0.10.20...master
|
# Check for recent changes: https://github.com/openresty/lua-nginx-module/compare/v0.10.21...master
|
||||||
export LUA_NGX_VERSION=b721656a9127255003b696b42ccc871c7ec18d59
|
export LUA_NGX_VERSION=0.10.21
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/stream-lua-nginx-module/compare/v0.0.10...master
|
# Check for recent changes: https://github.com/openresty/stream-lua-nginx-module/compare/v0.0.11...master
|
||||||
export LUA_STREAM_NGX_VERSION=74f8c8bca5b95cecbf42d4e1a465bc08cd075a9b
|
export LUA_STREAM_NGX_VERSION=0.0.11
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-upstream-nginx-module/compare/v0.07...master
|
# Check for recent changes: https://github.com/openresty/lua-upstream-nginx-module/compare/8aa93ead98ba2060d4efd594ae33a35d153589bf...master
|
||||||
export LUA_UPSTREAM_VERSION=8aa93ead98ba2060d4efd594ae33a35d153589bf
|
export LUA_UPSTREAM_VERSION=8aa93ead98ba2060d4efd594ae33a35d153589bf
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-cjson/compare/2.1.0.8...openresty:master
|
# Check for recent changes: https://github.com/openresty/lua-cjson/compare/2.1.0.10...openresty:master
|
||||||
export LUA_CJSON_VERSION=4b350c531de3d71008c77ae94e59275b8371b4dc
|
export LUA_CJSON_VERSION=2.1.0.10
|
||||||
|
|
||||||
export NGINX_INFLUXDB_VERSION=5b09391cb7b9a889687c0aa67964c06a2d933e8b
|
export NGINX_INFLUXDB_VERSION=5b09391cb7b9a889687c0aa67964c06a2d933e8b
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/leev/ngx_http_geoip2_module/compare/3.3...master
|
# Check for recent changes: https://github.com/leev/ngx_http_geoip2_module/compare/3.3...master
|
||||||
export GEOIP2_VERSION=a26c6beed77e81553686852dceb6c7fdacc5970d
|
export GEOIP2_VERSION=a26c6beed77e81553686852dceb6c7fdacc5970d
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/yaoweibin/nginx_ajp_module/compare/v0.3.0...master
|
# Check for recent changes: https://github.com/msva/nginx_ajp_module/compare/fcbb2ccca4901d317ecd7a9dabb3fec9378ff40f...master
|
||||||
export NGINX_AJP_VERSION=a964a0bcc6a9f2bfb82a13752d7794a36319ffac
|
# This is a fork from https://github.com/yaoweibin/nginx_ajp_module
|
||||||
|
# Since it has not been updated and is not compatible with NGINX 1.21
|
||||||
|
export NGINX_AJP_VERSION=fcbb2ccca4901d317ecd7a9dabb3fec9378ff40f
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/luajit2/compare/v2.1-20210510...v2.1-agentzh
|
# Check for recent changes: https://github.com/openresty/luajit2/compare/v2.1-20220411...v2.1-agentzh
|
||||||
export LUAJIT_VERSION=2.1-20210510
|
export LUAJIT_VERSION=2.1-20220411
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-balancer/compare/v0.04...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-balancer/compare/v0.04...master
|
||||||
export LUA_RESTY_BALANCER=0.04
|
export LUA_RESTY_BALANCER=0.04
|
||||||
|
@ -94,8 +96,8 @@ export LUA_RESTY_BALANCER=0.04
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-lrucache/compare/v0.11...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-lrucache/compare/v0.11...master
|
||||||
export LUA_RESTY_CACHE=0.11
|
export LUA_RESTY_CACHE=0.11
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-core/compare/v0.1.22...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-core/compare/v0.1.23...master
|
||||||
export LUA_RESTY_CORE=0.1.22
|
export LUA_RESTY_CORE=0.1.23
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/cloudflare/lua-resty-cookie/compare/v0.1.0...master
|
# Check for recent changes: https://github.com/cloudflare/lua-resty-cookie/compare/v0.1.0...master
|
||||||
export LUA_RESTY_COOKIE_VERSION=303e32e512defced053a6484bc0745cf9dc0d39e
|
export LUA_RESTY_COOKIE_VERSION=303e32e512defced053a6484bc0745cf9dc0d39e
|
||||||
|
@ -112,17 +114,17 @@ export LUA_RESTY_LOCK=0.08
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-upload/compare/v0.10...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-upload/compare/v0.10...master
|
||||||
export LUA_RESTY_UPLOAD_VERSION=0.10
|
export LUA_RESTY_UPLOAD_VERSION=0.10
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-string/compare/v0.14...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-string/compare/v0.15...master
|
||||||
export LUA_RESTY_STRING_VERSION=9ace36f2dde09451c377c839117ade45eb02d460
|
export LUA_RESTY_STRING_VERSION=0.15
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-memcached/compare/v0.16...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-memcached/compare/v0.16...master
|
||||||
export LUA_RESTY_MEMCACHED_VERSION=0.16
|
export LUA_RESTY_MEMCACHED_VERSION=0.16
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/openresty/lua-resty-redis/compare/v0.29...master
|
# Check for recent changes: https://github.com/openresty/lua-resty-redis/compare/v0.30...master
|
||||||
export LUA_RESTY_REDIS_VERSION=0.29
|
export LUA_RESTY_REDIS_VERSION=0.30
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/api7/lua-resty-ipmatcher/compare/v0.6...master
|
# Check for recent changes: https://github.com/api7/lua-resty-ipmatcher/compare/v0.6.1...master
|
||||||
export LUA_RESTY_IPMATCHER_VERSION=211e0d2eb8bbb558b79368f89948a0bafdc23654
|
export LUA_RESTY_IPMATCHER_VERSION=0.6.1
|
||||||
|
|
||||||
# Check for recent changes: https://github.com/ElvinEfendi/lua-resty-global-throttle/compare/v0.2.0...main
|
# Check for recent changes: https://github.com/ElvinEfendi/lua-resty-global-throttle/compare/v0.2.0...main
|
||||||
export LUA_RESTY_GLOBAL_THROTTLE_VERSION=0.2.0
|
export LUA_RESTY_GLOBAL_THROTTLE_VERSION=0.2.0
|
||||||
|
@ -200,13 +202,13 @@ mkdir --verbose -p "$BUILD_PATH"
|
||||||
cd "$BUILD_PATH"
|
cd "$BUILD_PATH"
|
||||||
|
|
||||||
# download, verify and extract the source files
|
# download, verify and extract the source files
|
||||||
get_src e8d0290ff561986ad7cd6c33307e12e11b137186c4403a6a5ccdb4914c082d88 \
|
get_src 66dc7081488811e9f925719e34d1b4504c2801c81dee2920e5452a86b11405ae \
|
||||||
"https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz"
|
"https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 0e971105e210d272a497567fa2e2c256f4e39b845a5ba80d373e26ba1abfbd85 \
|
get_src 0e971105e210d272a497567fa2e2c256f4e39b845a5ba80d373e26ba1abfbd85 \
|
||||||
"https://github.com/simpl/ngx_devel_kit/archive/v$NDK_VERSION.tar.gz"
|
"https://github.com/simpl/ngx_devel_kit/archive/v$NDK_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src f1ad2459c4ee6a61771aa84f77871f4bfe42943a4aa4c30c62ba3f981f52c201 \
|
get_src cd5e2cc834bcfa30149e7511f2b5a2183baf0b70dc091af717a89a64e44a2985 \
|
||||||
"https://github.com/openresty/set-misc-nginx-module/archive/v$SETMISC_VERSION.tar.gz"
|
"https://github.com/openresty/set-misc-nginx-module/archive/v$SETMISC_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src a3dcbab117a9c103bc1ea5200fc00a7b7d2af97ff7fd525f16f8ac2632e30fbf \
|
get_src a3dcbab117a9c103bc1ea5200fc00a7b7d2af97ff7fd525f16f8ac2632e30fbf \
|
||||||
|
@ -245,11 +247,11 @@ get_src 7d5f3439c8df56046d0564b5857fd8a30296ab1bd6df0f048aed7afb56a0a4c2 \
|
||||||
get_src 99c47c75c159795c9faf76bbb9fa58e5a50b75286c86565ffcec8514b1c74bf9 \
|
get_src 99c47c75c159795c9faf76bbb9fa58e5a50b75286c86565ffcec8514b1c74bf9 \
|
||||||
"https://github.com/openresty/stream-lua-nginx-module/archive/v$LUA_STREAM_NGX_VERSION.tar.gz"
|
"https://github.com/openresty/stream-lua-nginx-module/archive/v$LUA_STREAM_NGX_VERSION.tar.gz"
|
||||||
else
|
else
|
||||||
get_src 085a9fb2bf9c4466977595a5fe5156d76f3a2d9a2a81be3cacaff2021773393e \
|
get_src 9db756000578efaecb43bea4fc6cf631aaa80988d86ffe5d3afeb9927895ffad \
|
||||||
"https://github.com/openresty/lua-nginx-module/archive/$LUA_NGX_VERSION.tar.gz"
|
"https://github.com/openresty/lua-nginx-module/archive/v$LUA_NGX_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src ba38c9f8e4265836ba7f2ac559ddf140693ff2f5ae33ab1e384f51f3992151ab \
|
get_src c7924f28cb014a99636e747ea907724dd55f60e180cb92cde6e8ed48d2278f27 \
|
||||||
"https://github.com/openresty/stream-lua-nginx-module/archive/$LUA_STREAM_NGX_VERSION.tar.gz"
|
"https://github.com/openresty/stream-lua-nginx-module/archive/v$LUA_STREAM_NGX_VERSION.tar.gz"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -260,7 +262,7 @@ if [[ ${ARCH} == "s390x" ]]; then
|
||||||
get_src 266ed1abb70a9806d97cb958537a44b67db6afb33d3b32292a2d68a2acedea75 \
|
get_src 266ed1abb70a9806d97cb958537a44b67db6afb33d3b32292a2d68a2acedea75 \
|
||||||
"https://github.com/openresty/luajit2/archive/$LUAJIT_VERSION.tar.gz"
|
"https://github.com/openresty/luajit2/archive/$LUAJIT_VERSION.tar.gz"
|
||||||
else
|
else
|
||||||
get_src 1ee6dad809a5bb22efb45e6dac767f7ce544ad652d353a93d7f26b605f69fe3f \
|
get_src d3f2c870f8f88477b01726b32accab30f6e5d57ae59c5ec87374ff73d0794316 \
|
||||||
"https://github.com/openresty/luajit2/archive/v$LUAJIT_VERSION.tar.gz"
|
"https://github.com/openresty/luajit2/archive/v$LUAJIT_VERSION.tar.gz"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -273,14 +275,14 @@ get_src 1af5a5632dc8b00ae103d51b7bf225de3a7f0df82f5c6a401996c080106e600e \
|
||||||
get_src 4c1933434572226942c65b2f2b26c8a536ab76aa771a3c7f6c2629faa764976b \
|
get_src 4c1933434572226942c65b2f2b26c8a536ab76aa771a3c7f6c2629faa764976b \
|
||||||
"https://github.com/leev/ngx_http_geoip2_module/archive/$GEOIP2_VERSION.tar.gz"
|
"https://github.com/leev/ngx_http_geoip2_module/archive/$GEOIP2_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 94d1512bf0e5e6ffa4eca0489db1279d51f45386fffcb8a1d2d9f7fe93518465 \
|
get_src 778fcca851bd69dabfb382dc827d2ee07662f7eca36b5e66e67d5512bad75ef8 \
|
||||||
"https://github.com/yaoweibin/nginx_ajp_module/archive/$NGINX_AJP_VERSION.tar.gz"
|
"https://github.com/msva/nginx_ajp_module/archive/$NGINX_AJP_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 5d16e623d17d4f42cc64ea9cfb69ca960d313e12f5d828f785dd227cc483fcbd \
|
get_src 5d16e623d17d4f42cc64ea9cfb69ca960d313e12f5d828f785dd227cc483fcbd \
|
||||||
"https://github.com/openresty/lua-resty-upload/archive/v$LUA_RESTY_UPLOAD_VERSION.tar.gz"
|
"https://github.com/openresty/lua-resty-upload/archive/v$LUA_RESTY_UPLOAD_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 462c6b38792bab4ca8212bdfd3f2e38f6883bb45c8fb8a03474ea813e0fab853 \
|
get_src bdbf271003d95aa91cab0a92f24dca129e99b33f79c13ebfcdbbcbb558129491 \
|
||||||
"https://github.com/openresty/lua-resty-string/archive/$LUA_RESTY_STRING_VERSION.tar.gz"
|
"https://github.com/openresty/lua-resty-string/archive/v$LUA_RESTY_STRING_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 16d72ed133f0c6df376a327386c3ef4e9406cf51003a700737c3805770ade7c5 \
|
get_src 16d72ed133f0c6df376a327386c3ef4e9406cf51003a700737c3805770ade7c5 \
|
||||||
"https://github.com/openresty/lua-resty-balancer/archive/v$LUA_RESTY_BALANCER.tar.gz"
|
"https://github.com/openresty/lua-resty-balancer/archive/v$LUA_RESTY_BALANCER.tar.gz"
|
||||||
|
@ -289,11 +291,11 @@ if [[ ${ARCH} == "s390x" ]]; then
|
||||||
get_src 8f5f76d2689a3f6b0782f0a009c56a65e4c7a4382be86422c9b3549fe95b0dc4 \
|
get_src 8f5f76d2689a3f6b0782f0a009c56a65e4c7a4382be86422c9b3549fe95b0dc4 \
|
||||||
"https://github.com/openresty/lua-resty-core/archive/v$LUA_RESTY_CORE.tar.gz"
|
"https://github.com/openresty/lua-resty-core/archive/v$LUA_RESTY_CORE.tar.gz"
|
||||||
else
|
else
|
||||||
get_src 4d971f711fad48c097070457c128ca36053835d8a3ba25a937e9991547d55d4d \
|
get_src efd6b51520429e64b1bcc10f477d370ebed1631c190f7e4dc270d959a743ad7d \
|
||||||
"https://github.com/openresty/lua-resty-core/archive/v$LUA_RESTY_CORE.tar.gz"
|
"https://github.com/openresty/lua-resty-core/archive/v$LUA_RESTY_CORE.tar.gz"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
get_src 8d602af2669fb386931760916a39f6c9034f2363c4965f215042c086b8215238 \
|
get_src 0c551d6898f89f876e48730f9b55790d0ba07d5bc0aa6c76153277f63c19489f \
|
||||||
"https://github.com/openresty/lua-cjson/archive/$LUA_CJSON_VERSION.tar.gz"
|
"https://github.com/openresty/lua-cjson/archive/$LUA_CJSON_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 5ed48c36231e2622b001308622d46a0077525ac2f751e8cc0c9905914254baa4 \
|
get_src 5ed48c36231e2622b001308622d46a0077525ac2f751e8cc0c9905914254baa4 \
|
||||||
|
@ -314,11 +316,11 @@ get_src 9fcb6db95bc37b6fce77d3b3dc740d593f9d90dce0369b405eb04844d56ac43f \
|
||||||
get_src 42893da0e3de4ec180c9bf02f82608d78787290a70c5644b538f29d243147396 \
|
get_src 42893da0e3de4ec180c9bf02f82608d78787290a70c5644b538f29d243147396 \
|
||||||
"https://github.com/openresty/lua-resty-memcached/archive/v$LUA_RESTY_MEMCACHED_VERSION.tar.gz"
|
"https://github.com/openresty/lua-resty-memcached/archive/v$LUA_RESTY_MEMCACHED_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 3f602af507aacd1f7aaeddfe7b77627fcde095fe9f115cb9d6ad8de2a52520e1 \
|
get_src c15aed1a01c88a3a6387d9af67a957dff670357f5fdb4ee182beb44635eef3f1 \
|
||||||
"https://github.com/openresty/lua-resty-redis/archive/v$LUA_RESTY_REDIS_VERSION.tar.gz"
|
"https://github.com/openresty/lua-resty-redis/archive/v$LUA_RESTY_REDIS_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src b8dbd502751140993a852381bcd8e98a402454596bd91838c1e51268d42db261 \
|
get_src efb767487ea3f6031577b9b224467ddbda2ad51a41c5867a47582d4ad85d609e \
|
||||||
"https://github.com/api7/lua-resty-ipmatcher/archive/$LUA_RESTY_IPMATCHER_VERSION.tar.gz"
|
"https://github.com/api7/lua-resty-ipmatcher/archive/v$LUA_RESTY_IPMATCHER_VERSION.tar.gz"
|
||||||
|
|
||||||
get_src 0fb790e394510e73fdba1492e576aaec0b8ee9ef08e3e821ce253a07719cf7ea \
|
get_src 0fb790e394510e73fdba1492e576aaec0b8ee9ef08e3e821ce253a07719cf7ea \
|
||||||
"https://github.com/ElvinEfendi/lua-resty-global-throttle/archive/v$LUA_RESTY_GLOBAL_THROTTLE_VERSION.tar.gz"
|
"https://github.com/ElvinEfendi/lua-resty-global-throttle/archive/v$LUA_RESTY_GLOBAL_THROTTLE_VERSION.tar.gz"
|
||||||
|
@ -548,6 +550,7 @@ Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-912-DOS-PROTECTION.conf
|
||||||
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-913-SCANNER-DETECTION.conf
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-913-SCANNER-DETECTION.conf
|
||||||
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf
|
||||||
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-921-PROTOCOL-ATTACK.conf
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-921-PROTOCOL-ATTACK.conf
|
||||||
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-922-MULTIPART-ATTACK.conf
|
||||||
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf
|
||||||
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf
|
||||||
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf
|
Include /etc/nginx/owasp-modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
diff -urp nginx-1.19.9/auto/cc/clang nginx-1.19.9-patched/auto/cc/clang
|
|
||||||
--- nginx-1.19.9/auto/cc/clang 2014-03-04 03:39:24.000000000 -0800
|
|
||||||
+++ nginx-1.19.9-patched/auto/cc/clang 2014-03-13 20:54:26.241413360 -0700
|
|
||||||
@@ -89,7 +89,7 @@ CFLAGS="$CFLAGS -Wconditional-uninitiali
|
|
||||||
CFLAGS="$CFLAGS -Wno-unused-parameter"
|
|
||||||
|
|
||||||
# stop on warning
|
|
||||||
-CFLAGS="$CFLAGS -Werror"
|
|
||||||
+#CFLAGS="$CFLAGS -Werror"
|
|
||||||
|
|
||||||
# debug
|
|
||||||
CFLAGS="$CFLAGS -g"
|
|
||||||
diff -urp nginx-1.19.9/auto/cc/gcc nginx-1.19.9-patched/auto/cc/gcc
|
|
||||||
--- nginx-1.19.9/auto/cc/gcc 2014-03-04 03:39:24.000000000 -0800
|
|
||||||
+++ nginx-1.19.9-patched/auto/cc/gcc 2014-03-13 20:54:13.301355329 -0700
|
|
||||||
@@ -168,7 +168,7 @@ esac
|
|
||||||
|
|
||||||
|
|
||||||
# stop on warning
|
|
||||||
-CFLAGS="$CFLAGS -Werror"
|
|
||||||
+#CFLAGS="$CFLAGS -Werror"
|
|
||||||
|
|
||||||
# debug
|
|
||||||
CFLAGS="$CFLAGS -g"
|
|
||||||
diff -urp nginx-1.19.9/auto/cc/icc nginx-1.19.9-patched/auto/cc/icc
|
|
||||||
--- nginx-1.19.9/auto/cc/icc 2014-03-04 03:39:24.000000000 -0800
|
|
||||||
+++ nginx-1.19.9-patched/auto/cc/icc 2014-03-13 20:54:13.301355329 -0700
|
|
||||||
@@ -115,7 +115,7 @@ case "$NGX_ICC_VER" in
|
|
||||||
esac
|
|
||||||
|
|
||||||
# stop on warning
|
|
||||||
-CFLAGS="$CFLAGS -Werror"
|
|
||||||
+#CFLAGS="$CFLAGS -Werror"
|
|
||||||
|
|
||||||
# debug
|
|
||||||
CFLAGS="$CFLAGS -g"
|
|
|
@ -1,6 +1,6 @@
|
||||||
diff -rup nginx-1.19.9/src/core/nginx.c nginx-1.19.9-patched/src/core/nginx.c
|
diff -rup nginx-1.21.4/src/core/nginx.c nginx-1.21.4-patched/src/core/nginx.c
|
||||||
--- nginx-1.19.9/src/core/nginx.c 2017-12-17 00:00:38.136470108 -0800
|
--- nginx-1.21.4/src/core/nginx.c 2017-12-17 00:00:38.136470108 -0800
|
||||||
+++ nginx-1.19.9-patched/src/core/nginx.c 2017-12-16 23:59:51.680958322 -0800
|
+++ nginx-1.21.4-patched/src/core/nginx.c 2017-12-16 23:59:51.680958322 -0800
|
||||||
@@ -186,6 +186,7 @@ static u_char *ngx_prefix;
|
@@ -186,6 +186,7 @@ static u_char *ngx_prefix;
|
||||||
static u_char *ngx_conf_file;
|
static u_char *ngx_conf_file;
|
||||||
static u_char *ngx_conf_params;
|
static u_char *ngx_conf_params;
|
||||||
|
@ -18,9 +18,9 @@ diff -rup nginx-1.19.9/src/core/nginx.c nginx-1.19.9-patched/src/core/nginx.c
|
||||||
if (ngx_save_argv(&init_cycle, argc, argv) != NGX_OK) {
|
if (ngx_save_argv(&init_cycle, argc, argv) != NGX_OK) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
diff -rup nginx-1.19.9/src/core/ngx_core.h nginx-1.19.9-patched/src/core/ngx_core.h
|
diff -rup nginx-1.21.4/src/core/ngx_core.h nginx-1.21.4-patched/src/core/ngx_core.h
|
||||||
--- nginx-1.19.9/src/core/ngx_core.h 2017-10-10 08:22:51.000000000 -0700
|
--- nginx-1.21.4/src/core/ngx_core.h 2017-10-10 08:22:51.000000000 -0700
|
||||||
+++ nginx-1.19.9-patched/src/core/ngx_core.h 2017-12-16 23:59:51.679958370 -0800
|
+++ nginx-1.21.4-patched/src/core/ngx_core.h 2017-12-16 23:59:51.679958370 -0800
|
||||||
@@ -108,4 +108,6 @@ void ngx_cpuinfo(void);
|
@@ -108,4 +108,6 @@ void ngx_cpuinfo(void);
|
||||||
#define NGX_DISABLE_SYMLINKS_NOTOWNER 2
|
#define NGX_DISABLE_SYMLINKS_NOTOWNER 2
|
||||||
#endif
|
#endif
|
||||||
|
@ -28,9 +28,9 @@ diff -rup nginx-1.19.9/src/core/ngx_core.h nginx-1.19.9-patched/src/core/ngx_cor
|
||||||
+extern ngx_pool_t *saved_init_cycle_pool;
|
+extern ngx_pool_t *saved_init_cycle_pool;
|
||||||
+
|
+
|
||||||
#endif /* _NGX_CORE_H_INCLUDED_ */
|
#endif /* _NGX_CORE_H_INCLUDED_ */
|
||||||
diff -rup nginx-1.19.9/src/core/ngx_cycle.c nginx-1.19.9-patched/src/core/ngx_cycle.c
|
diff -rup nginx-1.21.4/src/core/ngx_cycle.c nginx-1.21.4-patched/src/core/ngx_cycle.c
|
||||||
--- nginx-1.19.9/src/core/ngx_cycle.c 2017-10-10 08:22:51.000000000 -0700
|
--- nginx-1.21.4/src/core/ngx_cycle.c 2017-10-10 08:22:51.000000000 -0700
|
||||||
+++ nginx-1.19.9-patched/src/core/ngx_cycle.c 2017-12-16 23:59:51.678958419 -0800
|
+++ nginx-1.21.4-patched/src/core/ngx_cycle.c 2017-12-16 23:59:51.678958419 -0800
|
||||||
@@ -748,6 +748,10 @@ old_shm_zone_done:
|
@@ -748,6 +748,10 @@ old_shm_zone_done:
|
||||||
|
|
||||||
if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) {
|
if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) {
|
||||||
|
@ -42,9 +42,9 @@ diff -rup nginx-1.19.9/src/core/ngx_cycle.c nginx-1.19.9-patched/src/core/ngx_cy
|
||||||
ngx_destroy_pool(old_cycle->pool);
|
ngx_destroy_pool(old_cycle->pool);
|
||||||
cycle->old_cycle = NULL;
|
cycle->old_cycle = NULL;
|
||||||
|
|
||||||
diff -rup nginx-1.19.9/src/os/unix/ngx_process_cycle.c nginx-1.19.9-patched/src/os/unix/ngx_process_cycle.c
|
diff -rup nginx-1.21.4/src/os/unix/ngx_process_cycle.c nginx-1.21.4-patched/src/os/unix/ngx_process_cycle.c
|
||||||
--- nginx-1.19.9/src/os/unix/ngx_process_cycle.c 2017-12-17 00:00:38.142469762 -0800
|
--- nginx-1.21.4/src/os/unix/ngx_process_cycle.c 2017-12-17 00:00:38.142469762 -0800
|
||||||
+++ nginx-1.19.9-patched/src/os/unix/ngx_process_cycle.c 2017-12-16 23:59:51.691957791 -0800
|
+++ nginx-1.21.4-patched/src/os/unix/ngx_process_cycle.c 2017-12-16 23:59:51.691957791 -0800
|
||||||
@@ -687,6 +692,11 @@ ngx_master_process_exit(ngx_cycle_t *cyc
|
@@ -687,6 +692,11 @@ ngx_master_process_exit(ngx_cycle_t *cyc
|
||||||
ngx_exit_cycle.files_n = ngx_cycle->files_n;
|
ngx_exit_cycle.files_n = ngx_cycle->files_n;
|
||||||
ngx_cycle = &ngx_exit_cycle;
|
ngx_cycle = &ngx_exit_cycle;
|
|
@ -1,5 +1,5 @@
|
||||||
--- nginx-1.19.9/src/core/ngx_log.h 2013-10-08 05:07:14.000000000 -0700
|
--- nginx-1.21.4/src/core/ngx_log.h 2013-10-08 05:07:14.000000000 -0700
|
||||||
+++ nginx-1.19.9-patched/src/core/ngx_log.h 2013-12-05 20:35:35.996236720 -0800
|
+++ nginx-1.21.4-patched/src/core/ngx_log.h 2013-12-05 20:35:35.996236720 -0800
|
||||||
@@ -64,7 +64,9 @@ struct ngx_log_s {
|
@@ -64,7 +64,9 @@ struct ngx_log_s {
|
||||||
};
|
};
|
||||||
|
|
36
images/nginx/rootfs/patches/nginx-1.21.4-no_Werror.patch
Normal file
36
images/nginx/rootfs/patches/nginx-1.21.4-no_Werror.patch
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
diff -urp nginx-1.21.4/auto/cc/clang nginx-1.21.4-patched/auto/cc/clang
|
||||||
|
--- nginx-1.21.4/auto/cc/clang 2014-03-04 03:39:24.000000000 -0800
|
||||||
|
+++ nginx-1.21.4-patched/auto/cc/clang 2014-03-13 20:54:26.241413360 -0700
|
||||||
|
@@ -89,7 +89,7 @@ CFLAGS="$CFLAGS -Wconditional-uninitiali
|
||||||
|
CFLAGS="$CFLAGS -Wno-unused-parameter"
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
-CFLAGS="$CFLAGS -Werror"
|
||||||
|
+#CFLAGS="$CFLAGS -Werror"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
||||||
|
diff -urp nginx-1.21.4/auto/cc/gcc nginx-1.21.4-patched/auto/cc/gcc
|
||||||
|
--- nginx-1.21.4/auto/cc/gcc 2014-03-04 03:39:24.000000000 -0800
|
||||||
|
+++ nginx-1.21.4-patched/auto/cc/gcc 2014-03-13 20:54:13.301355329 -0700
|
||||||
|
@@ -168,7 +168,7 @@ esac
|
||||||
|
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
-CFLAGS="$CFLAGS -Werror"
|
||||||
|
+#CFLAGS="$CFLAGS -Werror"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
||||||
|
diff -urp nginx-1.21.4/auto/cc/icc nginx-1.21.4-patched/auto/cc/icc
|
||||||
|
--- nginx-1.21.4/auto/cc/icc 2014-03-04 03:39:24.000000000 -0800
|
||||||
|
+++ nginx-1.21.4-patched/auto/cc/icc 2014-03-13 20:54:13.301355329 -0700
|
||||||
|
@@ -115,7 +115,7 @@ case "$NGX_ICC_VER" in
|
||||||
|
esac
|
||||||
|
|
||||||
|
# stop on warning
|
||||||
|
-CFLAGS="$CFLAGS -Werror"
|
||||||
|
+#CFLAGS="$CFLAGS -Werror"
|
||||||
|
|
||||||
|
# debug
|
||||||
|
CFLAGS="$CFLAGS -g"
|
|
@ -1,5 +1,5 @@
|
||||||
--- nginx-1.19.9/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800
|
--- nginx-1.21.4/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800
|
||||||
+++ nginx-1.19.9-patched/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800
|
+++ nginx-1.21.4-patched/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800
|
||||||
@@ -793,13 +793,13 @@ static ngx_keyval_t ngx_http_proxy_cach
|
@@ -793,13 +793,13 @@ static ngx_keyval_t ngx_http_proxy_cach
|
||||||
static ngx_http_variable_t ngx_http_proxy_vars[] = {
|
static ngx_http_variable_t ngx_http_proxy_vars[] = {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue