Merge remote-tracking branch 'upstream/main' into pie
This commit is contained in:
commit
4c36f94e6d
121 changed files with 3399 additions and 2523 deletions
104
.github/workflows/ci.yaml
vendored
104
.github/workflows/ci.yaml
vendored
|
@ -42,7 +42,7 @@ jobs:
|
|||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: filter
|
||||
|
@ -62,60 +62,6 @@ jobs:
|
|||
- 'charts/ingress-nginx/**/*'
|
||||
- 'NGINX_BASE'
|
||||
|
||||
|
||||
security:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
|
||||
- name: Run Gosec Security Scanner
|
||||
uses: securego/gosec@a89e9d5a7acb4457f3891ac18532b142b1bf9221 # v2.17.0
|
||||
with:
|
||||
# G601 for zz_generated.deepcopy.go
|
||||
# G306 TODO: Expect WriteFile permissions to be 0600 or less
|
||||
# G307 TODO: Deferring unsafe method "Close"
|
||||
args: -exclude=G109,G601,G104,G204,G304,G306,G307 -tests=false -exclude-dir=test -exclude-dir=images/ -exclude-dir=docs/ ./...
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: |
|
||||
(needs.changes.outputs.go == 'true')
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
|
||||
- name: Set up Go
|
||||
id: go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
check-latest: true
|
||||
|
||||
- name: Run Lint
|
||||
run: ./hack/verify-golint.sh
|
||||
|
||||
gofmt:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: |
|
||||
(needs.changes.outputs.go == 'true')
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
|
||||
- name: Set up Go
|
||||
id: go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
check-latest: true
|
||||
|
||||
- name: Run go-fmt
|
||||
run: ./hack/verify-gofmt.sh
|
||||
|
||||
test-go:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
|
@ -123,13 +69,13 @@ jobs:
|
|||
(needs.changes.outputs.go == 'true')
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Set up Go
|
||||
id: go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
go-version: '1.21.1'
|
||||
check-latest: true
|
||||
|
||||
- name: Run test
|
||||
|
@ -144,21 +90,21 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Set up Go
|
||||
id: go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
go-version: '1.21.1'
|
||||
check-latest: true
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2.2.0
|
||||
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@885d1462b80bc1c1c7f0b00334ad271f09369c55 # v2.10.0
|
||||
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
|
||||
with:
|
||||
version: latest
|
||||
|
||||
|
@ -167,7 +113,7 @@ jobs:
|
|||
|
||||
- name: Prepare Host
|
||||
run: |
|
||||
curl -LO https://dl.k8s.io/release/v1.25.5/bin/linux/amd64/kubectl
|
||||
curl -LO https://dl.k8s.io/release/v1.27.3/bin/linux/amd64/kubectl
|
||||
chmod +x ./kubectl
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||
|
||||
|
@ -189,7 +135,7 @@ jobs:
|
|||
| gzip > docker.tar.gz
|
||||
|
||||
- name: cache
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
||||
with:
|
||||
name: docker.tar.gz
|
||||
path: docker.tar.gz
|
||||
|
@ -205,16 +151,16 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
k8s: [v1.24.15, v1.25.11, v1.26.6, v1.27.3]
|
||||
k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
go-version: '1.21.1'
|
||||
check-latest: true
|
||||
|
||||
- name: cache
|
||||
|
@ -280,11 +226,11 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
k8s: [v1.24.15, v1.25.11, v1.26.6, v1.27.3]
|
||||
k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: cache
|
||||
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
|
||||
|
@ -311,7 +257,7 @@ jobs:
|
|||
make kind-e2e-test
|
||||
|
||||
- name: Upload e2e junit-reports
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-test-reports-${{ matrix.k8s }}
|
||||
|
@ -328,11 +274,11 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
k8s: [v1.24.15, v1.25.11, v1.26.6, v1.27.3]
|
||||
k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: cache
|
||||
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
|
||||
|
@ -360,7 +306,7 @@ jobs:
|
|||
make kind-e2e-test
|
||||
|
||||
- name: Upload e2e junit-reports
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-test-reports-${{ matrix.k8s }}
|
||||
|
@ -378,12 +324,12 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
k8s: [v1.24.15, v1.25.11, v1.26.6, v1.27.3]
|
||||
k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0]
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: cache
|
||||
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
|
||||
|
@ -411,7 +357,7 @@ jobs:
|
|||
make kind-e2e-test
|
||||
|
||||
- name: Upload e2e junit-reports
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-test-reports-chroot-${{ matrix.k8s }}
|
||||
|
@ -427,7 +373,7 @@ jobs:
|
|||
PLATFORMS: linux/amd64,linux/arm64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: filter-images
|
||||
|
@ -496,11 +442,11 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
k8s: [v1.24.15, v1.25.11, v1.26.6, v1.27.3]
|
||||
k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: filter-images
|
||||
|
@ -521,7 +467,7 @@ jobs:
|
|||
if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }}
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
go-version: '1.21.1'
|
||||
check-latest: true
|
||||
|
||||
- name: kube-webhook-certgen image build
|
||||
|
|
4
.github/workflows/depreview.yaml
vendored
4
.github/workflows/depreview.yaml
vendored
|
@ -9,6 +9,6 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout Repository'
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
- name: 'Dependency Review'
|
||||
uses: actions/dependency-review-action@f6fff72a3217f580d5afd49a46826795305b63c7 # v3.0.8
|
||||
uses: actions/dependency-review-action@6c5ccdad469c9f8a2996bfecaec55a631a347034 # v3.1.0
|
||||
|
|
4
.github/workflows/docs.yaml
vendored
4
.github/workflows/docs.yaml
vendored
|
@ -23,7 +23,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||
id: filter
|
||||
|
@ -47,7 +47,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout master
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Deploy
|
||||
uses: ./.github/actions/mkdocs
|
||||
|
|
34
.github/workflows/golangci-lint.yml
vendored
Normal file
34
.github/workflows/golangci-lint.yml
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
name: golangci-lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- 'deploy/**'
|
||||
- '**.md'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
golangci:
|
||||
name: lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Set up Go
|
||||
id: go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.21.1'
|
||||
check-latest: true
|
||||
|
||||
- name: golangci-lint
|
||||
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
|
||||
with:
|
||||
version: v1.53
|
4
.github/workflows/helm.yaml
vendored
4
.github/workflows/helm.yaml
vendored
|
@ -23,7 +23,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Run Artifact Hub lint
|
||||
run: |
|
||||
|
@ -61,7 +61,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout master
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
with:
|
||||
# Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896
|
||||
fetch-depth: 0
|
||||
|
|
2
.github/workflows/perftest.yaml
vendored
2
.github/workflows/perftest.yaml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- name: Install K6
|
||||
run: |
|
||||
|
|
6
.github/workflows/plugin.yaml
vendored
6
.github/workflows/plugin.yaml
vendored
|
@ -15,18 +15,18 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
||||
with:
|
||||
go-version: '1.20'
|
||||
go-version: '1.21.1'
|
||||
check-latest: true
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@3fa32b8bb5620a2c1afe798654bbad59f9da4906 # v4.4.0
|
||||
uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0
|
||||
with:
|
||||
version: latest
|
||||
args: release --clean
|
||||
|
|
4
.github/workflows/scorecards.yml
vendored
4
.github/workflows/scorecards.yml
vendored
|
@ -27,7 +27,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
@ -51,7 +51,7 @@ jobs:
|
|||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||
# format to the repository Actions tab.
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
||||
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
|
|
6
.github/workflows/vulnerability-scans.yaml
vendored
6
.github/workflows/vulnerability-scans.yaml
vendored
|
@ -22,7 +22,7 @@ jobs:
|
|||
versions: ${{ steps.version.outputs.TAGS }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
@ -52,7 +52,7 @@ jobs:
|
|||
versions: ${{ fromJSON(needs.version.outputs.versions) }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||
|
||||
- shell: bash
|
||||
id: test
|
||||
|
@ -60,7 +60,7 @@ jobs:
|
|||
|
||||
- name: Scan image with AquaSec/Trivy
|
||||
id: scan
|
||||
uses: aquasecurity/trivy-action@41f05d9ecffa2ed3f1580af306000f734b733e54 # v0.11.2
|
||||
uses: aquasecurity/trivy-action@fbd16365eb88e12433951383f5e99bd901fc618f # v0.12.0
|
||||
with:
|
||||
image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }}
|
||||
format: 'sarif'
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -60,3 +60,4 @@ cmd/plugin/release/ingress-nginx.yaml
|
|||
cmd/plugin/release/*.tar.gz
|
||||
cmd/plugin/release/LICENSE
|
||||
tmp/
|
||||
test/junitreports/
|
||||
|
|
241
.golangci.yml
Normal file
241
.golangci.yml
Normal file
|
@ -0,0 +1,241 @@
|
|||
run:
|
||||
timeout: 10m
|
||||
allow-parallel-runners: true
|
||||
|
||||
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
|
||||
max-issues-per-linter: 0
|
||||
|
||||
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
|
||||
max-same-issues: 0
|
||||
linters:
|
||||
disable-all: true
|
||||
enable:
|
||||
- asasalint
|
||||
- asciicheck
|
||||
- bidichk
|
||||
- bodyclose
|
||||
- contextcheck
|
||||
- decorder
|
||||
- dogsled
|
||||
- dupl
|
||||
- durationcheck
|
||||
- errcheck
|
||||
- errchkjson
|
||||
- errname
|
||||
- execinquery
|
||||
- ginkgolinter
|
||||
- gocheckcompilerdirectives
|
||||
- goconst
|
||||
- gocritic
|
||||
- gocyclo
|
||||
- godox
|
||||
- gofmt
|
||||
- gofumpt
|
||||
- goheader
|
||||
- goimports
|
||||
- gomoddirectives
|
||||
- gomodguard
|
||||
- goprintffuncname
|
||||
- gosec
|
||||
- gosimple
|
||||
- govet
|
||||
- grouper
|
||||
- importas
|
||||
- ineffassign
|
||||
- loggercheck
|
||||
- makezero
|
||||
- misspell
|
||||
- musttag
|
||||
- nakedret
|
||||
- nolintlint
|
||||
- nosprintfhostport
|
||||
- prealloc
|
||||
- predeclared
|
||||
- promlinter
|
||||
- reassign
|
||||
- revive
|
||||
- rowserrcheck
|
||||
- sqlclosecheck
|
||||
- staticcheck
|
||||
- stylecheck
|
||||
- tenv
|
||||
- testableexamples
|
||||
- typecheck
|
||||
- unconvert
|
||||
- unparam
|
||||
- unused
|
||||
- usestdlibvars
|
||||
- whitespace
|
||||
# - containedctx
|
||||
# - cyclop
|
||||
# - dupword
|
||||
# - errorlint
|
||||
# - exhaustive
|
||||
# - exhaustruct
|
||||
# - exportloopref
|
||||
# - forbidigo
|
||||
# - forcetypeassert
|
||||
# - funlen
|
||||
# - gci
|
||||
# - gochecknoglobals
|
||||
# - gochecknoinits
|
||||
# - gocognit
|
||||
# - godot
|
||||
# - goerr113
|
||||
# - gomnd
|
||||
# - interfacebloat
|
||||
# - ireturn
|
||||
# - lll
|
||||
# - maintidx
|
||||
# - nestif
|
||||
# - nilerr
|
||||
# - nilnil
|
||||
# - nlreturn
|
||||
# - noctx
|
||||
# - nonamedreturns
|
||||
# - paralleltest
|
||||
# - tagliatelle
|
||||
# - testpackage
|
||||
# - thelper
|
||||
# - tparallel
|
||||
# - varnamelen
|
||||
# - wastedassign
|
||||
# - wrapcheck
|
||||
# - wsl
|
||||
linters-settings:
|
||||
gocyclo:
|
||||
min-complexity: 40
|
||||
godox:
|
||||
keywords:
|
||||
- BUG
|
||||
- FIXME
|
||||
- HACK
|
||||
errcheck:
|
||||
check-type-assertions: true
|
||||
check-blank: true
|
||||
gocritic:
|
||||
enabled-checks:
|
||||
# Diagnostic
|
||||
- appendAssign
|
||||
- argOrder
|
||||
- badCall
|
||||
- badCond
|
||||
- badLock
|
||||
- badRegexp
|
||||
- badSorting
|
||||
- builtinShadowDecl
|
||||
- caseOrder
|
||||
- codegenComment
|
||||
- commentedOutCode
|
||||
- deferInLoop
|
||||
- deprecatedComment
|
||||
- dupArg
|
||||
- dupBranchBody
|
||||
- dupCase
|
||||
- dupSubExpr
|
||||
- dynamicFmtString
|
||||
- emptyDecl
|
||||
- evalOrder
|
||||
- exitAfterDefer
|
||||
- externalErrorReassign
|
||||
- filepathJoin
|
||||
- flagDeref
|
||||
- flagName
|
||||
- mapKey
|
||||
- nilValReturn
|
||||
- offBy1
|
||||
- regexpPattern
|
||||
- returnAfterHttpError
|
||||
- sloppyReassign
|
||||
- sloppyTypeAssert
|
||||
- sortSlice
|
||||
- sprintfQuotedString
|
||||
- sqlQuery
|
||||
- syncMapLoadAndDelete
|
||||
- truncateCmp
|
||||
- unnecessaryDefer
|
||||
- weakCond
|
||||
|
||||
# Performance
|
||||
- appendCombine
|
||||
- equalFold
|
||||
- hugeParam
|
||||
- indexAlloc
|
||||
- preferDecodeRune
|
||||
- preferFprint
|
||||
- preferStringWriter
|
||||
- preferWriteByte
|
||||
- rangeExprCopy
|
||||
- rangeValCopy
|
||||
- sliceClear
|
||||
- stringXbytes
|
||||
|
||||
# Style
|
||||
- assignOp
|
||||
- boolExprSimplify
|
||||
- captLocal
|
||||
- commentFormatting
|
||||
- commentedOutImport
|
||||
- defaultCaseOrder
|
||||
- deferUnlambda
|
||||
- docStub
|
||||
- dupImport
|
||||
- elseif
|
||||
- emptyFallthrough
|
||||
- emptyStringTest
|
||||
- exposedSyncMutex
|
||||
- hexLiteral
|
||||
- httpNoBody
|
||||
- ifElseChain
|
||||
- methodExprCall
|
||||
- newDeref
|
||||
- octalLiteral
|
||||
- preferFilepathJoin
|
||||
- redundantSprint
|
||||
- regexpMust
|
||||
- regexpSimplify
|
||||
- ruleguard
|
||||
- singleCaseSwitch
|
||||
- sloppyLen
|
||||
- stringConcatSimplify
|
||||
- stringsCompare
|
||||
- switchTrue
|
||||
- timeCmpSimplify
|
||||
- timeExprSimplify
|
||||
- todoCommentWithoutDetail
|
||||
- tooManyResultsChecker
|
||||
- typeAssertChain
|
||||
- typeDefFirst
|
||||
- typeSwitchVar
|
||||
- underef
|
||||
- unlabelStmt
|
||||
- unlambda
|
||||
- unslice
|
||||
- valSwap
|
||||
- whyNoLint
|
||||
- wrapperFunc
|
||||
- yodaStyleExpr
|
||||
|
||||
# Opinionated
|
||||
- builtinShadow
|
||||
- importShadow
|
||||
- initClause
|
||||
- nestingReduce
|
||||
- paramTypeCombine
|
||||
- ptrToRefParam
|
||||
- typeUnparen
|
||||
- unnamedResult
|
||||
- unnecessaryBlock
|
||||
nolintlint:
|
||||
# Enable to ensure that nolint directives are all used. Default is true.
|
||||
allow-unused: false
|
||||
# Disable to ensure that nolint directives don't have a leading space. Default is true.
|
||||
# TODO(lint): Enforce machine-readable `nolint` directives
|
||||
allow-leading-space: true
|
||||
# Exclude following linters from requiring an explanation. Default is [].
|
||||
allow-no-explanation: []
|
||||
# Enable to require an explanation of nonzero length after each nolint directive. Default is false.
|
||||
# TODO(lint): Enforce explanations for `nolint` directives
|
||||
require-explanation: false
|
||||
# Enable to require nolint directives to mention the specific linter being suppressed. Default is false.
|
||||
require-specific: true
|
6
Makefile
6
Makefile
|
@ -128,6 +128,12 @@ static-check: ## Run verification script for boilerplate, codegen, gofmt, golint
|
|||
MAC_OS=$(MAC_OS) \
|
||||
hack/verify-all.sh
|
||||
|
||||
.PHONY: golint-check
|
||||
golint-check:
|
||||
@build/run-in-docker.sh \
|
||||
MAC_OS=$(MAC_OS) \
|
||||
hack/verify-golint.sh
|
||||
|
||||
###############################
|
||||
# Tests for ingress-nginx
|
||||
###############################
|
||||
|
|
|
@ -38,6 +38,7 @@ the versions listed. Ingress-Nginx versions may work on older versions but the p
|
|||
|
||||
| | Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version | Helm Chart Version |
|
||||
|:--:|-----------------------|------------------------------|----------------|---------------|--------------------|
|
||||
| 🔄 | **v1.8.2** | 1.27,1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* |
|
||||
| 🔄 | **v1.8.1** | 1.27,1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* |
|
||||
| 🔄 | **v1.8.0** | 1.27,1.26, 1.25, 1.24 | 3.18.0 | 1.21.6 | 4.7.* |
|
||||
| 🔄 | **v1.7.1** | 1.27,1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* |
|
||||
|
|
2
TAG
2
TAG
|
@ -1 +1 @@
|
|||
v1.8.0
|
||||
v1.8.2
|
||||
|
|
|
@ -44,7 +44,7 @@ function cleanup {
|
|||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20230623-d50c7193b@sha256:e5c68dc56934c273850bfb75c0348a2819756669baf59fcdce9e16771537b247}
|
||||
E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20230907-5bb82dcb7@sha256:421cda0f65a949b8b67b5e62a45071702d19ed458a3e2ba753171b0e66943210}
|
||||
|
||||
if [[ "$RUNTIME" == podman ]]; then
|
||||
# Podman does not support both tag and digest
|
||||
|
|
19
changelog/Changelog-1.8.2.md
Normal file
19
changelog/Changelog-1.8.2.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Changelog
|
||||
|
||||
### 1.8.2
|
||||
Images:
|
||||
|
||||
* registry.k8s.io/ingress-nginx/controller:v1.8.2@sha256:74834d3d25b336b62cabeb8bf7f1d788706e2cf1cfd64022de4137ade8881ff2
|
||||
* registry.k8s.io/ingress-nginx/controller-chroot:v1.8.2@sha256:1317a563219f755a6094d990057c78e5c4dcea5e31f4ce1db8641e732a7d6133
|
||||
|
||||
### All Changes:
|
||||
|
||||
* Release v1.8.2 and Update Go to v1.21.1 (#10379)
|
||||
* Making auth access logs optional (#10380)
|
||||
* [release-1.8] Disable Modsecurity from internal processing which affects large ingresses (#10375)
|
||||
* promote distroless otel init image (#10270)
|
||||
* [release-1.8] Update images tags after adding git data in gcloud (#10233)
|
||||
* [release-1.8] Golang 1.20.6 for test runner (#10231)
|
||||
|
||||
### Dependencies updates:
|
||||
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-controller-v1.8.1...controller-controller-v1.8.2
|
93
changelog/Changelog-1.9.0-beta.0.md
Normal file
93
changelog/Changelog-1.9.0-beta.0.md
Normal file
|
@ -0,0 +1,93 @@
|
|||
# Changelog
|
||||
|
||||
### 1.9.0-beta.0
|
||||
Images:
|
||||
|
||||
* registry.k8s.io/ingress-nginx/controller:v1.9.0-beta.0@sha256:531377e4cc9dc62af40d742402222603259673f5a755a64d74122f256dfad8f9
|
||||
* registry.k8s.io/ingress-nginx/controller-chroot:v1.9.0-beta.0@sha256:60b4c95349ce2a81a3b2a76423ee483b847b89d3fa8cb148468434f606f3fa0c
|
||||
|
||||
### All Changes:
|
||||
|
||||
* Rework mage (#10418)
|
||||
* Start release of v1.9.0 beta0 (#10407)
|
||||
* Update k8s versions on CI (#10406)
|
||||
* Add a flag to enable or disable aio_write (#10394)
|
||||
* Update external-articles.md - advanced setup with GKE/Cloud Armor/IAP (#10372)
|
||||
* Fix e2e test suite doc (#10396)
|
||||
* Disable user snippets per default (#10393)
|
||||
* Deployment/DaemonSet: Fix templating & value. (#10240)
|
||||
* Fix deferInLoop error (#10387)
|
||||
* Remove gofmt (#10385)
|
||||
* Deployment/DaemonSet: Template `topologySpreadConstraints`. (#10259)
|
||||
* release notes 1.8.2 (#10389)
|
||||
* fix: remove curl on base container #9716 (#10306)
|
||||
* Fix http default backend test (#10382)
|
||||
* Add golangci github action and replace the deprecated golint (#10187)
|
||||
* BUGFIX incorrect indentation (#10254)
|
||||
* Upgrade OpenTelemetry to v1.11.0 and gRPC to v1.57.0 (#10352)
|
||||
* fix: path with sepecial characters warning #10281 #10308 (#10330)
|
||||
* Fix golangci-lint errors (#10196)
|
||||
* chore(build): Fix Run make dev-env syntax error (#10294)
|
||||
* Add firewall configuration to quick start documentation (#10357)
|
||||
* Making auth access logs optional (#10335)
|
||||
* Fix “dev-env” Makefile target to work with kubectl 1.28+ (#10350)
|
||||
* fix: update action file to auto release plugin #10197 (#10321)
|
||||
* Use gzip instead of pigz in CI (#10348)
|
||||
* Disable Modsecurity from internal processing which affects large ingresses (#10316)
|
||||
* fix: add /etc/mime.types #10309 (#10310)
|
||||
* Remove curl dependencies in e2e tests #9716 (#10296)
|
||||
* docs: swap explanation to match example (#10220)
|
||||
* ci(helm): fix Helm Chart release action 422 error (#10237)
|
||||
* helm: Use .Release.Namespace as default for ServiceMonitor namespace (#10249)
|
||||
* Updated index.md - Fix typos (#10256)
|
||||
* Handle request_id variable correctly in auth requests (#9219)
|
||||
* test kind updates (#10272)
|
||||
* promote distroless otel init image (#10257)
|
||||
* [helm] configure allow to configure hostAliases (#10180)
|
||||
* Add rolling update strategy to each static deployment file (#10129)
|
||||
* Implement annotation validation (#9673)
|
||||
* Golang 1.20.6 for test runner (#10230)
|
||||
* [helm] pass service annotations through helm tpl engine (#10084)
|
||||
* Ignore deployment template's replicas if KEDA is enabled (#9534)
|
||||
* chore: bump OpenResty to v1.21.4.2 (#10219)
|
||||
* Scanning port 10247 lead to tcp connection 502 error (#9815)
|
||||
* revise Datadog trace sampling configuration (#10151)
|
||||
* Clarify TCP/UDP service docs (#10146)
|
||||
* Exposed continent data as variable in the case of Maxmind city files (#10157)
|
||||
* Cleanup errcheck code (#10166)
|
||||
* Fix golang-ci linter errors (#10128)
|
||||
* Deprecate and remove AJP support (#10158)
|
||||
* release notes 1.8.1 (#10161)
|
||||
|
||||
### Dependencies updates:
|
||||
* Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.12.0 (#10355)
|
||||
* Bump golang.org/x/crypto from 0.12.0 to 0.13.0 (#10399)
|
||||
* Bump actions/setup-go from 4.0.1 to 4.1.0 (#10403)
|
||||
* Bump goreleaser/goreleaser-action from 4.4.0 to 4.6.0 (#10402)
|
||||
* Bump actions/upload-artifact from 3.1.2 to 3.1.3 (#10404)
|
||||
* Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 (#10400)
|
||||
* Bump google.golang.org/grpc from 1.57.0 to 1.58.0 (#10398)
|
||||
* Bump actions/dependency-review-action from 3.0.8 to 3.1.0 (#10401)
|
||||
* Bump github.com/cyphar/filepath-securejoin from 0.2.3 to 0.2.4 (#10373)
|
||||
* Bump github.com/cyphar/filepath-securejoin in /magefiles (#10374)
|
||||
* Bump Go version to 1.21.1 (#10377)
|
||||
* Bump Go version to 1.21.1 on testrunner (#10378)
|
||||
* Bump aquasecurity/trivy-action from 0.11.2 to 0.12.0 (#10365)
|
||||
* Bump docker/setup-buildx-action from 2.9.1 to 2.10.0 (#10353)
|
||||
* Bump actions/checkout from 3.5.3 to 3.6.0 (#10354)
|
||||
* Bump actions/dependency-review-action from 3.0.6 to 3.0.8 (#10333)
|
||||
* Bump actions/setup-go from 4.0.1 to 4.1.0 (#10313)
|
||||
* Bump securego/gosec from 2.16.0 to 2.17.0 (#10332)
|
||||
* Bump goreleaser/goreleaser-action from 4.3.0 to 4.4.0 (#10314)
|
||||
* Bump github.com/opencontainers/runc from 1.1.8 to 1.1.9 (#10298)
|
||||
* Bump k8s.io/component-base from 0.26.4 to 0.27.4 (Replace Topology Aware Hints with Topology Aware Routing) (#10282)
|
||||
* Bump google.golang.org/grpc from 1.56.2 to 1.57.0 (#10258)
|
||||
* Bump golang.org/x/crypto from 0.11.0 to 0.12.0 (#10280)
|
||||
* Bump github.com/opencontainers/runc from 1.1.7 to 1.1.8 (#10244)
|
||||
* Bump google.golang.org/grpc from 1.56.1 to 1.56.2 (#10193)
|
||||
* Bump docker/setup-buildx-action from 2.9.0 to 2.9.1 (#10207)
|
||||
* Bump golang.org/x/crypto from 0.10.0 to 0.11.0 (#10192)
|
||||
* Bump docker/setup-buildx-action from 2.8.0 to 2.9.0 (#10191)
|
||||
* Bump docker/setup-buildx-action from 2.7.0 to 2.8.0 (#10165)
|
||||
|
||||
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-release-1.8...controller-controller-v1.9.0-beta.0
|
93
changelog/Changelog-1.9.0.md
Normal file
93
changelog/Changelog-1.9.0.md
Normal file
|
@ -0,0 +1,93 @@
|
|||
# Changelog
|
||||
|
||||
### 1.9.0
|
||||
Images:
|
||||
|
||||
* registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
* registry.k8s.io/ingress-nginx/controller-chroot:v1.9.0@sha256:d9fa7a136de2104fb2ecfcf1666978bfab927f4a125b75c0fb471e6104366ab5
|
||||
|
||||
### All Changes:
|
||||
|
||||
* Rework mage (#10418)
|
||||
* Start release of v1.9.0 beta0 (#10407)
|
||||
* Update k8s versions on CI (#10406)
|
||||
* Add a flag to enable or disable aio_write (#10394)
|
||||
* Update external-articles.md - advanced setup with GKE/Cloud Armor/IAP (#10372)
|
||||
* Fix e2e test suite doc (#10396)
|
||||
* Disable user snippets per default (#10393)
|
||||
* Deployment/DaemonSet: Fix templating & value. (#10240)
|
||||
* Fix deferInLoop error (#10387)
|
||||
* Remove gofmt (#10385)
|
||||
* Deployment/DaemonSet: Template `topologySpreadConstraints`. (#10259)
|
||||
* release notes 1.8.2 (#10389)
|
||||
* fix: remove curl on base container #9716 (#10306)
|
||||
* Fix http default backend test (#10382)
|
||||
* Add golangci github action and replace the deprecated golint (#10187)
|
||||
* BUGFIX incorrect indentation (#10254)
|
||||
* Upgrade OpenTelemetry to v1.11.0 and gRPC to v1.57.0 (#10352)
|
||||
* fix: path with sepecial characters warning #10281 #10308 (#10330)
|
||||
* Fix golangci-lint errors (#10196)
|
||||
* chore(build): Fix Run make dev-env syntax error (#10294)
|
||||
* Add firewall configuration to quick start documentation (#10357)
|
||||
* Making auth access logs optional (#10335)
|
||||
* Fix “dev-env” Makefile target to work with kubectl 1.28+ (#10350)
|
||||
* fix: update action file to auto release plugin #10197 (#10321)
|
||||
* Use gzip instead of pigz in CI (#10348)
|
||||
* Disable Modsecurity from internal processing which affects large ingresses (#10316)
|
||||
* fix: add /etc/mime.types #10309 (#10310)
|
||||
* Remove curl dependencies in e2e tests #9716 (#10296)
|
||||
* docs: swap explanation to match example (#10220)
|
||||
* ci(helm): fix Helm Chart release action 422 error (#10237)
|
||||
* helm: Use .Release.Namespace as default for ServiceMonitor namespace (#10249)
|
||||
* Updated index.md - Fix typos (#10256)
|
||||
* Handle request_id variable correctly in auth requests (#9219)
|
||||
* test kind updates (#10272)
|
||||
* promote distroless otel init image (#10257)
|
||||
* [helm] configure allow to configure hostAliases (#10180)
|
||||
* Add rolling update strategy to each static deployment file (#10129)
|
||||
* Implement annotation validation (#9673)
|
||||
* Golang 1.20.6 for test runner (#10230)
|
||||
* [helm] pass service annotations through helm tpl engine (#10084)
|
||||
* Ignore deployment template's replicas if KEDA is enabled (#9534)
|
||||
* chore: bump OpenResty to v1.21.4.2 (#10219)
|
||||
* Scanning port 10247 lead to tcp connection 502 error (#9815)
|
||||
* revise Datadog trace sampling configuration (#10151)
|
||||
* Clarify TCP/UDP service docs (#10146)
|
||||
* Exposed continent data as variable in the case of Maxmind city files (#10157)
|
||||
* Cleanup errcheck code (#10166)
|
||||
* Fix golang-ci linter errors (#10128)
|
||||
* Deprecate and remove AJP support (#10158)
|
||||
* release notes 1.8.1 (#10161)
|
||||
|
||||
### Dependencies updates:
|
||||
* Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.12.0 (#10355)
|
||||
* Bump golang.org/x/crypto from 0.12.0 to 0.13.0 (#10399)
|
||||
* Bump actions/setup-go from 4.0.1 to 4.1.0 (#10403)
|
||||
* Bump goreleaser/goreleaser-action from 4.4.0 to 4.6.0 (#10402)
|
||||
* Bump actions/upload-artifact from 3.1.2 to 3.1.3 (#10404)
|
||||
* Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 (#10400)
|
||||
* Bump google.golang.org/grpc from 1.57.0 to 1.58.0 (#10398)
|
||||
* Bump actions/dependency-review-action from 3.0.8 to 3.1.0 (#10401)
|
||||
* Bump github.com/cyphar/filepath-securejoin from 0.2.3 to 0.2.4 (#10373)
|
||||
* Bump github.com/cyphar/filepath-securejoin in /magefiles (#10374)
|
||||
* Bump Go version to 1.21.1 (#10377)
|
||||
* Bump Go version to 1.21.1 on testrunner (#10378)
|
||||
* Bump aquasecurity/trivy-action from 0.11.2 to 0.12.0 (#10365)
|
||||
* Bump docker/setup-buildx-action from 2.9.1 to 2.10.0 (#10353)
|
||||
* Bump actions/checkout from 3.5.3 to 3.6.0 (#10354)
|
||||
* Bump actions/dependency-review-action from 3.0.6 to 3.0.8 (#10333)
|
||||
* Bump actions/setup-go from 4.0.1 to 4.1.0 (#10313)
|
||||
* Bump securego/gosec from 2.16.0 to 2.17.0 (#10332)
|
||||
* Bump goreleaser/goreleaser-action from 4.3.0 to 4.4.0 (#10314)
|
||||
* Bump github.com/opencontainers/runc from 1.1.8 to 1.1.9 (#10298)
|
||||
* Bump k8s.io/component-base from 0.26.4 to 0.27.4 (Replace Topology Aware Hints with Topology Aware Routing) (#10282)
|
||||
* Bump google.golang.org/grpc from 1.56.2 to 1.57.0 (#10258)
|
||||
* Bump golang.org/x/crypto from 0.11.0 to 0.12.0 (#10280)
|
||||
* Bump github.com/opencontainers/runc from 1.1.7 to 1.1.8 (#10244)
|
||||
* Bump google.golang.org/grpc from 1.56.1 to 1.56.2 (#10193)
|
||||
* Bump docker/setup-buildx-action from 2.9.0 to 2.9.1 (#10207)
|
||||
* Bump golang.org/x/crypto from 0.10.0 to 0.11.0 (#10192)
|
||||
* Bump docker/setup-buildx-action from 2.8.0 to 2.9.0 (#10191)
|
||||
* Bump docker/setup-buildx-action from 2.7.0 to 2.8.0 (#10165)
|
||||
|
||||
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-release-1.8...controller-controller-v1.9.0
|
|
@ -1,15 +1,15 @@
|
|||
annotations:
|
||||
artifacthub.io/changes: |
|
||||
- "Added a doc line to the missing helm value service.internal.loadBalancerIP (#9406)"
|
||||
- "feat(helm): Add loadBalancerClass (#9562)"
|
||||
- "added helmshowvalues example (#10019)"
|
||||
- "Update Ingress-Nginx version controller-v1.8.1"
|
||||
- "ci(helm): fix Helm Chart release action 422 error (#10237)"
|
||||
- "helm: Use .Release.Namespace as default for ServiceMonitor namespace (#10249)"
|
||||
- "[helm] configure allow to configure hostAliases (#10180)"
|
||||
- "[helm] pass service annotations through helm tpl engine (#10084)"
|
||||
- "Update Ingress-Nginx version controller-v1.9.0"
|
||||
artifacthub.io/prerelease: "false"
|
||||
apiVersion: v2
|
||||
appVersion: 1.8.1
|
||||
appVersion: 1.9.0
|
||||
description: Ingress controller for Kubernetes using NGINX as a reverse proxy and
|
||||
load balancer
|
||||
engine: gotpl
|
||||
home: https://github.com/kubernetes/ingress-nginx
|
||||
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/500px-Nginx_logo.svg.png
|
||||
keywords:
|
||||
|
@ -23,4 +23,4 @@ maintainers:
|
|||
name: ingress-nginx
|
||||
sources:
|
||||
- https://github.com/kubernetes/ingress-nginx
|
||||
version: 4.7.1
|
||||
version: 4.8.0
|
||||
|
|
|
@ -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
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources.
|
||||
|
||||
|
@ -249,7 +249,6 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| controller.admissionWebhooks.key | string | `"/usr/local/certificates/key"` | |
|
||||
| controller.admissionWebhooks.labels | object | `{}` | Labels to be added to admission webhooks |
|
||||
| controller.admissionWebhooks.namespaceSelector | object | `{}` | |
|
||||
| controller.admissionWebhooks.networkPolicyEnabled | bool | `false` | |
|
||||
| controller.admissionWebhooks.objectSelector | object | `{}` | |
|
||||
| controller.admissionWebhooks.patch.enabled | bool | `true` | |
|
||||
| controller.admissionWebhooks.patch.image.digest | string | `"sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b"` | |
|
||||
|
@ -274,7 +273,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| controller.admissionWebhooks.service.servicePort | int | `443` | |
|
||||
| controller.admissionWebhooks.service.type | string | `"ClusterIP"` | |
|
||||
| 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 | `false` | 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.autoscaling.annotations | object | `{}` | |
|
||||
| controller.autoscaling.behavior | object | `{}` | |
|
||||
|
@ -307,7 +306,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| 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.healthCheckPath | string | `"/healthz"` | Path of the health check endpoint. All requests received on the port defined by the healthz-port parameter are forwarded internally to this path. |
|
||||
| controller.hostAliases | object | `{}` | Optionally customize the pod hostAliases. |
|
||||
| controller.hostAliases | list | `[]` | Optionally customize the pod hostAliases. |
|
||||
| controller.hostNetwork | bool | `false` | Required for use with CNI based kubernetes installations (such as ones set up by kubeadm), since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920 is merged |
|
||||
| controller.hostPort.enabled | bool | `false` | Enable 'hostPort' or not |
|
||||
| controller.hostPort.ports.http | int | `80` | 'hostPort' http port |
|
||||
|
@ -315,13 +314,13 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| controller.hostname | object | `{}` | Optionally customize the pod hostname. |
|
||||
| controller.image.allowPrivilegeEscalation | bool | `true` | |
|
||||
| controller.image.chroot | bool | `false` | |
|
||||
| controller.image.digest | string | `"sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd"` | |
|
||||
| controller.image.digestChroot | string | `"sha256:e0d4121e3c5e39de9122e55e331a32d5ebf8d4d257227cb93ab54a1b912a7627"` | |
|
||||
| controller.image.digest | string | `"sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60"` | |
|
||||
| controller.image.digestChroot | string | `"sha256:d9fa7a136de2104fb2ecfcf1666978bfab927f4a125b75c0fb471e6104366ab5"` | |
|
||||
| controller.image.image | string | `"ingress-nginx/controller"` | |
|
||||
| controller.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| controller.image.registry | string | `"registry.k8s.io"` | |
|
||||
| controller.image.runAsUser | int | `101` | |
|
||||
| controller.image.tag | string | `"v1.8.1"` | |
|
||||
| controller.image.tag | string | `"v1.9.0"` | |
|
||||
| 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.ingressClassResource.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller-value of the controller that is processing this ingressClass |
|
||||
|
@ -374,10 +373,12 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| controller.minAvailable | int | `1` | Minimum available pods set in PodDisruptionBudget. Define either 'minAvailable' or 'maxUnavailable', never both. |
|
||||
| controller.minReadySeconds | int | `0` | `minReadySeconds` to avoid killing pods before we are ready # |
|
||||
| controller.name | string | `"controller"` | |
|
||||
| controller.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not |
|
||||
| controller.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for controller pod assignment # Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ # |
|
||||
| controller.opentelemetry.containerSecurityContext.allowPrivilegeEscalation | bool | `false` | |
|
||||
| controller.opentelemetry.enabled | bool | `false` | |
|
||||
| controller.opentelemetry.image | string | `"registry.k8s.io/ingress-nginx/opentelemetry:v20230721-3e2062ee5@sha256:13bee3f5223883d3ca62fee7309ad02d22ec00ff0d7033e3e9aca7a9f60fd472"` | |
|
||||
| controller.opentelemetry.resources | object | `{}` | |
|
||||
| controller.podAnnotations | object | `{}` | Annotations to be added to controller pods # |
|
||||
| controller.podLabels | object | `{}` | Labels to add to the pod container metadata |
|
||||
| controller.podSecurityContext | object | `{}` | Security Context policies for controller pods |
|
||||
|
@ -471,6 +472,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| defaultBackend.minAvailable | int | `1` | |
|
||||
| defaultBackend.minReadySeconds | int | `0` | `minReadySeconds` to avoid killing pods before we are ready # |
|
||||
| defaultBackend.name | string | `"defaultbackend"` | |
|
||||
| defaultBackend.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not |
|
||||
| defaultBackend.nodeSelector | object | `{"kubernetes.io/os":"linux"}` | Node labels for default backend pod assignment # Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ # |
|
||||
| defaultBackend.podAnnotations | object | `{}` | Annotations to be added to default backend pods # |
|
||||
| defaultBackend.podLabels | object | `{}` | Labels to add to the pod container metadata |
|
||||
|
|
9
charts/ingress-nginx/changelog/Changelog-4.7.2.md
Normal file
9
charts/ingress-nginx/changelog/Changelog-4.7.2.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||
|
||||
### 4.7.2
|
||||
|
||||
* Update Ingress-Nginx version controller-v1.8.2
|
||||
|
||||
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.7.1...helm-chart-4.7.2
|
13
charts/ingress-nginx/changelog/Changelog-4.8.0-beta.0.md
Normal file
13
charts/ingress-nginx/changelog/Changelog-4.8.0-beta.0.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Changelog
|
||||
|
||||
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||
|
||||
### 4.8.0-beta.0
|
||||
|
||||
* ci(helm): fix Helm Chart release action 422 error (#10237)
|
||||
* helm: Use .Release.Namespace as default for ServiceMonitor namespace (#10249)
|
||||
* [helm] configure allow to configure hostAliases (#10180)
|
||||
* [helm] pass service annotations through helm tpl engine (#10084)
|
||||
* Update Ingress-Nginx version controller-v1.9.0-beta.0
|
||||
|
||||
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.7.2...helm-chart-4.8.0-beta.0
|
13
charts/ingress-nginx/changelog/Changelog-4.8.0.md
Normal file
13
charts/ingress-nginx/changelog/Changelog-4.8.0.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Changelog
|
||||
|
||||
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||
|
||||
### 4.8.0
|
||||
|
||||
* ci(helm): fix Helm Chart release action 422 error (#10237)
|
||||
* helm: Use .Release.Namespace as default for ServiceMonitor namespace (#10249)
|
||||
* [helm] configure allow to configure hostAliases (#10180)
|
||||
* [helm] pass service annotations through helm tpl engine (#10084)
|
||||
* Update Ingress-Nginx version controller-v1.9.0
|
||||
|
||||
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.7.2...helm-chart-4.8.0
|
|
@ -198,7 +198,6 @@ IngressClass parameters.
|
|||
Extra modules.
|
||||
*/}}
|
||||
{{- define "extraModules" -}}
|
||||
|
||||
- name: {{ .name }}
|
||||
image: {{ .image }}
|
||||
{{- if .distroless | default false }}
|
||||
|
@ -209,8 +208,10 @@ Extra modules.
|
|||
{{- if .containerSecurityContext }}
|
||||
securityContext: {{ .containerSecurityContext | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .resources }}
|
||||
resources: {{ .resources | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: {{ toYaml "modules"}}
|
||||
mountPath: {{ toYaml "/modules_mount"}}
|
||||
|
||||
{{- end -}}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.networkPolicyEnabled }}
|
||||
{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled (not .Values.controller.admissionWebhooks.certManager.enabled) -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
|
@ -16,11 +16,11 @@ metadata:
|
|||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
{{- include "ingress-nginx.labels" . | nindent 6 }}
|
||||
{{- include "ingress-nginx.selectorLabels" . | nindent 6 }}
|
||||
app.kubernetes.io/component: admission-webhook
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
- Ingress
|
||||
- Egress
|
||||
egress:
|
||||
- {}
|
||||
- {}
|
||||
{{- end }}
|
||||
|
|
|
@ -45,6 +45,9 @@ spec:
|
|||
{{- if .Values.controller.dnsConfig }}
|
||||
dnsConfig: {{ toYaml .Values.controller.dnsConfig | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.hostAliases }}
|
||||
hostAliases: {{ tpl (toYaml .Values.controller.hostAliases) $ | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.hostname }}
|
||||
hostname: {{ toYaml .Values.controller.hostname | nindent 8 }}
|
||||
{{- end }}
|
||||
|
@ -180,13 +183,14 @@ spec:
|
|||
{{- end }}
|
||||
{{- if .Values.controller.extraModules }}
|
||||
{{- range .Values.controller.extraModules }}
|
||||
{{ $containerSecurityContext := .containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{ include "extraModules" (dict "name" .name "image" .image "containerSecurityContext" $containerSecurityContext) | indent 8 }}
|
||||
{{- $containerSecurityContext := .containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{- include "extraModules" (dict "name" .name "image" .image "containerSecurityContext" $containerSecurityContext) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.opentelemetry.enabled}}
|
||||
{{ $otelContainerSecurityContext := $.Values.controller.opentelemetry.containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{- include "extraModules" (dict "name" "opentelemetry" "image" .Values.controller.opentelemetry.image "containerSecurityContext" $otelContainerSecurityContext) | nindent 8}}
|
||||
{{- $otelContainerSecurityContext := $.Values.controller.opentelemetry.containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{ $otelResources := $.Values.controller.opentelemetry.resources | default dict }}
|
||||
{{- include "extraModules" (dict "name" "opentelemetry" "image" .Values.controller.opentelemetry.image "containerSecurityContext" $otelContainerSecurityContext "distroless" true "resources" $otelResources) | nindent 8}}
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.hostNetwork }}
|
||||
|
@ -202,7 +206,7 @@ spec:
|
|||
affinity: {{ toYaml .Values.controller.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.topologySpreadConstraints }}
|
||||
topologySpreadConstraints: {{ toYaml .Values.controller.topologySpreadConstraints | nindent 8 }}
|
||||
topologySpreadConstraints: {{ tpl (toYaml .Values.controller.topologySpreadConstraints) $ | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ template "ingress-nginx.serviceAccountName" . }}
|
||||
terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
|
||||
|
|
|
@ -24,8 +24,7 @@ spec:
|
|||
{{- end }}
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
{{- if .Values.controller.updateStrategy }}
|
||||
strategy:
|
||||
{{ toYaml .Values.controller.updateStrategy | nindent 4 }}
|
||||
strategy: {{ toYaml .Values.controller.updateStrategy | nindent 4 }}
|
||||
{{- end }}
|
||||
minReadySeconds: {{ .Values.controller.minReadySeconds }}
|
||||
template:
|
||||
|
@ -187,13 +186,14 @@ spec:
|
|||
{{- end }}
|
||||
{{- if .Values.controller.extraModules }}
|
||||
{{- range .Values.controller.extraModules }}
|
||||
{{ $containerSecurityContext := .containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{ include "extraModules" (dict "name" .name "image" .image "containerSecurityContext" $containerSecurityContext) | indent 8 }}
|
||||
{{- $containerSecurityContext := .containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{- include "extraModules" (dict "name" .name "image" .image "containerSecurityContext" $containerSecurityContext) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.opentelemetry.enabled}}
|
||||
{{ $otelContainerSecurityContext := $.Values.controller.opentelemetry.containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{- include "extraModules" (dict "name" "opentelemetry" "image" .Values.controller.opentelemetry.image "containerSecurityContext" $otelContainerSecurityContext "distroless" true) | nindent 8}}
|
||||
{{- $otelContainerSecurityContext := $.Values.controller.opentelemetry.containerSecurityContext | default $.Values.controller.containerSecurityContext }}
|
||||
{{ $otelResources := $.Values.controller.opentelemetry.resources | default dict }}
|
||||
{{- include "extraModules" (dict "name" "opentelemetry" "image" .Values.controller.opentelemetry.image "containerSecurityContext" $otelContainerSecurityContext "distroless" true "resources" $otelResources) | nindent 8}}
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.hostNetwork }}
|
||||
|
@ -209,7 +209,7 @@ spec:
|
|||
affinity: {{ toYaml .Values.controller.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.topologySpreadConstraints }}
|
||||
topologySpreadConstraints: {{ toYaml .Values.controller.topologySpreadConstraints | nindent 8 }}
|
||||
topologySpreadConstraints: {{ tpl (toYaml .Values.controller.topologySpreadConstraints) $ | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ template "ingress-nginx.serviceAccountName" . }}
|
||||
terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
|
||||
|
|
45
charts/ingress-nginx/templates/controller-networkpolicy.yaml
Normal file
45
charts/ingress-nginx/templates/controller-networkpolicy.yaml
Normal file
|
@ -0,0 +1,45 @@
|
|||
{{- if .Values.controller.networkPolicy.enabled }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "ingress-nginx.labels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: controller
|
||||
{{- with .Values.controller.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "ingress-nginx.controller.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
{{- include "ingress-nginx.selectorLabels" . | nindent 6 }}
|
||||
app.kubernetes.io/component: controller
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
ingress:
|
||||
- ports:
|
||||
{{- range $key, $value := .Values.controller.containerPort }}
|
||||
- protocol: TCP
|
||||
port: {{ $value }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.metrics.enabled }}
|
||||
- protocol: TCP
|
||||
port: {{ .Values.controller.metrics.port }}
|
||||
{{- end }}
|
||||
{{- if .Values.controller.admissionWebhooks.enabled }}
|
||||
- protocol: TCP
|
||||
port: {{ .Values.controller.admissionWebhooks.port }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.tcp }}
|
||||
- protocol: TCP
|
||||
port: {{ $key }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.udp }}
|
||||
- protocol: UDP
|
||||
port: {{ $key }}
|
||||
{{- end }}
|
||||
egress:
|
||||
- {}
|
||||
{{- end }}
|
|
@ -11,8 +11,7 @@ metadata:
|
|||
name: {{ template "ingress-nginx.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- if .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml .Values.serviceAccount.annotations | nindent 4 }}
|
||||
annotations: {{ toYaml .Values.serviceAccount.annotations | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
{{- 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 }}
|
|
@ -0,0 +1,25 @@
|
|||
{{- if and .Values.defaultBackend.enabled .Values.defaultBackend.networkPolicy.enabled }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "ingress-nginx.labels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: default-backend
|
||||
{{- with .Values.defaultBackend.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
name: {{ include "ingress-nginx.defaultBackend.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
{{- include "ingress-nginx.selectorLabels" . | nindent 6 }}
|
||||
app.kubernetes.io/component: default-backend
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
ingress:
|
||||
- ports:
|
||||
- protocol: TCP
|
||||
port: {{ .Values.defaultBackend.port }}
|
||||
{{- end }}
|
|
@ -24,9 +24,9 @@ controller:
|
|||
## 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
|
||||
## repository:
|
||||
tag: "v1.8.1"
|
||||
digest: sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
digestChroot: sha256:e0d4121e3c5e39de9122e55e331a32d5ebf8d4d257227cb93ab54a1b912a7627
|
||||
tag: "v1.9.0"
|
||||
digest: sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
digestChroot: sha256:d9fa7a136de2104fb2ecfcf1666978bfab927f4a125b75c0fb471e6104366ab5
|
||||
pullPolicy: IfNotPresent
|
||||
# www-data -> uid 101
|
||||
runAsUser: 101
|
||||
|
@ -50,7 +50,15 @@ controller:
|
|||
# -- Optionally customize the pod dnsConfig.
|
||||
dnsConfig: {}
|
||||
# -- Optionally customize the pod hostAliases.
|
||||
hostAliases: {}
|
||||
hostAliases: []
|
||||
# - ip: 127.0.0.1
|
||||
# hostnames:
|
||||
# - foo.local
|
||||
# - bar.local
|
||||
# - ip: 10.1.2.3
|
||||
# hostnames:
|
||||
# - foo.remote
|
||||
# - bar.remote
|
||||
# -- Optionally customize the pod hostname.
|
||||
hostname: {}
|
||||
# -- Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'.
|
||||
|
@ -73,7 +81,7 @@ controller:
|
|||
# their own *-snippet annotations, otherwise this is forbidden / dropped
|
||||
# when users add those annotations.
|
||||
# Global snippets in ConfigMap are still respected
|
||||
allowSnippetAnnotations: true
|
||||
allowSnippetAnnotations: false
|
||||
# -- Required for use with CNI based kubernetes installations (such as ones set up by kubeadm),
|
||||
# since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920
|
||||
# is merged
|
||||
|
@ -88,6 +96,10 @@ controller:
|
|||
http: 80
|
||||
# -- 'hostPort' https port
|
||||
https: 443
|
||||
# NetworkPolicy for controller component.
|
||||
networkPolicy:
|
||||
# -- Enable 'networkPolicy' or not
|
||||
enabled: false
|
||||
# -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
|
||||
electionID: ""
|
||||
## This section refers to the creation of the IngressClass resource
|
||||
|
@ -248,12 +260,22 @@ controller:
|
|||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
# - maxSkew: 1
|
||||
# topologyKey: topology.kubernetes.io/zone
|
||||
# whenUnsatisfiable: DoNotSchedule
|
||||
# labelSelector:
|
||||
# - labelSelector:
|
||||
# matchLabels:
|
||||
# app.kubernetes.io/instance: ingress-nginx-internal
|
||||
# app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
|
||||
# app.kubernetes.io/instance: '{{ .Release.Name }}'
|
||||
# app.kubernetes.io/component: controller
|
||||
# topologyKey: topology.kubernetes.io/zone
|
||||
# maxSkew: 1
|
||||
# whenUnsatisfiable: ScheduleAnyway
|
||||
# - labelSelector:
|
||||
# matchLabels:
|
||||
# app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
|
||||
# app.kubernetes.io/instance: '{{ .Release.Name }}'
|
||||
# app.kubernetes.io/component: controller
|
||||
# topologyKey: kubernetes.io/hostname
|
||||
# maxSkew: 1
|
||||
# whenUnsatisfiable: ScheduleAnyway
|
||||
|
||||
# -- `terminationGracePeriodSeconds` to avoid killing pods before we are ready
|
||||
## wait up to five minutes for the drain of connections
|
||||
|
@ -559,6 +581,7 @@ controller:
|
|||
image: registry.k8s.io/ingress-nginx/opentelemetry:v20230721-3e2062ee5@sha256:13bee3f5223883d3ca62fee7309ad02d22ec00ff0d7033e3e9aca7a9f60fd472
|
||||
containerSecurityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
resources: {}
|
||||
admissionWebhooks:
|
||||
annotations: {}
|
||||
# ignore-check.kube-linter.io/no-read-only-rootfs: "This deployment needs write access to root filesystem".
|
||||
|
@ -587,7 +610,6 @@ controller:
|
|||
labels: {}
|
||||
# -- Use an existing PSP instead of creating one
|
||||
existingPsp: ""
|
||||
networkPolicyEnabled: false
|
||||
service:
|
||||
annotations: {}
|
||||
# clusterIP: ""
|
||||
|
@ -853,6 +875,12 @@ defaultBackend:
|
|||
maxReplicas: 2
|
||||
targetCPUUtilizationPercentage: 50
|
||||
targetMemoryUtilizationPercentage: 50
|
||||
|
||||
# NetworkPolicy for default backend component.
|
||||
networkPolicy:
|
||||
# -- Enable 'networkPolicy' or not
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
annotations: {}
|
||||
# clusterIP: ""
|
||||
|
|
|
@ -29,8 +29,8 @@ import (
|
|||
|
||||
// The default deployment and service names for ingress-nginx
|
||||
const (
|
||||
DefaultIngressDeploymentName = "ingress-nginx-controller"
|
||||
DefaultIngressServiceName = "ingress-nginx-controller"
|
||||
DefaultIngressDeploymentName = "ingress-nginx-controller" //#nosec G101
|
||||
DefaultIngressServiceName = "ingress-nginx-controller" //#nosec G101
|
||||
DefaultIngressContainerName = "controller"
|
||||
)
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
|
@ -328,7 +328,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -344,7 +344,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -377,7 +377,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -400,7 +400,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -422,7 +422,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -446,7 +446,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -518,7 +518,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -529,7 +529,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -565,7 +565,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -576,7 +576,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -614,7 +614,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -627,7 +627,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
http-snippet: |
|
||||
server {
|
||||
listen 2443;
|
||||
|
@ -335,7 +335,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -353,7 +353,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -386,7 +386,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -409,7 +409,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -431,7 +431,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -455,7 +455,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -530,7 +530,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -541,7 +541,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -577,7 +577,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -588,7 +588,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -626,7 +626,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -639,7 +639,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
|
@ -328,7 +328,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -340,7 +340,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -372,7 +372,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -395,7 +395,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -417,7 +417,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -440,7 +440,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -512,7 +512,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -523,7 +523,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -559,7 +559,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -570,7 +570,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -608,7 +608,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -621,7 +621,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
|
@ -328,7 +328,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -340,7 +340,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -373,7 +373,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -396,7 +396,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -418,7 +418,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -442,7 +442,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -514,7 +514,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -525,7 +525,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -561,7 +561,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -572,7 +572,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -610,7 +610,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -623,7 +623,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
use-proxy-protocol: "true"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
@ -329,7 +329,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -343,7 +343,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -376,7 +376,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -399,7 +399,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -421,7 +421,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -445,7 +445,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -517,7 +517,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -528,7 +528,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -564,7 +564,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -575,7 +575,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -613,7 +613,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -626,7 +626,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
|
@ -328,7 +328,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -349,7 +349,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -382,7 +382,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -405,7 +405,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -423,7 +423,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -447,7 +447,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -523,7 +523,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -534,7 +534,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -570,7 +570,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -581,7 +581,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -619,7 +619,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -632,7 +632,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
|
@ -328,7 +328,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -340,7 +340,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -372,7 +372,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -395,7 +395,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -417,7 +417,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -442,7 +442,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -524,7 +524,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -535,7 +535,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -571,7 +571,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -582,7 +582,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -620,7 +620,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -633,7 +633,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
|
@ -328,7 +328,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -344,7 +344,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -377,7 +377,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -400,7 +400,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -422,7 +422,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -446,7 +446,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -518,7 +518,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -529,7 +529,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -565,7 +565,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -576,7 +576,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -614,7 +614,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -627,7 +627,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -27,7 +27,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -39,7 +39,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -129,7 +129,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
rules:
|
||||
|
@ -148,7 +148,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -230,7 +230,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -249,7 +249,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -269,7 +269,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
namespace: ingress-nginx
|
||||
roleRef:
|
||||
|
@ -288,7 +288,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -307,7 +307,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
@ -320,7 +320,7 @@ subjects:
|
|||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
allow-snippet-annotations: "true"
|
||||
allow-snippet-annotations: "false"
|
||||
use-proxy-protocol: "true"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
@ -329,7 +329,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
---
|
||||
|
@ -343,7 +343,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -376,7 +376,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller-admission
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -399,7 +399,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-controller
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -421,7 +421,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
@ -445,7 +445,7 @@ spec:
|
|||
fieldPath: metadata.namespace
|
||||
- name: LD_PRELOAD
|
||||
value: /usr/local/lib/libmimalloc.so
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.8.1@sha256:e5c4824e7375fcf2a393e1c03c293b69759af37a9ca6abdb91b13d78a93da8bd
|
||||
image: registry.k8s.io/ingress-nginx/controller:v1.9.0@sha256:c15d1a617858d90fb8f8a2dd60b0676f2bb85c54e3ed11511794b86ec30c8c60
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
|
@ -517,7 +517,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -528,7 +528,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-create
|
||||
spec:
|
||||
containers:
|
||||
|
@ -564,7 +564,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
namespace: ingress-nginx
|
||||
spec:
|
||||
|
@ -575,7 +575,7 @@ spec:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission-patch
|
||||
spec:
|
||||
containers:
|
||||
|
@ -613,7 +613,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: nginx
|
||||
spec:
|
||||
controller: k8s.io/ingress-nginx
|
||||
|
@ -626,7 +626,7 @@ metadata:
|
|||
app.kubernetes.io/instance: ingress-nginx
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
app.kubernetes.io/version: 1.8.1
|
||||
app.kubernetes.io/version: 1.9.0
|
||||
name: ingress-nginx-admission
|
||||
webhooks:
|
||||
- admissionReviewVersions:
|
||||
|
|
|
@ -68,7 +68,7 @@ helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx
|
|||
**If you don't have Helm** or if you prefer to use a YAML manifest, you can run the following command instead:
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
||||
```
|
||||
|
||||
!!! info
|
||||
|
@ -249,7 +249,7 @@ In AWS, we use a Network load balancer (NLB) to expose the Ingress-Nginx Control
|
|||
##### Network Load Balancer (NLB)
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/aws/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/deploy.yaml
|
||||
```
|
||||
|
||||
##### TLS termination in AWS Load Balancer (NLB)
|
||||
|
@ -257,10 +257,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.
|
||||
This section explains how to do that on AWS using an NLB.
|
||||
|
||||
1. Download the [deploy.yaml](https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/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.8.2/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template
|
||||
|
||||
```console
|
||||
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml
|
||||
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/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:
|
||||
|
@ -306,7 +306,7 @@ Then, the ingress controller can be installed like this:
|
|||
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
||||
```
|
||||
|
||||
!!! warning
|
||||
|
@ -323,7 +323,7 @@ Proxy-protocol is supported in GCE check the [Official Documentations on how to
|
|||
#### Azure
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/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).
|
||||
|
@ -331,7 +331,7 @@ More information with regard to Azure annotations for ingress controller can be
|
|||
#### Digital Ocean
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/do/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/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.
|
||||
|
||||
|
@ -339,7 +339,7 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont
|
|||
#### Scaleway
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/scw/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/scw/deploy.yaml
|
||||
```
|
||||
|
||||
#### Exoscale
|
||||
|
@ -354,7 +354,7 @@ The full list of annotations supported by Exoscale is available in the Exoscale
|
|||
#### Oracle Cloud Infrastructure
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
|
||||
```
|
||||
|
||||
A
|
||||
|
@ -381,7 +381,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.
|
||||
|
||||
```console
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/baremetal/deploy.yaml
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/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),
|
||||
|
|
1447
docs/e2e-tests.md
1447
docs/e2e-tests.md
File diff suppressed because it is too large
Load diff
|
@ -30,6 +30,9 @@ Rewriting can be controlled using the following annotations:
|
|||
!!! note
|
||||
[Captured groups](https://www.regular-expressions.info/refcapture.html) are saved in numbered placeholders, chronologically, in the form `$1`, `$2` ... `$n`. These placeholders can be used as parameters in the `rewrite-target` annotation.
|
||||
|
||||
!!! note
|
||||
Please see the [FAQ](../../faq.md#validation-of-path) for Validation Of __`path`__
|
||||
|
||||
Create an Ingress rule with a rewrite annotation:
|
||||
|
||||
```console
|
||||
|
@ -49,7 +52,7 @@ spec:
|
|||
http:
|
||||
paths:
|
||||
- path: /something(/|$)(.*)
|
||||
pathType: Prefix
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: http-svc
|
||||
|
|
|
@ -4,3 +4,4 @@
|
|||
- [Accessing Kubernetes Pods from Outside of the Cluster](http://alesnosek.com/blog/2017/02/14/accessing-kubernetes-pods-from-outside-of-the-cluster)
|
||||
- [Kubernetes - Redirect HTTP to HTTPS with ELB and the Ingress-Nginx Controller](https://dev.to/tomhoule/kubernetes---redirect-http-to-https-with-elb-and-the-nginx-ingress-controller)
|
||||
- [Configure Nginx Ingress Controller for TLS termination on Kubernetes on Azure](https://blogs.technet.microsoft.com/livedevopsinjapan/2017/02/28/configure-nginx-ingress-controller-for-tls-termination-on-kubernetes-on-azure-2/)
|
||||
- [Secure your Nginx Ingress controller behind Google Cloud Armor or Identity-Aware Proxy (IAP)](https://medium.com/google-cloud/secure-your-nginx-ingress-controller-behind-cloud-armor-805d6109af86?sk=f64029bb5624b4ad5cd2828f4c358af3)
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
!!! important
|
||||
Regular expressions and wild cards are not supported in the `spec.rules.host` field. Full hostnames must be used.
|
||||
|
||||
!!! note
|
||||
Please see the [FAQ](../faq.md#validation-of-path) for Validation Of __`path`__
|
||||
|
||||
The ingress controller supports **case insensitive** regular expressions in the `spec.rules.http.paths.path` field.
|
||||
This can be enabled by setting the `nginx.ingress.kubernetes.io/use-regex` annotation to `true` (the default is false).
|
||||
|
||||
|
@ -28,7 +31,7 @@ spec:
|
|||
http:
|
||||
paths:
|
||||
- path: /foo/.*
|
||||
pathType: Prefix
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: test
|
||||
|
@ -95,7 +98,7 @@ spec:
|
|||
http:
|
||||
paths:
|
||||
- path: /foo/bar/(.+)
|
||||
pathType: Prefix
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: service3
|
||||
|
@ -160,7 +163,7 @@ spec:
|
|||
port:
|
||||
number: 80
|
||||
- path: /foo/bar/[A-Z0-9]{3}
|
||||
pathType: Prefix
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: test
|
||||
|
|
|
@ -30,7 +30,7 @@ The following table shows a configuration option's name, type, and the default v
|
|||
|[add-headers](#add-headers)|string|""||
|
||||
|[allow-backend-server-header](#allow-backend-server-header)|bool|"false"||
|
||||
|[allow-cross-namespace-resources](#allow-cross-namespace-resources)|bool|"true"||
|
||||
|[allow-snippet-annotations](#allow-snippet-annotations)|bool|true||
|
||||
|[allow-snippet-annotations](#allow-snippet-annotations)|bool|false||
|
||||
|[annotations-risk-level](#annotations-risk-level)|string|Critical||
|
||||
|[annotation-value-word-blocklist](#annotation-value-word-blocklist)|string array|""||
|
||||
|[hide-headers](#hide-headers)|string array|empty||
|
||||
|
@ -97,6 +97,7 @@ The following table shows a configuration option's name, type, and the default v
|
|||
|[ssl-buffer-size](#ssl-buffer-size)|string|"4k"||
|
||||
|[use-proxy-protocol](#use-proxy-protocol)|bool|"false"||
|
||||
|[proxy-protocol-header-timeout](#proxy-protocol-header-timeout)|string|"5s"||
|
||||
|[enable-aio-write](#enable-aio-write)|bool|"true"||
|
||||
|[use-gzip](#use-gzip)|bool|"false"||
|
||||
|[use-geoip](#use-geoip)|bool|"true"||
|
||||
|[use-geoip2](#use-geoip2)|bool|"false"||
|
||||
|
@ -258,7 +259,7 @@ Enables users to consume cross namespace resource on annotations, when was previ
|
|||
|
||||
## allow-snippet-annotations
|
||||
|
||||
Enables Ingress to parse and add *-snippet annotations/directives created by the user. _**default:**_ `true`
|
||||
Enables Ingress to parse and add *-snippet annotations/directives created by the user. _**default:**_ `false`
|
||||
|
||||
Warning: We recommend enabling this option only if you TRUST users with permission to create Ingress objects, as this
|
||||
may allow a user to add restricted configurations to the final nginx.conf file
|
||||
|
@ -710,6 +711,10 @@ Enables or disables the [PROXY protocol](https://www.nginx.com/resources/admin-g
|
|||
Sets the timeout value for receiving the proxy-protocol headers. The default of 5 seconds prevents the TLS passthrough handler from waiting indefinitely on a dropped connection.
|
||||
_**default:**_ 5s
|
||||
|
||||
## enable-aio-write
|
||||
|
||||
Enables or disables the directive [aio_write](https://nginx.org/en/docs/http/ngx_http_core_module.html#aio_write) that writes files asynchronously. _**default:**_ true
|
||||
|
||||
## use-gzip
|
||||
|
||||
Enables or disables compression of HTTP responses using the ["gzip" module](https://nginx.org/en/docs/http/ngx_http_gzip_module.html). MIME types to compress are controlled by [gzip-types](#gzip-types). _**default:**_ false
|
||||
|
|
28
go.mod
28
go.mod
|
@ -1,6 +1,6 @@
|
|||
module k8s.io/ingress-nginx
|
||||
|
||||
go 1.20
|
||||
go 1.21.1
|
||||
|
||||
require (
|
||||
github.com/armon/go-proxyproto v0.0.0-20210323213023-7e956b284f0a
|
||||
|
@ -14,7 +14,7 @@ require (
|
|||
github.com/mitchellh/mapstructure v1.5.0
|
||||
github.com/moul/pb v0.0.0-20220425114252-bca18df4138c
|
||||
github.com/ncabatoff/process-exporter v0.7.10
|
||||
github.com/onsi/ginkgo/v2 v2.9.5
|
||||
github.com/onsi/ginkgo/v2 v2.12.0
|
||||
github.com/opencontainers/runc v1.1.9
|
||||
github.com/pmezard/go-difflib v1.0.0
|
||||
github.com/prometheus/client_golang v1.16.0
|
||||
|
@ -25,8 +25,8 @@ require (
|
|||
github.com/stretchr/testify v1.8.4
|
||||
github.com/yudai/gojsondiff v1.0.0
|
||||
github.com/zakjan/cert-chain-resolver v0.0.0-20211122211144-c6b0b792af9a
|
||||
golang.org/x/crypto v0.12.0
|
||||
google.golang.org/grpc v1.57.0
|
||||
golang.org/x/crypto v0.13.0
|
||||
google.golang.org/grpc v1.58.1
|
||||
google.golang.org/grpc/examples v0.0.0-20221220003428-4f16fbe410f7
|
||||
gopkg.in/go-playground/pool.v3 v3.1.1
|
||||
gopkg.in/mcuadros/go-syslog.v2 v2.3.0
|
||||
|
@ -50,7 +50,7 @@ require (
|
|||
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // 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.4 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/eapache/queue v1.1.0 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.10.2 // indirect
|
||||
|
@ -100,17 +100,17 @@ require (
|
|||
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
|
||||
golang.org/x/mod v0.10.0 // indirect
|
||||
golang.org/x/net v0.10.0 // indirect
|
||||
golang.org/x/oauth2 v0.8.0 // indirect
|
||||
golang.org/x/sys v0.11.0 // indirect
|
||||
golang.org/x/term v0.11.0 // indirect
|
||||
golang.org/x/text v0.12.0 // indirect
|
||||
golang.org/x/mod v0.12.0 // indirect
|
||||
golang.org/x/net v0.14.0 // indirect
|
||||
golang.org/x/oauth2 v0.10.0 // indirect
|
||||
golang.org/x/sys v0.12.0 // indirect
|
||||
golang.org/x/term v0.12.0 // indirect
|
||||
golang.org/x/text v0.13.0 // indirect
|
||||
golang.org/x/time v0.3.0 // indirect
|
||||
golang.org/x/tools v0.9.1 // indirect
|
||||
golang.org/x/tools v0.12.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
|
|
62
go.sum
62
go.sum
|
@ -61,8 +61,8 @@ github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzA
|
|||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
|
||||
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -103,6 +103,7 @@ github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV
|
|||
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
|
||||
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A=
|
||||
github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4=
|
||||
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
|
||||
github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
|
||||
|
@ -225,6 +226,7 @@ github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn
|
|||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
|
@ -279,11 +281,12 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W
|
|||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
|
||||
github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q=
|
||||
github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k=
|
||||
github.com/onsi/ginkgo/v2 v2.12.0 h1:UIVDowFPwpg6yMUpPjGkYvf06K3RAiJXUhCxEwQVHRI=
|
||||
github.com/onsi/ginkgo/v2 v2.12.0/go.mod h1:ZNEzXISYlqpb8S36iN71ifqLi3vVD1rVJGvWRCJOUpQ=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
|
||||
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
|
||||
github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
|
||||
github.com/opencontainers/runc v1.1.9 h1:XR0VIHTGce5eWPkaPesqTBrhW2yAcaraWfsEalNwQLM=
|
||||
github.com/opencontainers/runc v1.1.9/go.mod h1:CbUumNnWCuTGFukNXahoo/RFBZvDAgRh/smNYNOhA50=
|
||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc=
|
||||
|
@ -327,6 +330,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
|
|||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
||||
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
|
||||
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
|
@ -380,8 +384,11 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
|||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
|
||||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o=
|
||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
|
||||
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
|
||||
golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
|
@ -390,8 +397,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
|
|||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
|
||||
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
|
||||
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
|
||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
|
@ -422,8 +429,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
|
|||
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
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.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
|
||||
golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
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=
|
||||
|
@ -457,16 +464,16 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R
|
|||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
|
||||
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
|
||||
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-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
|
||||
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
|
||||
golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8=
|
||||
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
|
||||
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-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
@ -524,19 +531,19 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
|
||||
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
|
||||
golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
|
||||
golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
|
||||
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
|
||||
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
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-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
|
@ -586,13 +593,14 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc
|
|||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo=
|
||||
golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
|
||||
golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
|
||||
golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
|
||||
gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY=
|
||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
||||
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
||||
|
@ -647,8 +655,8 @@ google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6D
|
|||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
|
@ -661,8 +669,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
|
|||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
|
||||
google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
|
||||
google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58=
|
||||
google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
|
||||
google.golang.org/grpc/examples v0.0.0-20221220003428-4f16fbe410f7 h1:pPsdyuBif+uoyUoL19yuj/TCfUPsmpJHJZhWQ98JGLU=
|
||||
google.golang.org/grpc/examples v0.0.0-20221220003428-4f16fbe410f7/go.mod h1:8pQa1yxxkh+EsxUK8/455D5MSbv3vgmEJqKCH3y17mI=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
|
@ -677,8 +685,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
|
|||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
|
|
6
go.work
Normal file
6
go.work
Normal file
|
@ -0,0 +1,6 @@
|
|||
go 1.21.1
|
||||
|
||||
use (
|
||||
.
|
||||
./magefiles
|
||||
)
|
253
go.work.sum
Normal file
253
go.work.sum
Normal file
|
@ -0,0 +1,253 @@
|
|||
cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw=
|
||||
cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
|
||||
cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68=
|
||||
cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo=
|
||||
cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA=
|
||||
cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo=
|
||||
cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA=
|
||||
cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs=
|
||||
cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw=
|
||||
cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY=
|
||||
cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg=
|
||||
cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E=
|
||||
cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ=
|
||||
cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0=
|
||||
cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE=
|
||||
cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss=
|
||||
cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g=
|
||||
cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4=
|
||||
cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4=
|
||||
cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA=
|
||||
cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U=
|
||||
cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI=
|
||||
cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc=
|
||||
cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU=
|
||||
cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI=
|
||||
cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM=
|
||||
cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI=
|
||||
cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
|
||||
cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
|
||||
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
||||
cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM=
|
||||
cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4=
|
||||
cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0=
|
||||
cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4=
|
||||
cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw=
|
||||
cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M=
|
||||
cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI=
|
||||
cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY=
|
||||
cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE=
|
||||
cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4=
|
||||
cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8=
|
||||
cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70=
|
||||
cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q=
|
||||
cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g=
|
||||
cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4=
|
||||
cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI=
|
||||
cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E=
|
||||
cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE=
|
||||
cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk=
|
||||
cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU=
|
||||
cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4=
|
||||
cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI=
|
||||
cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4=
|
||||
cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4=
|
||||
cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE=
|
||||
cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg=
|
||||
cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw=
|
||||
cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY=
|
||||
cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw=
|
||||
cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY=
|
||||
cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0=
|
||||
cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
|
||||
cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ=
|
||||
cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw=
|
||||
cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk=
|
||||
cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM=
|
||||
cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0=
|
||||
cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc=
|
||||
cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M=
|
||||
cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc=
|
||||
cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc=
|
||||
cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak=
|
||||
cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY=
|
||||
cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig=
|
||||
cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA=
|
||||
cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA=
|
||||
cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM=
|
||||
cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E=
|
||||
cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0=
|
||||
cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ=
|
||||
cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8=
|
||||
cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk=
|
||||
cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8=
|
||||
cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE=
|
||||
cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE=
|
||||
cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs=
|
||||
cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I=
|
||||
cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0=
|
||||
cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA=
|
||||
cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc=
|
||||
cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0=
|
||||
cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU=
|
||||
cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE=
|
||||
cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA=
|
||||
cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg=
|
||||
cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8=
|
||||
cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw=
|
||||
cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE=
|
||||
cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg=
|
||||
cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo=
|
||||
cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw=
|
||||
cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA=
|
||||
cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ=
|
||||
cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ=
|
||||
cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g=
|
||||
cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI=
|
||||
cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo=
|
||||
cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E=
|
||||
cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA=
|
||||
cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24=
|
||||
cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk=
|
||||
cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E=
|
||||
cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk=
|
||||
cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs=
|
||||
cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU=
|
||||
cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo=
|
||||
cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU=
|
||||
cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro=
|
||||
cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0=
|
||||
cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs=
|
||||
cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc=
|
||||
cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg=
|
||||
cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g=
|
||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
|
||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||
github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
|
||||
github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE=
|
||||
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
|
||||
github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ=
|
||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
|
||||
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
|
||||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
|
||||
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
|
||||
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
|
||||
github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI=
|
||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
|
||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU=
|
||||
github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM=
|
||||
github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM=
|
||||
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
|
||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
|
||||
golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
|
||||
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
|
||||
golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
|
||||
google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw=
|
||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64=
|
||||
google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y=
|
||||
google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g=
|
||||
google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o=
|
||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
|
||||
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
|
||||
google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ=
|
||||
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM=
|
||||
k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk=
|
||||
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
|
@ -1,53 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2020 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
URL="https://github.com/kubernetes/ingress-nginx/tree/main/"
|
||||
DIR=$(cd $(dirname "${BASH_SOURCE}")/.. && pwd -P)
|
||||
|
||||
echo "<!---
|
||||
This file is autogenerated!
|
||||
Do not try to edit it manually.
|
||||
-->
|
||||
|
||||
# e2e test suite for [Ingress NGINX Controller]($URL)
|
||||
|
||||
"
|
||||
|
||||
for FILE in $(find $DIR/test/e2e -name "*.go");do
|
||||
# describe definition
|
||||
DESCRIBE=$(cat $FILE | grep -n -oP 'Describe.*')
|
||||
# line number
|
||||
DESCRIBE_LINE=$(echo $DESCRIBE | cut -f1 -d ':')
|
||||
# clean describe, extracting the string
|
||||
DESCRIBE=$(echo $DESCRIBE | sed -En 's/.*("|`)(.*)("|`).*/\2/p')
|
||||
|
||||
FILE_URL=$(echo $FILE | sed "s|${DIR}/|${URL}|g")
|
||||
echo "
|
||||
### [$DESCRIBE]($FILE_URL#L$DESCRIBE_LINE)
|
||||
"
|
||||
|
||||
# extract Tests
|
||||
ITS=$(cat $FILE | grep -n -oP 'It\(.*')
|
||||
while IFS= read -r line; do
|
||||
IT_LINE=$(echo $line | cut -f1 -d ':')
|
||||
IT=$(echo $line | sed -En 's/.*("|`)(.*)("|`).*/\2/p')
|
||||
echo "- [$IT]($FILE_URL#L$IT_LINE)"
|
||||
done <<< "$ITS"
|
||||
done
|
|
@ -22,19 +22,13 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
|||
|
||||
cd "${KUBE_ROOT}"
|
||||
|
||||
GOLINT=${GOLINT:-"golint"}
|
||||
PACKAGES=($(go list ./internal/... | grep -v /vendor/))
|
||||
bad_files=()
|
||||
for package in "${PACKAGES[@]}"; do
|
||||
out=$("${GOLINT}" -min_confidence=0.9 "${package}" | grep -v -E '(should not use dot imports|internal/file/bindata.go)' || :)
|
||||
if [[ -n "${out}" ]]; then
|
||||
bad_files+=("${out}")
|
||||
fi
|
||||
done
|
||||
if [[ "${#bad_files[@]}" -ne 0 ]]; then
|
||||
echo "!!! '$GOLINT' problems: "
|
||||
echo "${bad_files[@]}"
|
||||
exit 1
|
||||
LINT=${LINT:-golangci-lint}
|
||||
|
||||
if [[ -z "$(command -v ${LINT})" ]]; then
|
||||
echo "${LINT} is missing. Installing it now."
|
||||
# See: https://golangci-lint.run/usage/install/#local-installation
|
||||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.53.3
|
||||
LINT=$(go env GOPATH)/bin/golangci-lint
|
||||
fi
|
||||
|
||||
# ex: ts=2 sw=2 et filetype=sh
|
||||
${LINT} run
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM golang:1.20.5-alpine3.18 as builder
|
||||
FROM golang:1.21.1-alpine3.18 as builder
|
||||
|
||||
RUN apk update \
|
||||
&& apk upgrade && apk add git
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module k8s.io/ingress-nginx/custom-error-pages
|
||||
|
||||
go 1.20
|
||||
go 1.21.1
|
||||
|
||||
require github.com/prometheus/client_golang v1.11.1
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM golang:1.20.5-alpine3.18 as builder
|
||||
FROM golang:1.21.1-alpine3.18 as builder
|
||||
RUN mkdir /authsvc
|
||||
WORKDIR /authsvc
|
||||
COPY . ./
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module example.com/authsvc
|
||||
|
||||
go 1.20
|
||||
go 1.21.1
|
||||
|
||||
require k8s.io/apimachinery v0.23.1
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM golang:1.20.5-alpine3.18 as builder
|
||||
FROM golang:1.21.1-alpine3.18 as builder
|
||||
|
||||
WORKDIR /go/src/k8s.io/ingress-nginx/images/fastcgi
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM golang:1.20.5-alpine3.18 as build
|
||||
FROM golang:1.21.1-alpine3.18 as build
|
||||
|
||||
WORKDIR /go/src/greeter-server
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM golang:1.20.5 AS builder
|
||||
FROM golang:1.21.1 AS builder
|
||||
|
||||
ENV LC_ALL=C.UTF-8
|
||||
ENV LANG=C.UTF-8
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM --platform=$BUILDPLATFORM golang:1.20.5 as builder
|
||||
FROM --platform=$BUILDPLATFORM golang:1.21.1 as builder
|
||||
ARG BUILDPLATFORM
|
||||
ARG TARGETARCH
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module github.com/jet/kube-webhook-certgen
|
||||
|
||||
go 1.20
|
||||
go 1.21.1
|
||||
|
||||
require (
|
||||
github.com/onrik/logrus v0.9.0
|
||||
|
|
|
@ -40,7 +40,6 @@ RUN apk update \
|
|||
pcre \
|
||||
zlib \
|
||||
geoip \
|
||||
curl \
|
||||
ca-certificates \
|
||||
patch \
|
||||
yajl \
|
||||
|
|
|
@ -63,7 +63,7 @@ export MODSECURITY_VERSION=1.0.3
|
|||
export MODSECURITY_LIB_VERSION=e9a7ba4a60be48f761e0328c6dfcc668d70e35a0
|
||||
|
||||
# Check for recent changes: https://github.com/coreruleset/coreruleset/compare/v3.3.2...v3.3/master
|
||||
export OWASP_MODSECURITY_CRS_VERSION=v3.3.4
|
||||
export OWASP_MODSECURITY_CRS_VERSION=v3.3.5
|
||||
|
||||
# Check for recent changes: https://github.com/openresty/lua-nginx-module/compare/v0.10.25...master
|
||||
export LUA_NGX_VERSION=0.10.25
|
||||
|
|
|
@ -25,6 +25,7 @@ set(CMAKE_CXX_STANDARD 17)
|
|||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_FLAGS "-O2")
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE)
|
||||
|
||||
set(CMAKE_BUILD_TYPE
|
||||
Release
|
||||
|
@ -82,12 +83,18 @@ ExternalProject_Add(
|
|||
-DgRPC_BUILD_TESTS=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DgRPC_INSTALL=ON
|
||||
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF
|
||||
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF
|
||||
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
|
||||
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF
|
||||
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
|
||||
CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
|
||||
TEST_AFTER_INSTALL 0
|
||||
DOWNLOAD_NO_PROGRESS 1
|
||||
LOG_CONFIGURE 1
|
||||
LOG_BUILD 0
|
||||
LOG_INSTALL 1)
|
||||
TEST_AFTER_INSTALL FALSE
|
||||
USES_TERMINAL_BUILD TRUE
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
LOG_CONFIGURE TRUE
|
||||
LOG_BUILD TRUE
|
||||
LOG_INSTALL TRUE)
|
||||
|
||||
install(
|
||||
DIRECTORY ${STAGED_INSTALL_PREFIX}/
|
||||
|
|
|
@ -21,19 +21,24 @@ COPY . /opt/third_party/
|
|||
# install build tools
|
||||
RUN apk update \
|
||||
&& apk upgrade \
|
||||
&& apk add -U bash cmake ninja \
|
||||
&& apk add -U bash \
|
||||
&& bash /opt/third_party/build.sh -p
|
||||
|
||||
ENV NINJA_STATUS "[%p/%f/%t]"
|
||||
ENV NINJA_STATUS "[%p/%f/%t] "
|
||||
|
||||
# install gRPC
|
||||
FROM base as grpc
|
||||
RUN bash /opt/third_party/build.sh -g v1.49.2
|
||||
RUN bash /opt/third_party/build.sh -g v1.57.0
|
||||
|
||||
# install abseil-cpp
|
||||
FROM base as absl-cpp
|
||||
RUN bash /opt/third_party/build.sh -a 20230802.0
|
||||
|
||||
# install OpenTelemetry-cpp
|
||||
FROM base as otel-cpp
|
||||
COPY --from=grpc /opt/third_party/install/ /usr
|
||||
RUN bash /opt/third_party/build.sh -o v1.8.1
|
||||
COPY --from=absl-cpp /opt/third_party/install/ /usr
|
||||
RUN bash /opt/third_party/build.sh -o v1.11.0
|
||||
|
||||
# install otel_ngx_module.so
|
||||
FROM base as nginx
|
||||
|
@ -52,6 +57,5 @@ RUN CGO_ENABLED=0 go build -o /go/bin/init_module
|
|||
FROM cgr.dev/chainguard/static as final
|
||||
COPY --from=build-init /go/bin/init_module /
|
||||
COPY --from=nginx /etc/nginx/modules /etc/nginx/modules
|
||||
COPY --from=nginx /opt/third_party/install/lib /etc/nginx/modules
|
||||
|
||||
CMD ["/init_module"]
|
||||
|
|
|
@ -21,6 +21,7 @@ set -o pipefail
|
|||
export GRPC_GIT_TAG=${GRPC_GIT_TAG:="v1.43.2"}
|
||||
# Check for recent changes: https://github.com/open-telemetry/opentelemetry-cpp/compare/v1.2.0...main
|
||||
export OPENTELEMETRY_CPP_VERSION=${OPENTELEMETRY_CPP_VERSION:="1.2.0"}
|
||||
export ABSL_CPP_VERSION=${ABSL_CPP_VERSION:="20230802.0"}
|
||||
export INSTAL_DIR=/opt/third_party/install
|
||||
# improve compilation times
|
||||
CORES=$(($(grep -c ^processor /proc/cpuinfo) - 1))
|
||||
|
@ -54,6 +55,8 @@ prepare()
|
|||
{
|
||||
apk add \
|
||||
linux-headers \
|
||||
cmake \
|
||||
ninja \
|
||||
openssl \
|
||||
curl-dev \
|
||||
openssl-dev \
|
||||
|
@ -71,14 +74,32 @@ install_grpc()
|
|||
cd ${BUILD_PATH}/grpc
|
||||
cmake -DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
|
||||
-G Ninja \
|
||||
-DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party \
|
||||
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
|
||||
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
|
||||
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
|
||||
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
|
||||
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \
|
||||
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
|
||||
cmake --build . -j ${CORES} --target all install
|
||||
-DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party
|
||||
|
||||
cmake --build . -j ${CORES} --target all install --verbose
|
||||
}
|
||||
|
||||
install_absl()
|
||||
{
|
||||
cd ${BUILD_PATH}
|
||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+LD_LIBRARY_PATH:}${INSTAL_DIR}/lib:/usr/local"
|
||||
export PATH="${PATH}:${INSTAL_DIR}/bin"
|
||||
git clone --recurse-submodules -j ${CORES} --depth=1 -b \
|
||||
${ABSL_CPP_VERSION} https://github.com/abseil/abseil-cpp.git abseil-cpp-${ABSL_CPP_VERSION}
|
||||
cd "abseil-cpp-${ABSL_CPP_VERSION}"
|
||||
mkdir -p .build
|
||||
cd .build
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-G Ninja \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
|
||||
-DABSL_PROPAGATE_CXX_STD=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
..
|
||||
cmake --build . -j ${CORES} --target install
|
||||
}
|
||||
|
||||
install_otel()
|
||||
|
@ -94,17 +115,19 @@ install_otel()
|
|||
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-G Ninja \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
|
||||
-DWITH_ZIPKIN=OFF \
|
||||
-DWITH_JAEGER=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DWITH_BENCHMARK=OFF \
|
||||
-DWITH_FUNC_TESTS=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DWITH_OTLP=ON \
|
||||
-DWITH_OTLP_GRPC=ON \
|
||||
-DWITH_OTLP_HTTP=OFF \
|
||||
-DWITH_ABSEIL=OFF \
|
||||
-DWITH_ABSEIL=ON \
|
||||
-DWITH_EXAMPLES=OFF \
|
||||
-DWITH_NO_DEPRECATED_CODE=ON \
|
||||
..
|
||||
cmake --build . -j ${CORES} --target install
|
||||
}
|
||||
|
@ -128,7 +151,7 @@ install_nginx()
|
|||
export NGINX_VERSION=1.21.6
|
||||
|
||||
# Check for recent changes: https://github.com/open-telemetry/opentelemetry-cpp-contrib/compare/2656a4...main
|
||||
export OPENTELEMETRY_CONTRIB_COMMIT=1ec94c82095bab61f06c7393b6f3272469d285af
|
||||
export OPENTELEMETRY_CONTRIB_COMMIT=aaa51e2297bcb34297f3c7aa44fa790497d2f7f3
|
||||
|
||||
mkdir -p /etc/nginx
|
||||
cd "$BUILD_PATH"
|
||||
|
@ -145,20 +168,19 @@ install_nginx()
|
|||
mkdir -p build
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DNGINX_VERSION=${NGINX_VERSION} \
|
||||
..
|
||||
-G Ninja \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DNGINX_VERSION=${NGINX_VERSION} \
|
||||
..
|
||||
cmake --build . -j ${CORES} --target install
|
||||
|
||||
mkdir -p /etc/nginx/modules
|
||||
cp ${INSTAL_DIR}/otel_ngx_module.so /etc/nginx/modules/otel_ngx_module.so
|
||||
|
||||
mkdir -p ${INSTAL_DIR}/lib
|
||||
}
|
||||
|
||||
while getopts ":hpng:o:" option; do
|
||||
while getopts ":pha:g:o:n" option; do
|
||||
case $option in
|
||||
h) # display Help
|
||||
Help
|
||||
|
@ -177,6 +199,10 @@ while getopts ":hpng:o:" option; do
|
|||
n) # install nginx
|
||||
install_nginx
|
||||
exit;;
|
||||
a) # install abseil
|
||||
ABSL_CPP_VERSION=${OPTARG}
|
||||
install_absl
|
||||
exit;;
|
||||
\?)
|
||||
Help
|
||||
exit;;
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module init-otel
|
||||
|
||||
go 1.20
|
||||
module init-otel
|
||||
|
||||
go 1.21.1
|
||||
|
|
|
@ -43,7 +43,7 @@ image:
|
|||
--pull \
|
||||
--push \
|
||||
--build-arg BASE_IMAGE=${NGINX_BASE_IMAGE} \
|
||||
--build-arg GOLANG_VERSION=1.20.6 \
|
||||
--build-arg GOLANG_VERSION=1.21.1 \
|
||||
--build-arg ETCD_VERSION=3.4.3-0 \
|
||||
--build-arg K8S_RELEASE=v1.26.0 \
|
||||
--build-arg RESTY_CLI_VERSION=0.27 \
|
||||
|
@ -64,7 +64,7 @@ build: ensure-buildx
|
|||
--progress=${PROGRESS} \
|
||||
--pull \
|
||||
--build-arg BASE_IMAGE=${NGINX_BASE_IMAGE} \
|
||||
--build-arg GOLANG_VERSION=1.20.6 \
|
||||
--build-arg GOLANG_VERSION=1.21.1 \
|
||||
--build-arg ETCD_VERSION=3.4.3-0 \
|
||||
--build-arg K8S_RELEASE=v1.26.0 \
|
||||
--build-arg RESTY_CLI_VERSION=0.27 \
|
||||
|
|
|
@ -65,7 +65,6 @@ RUN apk update && apk upgrade && apk add --no-cache \
|
|||
unzip \
|
||||
openssl \
|
||||
cfssl@testing \
|
||||
curl \
|
||||
tzdata \
|
||||
libc6-compat
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ import (
|
|||
|
||||
const (
|
||||
fastCGIIndexAnnotation = "fastcgi-index"
|
||||
fastCGIParamsAnnotation = "fastcgi-params-configmap"
|
||||
fastCGIParamsAnnotation = "fastcgi-params-configmap" //#nosec G101
|
||||
)
|
||||
|
||||
// fast-cgi valid parameters is just a single file name (like index.php)
|
||||
|
|
|
@ -67,7 +67,7 @@ func TestParse(t *testing.T) {
|
|||
Spec: networking.IngressSpec{},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
for i, testCase := range testCases {
|
||||
ing.SetAnnotations(testCase.annotations)
|
||||
result, err := ap.Parse(ing)
|
||||
if err != nil {
|
||||
|
@ -77,7 +77,7 @@ func TestParse(t *testing.T) {
|
|||
if !ok {
|
||||
t.Errorf("unexpected type: %T", result)
|
||||
}
|
||||
if !config.Equal(&testCase.expected) {
|
||||
if !config.Equal(&testCases[i].expected) {
|
||||
t.Errorf("expected %v but returned %v, annotations: %s", testCase.expected, result, testCase.annotations)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ const (
|
|||
proxyRedirectToAnnotation = "proxy-redirect-to"
|
||||
proxyBufferingAnnotation = "proxy-buffering"
|
||||
proxyHTTPVersionAnnotation = "proxy-http-version"
|
||||
proxyMaxTempFileSizeAnnotation = "proxy-max-temp-file-size"
|
||||
proxyMaxTempFileSizeAnnotation = "proxy-max-temp-file-size" //#nosec G101
|
||||
)
|
||||
|
||||
var validUpstreamAnnotation = regexp.MustCompile(`^((error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_403|http_404|http_429|non_idempotent|off)\s?)+$`)
|
||||
|
|
|
@ -64,13 +64,13 @@ func TestParse(t *testing.T) {
|
|||
Spec: networking.IngressSpec{},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
for i, testCase := range testCases {
|
||||
ing.SetAnnotations(testCase.annotations)
|
||||
result, err := ap.Parse(ing)
|
||||
if (err != nil) != testCase.expectErr {
|
||||
t.Fatalf("expected error: %t got error: %t err value: %s. %+v", testCase.expectErr, err != nil, err, testCase.annotations)
|
||||
}
|
||||
if !reflect.DeepEqual(result, &testCase.expected) {
|
||||
if !reflect.DeepEqual(result, &testCases[i].expected) {
|
||||
t.Errorf("expected %v but returned %v, annotations: %s", testCase.expected, result, testCase.annotations)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -424,6 +424,10 @@ type Configuration struct {
|
|||
// Example '60s'
|
||||
ProxyProtocolHeaderTimeout time.Duration `json:"proxy-protocol-header-timeout,omitempty"`
|
||||
|
||||
// Enables or disables the directive aio_write that writes files files asynchronously
|
||||
// https://nginx.org/en/docs/http/ngx_http_core_module.html#aio_write
|
||||
EnableAioWrite bool `json:"enable-aio-write,omitempty"`
|
||||
|
||||
// Enables or disables the use of the nginx module that compresses responses using the "gzip" method
|
||||
// http://nginx.org/en/docs/http/ngx_http_gzip_module.html
|
||||
UseGzip bool `json:"use-gzip,omitempty"`
|
||||
|
@ -869,7 +873,7 @@ func NewDefault() Configuration {
|
|||
defGlobalExternalAuth := GlobalExternalAuth{"", "", "", "", "", append(defResponseHeaders, ""), "", "", "", []string{}, map[string]string{}, false}
|
||||
|
||||
cfg := Configuration{
|
||||
AllowSnippetAnnotations: true,
|
||||
AllowSnippetAnnotations: false,
|
||||
AllowCrossNamespaceResources: true,
|
||||
AllowBackendServerHeader: false,
|
||||
AnnotationValueWordBlocklist: "",
|
||||
|
@ -942,6 +946,7 @@ func NewDefault() Configuration {
|
|||
SSLSessionTickets: false,
|
||||
SSLSessionTimeout: sslSessionTimeout,
|
||||
EnableBrotli: false,
|
||||
EnableAioWrite: true,
|
||||
UseGzip: false,
|
||||
UseGeoIP: true,
|
||||
UseGeoIP2: false,
|
||||
|
|
|
@ -1057,7 +1057,7 @@ func (n *NGINXController) createUpstreams(data []*ingress.Ingress, du *ingress.B
|
|||
continue
|
||||
}
|
||||
|
||||
for _, path := range rule.HTTP.Paths {
|
||||
for i, path := range rule.HTTP.Paths {
|
||||
if path.Backend.Service == nil {
|
||||
// skip non-service backends
|
||||
klog.V(3).Infof("Ingress %q and path %q does not contain a service backend, using default backend", ingKey, path.Path)
|
||||
|
@ -1087,7 +1087,7 @@ func (n *NGINXController) createUpstreams(data []*ingress.Ingress, du *ingress.B
|
|||
|
||||
// add the service ClusterIP as a single Endpoint instead of individual Endpoints
|
||||
if anns.ServiceUpstream {
|
||||
endpoint, err := n.getServiceClusterEndpoint(svcKey, &path.Backend)
|
||||
endpoint, err := n.getServiceClusterEndpoint(svcKey, &rule.HTTP.Paths[i].Backend)
|
||||
if err != nil {
|
||||
klog.Errorf("Failed to determine a suitable ClusterIP Endpoint for Service %q: %v", svcKey, err)
|
||||
} else {
|
||||
|
@ -1845,7 +1845,7 @@ func ingressForHostPath(hostname, path string, servers []*ingress.Server) []*net
|
|||
continue
|
||||
}
|
||||
|
||||
for _, location := range server.Locations {
|
||||
for i, location := range server.Locations {
|
||||
if location.Path != path {
|
||||
continue
|
||||
}
|
||||
|
@ -1854,7 +1854,7 @@ func ingressForHostPath(hostname, path string, servers []*ingress.Server) []*net
|
|||
continue
|
||||
}
|
||||
|
||||
ingresses = append(ingresses, &location.Ingress.Ingress)
|
||||
ingresses = append(ingresses, &server.Locations[i].Ingress.Ingress)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,4 +17,4 @@ limitations under the License.
|
|||
package collectors
|
||||
|
||||
// PrometheusNamespace default metric namespace
|
||||
var PrometheusNamespace = "nginx_ingress_controller"
|
||||
var PrometheusNamespace = "nginx_ingress_controller" //#nosec G101
|
||||
|
|
|
@ -55,7 +55,7 @@ var FakeSSLCertificateUID = "00000000-0000-0000-0000-000000000000"
|
|||
var oidExtensionSubjectAltName = asn1.ObjectIdentifier{2, 5, 29, 17}
|
||||
|
||||
const (
|
||||
fakeCertificateName = "default-fake-certificate"
|
||||
fakeCertificateName = "default-fake-certificate" //#nosec G101
|
||||
)
|
||||
|
||||
// getPemFileName returns absolute file path and file name of pem cert related to given fullSecretName
|
||||
|
|
|
@ -179,20 +179,19 @@ func downloadDatabase(dbName string) error {
|
|||
if !strings.HasSuffix(header.Name, mmdbFile) {
|
||||
continue
|
||||
}
|
||||
return func() error {
|
||||
outFile, err := os.Create(path.Join(geoIPPath, mmdbFile))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
outFile, err := os.Create(path.Join(geoIPPath, mmdbFile))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer outFile.Close()
|
||||
|
||||
//nolint:gocritic // TODO: will fix it on a followup PR
|
||||
defer outFile.Close()
|
||||
|
||||
if _, err := io.CopyN(outFile, tarReader, header.Size); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
if _, err := io.CopyN(outFile, tarReader, header.Size); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
|
@ -1,4 +1,4 @@
|
|||
//go:build mage
|
||||
//go:build ignore
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
@ -17,3 +17,11 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/magefile/mage/mage"
|
||||
)
|
||||
|
||||
func main() { os.Exit(mage.Main()) }
|
|
@ -1,31 +0,0 @@
|
|||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
//import (
|
||||
// "github.com/magefile/mage/mg"
|
||||
// "github.com/mysteriumnetwork/go-ci/commands"
|
||||
//)
|
||||
//
|
||||
//type Go mg.Namespace
|
||||
//
|
||||
//// Checks for issues with go imports
|
||||
//func (Go) CheckGoImports() error {
|
||||
// return commands.GoImports("./...")
|
||||
//}
|
|
@ -1,32 +1,32 @@
|
|||
module github.com/kubernetes/ingress-nginx/magefiles
|
||||
module k8s.io/ingress-nginx/magefiles
|
||||
|
||||
go 1.20
|
||||
go 1.21.1
|
||||
|
||||
require (
|
||||
github.com/blang/semver/v4 v4.0.0
|
||||
github.com/google/go-github/v48 v48.2.0
|
||||
github.com/helm/helm v2.17.0+incompatible
|
||||
github.com/magefile/mage v1.14.0
|
||||
github.com/magefile/mage v1.15.0
|
||||
github.com/vmware-labs/yaml-jsonpath v0.3.2
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
|
||||
golang.org/x/oauth2 v0.12.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/BurntSushi/toml v1.2.1 // indirect
|
||||
github.com/BurntSushi/toml v1.3.2 // indirect
|
||||
github.com/Masterminds/semver v1.5.0 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
||||
github.com/dprotaso/go-yit v0.0.0-20191028211022-135eb7262960 // indirect
|
||||
github.com/ghodss/yaml v1.0.0 // indirect
|
||||
github.com/gobwas/glob v0.2.3 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/google/go-querystring v1.1.0 // indirect
|
||||
github.com/stretchr/testify v1.8.1 // indirect
|
||||
golang.org/x/crypto v0.1.0 // indirect
|
||||
golang.org/x/net v0.7.0 // indirect
|
||||
github.com/rogpeppe/go-internal v1.11.0 // indirect
|
||||
golang.org/x/crypto v0.13.0 // indirect
|
||||
golang.org/x/net v0.15.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/protobuf v1.28.0 // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
k8s.io/apimachinery v0.25.4 // indirect
|
||||
k8s.io/apimachinery v0.27.4 // indirect
|
||||
k8s.io/helm v2.17.0+incompatible // indirect
|
||||
)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
|
||||
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
|
||||
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
|
||||
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
|
||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
|
||||
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
|
||||
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -19,11 +19,12 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA
|
|||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-github/v48 v48.2.0 h1:68puzySE6WqUY9KWmpOsDEQfDZsso98rT6pZcz9HqcE=
|
||||
github.com/google/go-github/v48 v48.2.0/go.mod h1:dDlehKBDo850ZPvCTK0sEqTCVWcrGl2LcDiajkYi89Y=
|
||||
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
|
||||
|
@ -33,59 +34,61 @@ github.com/helm/helm v2.17.0+incompatible/go.mod h1:ahXhuvluW4YnSL6W6hDVetZsVK8P
|
|||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
||||
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo=
|
||||
github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
||||
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
|
||||
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.10.2 h1:uqH7bpe+ERSiDa34FDOF7RikN6RzXgduUF8yarlZp94=
|
||||
github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q=
|
||||
github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E=
|
||||
github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
|
||||
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
|
||||
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/vmware-labs/yaml-jsonpath v0.3.2 h1:/5QKeCBGdsInyDCyVNLbXyilb61MXGi9NP674f9Hobk=
|
||||
github.com/vmware-labs/yaml-jsonpath v0.3.2/go.mod h1:U6whw1z03QyqgWdgXxvVnQ90zN1BWz5V+51Ewf8k+rQ=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
|
||||
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
|
||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
|
||||
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
||||
golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4=
|
||||
golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
|
||||
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
|
||||
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
|
||||
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
|
||||
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
|
||||
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||
|
@ -99,7 +102,7 @@ gopkg.in/yaml.v3 v3.0.0-20191026110619-0b21df46bc1d/go.mod h1:K4uyk7z7BCEPqu6E+C
|
|||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
k8s.io/apimachinery v0.25.4 h1:CtXsuaitMESSu339tfhVXhQrPET+EiWnIY1rcurKnAc=
|
||||
k8s.io/apimachinery v0.25.4/go.mod h1:jaF9C/iPNM1FuLl7Zuy5b9v+n35HGSh6AQ4HYRkCqwo=
|
||||
k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs=
|
||||
k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E=
|
||||
k8s.io/helm v2.17.0+incompatible h1:Bpn6o1wKLYqKM3+Osh8e+1/K2g/GsQJ4F4yNF2+deao=
|
||||
k8s.io/helm v2.17.0+incompatible/go.mod h1:LZzlS4LQBHfciFOurYBFkCMTaZ0D1l+p0teMg7TSULI=
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
//go:build ignore
|
||||
// +build ignore
|
||||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2021 The Kubernetes Authors.
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,10 +19,6 @@ limitations under the License.
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/magefile/mage/mage"
|
||||
"os"
|
||||
//mage:import
|
||||
_ "k8s.io/ingress-nginx/magefiles/steps"
|
||||
)
|
||||
|
||||
func main() {
|
||||
os.Exit(mage.Main())
|
||||
}
|
||||
|
|
|
@ -1,551 +0,0 @@
|
|||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/google/go-github/v48/github"
|
||||
"github.com/magefile/mage/mg"
|
||||
"github.com/magefile/mage/sh"
|
||||
"golang.org/x/oauth2"
|
||||
"gopkg.in/yaml.v3"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"text/template"
|
||||
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Release mg.Namespace
|
||||
|
||||
var INGRESS_ORG = "kubernetes" // the owner so we can test from forks
|
||||
var INGRESS_REPO = "ingress-nginx" // the repo to pull from
|
||||
var RELEASE_BRANCH = "main" //we only release from main
|
||||
var GITHUB_TOKEN string // the Google/gogithub lib needs an PAT to access the GitHub API
|
||||
var K8S_IO_ORG = "kubernetes" //the owner or organization for the k8s.io repo
|
||||
var K8S_IO_REPO = "k8s.io" //the repo that holds the images yaml for production promotion
|
||||
var INGRESS_REGISTRY = "registry.k8s.io" //Container registry for storage Ingress-nginx images
|
||||
var KUSTOMIZE_INSTALL_VERSION = "sigs.k8s.io/kustomize/kustomize/v4@v4.5.4" //static deploys needs kustomize to generate the template
|
||||
|
||||
// ingress-nginx releases start with a TAG then a cloudbuild, then a promotion through a PR, this the location of that PR
|
||||
var IMAGES_YAML = "https://raw.githubusercontent.com/kubernetes/k8s.io/main/registry.k8s.io/images/k8s-staging-ingress-nginx/images.yaml"
|
||||
var ctx = context.Background() // Context used for GitHub Client
|
||||
|
||||
const INDEX_DOCS = "docs/deploy/index.md" //index.md has a version of the controller and needs to updated
|
||||
const CHANGELOG = "Changelog.md" //Name of the changelog
|
||||
|
||||
// ControllerImage - struct with info about controllers
|
||||
type ControllerImage struct {
|
||||
Tag string
|
||||
Digest string
|
||||
Registry string
|
||||
Name string
|
||||
}
|
||||
|
||||
// IngressRelease All the information about an ingress-nginx release that gets updated
|
||||
type IngressRelease struct {
|
||||
ControllerVersion string
|
||||
ControllerImage ControllerImage
|
||||
ReleaseNote ReleaseNote
|
||||
Release *github.RepositoryRelease
|
||||
}
|
||||
|
||||
// ReleaseNote - All the pieces of information/documents that get updated during a release
|
||||
type ReleaseNote struct {
|
||||
Version string
|
||||
NewControllerVersion string
|
||||
PreviousControllerVersion string
|
||||
ControllerImages []ControllerImage
|
||||
DepUpdates []string
|
||||
Updates []string
|
||||
HelmUpdates []string
|
||||
NewHelmChartVersion string
|
||||
PreviousHelmChartVersion string
|
||||
}
|
||||
|
||||
// IMAGES_YAML returns this data structure
|
||||
type ImageYamls []ImageElement
|
||||
|
||||
// ImageElement - a specific image and it's data structure the dmap is a list of shas and container versions
|
||||
type ImageElement struct {
|
||||
Name string `json:"name"`
|
||||
Dmap map[string][]string `json:"dmap"`
|
||||
}
|
||||
|
||||
// init will set the GitHub token from the committers/releasers env var
|
||||
func init() {
|
||||
GITHUB_TOKEN = os.Getenv("GITHUB_TOKEN")
|
||||
}
|
||||
|
||||
// PromoteImage Creates PR into the k8s.io repo for promotion of ingress from staging to production
|
||||
func (Release) PromoteImage(version, sha string) {
|
||||
|
||||
}
|
||||
|
||||
// Release Create a new release of ingress nginx controller
|
||||
func (Release) NewRelease(version string) {
|
||||
//newRelease := Release{}
|
||||
|
||||
//update ingress-nginx version
|
||||
//This is the step that kicks all the release process
|
||||
//it is already done, so it kicks off the gcloud build of the controller images
|
||||
//mg.Deps(mg.F(Tag.BumpNginx, version))
|
||||
|
||||
tag, err := getIngressNGINXVersion()
|
||||
CheckIfError(err, "RELEASE Retrieving the current Ingress Nginx Version")
|
||||
|
||||
Info("RELEASE Checking Current Version %s to New Version %s", tag, version)
|
||||
//if the version were upgrading does not match the TAG file, lets update the TAG file
|
||||
if tag[1:] != version {
|
||||
Warning("RELEASE Ingress Nginx TAG %s and new version %s do not match", tag, version)
|
||||
mg.Deps(mg.F(Tag.BumpNginx, fmt.Sprintf("v%s", version)))
|
||||
}
|
||||
|
||||
//update git controller tag controller-v$version
|
||||
mg.Deps(mg.F(Tag.NewControllerTag, version))
|
||||
|
||||
//make release notes
|
||||
releaseNotes, err := makeReleaseNotes(version)
|
||||
CheckIfError(err, "RELEASE Creating Release Notes for version %s", version)
|
||||
Info("RELEASE Release Notes %s completed", releaseNotes.Version)
|
||||
|
||||
//update chart values.yaml new controller tag and image digest
|
||||
releaseNotes.PreviousHelmChartVersion = currentChartVersion()
|
||||
|
||||
//controller tag
|
||||
updateChartValue("controller.image.tag", fmt.Sprintf("v%s", releaseNotes.Version))
|
||||
Debug("releaseNotes.ControllerImages[0].Name %s", releaseNotes.ControllerImages[0].Name)
|
||||
Debug("releaseNotes.ControllerImages[1].Name %s", releaseNotes.ControllerImages[1].Name)
|
||||
//controller digest
|
||||
if releaseNotes.ControllerImages[0].Name == "ingress-nginx/controller" {
|
||||
Debug("Updating Chart Value %s with %s", "controller.image.digest", releaseNotes.ControllerImages[0].Digest)
|
||||
updateChartValue("controller.image.digest", releaseNotes.ControllerImages[0].Digest)
|
||||
}
|
||||
//controller chroot digest
|
||||
if releaseNotes.ControllerImages[1].Name == "ingress-nginx/controller-chroot" {
|
||||
Debug("Updating Chart Value %s with %s", "controller.image.digestChroot", releaseNotes.ControllerImages[1].Digest)
|
||||
updateChartValue("controller.image.digestChroot", releaseNotes.ControllerImages[1].Digest)
|
||||
}
|
||||
|
||||
//update helm chart app version
|
||||
mg.Deps(mg.F(Helm.UpdateVersion, version))
|
||||
|
||||
releaseNotes.NewHelmChartVersion = currentChartVersion()
|
||||
|
||||
//update helm chart release notes
|
||||
updateChartReleaseNotes(releaseNotes.HelmUpdates)
|
||||
|
||||
//Run helm docs update
|
||||
CheckIfError(runHelmDocs(), "Error Updating Helm Docs ")
|
||||
|
||||
releaseNotes.helmTemplate()
|
||||
|
||||
//update static manifest
|
||||
CheckIfError(updateStaticManifest(), "Error Updating Static manifests")
|
||||
|
||||
////update e2e docs
|
||||
updateE2EDocs()
|
||||
|
||||
//update documentation with ingress-nginx version
|
||||
CheckIfError(updateIndexMD(releaseNotes.PreviousControllerVersion, releaseNotes.NewControllerVersion), "Error Updating %s", INDEX_DOCS)
|
||||
|
||||
//keeping these manual for now
|
||||
//git commit TODO
|
||||
//make Pull Request TODO
|
||||
//make release TODO
|
||||
//mg.Deps(mg.F(Release.CreateRelease, version))
|
||||
}
|
||||
|
||||
// the index.md doc needs the controller version updated
|
||||
func updateIndexMD(old, new string) error {
|
||||
Info("Updating Deploy docs with new version")
|
||||
data, err := os.ReadFile(INDEX_DOCS)
|
||||
CheckIfError(err, "Could not read INDEX_DOCS file %s", INDEX_DOCS)
|
||||
datString := string(data)
|
||||
datString = strings.Replace(datString, old, new, -1)
|
||||
err = os.WriteFile(INDEX_DOCS, []byte(datString), 644)
|
||||
if err != nil {
|
||||
ErrorF("Could not write new %s %s", INDEX_DOCS, err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// runs the hack/generate-deploy-scripts.sh
|
||||
func updateE2EDocs() {
|
||||
updates, err := sh.Output("./hack/generate-e2e-suite-doc.sh")
|
||||
CheckIfError(err, "Could not run update hack script")
|
||||
err = os.WriteFile("docs/e2e-tests.md", []byte(updates), 644)
|
||||
CheckIfError(err, "Could not write new e2e test file ")
|
||||
}
|
||||
|
||||
// The static deploy scripts use kustomize to generate them, this function ensures kustomize is installed
|
||||
func installKustomize() error {
|
||||
Info("Install Kustomize")
|
||||
var g0 = sh.RunCmd("go")
|
||||
// somewhere in your main code
|
||||
err := g0("install", KUSTOMIZE_INSTALL_VERSION)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func updateStaticManifest() error {
|
||||
CheckIfError(installKustomize(), "error installing kustomize")
|
||||
//hack/generate-deploy-scripts.sh
|
||||
err := sh.RunV("./hack/generate-deploy-scripts.sh")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//// CreateRelease Creates a new GitHub Release
|
||||
//func (Release) CreateRelease(name string) {
|
||||
// releaser, err := gh_release.NewReleaser(INGRESS_ORG, INGRESS_REPO, GITHUB_TOKEN)
|
||||
// CheckIfError(err, "GitHub Release Client error")
|
||||
// newRelease, err := releaser.Create(fmt.Sprintf("controller-%s", name))
|
||||
// CheckIfError(err, "Create release error")
|
||||
// Info("New Release: Tag %v, ID: %v", newRelease.TagName, newRelease.ID)
|
||||
//}
|
||||
|
||||
// Returns a GitHub client ready for use
|
||||
func githubClient() *github.Client {
|
||||
ts := oauth2.StaticTokenSource(
|
||||
&oauth2.Token{AccessToken: GITHUB_TOKEN},
|
||||
)
|
||||
oauthClient := oauth2.NewClient(ctx, ts)
|
||||
return github.NewClient(oauthClient)
|
||||
}
|
||||
|
||||
// LatestCommitLogs Retrieves the commit log between the latest two controller versions.
|
||||
func (Release) LatestCommitLogs() {
|
||||
commitLog := commitsBetweenTags()
|
||||
for i, s := range commitLog {
|
||||
Info("#%v Version %v", i, s)
|
||||
}
|
||||
}
|
||||
|
||||
func commitsBetweenTags() []string {
|
||||
tags := getAllControllerTags()
|
||||
Info("Getting Commits between %v and %v", tags[0], tags[1])
|
||||
commitLog, err := git("log", "--full-history", "--pretty", "--oneline", fmt.Sprintf("%v..%v", tags[1], tags[0]))
|
||||
|
||||
if commitLog == "" {
|
||||
Warning("All Controller Tags is empty")
|
||||
}
|
||||
CheckIfError(err, "Retrieving Commit log")
|
||||
return strings.Split(commitLog, "\n")
|
||||
}
|
||||
|
||||
// Generate Release Notes
|
||||
func (Release) ReleaseNotes(newVersion string) error {
|
||||
notes, err := makeReleaseNotes(newVersion)
|
||||
CheckIfError(err, "Creating Release Notes for version %s", newVersion)
|
||||
Info("Release Notes %s completed", notes.Version)
|
||||
return nil
|
||||
}
|
||||
|
||||
func makeReleaseNotes(newVersion string) (*ReleaseNote, error) {
|
||||
var newReleaseNotes = ReleaseNote{}
|
||||
|
||||
newReleaseNotes.Version = newVersion
|
||||
allControllerTags := getAllControllerTags()
|
||||
|
||||
//new version
|
||||
newReleaseNotes.NewControllerVersion = allControllerTags[0]
|
||||
newControllerVersion := fmt.Sprintf("controller-v%s", newVersion)
|
||||
|
||||
//the newControllerVersion should match the latest tag
|
||||
if newControllerVersion != allControllerTags[0] {
|
||||
return nil, errors.New(fmt.Sprintf("Generating release new version %s didnt match the current latest tag %s", newControllerVersion, allControllerTags[0]))
|
||||
}
|
||||
//previous version
|
||||
newReleaseNotes.PreviousControllerVersion = allControllerTags[1]
|
||||
|
||||
Info("New Version: %s Old Version: %s", newReleaseNotes.NewControllerVersion, newReleaseNotes.PreviousControllerVersion)
|
||||
|
||||
commits := commitsBetweenTags()
|
||||
|
||||
//dependency_updates
|
||||
//all_updates
|
||||
var allUpdates []string
|
||||
var depUpdates []string
|
||||
var helmUpdates []string
|
||||
prRegex := regexp.MustCompile("\\(#\\d+\\)")
|
||||
depBot := regexp.MustCompile("^(\\w){1,10} Bump ")
|
||||
helmRegex := regexp.MustCompile("helm|chart")
|
||||
for i, s := range commits {
|
||||
//matches on PR
|
||||
if prRegex.Match([]byte(s)) {
|
||||
//matches a dependant bot update
|
||||
if depBot.Match([]byte(s)) { //
|
||||
Debug("#%v DEPENDABOT %v", i, s)
|
||||
u := strings.SplitN(s, " ", 2)
|
||||
depUpdates = append(depUpdates, u[1])
|
||||
} else { // add it to the all updates slice
|
||||
Debug("#%v ALL UPDATES %v", i, s)
|
||||
u := strings.SplitN(s, " ", 2)
|
||||
allUpdates = append(allUpdates, u[1])
|
||||
|
||||
//helm chart updates
|
||||
if helmRegex.Match([]byte(s)) {
|
||||
u := strings.SplitN(s, " ", 2)
|
||||
helmUpdates = append(helmUpdates, u[1])
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
helmUpdates = append(helmUpdates, fmt.Sprintf("Update Ingress-Nginx version %s", newReleaseNotes.NewControllerVersion))
|
||||
|
||||
newReleaseNotes.Updates = allUpdates
|
||||
newReleaseNotes.DepUpdates = depUpdates
|
||||
newReleaseNotes.HelmUpdates = helmUpdates
|
||||
|
||||
//controller_image_digests
|
||||
imagesYaml, err := downloadFile(IMAGES_YAML)
|
||||
if err != nil {
|
||||
ErrorF("Could not download file %s : %s", IMAGES_YAML, err)
|
||||
return nil, err
|
||||
}
|
||||
Debug("%s", imagesYaml)
|
||||
|
||||
data := ImageYamls{}
|
||||
|
||||
err = yaml.Unmarshal([]byte(imagesYaml), &data)
|
||||
if err != nil {
|
||||
ErrorF("Could not unmarshal images yaml %s", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
//controller
|
||||
controllerDigest := findImageDigest(data, "controller", newVersion)
|
||||
if len(controllerDigest) == 0 {
|
||||
ErrorF("Controller Digest could not be found")
|
||||
return nil, errors.New("Controller digest could not be found")
|
||||
}
|
||||
|
||||
controllerChrootDigest := findImageDigest(data, "controller-chroot", newVersion)
|
||||
if len(controllerChrootDigest) == 0 {
|
||||
ErrorF("Controller Chroot Digest could not be found")
|
||||
return nil, errors.New("Controller Chroot digest could not be found")
|
||||
}
|
||||
|
||||
Debug("Latest Controller Digest %v", controllerDigest)
|
||||
Debug("Latest Controller Chroot Digest %v", controllerChrootDigest)
|
||||
c1 := ControllerImage{
|
||||
Digest: controllerDigest,
|
||||
Registry: INGRESS_REGISTRY,
|
||||
Name: "ingress-nginx/controller",
|
||||
Tag: fmt.Sprintf("v%s", newReleaseNotes.Version),
|
||||
}
|
||||
|
||||
c2 := ControllerImage{
|
||||
Digest: controllerChrootDigest,
|
||||
Registry: INGRESS_REGISTRY,
|
||||
Name: "ingress-nginx/controller-chroot",
|
||||
Tag: fmt.Sprintf("v%s", newReleaseNotes.Version),
|
||||
}
|
||||
|
||||
newReleaseNotes.ControllerImages = append(newReleaseNotes.ControllerImages, c1)
|
||||
newReleaseNotes.ControllerImages = append(newReleaseNotes.ControllerImages, c2)
|
||||
Debug("New Release Controller Images %s %s", newReleaseNotes.ControllerImages[0].Digest, newReleaseNotes.ControllerImages[1].Digest)
|
||||
|
||||
if DEBUG {
|
||||
newReleaseNotes.printRelease()
|
||||
}
|
||||
|
||||
//write it all out to the changelog file
|
||||
newReleaseNotes.template()
|
||||
|
||||
return &newReleaseNotes, nil
|
||||
}
|
||||
|
||||
func (i ControllerImage) print() string {
|
||||
return fmt.Sprintf("%s/%s:%s@%s", i.Registry, i.Name, i.Tag, i.Digest)
|
||||
}
|
||||
|
||||
func (r ReleaseNote) template() {
|
||||
// Files are provided as a slice of strings.
|
||||
changelogTemplate, err := os.ReadFile("Changelog.md.gotmpl")
|
||||
if err != nil {
|
||||
ErrorF("Could not read changelog template file %s", err)
|
||||
}
|
||||
Debug("ChangeLog Templates %s", string(changelogTemplate))
|
||||
t := template.Must(template.New("changelog").Parse(string(changelogTemplate)))
|
||||
// create a new file
|
||||
file, err := os.Create(fmt.Sprintf("changelog/Changelog-%s.md", r.Version))
|
||||
if err != nil {
|
||||
ErrorF("Could not create changelog file %s", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
err = t.Execute(file, r)
|
||||
if err != nil {
|
||||
ErrorF("executing template:", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (r ReleaseNote) helmTemplate() {
|
||||
// Files are provided as a slice of strings.
|
||||
changelogTemplate, err := os.ReadFile("charts/ingress-nginx/changelog.md.gotmpl")
|
||||
if err != nil {
|
||||
ErrorF("Could not read changelog template file %s", err)
|
||||
}
|
||||
Debug("ChangeLog Templates %s", string(changelogTemplate))
|
||||
t := template.Must(template.New("changelog").Parse(string(changelogTemplate)))
|
||||
// create a new file
|
||||
file, err := os.Create(fmt.Sprintf("charts/ingress-nginx/changelog/Changelog-%s.md", r.NewHelmChartVersion))
|
||||
if err != nil {
|
||||
ErrorF("Could not create changelog file %s", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
err = t.Execute(file, r)
|
||||
if err != nil {
|
||||
ErrorF("executing template:", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (r ReleaseNote) printRelease() {
|
||||
Info("Release Version: %v", r.NewControllerVersion)
|
||||
Info("Previous Version: %v", r.PreviousControllerVersion)
|
||||
Info("Controller Image: %v", r.ControllerImages[0].print())
|
||||
Info("Controller Chroot Image: %v", r.ControllerImages[1].print())
|
||||
for i := range r.Updates {
|
||||
Info("Update #%v - %v", i, r.Updates[i])
|
||||
}
|
||||
for j := range r.DepUpdates {
|
||||
Info("Dependabot Update #%v - %v", j, r.DepUpdates[j])
|
||||
}
|
||||
}
|
||||
|
||||
func findImageDigest(yaml ImageYamls, image, version string) string {
|
||||
version = fmt.Sprintf("v%s", version)
|
||||
Info("Searching Digest for %s:%s", image, version)
|
||||
for i := range yaml {
|
||||
if yaml[i].Name == image {
|
||||
for k, v := range yaml[i].Dmap {
|
||||
if v[0] == version {
|
||||
return k
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func downloadFile(url string) (string, error) {
|
||||
client := &http.Client{
|
||||
Transport: &http.Transport{
|
||||
DialContext: (&net.Dialer{
|
||||
Timeout: 5 * time.Second,
|
||||
KeepAlive: 5 * time.Second,
|
||||
}).DialContext,
|
||||
TLSHandshakeTimeout: 5 * time.Second,
|
||||
ResponseHeaderTimeout: 5 * time.Second,
|
||||
ExpectContinueTimeout: 1 * time.Second,
|
||||
MaxIdleConnsPerHost: -1,
|
||||
},
|
||||
}
|
||||
resp, err := client.Get(url)
|
||||
if err != nil {
|
||||
return "", nil
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return "", errors.New(fmt.Sprintf("Could not retrieve file, response from server %s for file %s", resp.StatusCode, url))
|
||||
}
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", nil
|
||||
}
|
||||
return string(bodyBytes), nil
|
||||
}
|
||||
|
||||
// Latest returns latest Github Release
|
||||
func (Release) Latest() error {
|
||||
r, _, err := latestRelease()
|
||||
if err != nil {
|
||||
ErrorF("Latest Release error %s", err)
|
||||
return err
|
||||
}
|
||||
Info("Latest Release %v", r.String())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (Release) ReleaseByTag(tag string) error {
|
||||
r, _, err := releaseByTag(tag)
|
||||
if err != nil {
|
||||
ErrorF("Release retrieve tag error %s", tag, err)
|
||||
return err
|
||||
}
|
||||
|
||||
Info("Latest Release %v", r.String())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func releaseByTag(tag string) (*github.RepositoryRelease, *github.Response, error) {
|
||||
ghClient := githubClient()
|
||||
return ghClient.Repositories.GetReleaseByTag(ctx, INGRESS_ORG, INGRESS_REPO, tag)
|
||||
}
|
||||
|
||||
func latestRelease() (*github.RepositoryRelease, *github.Response, error) {
|
||||
ghClient := githubClient()
|
||||
return ghClient.Repositories.GetLatestRelease(ctx, INGRESS_ORG, INGRESS_REPO)
|
||||
}
|
||||
|
||||
// Copy Test function to copy a release
|
||||
func (Release) Copy() error {
|
||||
ghClient := githubClient()
|
||||
kRelease, _, err := ghClient.Repositories.GetLatestRelease(ctx, "kubernetes", "ingress-nginx")
|
||||
if err != nil {
|
||||
ErrorF("Get Release from kubernetes %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
sRelease := &github.RepositoryRelease{
|
||||
TagName: kRelease.TagName,
|
||||
Name: kRelease.Name,
|
||||
Body: kRelease.Body,
|
||||
Draft: kRelease.Draft,
|
||||
Prerelease: kRelease.GenerateReleaseNotes,
|
||||
DiscussionCategoryName: kRelease.DiscussionCategoryName,
|
||||
GenerateReleaseNotes: kRelease.GenerateReleaseNotes,
|
||||
}
|
||||
|
||||
sRelease, _, err = ghClient.Repositories.CreateRelease(ctx, "strongjz", "ingress-nginx", sRelease)
|
||||
if err != nil {
|
||||
ErrorF("Creating Strongjz release %s", err)
|
||||
return err
|
||||
}
|
||||
Info("Copied over Kubernetes Release %v to Strongjz %v", &kRelease.Name, &sRelease.Name)
|
||||
return nil
|
||||
}
|
188
magefiles/steps/helm.go
Normal file
188
magefiles/steps/helm.go
Normal file
|
@ -0,0 +1,188 @@
|
|||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package steps
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
semver "github.com/blang/semver/v4"
|
||||
"github.com/helm/helm/pkg/chartutil"
|
||||
"github.com/magefile/mage/mg"
|
||||
"github.com/magefile/mage/sh"
|
||||
yamlpath "github.com/vmware-labs/yaml-jsonpath/pkg/yamlpath"
|
||||
"gopkg.in/yaml.v3"
|
||||
|
||||
utils "k8s.io/ingress-nginx/magefiles/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
HelmChartPath = "charts/ingress-nginx/Chart.yaml"
|
||||
HelmChartValues = "charts/ingress-nginx/values.yaml"
|
||||
)
|
||||
|
||||
type Helm mg.Namespace
|
||||
|
||||
// UpdateVersion Update Helm Version of the Chart
|
||||
func (Helm) UpdateVersion(version string) {
|
||||
updateVersion(version)
|
||||
}
|
||||
|
||||
func currentChartVersion() string {
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
utils.CheckIfError(err, "HELM Could not Load Chart")
|
||||
return chart.Version
|
||||
}
|
||||
|
||||
func updateVersion(version string) {
|
||||
utils.Info("HELM Reading File %v", HelmChartPath)
|
||||
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
utils.CheckIfError(err, "HELM Could not Load Chart")
|
||||
|
||||
// Get the current tag
|
||||
// appVersionV, err := getIngressNGINXVersion()
|
||||
// utils.CheckIfError(err, "HELM Issue Retrieving the Current Ingress Nginx Version")
|
||||
|
||||
// remove the v from TAG
|
||||
appVersion := version
|
||||
|
||||
utils.Info("HELM Ingress-Nginx App Version: %s Chart AppVersion: %s", appVersion, chart.AppVersion)
|
||||
if appVersion == chart.AppVersion {
|
||||
utils.Warning("HELM Ingress NGINX Version didnt change Ingress-Nginx App Version: %s Chart AppVersion: %s", appVersion, chart.AppVersion)
|
||||
return
|
||||
}
|
||||
|
||||
controllerSemVer, err := semver.Parse(version)
|
||||
utils.CheckIfError(err, "error parsing semver of new app")
|
||||
isPreRelease := len(controllerSemVer.Pre) > 0
|
||||
oldControllerSemVer, err := semver.Parse(chart.AppVersion)
|
||||
utils.CheckIfError(err, "error parsing semver of old chart")
|
||||
isBreakingChange := controllerSemVer.Major > oldControllerSemVer.Major || controllerSemVer.Minor > oldControllerSemVer.Minor
|
||||
|
||||
// Update the helm chart
|
||||
chart.AppVersion = appVersion
|
||||
cTag, err := semver.Make(chart.Version)
|
||||
utils.CheckIfError(err, "HELM Creating Chart Version: %v", err)
|
||||
|
||||
incrFunc := cTag.IncrementPatch
|
||||
if isBreakingChange {
|
||||
cTag.Patch = 0
|
||||
incrFunc = cTag.IncrementMinor
|
||||
|
||||
}
|
||||
|
||||
if isPreRelease {
|
||||
chart.Annotations["artifacthub.io/prerelease"] = "true"
|
||||
cTag.Pre = controllerSemVer.Pre
|
||||
}
|
||||
|
||||
if err = incrFunc(); err != nil {
|
||||
utils.ErrorF("HELM Incrementing Chart Version: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
chart.Version = cTag.String()
|
||||
utils.Debug("HELM Updated Chart Version: %v", chart.Version)
|
||||
|
||||
err = chartutil.SaveChartfile(HelmChartPath, chart)
|
||||
utils.CheckIfError(err, "HELM Saving new Chart")
|
||||
}
|
||||
|
||||
func updateChartReleaseNotes(releasesNotes []string) {
|
||||
utils.Info("HELM Updating the Chart Release notes")
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
utils.CheckIfError(err, "HELM Could not Load Chart to update release notes %s", HelmChartPath)
|
||||
for i := range releasesNotes {
|
||||
releasesNotes[i] = fmt.Sprintf("- %q", releasesNotes[i])
|
||||
}
|
||||
releaseNoteString := strings.Join(releasesNotes, "\n")
|
||||
utils.Info("HELM Release note string %s", releaseNoteString)
|
||||
chart.Annotations["artifacthub.io/changes"] = releaseNoteString
|
||||
err = chartutil.SaveChartfile(HelmChartPath, chart)
|
||||
utils.CheckIfError(err, "HELM Saving updated release notes for Chart")
|
||||
}
|
||||
|
||||
// UpdateChartValue Updates the Helm ChartValue
|
||||
func (Helm) UpdateChartValue(key, value string) {
|
||||
updateChartValue(key, value)
|
||||
}
|
||||
|
||||
func updateChartValue(key, value string) {
|
||||
utils.Info("HELM Updating Chart %s %s:%s", HelmChartValues, key, value)
|
||||
|
||||
// read current values.yaml
|
||||
data, err := os.ReadFile(HelmChartValues)
|
||||
utils.CheckIfError(err, "HELM Could not Load Helm Chart Values files %s", HelmChartValues)
|
||||
|
||||
// var valuesStruct IngressChartValue
|
||||
var n yaml.Node
|
||||
utils.CheckIfError(yaml.Unmarshal(data, &n), "HELM Could not Unmarshal %s", HelmChartValues)
|
||||
|
||||
// update value
|
||||
// keyParse := parsePath(key)
|
||||
p, err := yamlpath.NewPath(key)
|
||||
utils.CheckIfError(err, "HELM cannot create path")
|
||||
|
||||
q, err := p.Find(&n)
|
||||
utils.CheckIfError(err, "HELM unexpected error finding path")
|
||||
|
||||
for _, i := range q {
|
||||
utils.Info("HELM Found %s at %s", i.Value, key)
|
||||
i.Value = value
|
||||
utils.Info("HELM Updated %s at %s", i.Value, key)
|
||||
}
|
||||
|
||||
//// write to file
|
||||
var b bytes.Buffer
|
||||
yamlEncoder := yaml.NewEncoder(&b)
|
||||
yamlEncoder.SetIndent(2)
|
||||
err = yamlEncoder.Encode(&n)
|
||||
utils.CheckIfError(err, "HELM Could not Marshal new Values file")
|
||||
err = os.WriteFile(HelmChartValues, b.Bytes(), 0o644)
|
||||
utils.CheckIfError(err, "HELM Could not write new Values file to %s", HelmChartValues)
|
||||
|
||||
utils.Info("HELM Ingress Nginx Helm Chart update %s %s", key, value)
|
||||
}
|
||||
|
||||
func (Helm) Helmdocs() error {
|
||||
return runHelmDocs()
|
||||
}
|
||||
|
||||
func runHelmDocs() error {
|
||||
err := installHelmDocs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = sh.RunV("helm-docs", "--chart-search-root=${PWD}/charts")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func installHelmDocs() error {
|
||||
utils.Info("HELM Install HelmDocs")
|
||||
g0 := sh.RunCmd("go")
|
||||
|
||||
err := g0("install", "github.com/norwoodj/helm-docs/cmd/helm-docs@v1.11.0")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
396
magefiles/steps/release.go
Normal file
396
magefiles/steps/release.go
Normal file
|
@ -0,0 +1,396 @@
|
|||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package steps
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/google/go-github/v48/github"
|
||||
"github.com/magefile/mage/mg"
|
||||
"github.com/magefile/mage/sh"
|
||||
"golang.org/x/oauth2"
|
||||
"gopkg.in/yaml.v3"
|
||||
|
||||
utils "k8s.io/ingress-nginx/magefiles/utils"
|
||||
)
|
||||
|
||||
type Release mg.Namespace
|
||||
|
||||
var (
|
||||
INGRESS_ORG = "kubernetes" // the owner so we can test from forks
|
||||
INGRESS_REPO = "ingress-nginx" // the repo to pull from
|
||||
RELEASE_BRANCH = "main" // we only release from main
|
||||
GITHUB_TOKEN string // the Google/gogithub lib needs an PAT to access the GitHub API
|
||||
K8S_IO_ORG = "kubernetes" // the owner or organization for the k8s.io repo
|
||||
K8S_IO_REPO = "k8s.io" // the repo that holds the images yaml for production promotion
|
||||
INGRESS_REGISTRY = "registry.k8s.io" // Container registry for storage Ingress-nginx images
|
||||
KUSTOMIZE_INSTALL_VERSION = "sigs.k8s.io/kustomize/kustomize/v4@v4.5.4" // static deploys needs kustomize to generate the template
|
||||
)
|
||||
|
||||
// ingress-nginx releases start with a TAG then a cloudbuild, then a promotion through a PR, this the location of that PR
|
||||
var (
|
||||
IMAGES_YAML = "https://raw.githubusercontent.com/kubernetes/k8s.io/main/registry.k8s.io/images/k8s-staging-ingress-nginx/images.yaml"
|
||||
ctx = context.Background() // Context used for GitHub Client
|
||||
)
|
||||
|
||||
const (
|
||||
INDEX_DOCS = "docs/deploy/index.md" // index.md has a version of the controller and needs to updated
|
||||
CHANGELOG = "Changelog.md" // Name of the changelog
|
||||
)
|
||||
|
||||
// init will set the GitHub token from the committers/releasers env var
|
||||
func init() {
|
||||
GITHUB_TOKEN = os.Getenv("GITHUB_TOKEN")
|
||||
}
|
||||
|
||||
// Release Create a new release of ingress nginx controller
|
||||
func (Release) NewRelease(version string) {
|
||||
newRelease(version, "")
|
||||
}
|
||||
|
||||
func (Release) NewReleaseFromOld(version, oldversion string) {
|
||||
newRelease(version, oldversion)
|
||||
}
|
||||
|
||||
func (Release) E2EDocs() {
|
||||
e2edocs, err := utils.GenerateE2EDocs()
|
||||
utils.CheckIfError(err, "error on template")
|
||||
err = os.WriteFile("docs/e2e-tests.md", []byte(e2edocs), 644)
|
||||
utils.CheckIfError(err, "Could not write new e2e test file ")
|
||||
}
|
||||
|
||||
func newRelease(version, oldversion string) {
|
||||
// newRelease := Release{}
|
||||
|
||||
// update ingress-nginx version
|
||||
// This is the step that kicks all the release process
|
||||
// it is already done, so it kicks off the gcloud build of the controller images
|
||||
// mg.Deps(mg.F(Tag.BumpNginx, version))
|
||||
|
||||
tag, err := getIngressNGINXVersion()
|
||||
utils.CheckIfError(err, "RELEASE Retrieving the current Ingress Nginx Version")
|
||||
|
||||
utils.Info("RELEASE Checking Current Version %s to New Version %s", tag, version)
|
||||
// if the version were upgrading does not match the TAG file, lets update the TAG file
|
||||
if tag[1:] != version {
|
||||
utils.Warning("RELEASE Ingress Nginx TAG %s and new version %s do not match", tag, version)
|
||||
mg.Deps(mg.F(Tag.BumpNginx, fmt.Sprintf("v%s", version)))
|
||||
}
|
||||
|
||||
// update git controller tag controller-v$version
|
||||
mg.Deps(mg.F(Tag.NewControllerTag, version))
|
||||
|
||||
// make release notes
|
||||
releaseNotes, err := makeReleaseNotes(version, oldversion)
|
||||
utils.CheckIfError(err, "RELEASE Creating Release Notes for version %s", version)
|
||||
utils.Info("RELEASE Release Notes %s completed", releaseNotes.Version)
|
||||
|
||||
// update chart values.yaml new controller tag and image digest
|
||||
releaseNotes.PreviousHelmChartVersion = currentChartVersion()
|
||||
|
||||
// controller tag
|
||||
updateChartValue("controller.image.tag", fmt.Sprintf("v%s", releaseNotes.Version))
|
||||
utils.Debug("releaseNotes.ControllerImages[0].Name %s", releaseNotes.ControllerImages[0].Name)
|
||||
utils.Debug("releaseNotes.ControllerImages[1].Name %s", releaseNotes.ControllerImages[1].Name)
|
||||
// controller digest
|
||||
if releaseNotes.ControllerImages[0].Name == "ingress-nginx/controller" {
|
||||
utils.Debug("Updating Chart Value %s with %s", "controller.image.digest", releaseNotes.ControllerImages[0].Digest)
|
||||
updateChartValue("controller.image.digest", releaseNotes.ControllerImages[0].Digest)
|
||||
}
|
||||
// controller chroot digest
|
||||
if releaseNotes.ControllerImages[1].Name == "ingress-nginx/controller-chroot" {
|
||||
utils.Debug("Updating Chart Value %s with %s", "controller.image.digestChroot", releaseNotes.ControllerImages[1].Digest)
|
||||
updateChartValue("controller.image.digestChroot", releaseNotes.ControllerImages[1].Digest)
|
||||
}
|
||||
|
||||
// update helm chart app version
|
||||
mg.Deps(mg.F(Helm.UpdateVersion, version))
|
||||
|
||||
releaseNotes.NewHelmChartVersion = currentChartVersion()
|
||||
|
||||
// update helm chart release notes
|
||||
updateChartReleaseNotes(releaseNotes.HelmUpdates)
|
||||
|
||||
// Run helm docs update
|
||||
utils.CheckIfError(runHelmDocs(), "Error Updating Helm Docs ")
|
||||
|
||||
releaseNotes.HelmTemplate()
|
||||
|
||||
// update static manifest
|
||||
utils.CheckIfError(updateStaticManifest(), "Error Updating Static manifests")
|
||||
|
||||
////update e2e docs
|
||||
mg.Deps(mg.F(Release.E2EDocs))
|
||||
|
||||
// update documentation with ingress-nginx version
|
||||
utils.CheckIfError(updateIndexMD(releaseNotes.PreviousControllerVersion, releaseNotes.NewControllerVersion), "Error Updating %s", INDEX_DOCS)
|
||||
|
||||
// keeping these manual for now
|
||||
// git commit TODO
|
||||
// make Pull Request TODO
|
||||
// make release TODO
|
||||
// mg.Deps(mg.F(Release.CreateRelease, version))
|
||||
}
|
||||
|
||||
// the index.md doc needs the controller version updated
|
||||
func updateIndexMD(old, new string) error {
|
||||
utils.Info("Updating Deploy docs with new version")
|
||||
data, err := os.ReadFile(INDEX_DOCS)
|
||||
utils.CheckIfError(err, "Could not read INDEX_DOCS file %s", INDEX_DOCS)
|
||||
datString := string(data)
|
||||
datString = strings.Replace(datString, old, new, -1)
|
||||
err = os.WriteFile(INDEX_DOCS, []byte(datString), 644)
|
||||
if err != nil {
|
||||
utils.ErrorF("Could not write new %s %s", INDEX_DOCS, err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// The static deploy scripts use kustomize to generate them, this function ensures kustomize is installed
|
||||
func installKustomize() error {
|
||||
utils.Info("Install Kustomize")
|
||||
g0 := sh.RunCmd("go")
|
||||
// somewhere in your main code
|
||||
err := g0("install", KUSTOMIZE_INSTALL_VERSION)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func updateStaticManifest() error {
|
||||
utils.CheckIfError(installKustomize(), "error installing kustomize")
|
||||
// hack/generate-deploy-scripts.sh
|
||||
err := sh.RunV("./hack/generate-deploy-scripts.sh")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//// CreateRelease Creates a new GitHub Release
|
||||
//func (Release) CreateRelease(name string) {
|
||||
// releaser, err := gh_release.NewReleaser(INGRESS_ORG, INGRESS_REPO, GITHUB_TOKEN)
|
||||
// utils.CheckIfError(err, "GitHub Release Client error")
|
||||
// newRelease, err := releaser.Create(fmt.Sprintf("controller-%s", name))
|
||||
// utils.CheckIfError(err, "Create release error")
|
||||
// utils.Info("New Release: Tag %v, ID: %v", newRelease.TagName, newRelease.ID)
|
||||
//}
|
||||
|
||||
// Returns a GitHub client ready for use
|
||||
func githubClient() *github.Client {
|
||||
ts := oauth2.StaticTokenSource(
|
||||
&oauth2.Token{AccessToken: GITHUB_TOKEN},
|
||||
)
|
||||
oauthClient := oauth2.NewClient(ctx, ts)
|
||||
return github.NewClient(oauthClient)
|
||||
}
|
||||
|
||||
// LatestCommitLogs Retrieves the commit log between the latest two controller versions.
|
||||
func (Release) LatestCommitLogs() {
|
||||
commitLog := commitsBetweenTags("", "")
|
||||
for i, s := range commitLog {
|
||||
utils.Info("#%v Version %v", i, s)
|
||||
}
|
||||
}
|
||||
|
||||
func commitsBetweenTags(newversion, oldversion string) []string {
|
||||
|
||||
var newTag, oldTag string
|
||||
tags := getAllControllerTags()
|
||||
newTag, oldTag = tags[0], tags[1]
|
||||
if newversion != "" {
|
||||
newTag = newversion
|
||||
}
|
||||
if oldversion != "" {
|
||||
oldTag = oldversion
|
||||
}
|
||||
|
||||
utils.Info("Getting Commits between %v and %v", newTag, oldTag)
|
||||
commitLog, err := git("log", "--full-history", "--pretty", "--oneline", fmt.Sprintf("%v..%v", oldTag, newTag))
|
||||
|
||||
if commitLog == "" {
|
||||
utils.Warning("All Controller Tags is empty")
|
||||
}
|
||||
utils.CheckIfError(err, "Retrieving Commit log")
|
||||
return strings.Split(commitLog, "\n")
|
||||
}
|
||||
|
||||
// Generate Release Notes
|
||||
func (Release) ReleaseNotes(newVersion string) error {
|
||||
notes, err := makeReleaseNotes(newVersion, "")
|
||||
utils.CheckIfError(err, "Creating Release Notes for version %s", newVersion)
|
||||
utils.Info("Release Notes %s completed", notes.Version)
|
||||
return nil
|
||||
}
|
||||
|
||||
func makeReleaseNotes(newVersion, oldVersion string) (*utils.ReleaseNote, error) {
|
||||
newReleaseNotes := utils.ReleaseNote{}
|
||||
|
||||
newReleaseNotes.Version = newVersion
|
||||
allControllerTags := getAllControllerTags()
|
||||
|
||||
// new version
|
||||
newReleaseNotes.NewControllerVersion = allControllerTags[0]
|
||||
newControllerVersion := fmt.Sprintf("controller-v%s", newVersion)
|
||||
|
||||
// the newControllerVersion should match the latest tag
|
||||
if newControllerVersion != allControllerTags[0] {
|
||||
return nil, errors.New(fmt.Sprintf("Generating release new version %s didnt match the current latest tag %s", newControllerVersion, allControllerTags[0]))
|
||||
}
|
||||
// previous version
|
||||
newReleaseNotes.PreviousControllerVersion = allControllerTags[1]
|
||||
if oldVersion != "" {
|
||||
newReleaseNotes.PreviousControllerVersion = oldVersion
|
||||
}
|
||||
|
||||
utils.Info("New Version: %s Old Version: %s", newReleaseNotes.NewControllerVersion, newReleaseNotes.PreviousControllerVersion)
|
||||
|
||||
commits := commitsBetweenTags(newReleaseNotes.NewControllerVersion, newReleaseNotes.PreviousControllerVersion)
|
||||
|
||||
// dependency_updates
|
||||
// all_updates
|
||||
var allUpdates []string
|
||||
var depUpdates []string
|
||||
var helmUpdates []string
|
||||
prRegex := regexp.MustCompile("\\(#\\d+\\)")
|
||||
depBot := regexp.MustCompile("^(\\w){1,10} Bump ")
|
||||
helmRegex := regexp.MustCompile("helm|chart")
|
||||
for i, s := range commits {
|
||||
// matches on PR
|
||||
if prRegex.Match([]byte(s)) {
|
||||
// matches a dependant bot update
|
||||
if depBot.Match([]byte(s)) { //
|
||||
utils.Debug("#%v DEPENDABOT %v", i, s)
|
||||
u := strings.SplitN(s, " ", 2)
|
||||
depUpdates = append(depUpdates, u[1])
|
||||
} else { // add it to the all updates slice
|
||||
utils.Debug("#%v ALL UPDATES %v", i, s)
|
||||
u := strings.SplitN(s, " ", 2)
|
||||
allUpdates = append(allUpdates, u[1])
|
||||
|
||||
// helm chart updates
|
||||
if helmRegex.Match([]byte(s)) {
|
||||
u := strings.SplitN(s, " ", 2)
|
||||
helmUpdates = append(helmUpdates, u[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
helmUpdates = append(helmUpdates, fmt.Sprintf("Update Ingress-Nginx version %s", newReleaseNotes.NewControllerVersion))
|
||||
|
||||
newReleaseNotes.Updates = allUpdates
|
||||
newReleaseNotes.DepUpdates = depUpdates
|
||||
newReleaseNotes.HelmUpdates = helmUpdates
|
||||
|
||||
// controller_image_digests
|
||||
imagesYaml, err := utils.DownloadFile(IMAGES_YAML)
|
||||
if err != nil {
|
||||
utils.ErrorF("Could not download file %s : %s", IMAGES_YAML, err)
|
||||
return nil, err
|
||||
}
|
||||
utils.Debug("%s", imagesYaml)
|
||||
|
||||
data := utils.ImageYamls{}
|
||||
|
||||
err = yaml.Unmarshal([]byte(imagesYaml), &data)
|
||||
if err != nil {
|
||||
utils.ErrorF("Could not unmarshal images yaml %s", err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// controller
|
||||
controllerDigest := utils.FindImageDigest(data, "controller", newVersion)
|
||||
if len(controllerDigest) == 0 {
|
||||
utils.ErrorF("Controller Digest could not be found")
|
||||
return nil, errors.New("Controller digest could not be found")
|
||||
}
|
||||
|
||||
controllerChrootDigest := utils.FindImageDigest(data, "controller-chroot", newVersion)
|
||||
if len(controllerChrootDigest) == 0 {
|
||||
utils.ErrorF("Controller Chroot Digest could not be found")
|
||||
return nil, errors.New("Controller Chroot digest could not be found")
|
||||
}
|
||||
|
||||
utils.Debug("Latest Controller Digest %v", controllerDigest)
|
||||
utils.Debug("Latest Controller Chroot Digest %v", controllerChrootDigest)
|
||||
c1 := utils.ControllerImage{
|
||||
Digest: controllerDigest,
|
||||
Registry: INGRESS_REGISTRY,
|
||||
Name: "ingress-nginx/controller",
|
||||
Tag: fmt.Sprintf("v%s", newReleaseNotes.Version),
|
||||
}
|
||||
|
||||
c2 := utils.ControllerImage{
|
||||
Digest: controllerChrootDigest,
|
||||
Registry: INGRESS_REGISTRY,
|
||||
Name: "ingress-nginx/controller-chroot",
|
||||
Tag: fmt.Sprintf("v%s", newReleaseNotes.Version),
|
||||
}
|
||||
|
||||
newReleaseNotes.ControllerImages = append(newReleaseNotes.ControllerImages, c1)
|
||||
newReleaseNotes.ControllerImages = append(newReleaseNotes.ControllerImages, c2)
|
||||
utils.Debug("New Release Controller Images %s %s", newReleaseNotes.ControllerImages[0].Digest, newReleaseNotes.ControllerImages[1].Digest)
|
||||
|
||||
if utils.DEBUG {
|
||||
newReleaseNotes.PrintRelease()
|
||||
}
|
||||
|
||||
// write it all out to the changelog file
|
||||
newReleaseNotes.Template()
|
||||
|
||||
return &newReleaseNotes, nil
|
||||
}
|
||||
|
||||
// Latest returns latest Github Release
|
||||
func (Release) Latest() error {
|
||||
r, _, err := latestRelease()
|
||||
if err != nil {
|
||||
utils.ErrorF("Latest Release error %s", err)
|
||||
return err
|
||||
}
|
||||
utils.Info("Latest Release %v", r.String())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (Release) ReleaseByTag(tag string) error {
|
||||
r, _, err := releaseByTag(tag)
|
||||
if err != nil {
|
||||
utils.ErrorF("Release retrieve tag %s error %s", tag, err)
|
||||
return err
|
||||
}
|
||||
|
||||
utils.Info("Latest Release %v", r.String())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func releaseByTag(tag string) (*github.RepositoryRelease, *github.Response, error) {
|
||||
ghClient := githubClient()
|
||||
return ghClient.Repositories.GetReleaseByTag(ctx, INGRESS_ORG, INGRESS_REPO, tag)
|
||||
}
|
||||
|
||||
func latestRelease() (*github.RepositoryRelease, *github.Response, error) {
|
||||
ghClient := githubClient()
|
||||
return ghClient.Repositories.GetLatestRelease(ctx, INGRESS_ORG, INGRESS_REPO)
|
||||
}
|
|
@ -1,5 +1,3 @@
|
|||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
|
@ -16,15 +14,18 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
package steps
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
semver "github.com/blang/semver/v4"
|
||||
"github.com/magefile/mage/mg"
|
||||
"github.com/magefile/mage/sh"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
utils "k8s.io/ingress-nginx/magefiles/utils"
|
||||
)
|
||||
|
||||
type Tag mg.Namespace
|
||||
|
@ -34,35 +35,35 @@ var git = sh.OutCmd("git")
|
|||
// Nginx returns the ingress-nginx current version
|
||||
func (Tag) Nginx() {
|
||||
tag, err := getIngressNGINXVersion()
|
||||
CheckIfError(err, "")
|
||||
utils.CheckIfError(err, "")
|
||||
fmt.Printf("%v", tag)
|
||||
}
|
||||
|
||||
func getIngressNGINXVersion() (string, error) {
|
||||
dat, err := os.ReadFile("TAG")
|
||||
CheckIfError(err, "Could not read TAG file")
|
||||
utils.CheckIfError(err, "Could not read TAG file")
|
||||
datString := string(dat)
|
||||
//remove newline
|
||||
// remove newline
|
||||
datString = strings.Replace(datString, "\n", "", -1)
|
||||
return datString, nil
|
||||
}
|
||||
|
||||
func checkSemVer(currentVersion, newVersion string) bool {
|
||||
Info("Checking Sem Ver between current %s and new %s", currentVersion, newVersion)
|
||||
utils.Info("Checking Sem Ver between current %s and new %s", currentVersion, newVersion)
|
||||
cVersion, err := semver.Make(currentVersion[1:])
|
||||
if err != nil {
|
||||
ErrorF("TAG Error Current Tag %v Making Semver : %v", currentVersion[1:], err)
|
||||
utils.ErrorF("TAG Error Current Tag %v Making Semver : %v", currentVersion[1:], err)
|
||||
return false
|
||||
}
|
||||
nVersion, err := semver.Make(newVersion)
|
||||
if err != nil {
|
||||
ErrorF("TAG %v Error Making Semver %v \n", newVersion, err)
|
||||
utils.ErrorF("TAG %v Error Making Semver %v \n", newVersion, err)
|
||||
return false
|
||||
}
|
||||
|
||||
err = nVersion.Validate()
|
||||
if err != nil {
|
||||
ErrorF("TAG %v not a valid Semver %v \n", newVersion, err)
|
||||
utils.ErrorF("TAG %v not a valid Semver %v \n", newVersion, err)
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -70,10 +71,10 @@ func checkSemVer(currentVersion, newVersion string) bool {
|
|||
//0 if newVersion == currentVersion
|
||||
//-1 if newVersion < currentVersion
|
||||
//+1 if newVersion > currentVersion.
|
||||
Info("TAG Comparing Old %s to New %s", cVersion.String(), nVersion.String())
|
||||
utils.Info("TAG Comparing Old %s to New %s", cVersion.String(), nVersion.String())
|
||||
comp := nVersion.Compare(cVersion)
|
||||
if comp <= 0 {
|
||||
Warning("SemVer:%v is not an update\n", newVersion)
|
||||
utils.Warning("SemVer:%v is not an update\n", newVersion)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
@ -81,29 +82,29 @@ func checkSemVer(currentVersion, newVersion string) bool {
|
|||
|
||||
// BumpNginx will update the nginx TAG
|
||||
func (Tag) BumpNginx(newTag string) {
|
||||
Info("TAG BumpNginx version %v", newTag)
|
||||
utils.Info("TAG BumpNginx version %v", newTag)
|
||||
currentTag, err := getIngressNGINXVersion()
|
||||
CheckIfError(err, "Getting Ingress-nginx Version")
|
||||
utils.CheckIfError(err, "Getting Ingress-nginx Version")
|
||||
bump(currentTag, newTag)
|
||||
}
|
||||
|
||||
func bump(currentTag, newTag string) {
|
||||
//check if semver is valid
|
||||
// check if semver is valid
|
||||
if !checkSemVer(currentTag, newTag) {
|
||||
ErrorF("ERROR: Semver is not valid %v", newTag)
|
||||
utils.ErrorF("ERROR: Semver is not valid %v", newTag)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
Info("Updating Tag %v to %v", currentTag, newTag)
|
||||
err := os.WriteFile("TAG", []byte(newTag), 0666)
|
||||
CheckIfError(err, "Error Writing New Tag File")
|
||||
utils.Info("Updating Tag %v to %v", currentTag, newTag)
|
||||
err := os.WriteFile("TAG", []byte(newTag), 0o666)
|
||||
utils.CheckIfError(err, "Error Writing New Tag File")
|
||||
}
|
||||
|
||||
// Git Returns the latest git tag
|
||||
func (Tag) Git() {
|
||||
tag, err := getGitTag()
|
||||
CheckIfError(err, "Retrieving Git Tag")
|
||||
Info("Git tag: %v", tag)
|
||||
utils.CheckIfError(err, "Retrieving Git Tag")
|
||||
utils.Info("Git tag: %v", tag)
|
||||
}
|
||||
|
||||
func getGitTag() (string, error) {
|
||||
|
@ -112,10 +113,10 @@ func getGitTag() (string, error) {
|
|||
|
||||
// ControllerTag Creates a new Git Tag for the ingress controller
|
||||
func (Tag) NewControllerTag(version string) {
|
||||
Info("Create Ingress Nginx Controller Tag v%s", version)
|
||||
utils.Info("Create Ingress Nginx Controller Tag v%s", version)
|
||||
tag, err := controllerTag(version)
|
||||
CheckIfError(err, "Creating git tag")
|
||||
Debug("Git Tag: %s", tag)
|
||||
utils.CheckIfError(err, "Creating git tag")
|
||||
utils.Debug("Git Tag: %s", tag)
|
||||
}
|
||||
|
||||
func controllerTag(version string) (string, error) {
|
||||
|
@ -125,22 +126,22 @@ func controllerTag(version string) (string, error) {
|
|||
func (Tag) AllControllerTags() {
|
||||
tags := getAllControllerTags()
|
||||
for i, s := range tags {
|
||||
Info("#%v Version %v", i, s)
|
||||
utils.Info("#%v Version %v", i, s)
|
||||
}
|
||||
}
|
||||
|
||||
func getAllControllerTags() []string {
|
||||
allControllerTags, err := git("tag", "-l", "--sort=-v:refname", "controller-v*")
|
||||
CheckIfError(err, "Retrieving git tags")
|
||||
utils.CheckIfError(err, "Retrieving git tags")
|
||||
if !sh.CmdRan(err) {
|
||||
Warning("Issue Running Command")
|
||||
utils.Warning("Issue Running Command")
|
||||
}
|
||||
if allControllerTags == "" {
|
||||
Warning("All Controller Tags is empty")
|
||||
utils.Warning("All Controller Tags is empty")
|
||||
}
|
||||
Debug("Controller Tags: %v", allControllerTags)
|
||||
utils.Debug("Controller Tags: %v", allControllerTags)
|
||||
|
||||
temp := strings.Split(allControllerTags, "\n")
|
||||
Debug("There are %v controller tags", len(temp))
|
||||
utils.Debug("There are %v controller tags", len(temp))
|
||||
return temp
|
||||
}
|
|
@ -1,5 +1,3 @@
|
|||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
|
@ -16,10 +14,14 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
package utils
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -80,3 +82,32 @@ func Debug(format string, args ...interface{}) {
|
|||
func ErrorF(format string, args ...interface{}) {
|
||||
fmt.Printf("\x1b[31;1m%s ERROR: %s\x1b[0m\n", timeStamp(), fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
func DownloadFile(url string) (string, error) {
|
||||
client := &http.Client{
|
||||
Transport: &http.Transport{
|
||||
DialContext: (&net.Dialer{
|
||||
Timeout: 5 * time.Second,
|
||||
KeepAlive: 5 * time.Second,
|
||||
}).DialContext,
|
||||
TLSHandshakeTimeout: 5 * time.Second,
|
||||
ResponseHeaderTimeout: 5 * time.Second,
|
||||
ExpectContinueTimeout: 1 * time.Second,
|
||||
MaxIdleConnsPerHost: -1,
|
||||
},
|
||||
}
|
||||
resp, err := client.Get(url)
|
||||
if err != nil {
|
||||
return "", nil
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return "", errors.New(fmt.Sprintf("could not retrieve file, response from server %d for file %s", resp.StatusCode, url))
|
||||
}
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", nil
|
||||
}
|
||||
return string(bodyBytes), nil
|
||||
}
|
68
magefiles/utils/controller.go
Normal file
68
magefiles/utils/controller.go
Normal file
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/google/go-github/v48/github"
|
||||
)
|
||||
|
||||
// ControllerImage - struct with info about controllers
|
||||
type ControllerImage struct {
|
||||
Tag string
|
||||
Digest string
|
||||
Registry string
|
||||
Name string
|
||||
}
|
||||
|
||||
// IngressRelease All the information about an ingress-nginx release that gets updated
|
||||
type IngressRelease struct {
|
||||
ControllerVersion string
|
||||
ControllerImage ControllerImage
|
||||
ReleaseNote ReleaseNote
|
||||
Release *github.RepositoryRelease
|
||||
}
|
||||
|
||||
// IMAGES_YAML returns this data structure
|
||||
type ImageYamls []ImageElement
|
||||
|
||||
// ImageElement - a specific image and it's data structure the dmap is a list of shas and container versions
|
||||
type ImageElement struct {
|
||||
Name string `json:"name"`
|
||||
Dmap map[string][]string `json:"dmap"`
|
||||
}
|
||||
|
||||
func (i ControllerImage) print() string {
|
||||
return fmt.Sprintf("%s/%s:%s@%s", i.Registry, i.Name, i.Tag, i.Digest)
|
||||
}
|
||||
|
||||
func FindImageDigest(yaml ImageYamls, image, version string) string {
|
||||
version = fmt.Sprintf("v%s", version)
|
||||
Info("Searching Digest for %s:%s", image, version)
|
||||
for i := range yaml {
|
||||
if yaml[i].Name == image {
|
||||
for k, v := range yaml[i].Dmap {
|
||||
if v[0] == version {
|
||||
return k
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
140
magefiles/utils/e2edocs.go
Normal file
140
magefiles/utils/e2edocs.go
Normal file
|
@ -0,0 +1,140 @@
|
|||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"embed"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"slices"
|
||||
)
|
||||
|
||||
//go:embed templates/e2edocs.tpl
|
||||
var tplContent embed.FS
|
||||
|
||||
var (
|
||||
skipFiles = []string{
|
||||
"test/e2e/framework/framework.go",
|
||||
"test/e2e/e2e.go",
|
||||
"test/e2e/e2e_test.go",
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
testDir = "test/e2e"
|
||||
describe = "Describe"
|
||||
URL = "https://github.com/kubernetes/ingress-nginx/tree/main/"
|
||||
)
|
||||
|
||||
var (
|
||||
betweenquotes = regexp.MustCompile(`("|\')(?P<TestDescription>.*)("|\')`)
|
||||
)
|
||||
|
||||
type E2ETemplate struct {
|
||||
URL string
|
||||
Tests []string
|
||||
}
|
||||
|
||||
func getDescription(linetext, path, url string, lineN int, isDescription bool) string {
|
||||
var descriptionLine string
|
||||
prefix := "-"
|
||||
if isDescription {
|
||||
prefix = "###"
|
||||
}
|
||||
|
||||
matches := betweenquotes.FindStringSubmatch(linetext)
|
||||
contentIndex := betweenquotes.SubexpIndex("TestDescription")
|
||||
if len(matches) < 2 || contentIndex == -1 {
|
||||
return ""
|
||||
}
|
||||
|
||||
fileName := fmt.Sprintf("%s/%s", url, path)
|
||||
descriptionLine = fmt.Sprintf("%s [%s](%s#L%d)", prefix, matches[contentIndex], fileName, lineN)
|
||||
|
||||
return descriptionLine
|
||||
}
|
||||
|
||||
func containsGinkgoTest(line string) bool {
|
||||
if !strings.Contains(line, describe) && !strings.Contains(line, "It") {
|
||||
return false
|
||||
}
|
||||
return strings.Contains(line, "func() {")
|
||||
}
|
||||
|
||||
func (t *E2ETemplate) walkE2eDir(path string, d fs.DirEntry, errAggregated error) error {
|
||||
if errAggregated != nil {
|
||||
return errAggregated
|
||||
}
|
||||
// Remove ignored files or non .go files
|
||||
if d.IsDir() || slices.Contains(skipFiles, path) || !strings.HasSuffix(path, ".go") {
|
||||
return nil
|
||||
}
|
||||
|
||||
content, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fileScanner := bufio.NewScanner(bytes.NewReader(content))
|
||||
|
||||
fileScanner.Split(bufio.ScanLines)
|
||||
|
||||
tests := make([]string, 0)
|
||||
var lineN = 0
|
||||
for fileScanner.Scan() {
|
||||
lineN = lineN + 1
|
||||
if !containsGinkgoTest(fileScanner.Text()) {
|
||||
continue
|
||||
}
|
||||
|
||||
line := getDescription(fileScanner.Text(), path, t.URL, lineN, strings.Contains(fileScanner.Text(), describe))
|
||||
if line != "" {
|
||||
tests = append(tests, line)
|
||||
}
|
||||
}
|
||||
t.Tests = append(t.Tests, tests...)
|
||||
return nil
|
||||
}
|
||||
|
||||
func GenerateE2EDocs() (string, error) {
|
||||
e2etpl := &E2ETemplate{URL: URL}
|
||||
err := filepath.WalkDir(testDir, e2etpl.walkE2eDir)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
tmpl, err := template.New("e2edocs.tpl").ParseFS(tplContent, "templates/e2edocs.tpl")
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error parsing the template file: %s", err)
|
||||
}
|
||||
|
||||
tplBuff := new(bytes.Buffer)
|
||||
err = tmpl.Execute(tplBuff, e2etpl)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return tplBuff.String(), nil
|
||||
|
||||
}
|
|
@ -1,5 +1,3 @@
|
|||
//go:build mage
|
||||
|
||||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
|
@ -16,183 +14,11 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
semver "github.com/blang/semver/v4"
|
||||
"github.com/helm/helm/pkg/chartutil"
|
||||
"github.com/magefile/mage/mg"
|
||||
"github.com/magefile/mage/sh"
|
||||
yamlpath "github.com/vmware-labs/yaml-jsonpath/pkg/yamlpath"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
const HelmChartPath = "charts/ingress-nginx/Chart.yaml"
|
||||
const HelmChartValues = "charts/ingress-nginx/values.yaml"
|
||||
|
||||
type Helm mg.Namespace
|
||||
|
||||
// UpdateAppVersion Updates the Helm App Version of Ingress Nginx Controller
|
||||
func (Helm) UpdateAppVersion() {
|
||||
updateAppVersion()
|
||||
}
|
||||
|
||||
func updateAppVersion() {
|
||||
|
||||
}
|
||||
|
||||
// UpdateVersion Update Helm Version of the Chart
|
||||
func (Helm) UpdateVersion(version string) {
|
||||
updateVersion(version)
|
||||
}
|
||||
|
||||
func currentChartVersion() string {
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
CheckIfError(err, "HELM Could not Load Chart")
|
||||
return chart.Version
|
||||
}
|
||||
|
||||
func currentChartAppVersion() string {
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
CheckIfError(err, "HELM Could not Load Chart")
|
||||
return chart.AppVersion
|
||||
}
|
||||
|
||||
func updateVersion(version string) {
|
||||
Info("HELM Reading File %v", HelmChartPath)
|
||||
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
CheckIfError(err, "HELM Could not Load Chart")
|
||||
|
||||
//Get the current tag
|
||||
//appVersionV, err := getIngressNGINXVersion()
|
||||
//CheckIfError(err, "HELM Issue Retrieving the Current Ingress Nginx Version")
|
||||
|
||||
//remove the v from TAG
|
||||
appVersion := version
|
||||
|
||||
Info("HELM Ingress-Nginx App Version: %s Chart AppVersion: %s", appVersion, chart.AppVersion)
|
||||
if appVersion == chart.AppVersion {
|
||||
Warning("HELM Ingress NGINX Version didnt change Ingress-Nginx App Version: %s Chart AppVersion: %s", appVersion, chart.AppVersion)
|
||||
return
|
||||
}
|
||||
|
||||
//Update the helm chart
|
||||
chart.AppVersion = appVersion
|
||||
cTag, err := semver.Make(chart.Version)
|
||||
CheckIfError(err, "HELM Creating Chart Version: %v", err)
|
||||
|
||||
if err = cTag.IncrementPatch(); err != nil {
|
||||
ErrorF("HELM Incrementing Chart Version: %v", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
chart.Version = cTag.String()
|
||||
Debug("HELM Updated Chart Version: %v", chart.Version)
|
||||
|
||||
err = chartutil.SaveChartfile(HelmChartPath, chart)
|
||||
CheckIfError(err, "HELM Saving new Chart")
|
||||
}
|
||||
|
||||
func updateChartReleaseNotes(releasesNotes []string) {
|
||||
Info("HELM Updating the Chart Release notes")
|
||||
chart, err := chartutil.LoadChartfile(HelmChartPath)
|
||||
CheckIfError(err, "HELM Could not Load Chart to update release notes %s", HelmChartPath)
|
||||
var releaseNoteString string
|
||||
for i := range releasesNotes {
|
||||
releaseNoteString = fmt.Sprintf("%s - \"%s\"\n", releaseNoteString, releasesNotes[i])
|
||||
}
|
||||
Info("HELM Release note string %s", releaseNoteString)
|
||||
chart.Annotations["artifacthub.io/changes"] = releaseNoteString
|
||||
err = chartutil.SaveChartfile(HelmChartPath, chart)
|
||||
CheckIfError(err, "HELM Saving updated release notes for Chart")
|
||||
}
|
||||
|
||||
func UpdateChartChangelog() {
|
||||
|
||||
}
|
||||
|
||||
// UpdateChartValue Updates the Helm ChartValue
|
||||
func (Helm) UpdateChartValue(key, value string) {
|
||||
updateChartValue(key, value)
|
||||
}
|
||||
|
||||
func updateChartValue(key, value string) {
|
||||
Info("HELM Updating Chart %s %s:%s", HelmChartValues, key, value)
|
||||
|
||||
//read current values.yaml
|
||||
data, err := os.ReadFile(HelmChartValues)
|
||||
CheckIfError(err, "HELM Could not Load Helm Chart Values files %s", HelmChartValues)
|
||||
|
||||
//var valuesStruct IngressChartValue
|
||||
var n yaml.Node
|
||||
CheckIfError(yaml.Unmarshal(data, &n), "HELM Could not Unmarshal %s", HelmChartValues)
|
||||
|
||||
//update value
|
||||
//keyParse := parsePath(key)
|
||||
p, err := yamlpath.NewPath(key)
|
||||
CheckIfError(err, "HELM cannot create path")
|
||||
|
||||
q, err := p.Find(&n)
|
||||
CheckIfError(err, "HELM unexpected error finding path")
|
||||
|
||||
for _, i := range q {
|
||||
Info("HELM Found %s at %s", i.Value, key)
|
||||
i.Value = value
|
||||
Info("HELM Updated %s at %s", i.Value, key)
|
||||
}
|
||||
|
||||
//// write to file
|
||||
var b bytes.Buffer
|
||||
yamlEncoder := yaml.NewEncoder(&b)
|
||||
yamlEncoder.SetIndent(2)
|
||||
err = yamlEncoder.Encode(&n)
|
||||
CheckIfError(err, "HELM Could not Marshal new Values file")
|
||||
err = os.WriteFile(HelmChartValues, b.Bytes(), 0644)
|
||||
CheckIfError(err, "HELM Could not write new Values file to %s", HelmChartValues)
|
||||
|
||||
Info("HELM Ingress Nginx Helm Chart update %s %s", key, value)
|
||||
}
|
||||
|
||||
func (Helm) Helmdocs() error {
|
||||
return runHelmDocs()
|
||||
}
|
||||
func runHelmDocs() error {
|
||||
err := installHelmDocs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = sh.RunV("helm-docs", "--chart-search-root=${PWD}/charts")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func installHelmDocs() error {
|
||||
Info("HELM Install HelmDocs")
|
||||
var g0 = sh.RunCmd("go")
|
||||
|
||||
err := g0("install", "github.com/norwoodj/helm-docs/cmd/helm-docs@v1.11.0")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func parsePath(key string) []string { return strings.Split(key, ".") }
|
||||
|
||||
func updateHelmDocs() {
|
||||
|
||||
}
|
||||
package utils
|
||||
|
||||
type IngressChartValue struct {
|
||||
CommonLabels struct {
|
||||
} `yaml:"commonLabels"`
|
||||
Controller struct {
|
||||
CommonLabels struct{} `yaml:"commonLabels"`
|
||||
Controller struct {
|
||||
Name string `yaml:"name"`
|
||||
Image struct {
|
||||
Chroot bool `yaml:"chroot"`
|
||||
|
@ -211,24 +37,18 @@ type IngressChartValue struct {
|
|||
HTTP int `yaml:"http"`
|
||||
HTTPS int `yaml:"https"`
|
||||
} `yaml:"containerPort"`
|
||||
Config struct {
|
||||
} `yaml:"config"`
|
||||
ConfigAnnotations struct {
|
||||
} `yaml:"configAnnotations"`
|
||||
ProxySetHeaders struct {
|
||||
} `yaml:"proxySetHeaders"`
|
||||
AddHeaders struct {
|
||||
} `yaml:"addHeaders"`
|
||||
DNSConfig struct {
|
||||
} `yaml:"dnsConfig"`
|
||||
Hostname struct {
|
||||
} `yaml:"hostname"`
|
||||
DNSPolicy string `yaml:"dnsPolicy"`
|
||||
ReportNodeInternalIP bool `yaml:"reportNodeInternalIp"`
|
||||
WatchIngressWithoutClass bool `yaml:"watchIngressWithoutClass"`
|
||||
IngressClassByName bool `yaml:"ingressClassByName"`
|
||||
AllowSnippetAnnotations bool `yaml:"allowSnippetAnnotations"`
|
||||
HostNetwork bool `yaml:"hostNetwork"`
|
||||
Config struct{} `yaml:"config"`
|
||||
ConfigAnnotations struct{} `yaml:"configAnnotations"`
|
||||
ProxySetHeaders struct{} `yaml:"proxySetHeaders"`
|
||||
AddHeaders struct{} `yaml:"addHeaders"`
|
||||
DNSConfig struct{} `yaml:"dnsConfig"`
|
||||
Hostname struct{} `yaml:"hostname"`
|
||||
DNSPolicy string `yaml:"dnsPolicy"`
|
||||
ReportNodeInternalIP bool `yaml:"reportNodeInternalIp"`
|
||||
WatchIngressWithoutClass bool `yaml:"watchIngressWithoutClass"`
|
||||
IngressClassByName bool `yaml:"ingressClassByName"`
|
||||
AllowSnippetAnnotations bool `yaml:"allowSnippetAnnotations"`
|
||||
HostNetwork bool `yaml:"hostNetwork"`
|
||||
HostPort struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Ports struct {
|
||||
|
@ -238,21 +58,17 @@ type IngressChartValue struct {
|
|||
} `yaml:"hostPort"`
|
||||
ElectionID string `yaml:"electionID"`
|
||||
IngressClassResource struct {
|
||||
Name string `yaml:"name"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Default bool `yaml:"default"`
|
||||
ControllerValue string `yaml:"controllerValue"`
|
||||
Parameters struct {
|
||||
} `yaml:"parameters"`
|
||||
Name string `yaml:"name"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Default bool `yaml:"default"`
|
||||
ControllerValue string `yaml:"controllerValue"`
|
||||
Parameters struct{} `yaml:"parameters"`
|
||||
} `yaml:"ingressClassResource"`
|
||||
IngressClass string `yaml:"ingressClass"`
|
||||
PodLabels struct {
|
||||
} `yaml:"podLabels"`
|
||||
PodSecurityContext struct {
|
||||
} `yaml:"podSecurityContext"`
|
||||
Sysctls struct {
|
||||
} `yaml:"sysctls"`
|
||||
PublishService struct {
|
||||
IngressClass string `yaml:"ingressClass"`
|
||||
PodLabels struct{} `yaml:"podLabels"`
|
||||
PodSecurityContext struct{} `yaml:"podSecurityContext"`
|
||||
Sysctls struct{} `yaml:"sysctls"`
|
||||
PublishService struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
PathOverride string `yaml:"pathOverride"`
|
||||
} `yaml:"publishService"`
|
||||
|
@ -263,30 +79,23 @@ type IngressChartValue struct {
|
|||
} `yaml:"scope"`
|
||||
ConfigMapNamespace string `yaml:"configMapNamespace"`
|
||||
TCP struct {
|
||||
ConfigMapNamespace string `yaml:"configMapNamespace"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
ConfigMapNamespace string `yaml:"configMapNamespace"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
} `yaml:"tcp"`
|
||||
UDP struct {
|
||||
ConfigMapNamespace string `yaml:"configMapNamespace"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
ConfigMapNamespace string `yaml:"configMapNamespace"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
} `yaml:"udp"`
|
||||
MaxmindLicenseKey string `yaml:"maxmindLicenseKey"`
|
||||
ExtraArgs struct {
|
||||
} `yaml:"extraArgs"`
|
||||
ExtraEnvs []interface{} `yaml:"extraEnvs"`
|
||||
Kind string `yaml:"kind"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Labels struct {
|
||||
} `yaml:"labels"`
|
||||
UpdateStrategy struct {
|
||||
} `yaml:"updateStrategy"`
|
||||
MinReadySeconds int `yaml:"minReadySeconds"`
|
||||
Tolerations []interface{} `yaml:"tolerations"`
|
||||
Affinity struct {
|
||||
} `yaml:"affinity"`
|
||||
MaxmindLicenseKey string `yaml:"maxmindLicenseKey"`
|
||||
ExtraArgs struct{} `yaml:"extraArgs"`
|
||||
ExtraEnvs []interface{} `yaml:"extraEnvs"`
|
||||
Kind string `yaml:"kind"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
Labels struct{} `yaml:"labels"`
|
||||
UpdateStrategy struct{} `yaml:"updateStrategy"`
|
||||
MinReadySeconds int `yaml:"minReadySeconds"`
|
||||
Tolerations []interface{} `yaml:"tolerations"`
|
||||
Affinity struct{} `yaml:"affinity"`
|
||||
TopologySpreadConstraints []interface{} `yaml:"topologySpreadConstraints"`
|
||||
TerminationGracePeriodSeconds int `yaml:"terminationGracePeriodSeconds"`
|
||||
NodeSelector struct {
|
||||
|
@ -316,29 +125,26 @@ type IngressChartValue struct {
|
|||
SuccessThreshold int `yaml:"successThreshold"`
|
||||
FailureThreshold int `yaml:"failureThreshold"`
|
||||
} `yaml:"readinessProbe"`
|
||||
HealthCheckPath string `yaml:"healthCheckPath"`
|
||||
HealthCheckHost string `yaml:"healthCheckHost"`
|
||||
PodAnnotations struct {
|
||||
} `yaml:"podAnnotations"`
|
||||
ReplicaCount int `yaml:"replicaCount"`
|
||||
MinAvailable int `yaml:"minAvailable"`
|
||||
Resources struct {
|
||||
HealthCheckPath string `yaml:"healthCheckPath"`
|
||||
HealthCheckHost string `yaml:"healthCheckHost"`
|
||||
PodAnnotations struct{} `yaml:"podAnnotations"`
|
||||
ReplicaCount int `yaml:"replicaCount"`
|
||||
MinAvailable int `yaml:"minAvailable"`
|
||||
Resources struct {
|
||||
Requests struct {
|
||||
CPU string `yaml:"cpu"`
|
||||
Memory string `yaml:"memory"`
|
||||
} `yaml:"requests"`
|
||||
} `yaml:"resources"`
|
||||
Autoscaling struct {
|
||||
APIVersion string `yaml:"apiVersion"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
MinReplicas int `yaml:"minReplicas"`
|
||||
MaxReplicas int `yaml:"maxReplicas"`
|
||||
TargetCPUUtilizationPercentage int `yaml:"targetCPUUtilizationPercentage"`
|
||||
TargetMemoryUtilizationPercentage int `yaml:"targetMemoryUtilizationPercentage"`
|
||||
Behavior struct {
|
||||
} `yaml:"behavior"`
|
||||
APIVersion string `yaml:"apiVersion"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
MinReplicas int `yaml:"minReplicas"`
|
||||
MaxReplicas int `yaml:"maxReplicas"`
|
||||
TargetCPUUtilizationPercentage int `yaml:"targetCPUUtilizationPercentage"`
|
||||
TargetMemoryUtilizationPercentage int `yaml:"targetMemoryUtilizationPercentage"`
|
||||
Behavior struct{} `yaml:"behavior"`
|
||||
} `yaml:"autoscaling"`
|
||||
AutoscalingTemplate []interface{} `yaml:"autoscalingTemplate"`
|
||||
Keda struct {
|
||||
|
@ -350,12 +156,10 @@ type IngressChartValue struct {
|
|||
CooldownPeriod int `yaml:"cooldownPeriod"`
|
||||
RestoreToOriginalReplicaCount bool `yaml:"restoreToOriginalReplicaCount"`
|
||||
ScaledObject struct {
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
} `yaml:"scaledObject"`
|
||||
Triggers []interface{} `yaml:"triggers"`
|
||||
Behavior struct {
|
||||
} `yaml:"behavior"`
|
||||
Behavior struct{} `yaml:"behavior"`
|
||||
} `yaml:"keda"`
|
||||
EnableMimalloc bool `yaml:"enableMimalloc"`
|
||||
CustomTemplate struct {
|
||||
|
@ -363,12 +167,10 @@ type IngressChartValue struct {
|
|||
ConfigMapKey string `yaml:"configMapKey"`
|
||||
} `yaml:"customTemplate"`
|
||||
Service struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
AppProtocol bool `yaml:"appProtocol"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Labels struct {
|
||||
} `yaml:"labels"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
AppProtocol bool `yaml:"appProtocol"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
Labels struct{} `yaml:"labels"`
|
||||
ExternalIPs []interface{} `yaml:"externalIPs"`
|
||||
LoadBalancerIP string `yaml:"loadBalancerIP"`
|
||||
LoadBalancerSourceRanges []interface{} `yaml:"loadBalancerSourceRanges"`
|
||||
|
@ -386,20 +188,17 @@ type IngressChartValue struct {
|
|||
} `yaml:"targetPorts"`
|
||||
Type string `yaml:"type"`
|
||||
NodePorts struct {
|
||||
HTTP string `yaml:"http"`
|
||||
HTTPS string `yaml:"https"`
|
||||
TCP struct {
|
||||
} `yaml:"tcp"`
|
||||
UDP struct {
|
||||
} `yaml:"udp"`
|
||||
HTTP string `yaml:"http"`
|
||||
HTTPS string `yaml:"https"`
|
||||
TCP struct{} `yaml:"tcp"`
|
||||
UDP struct{} `yaml:"udp"`
|
||||
} `yaml:"nodePorts"`
|
||||
External struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
} `yaml:"external"`
|
||||
Internal struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
LoadBalancerSourceRanges []interface{} `yaml:"loadBalancerSourceRanges"`
|
||||
} `yaml:"internal"`
|
||||
} `yaml:"service"`
|
||||
|
@ -417,25 +216,20 @@ type IngressChartValue struct {
|
|||
} `yaml:"containerSecurityContext"`
|
||||
} `yaml:"opentelemetry"`
|
||||
AdmissionWebhooks struct {
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
ExtraEnvs []interface{} `yaml:"extraEnvs"`
|
||||
FailurePolicy string `yaml:"failurePolicy"`
|
||||
Port int `yaml:"port"`
|
||||
Certificate string `yaml:"certificate"`
|
||||
Key string `yaml:"key"`
|
||||
NamespaceSelector struct {
|
||||
} `yaml:"namespaceSelector"`
|
||||
ObjectSelector struct {
|
||||
} `yaml:"objectSelector"`
|
||||
Labels struct {
|
||||
} `yaml:"labels"`
|
||||
ExistingPsp string `yaml:"existingPsp"`
|
||||
NetworkPolicyEnabled bool `yaml:"networkPolicyEnabled"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
ExtraEnvs []interface{} `yaml:"extraEnvs"`
|
||||
FailurePolicy string `yaml:"failurePolicy"`
|
||||
Port int `yaml:"port"`
|
||||
Certificate string `yaml:"certificate"`
|
||||
Key string `yaml:"key"`
|
||||
NamespaceSelector struct{} `yaml:"namespaceSelector"`
|
||||
ObjectSelector struct{} `yaml:"objectSelector"`
|
||||
Labels struct{} `yaml:"labels"`
|
||||
ExistingPsp string `yaml:"existingPsp"`
|
||||
NetworkPolicyEnabled bool `yaml:"networkPolicyEnabled"`
|
||||
Service struct {
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
ExternalIPs []interface{} `yaml:"externalIPs"`
|
||||
LoadBalancerSourceRanges []interface{} `yaml:"loadBalancerSourceRanges"`
|
||||
ServicePort int `yaml:"servicePort"`
|
||||
|
@ -445,15 +239,13 @@ type IngressChartValue struct {
|
|||
SecurityContext struct {
|
||||
AllowPrivilegeEscalation bool `yaml:"allowPrivilegeEscalation"`
|
||||
} `yaml:"securityContext"`
|
||||
Resources struct {
|
||||
} `yaml:"resources"`
|
||||
Resources struct{} `yaml:"resources"`
|
||||
} `yaml:"createSecretJob"`
|
||||
PatchWebhookJob struct {
|
||||
SecurityContext struct {
|
||||
AllowPrivilegeEscalation bool `yaml:"allowPrivilegeEscalation"`
|
||||
} `yaml:"securityContext"`
|
||||
Resources struct {
|
||||
} `yaml:"resources"`
|
||||
Resources struct{} `yaml:"resources"`
|
||||
} `yaml:"patchWebhookJob"`
|
||||
Patch struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
|
@ -464,15 +256,13 @@ type IngressChartValue struct {
|
|||
Digest string `yaml:"digest"`
|
||||
PullPolicy string `yaml:"pullPolicy"`
|
||||
} `yaml:"image"`
|
||||
PriorityClassName string `yaml:"priorityClassName"`
|
||||
PodAnnotations struct {
|
||||
} `yaml:"podAnnotations"`
|
||||
NodeSelector struct {
|
||||
PriorityClassName string `yaml:"priorityClassName"`
|
||||
PodAnnotations struct{} `yaml:"podAnnotations"`
|
||||
NodeSelector struct {
|
||||
KubernetesIoOs string `yaml:"kubernetes.io/os"`
|
||||
} `yaml:"nodeSelector"`
|
||||
Tolerations []interface{} `yaml:"tolerations"`
|
||||
Labels struct {
|
||||
} `yaml:"labels"`
|
||||
Tolerations []interface{} `yaml:"tolerations"`
|
||||
Labels struct{} `yaml:"labels"`
|
||||
SecurityContext struct {
|
||||
RunAsNonRoot bool `yaml:"runAsNonRoot"`
|
||||
RunAsUser int `yaml:"runAsUser"`
|
||||
|
@ -494,30 +284,26 @@ type IngressChartValue struct {
|
|||
PortName string `yaml:"portName"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Service struct {
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
ExternalIPs []interface{} `yaml:"externalIPs"`
|
||||
LoadBalancerSourceRanges []interface{} `yaml:"loadBalancerSourceRanges"`
|
||||
ServicePort int `yaml:"servicePort"`
|
||||
Type string `yaml:"type"`
|
||||
} `yaml:"service"`
|
||||
ServiceMonitor struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
AdditionalLabels struct {
|
||||
} `yaml:"additionalLabels"`
|
||||
Namespace string `yaml:"namespace"`
|
||||
NamespaceSelector struct {
|
||||
} `yaml:"namespaceSelector"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
AdditionalLabels struct{} `yaml:"additionalLabels"`
|
||||
Namespace string `yaml:"namespace"`
|
||||
NamespaceSelector struct{} `yaml:"namespaceSelector"`
|
||||
ScrapeInterval string `yaml:"scrapeInterval"`
|
||||
TargetLabels []interface{} `yaml:"targetLabels"`
|
||||
Relabelings []interface{} `yaml:"relabelings"`
|
||||
MetricRelabelings []interface{} `yaml:"metricRelabelings"`
|
||||
} `yaml:"serviceMonitor"`
|
||||
PrometheusRule struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
AdditionalLabels struct {
|
||||
} `yaml:"additionalLabels"`
|
||||
Rules []interface{} `yaml:"rules"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
AdditionalLabels struct{} `yaml:"additionalLabels"`
|
||||
Rules []interface{} `yaml:"rules"`
|
||||
} `yaml:"prometheusRule"`
|
||||
} `yaml:"metrics"`
|
||||
Lifecycle struct {
|
||||
|
@ -543,9 +329,8 @@ type IngressChartValue struct {
|
|||
ReadOnlyRootFilesystem bool `yaml:"readOnlyRootFilesystem"`
|
||||
AllowPrivilegeEscalation bool `yaml:"allowPrivilegeEscalation"`
|
||||
} `yaml:"image"`
|
||||
ExistingPsp string `yaml:"existingPsp"`
|
||||
ExtraArgs struct {
|
||||
} `yaml:"extraArgs"`
|
||||
ExistingPsp string `yaml:"existingPsp"`
|
||||
ExtraArgs struct{} `yaml:"extraArgs"`
|
||||
ServiceAccount struct {
|
||||
Create bool `yaml:"create"`
|
||||
Name string `yaml:"name"`
|
||||
|
@ -567,46 +352,37 @@ type IngressChartValue struct {
|
|||
SuccessThreshold int `yaml:"successThreshold"`
|
||||
TimeoutSeconds int `yaml:"timeoutSeconds"`
|
||||
} `yaml:"readinessProbe"`
|
||||
Tolerations []interface{} `yaml:"tolerations"`
|
||||
Affinity struct {
|
||||
} `yaml:"affinity"`
|
||||
PodSecurityContext struct {
|
||||
} `yaml:"podSecurityContext"`
|
||||
ContainerSecurityContext struct {
|
||||
} `yaml:"containerSecurityContext"`
|
||||
PodLabels struct {
|
||||
} `yaml:"podLabels"`
|
||||
NodeSelector struct {
|
||||
Tolerations []interface{} `yaml:"tolerations"`
|
||||
Affinity struct{} `yaml:"affinity"`
|
||||
PodSecurityContext struct{} `yaml:"podSecurityContext"`
|
||||
ContainerSecurityContext struct{} `yaml:"containerSecurityContext"`
|
||||
PodLabels struct{} `yaml:"podLabels"`
|
||||
NodeSelector struct {
|
||||
KubernetesIoOs string `yaml:"kubernetes.io/os"`
|
||||
} `yaml:"nodeSelector"`
|
||||
PodAnnotations struct {
|
||||
} `yaml:"podAnnotations"`
|
||||
ReplicaCount int `yaml:"replicaCount"`
|
||||
MinAvailable int `yaml:"minAvailable"`
|
||||
Resources struct {
|
||||
} `yaml:"resources"`
|
||||
PodAnnotations struct{} `yaml:"podAnnotations"`
|
||||
ReplicaCount int `yaml:"replicaCount"`
|
||||
MinAvailable int `yaml:"minAvailable"`
|
||||
Resources struct{} `yaml:"resources"`
|
||||
ExtraVolumeMounts []interface{} `yaml:"extraVolumeMounts"`
|
||||
ExtraVolumes []interface{} `yaml:"extraVolumes"`
|
||||
Autoscaling struct {
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
MinReplicas int `yaml:"minReplicas"`
|
||||
MaxReplicas int `yaml:"maxReplicas"`
|
||||
TargetCPUUtilizationPercentage int `yaml:"targetCPUUtilizationPercentage"`
|
||||
TargetMemoryUtilizationPercentage int `yaml:"targetMemoryUtilizationPercentage"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
MinReplicas int `yaml:"minReplicas"`
|
||||
MaxReplicas int `yaml:"maxReplicas"`
|
||||
TargetCPUUtilizationPercentage int `yaml:"targetCPUUtilizationPercentage"`
|
||||
TargetMemoryUtilizationPercentage int `yaml:"targetMemoryUtilizationPercentage"`
|
||||
} `yaml:"autoscaling"`
|
||||
Service struct {
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
ExternalIPs []interface{} `yaml:"externalIPs"`
|
||||
LoadBalancerSourceRanges []interface{} `yaml:"loadBalancerSourceRanges"`
|
||||
ServicePort int `yaml:"servicePort"`
|
||||
Type string `yaml:"type"`
|
||||
} `yaml:"service"`
|
||||
PriorityClassName string `yaml:"priorityClassName"`
|
||||
Labels struct {
|
||||
} `yaml:"labels"`
|
||||
PriorityClassName string `yaml:"priorityClassName"`
|
||||
Labels struct{} `yaml:"labels"`
|
||||
} `yaml:"defaultBackend"`
|
||||
Rbac struct {
|
||||
Create bool `yaml:"create"`
|
||||
|
@ -616,17 +392,14 @@ type IngressChartValue struct {
|
|||
Enabled bool `yaml:"enabled"`
|
||||
} `yaml:"podSecurityPolicy"`
|
||||
ServiceAccount struct {
|
||||
Create bool `yaml:"create"`
|
||||
Name string `yaml:"name"`
|
||||
AutomountServiceAccountToken bool `yaml:"automountServiceAccountToken"`
|
||||
Annotations struct {
|
||||
} `yaml:"annotations"`
|
||||
Create bool `yaml:"create"`
|
||||
Name string `yaml:"name"`
|
||||
AutomountServiceAccountToken bool `yaml:"automountServiceAccountToken"`
|
||||
Annotations struct{} `yaml:"annotations"`
|
||||
} `yaml:"serviceAccount"`
|
||||
ImagePullSecrets []interface{} `yaml:"imagePullSecrets"`
|
||||
TCP struct {
|
||||
} `yaml:"tcp"`
|
||||
UDP struct {
|
||||
} `yaml:"udp"`
|
||||
PortNamePrefix string `yaml:"portNamePrefix"`
|
||||
DhParam interface{} `yaml:"dhParam"`
|
||||
TCP struct{} `yaml:"tcp"`
|
||||
UDP struct{} `yaml:"udp"`
|
||||
PortNamePrefix string `yaml:"portNamePrefix"`
|
||||
DhParam interface{} `yaml:"dhParam"`
|
||||
}
|
91
magefiles/utils/releasenote.go
Normal file
91
magefiles/utils/releasenote.go
Normal file
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
Copyright 2023 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
// ReleaseNote - All the pieces of information/documents that get updated during a release
|
||||
type ReleaseNote struct {
|
||||
Version string
|
||||
NewControllerVersion string
|
||||
PreviousControllerVersion string
|
||||
ControllerImages []ControllerImage
|
||||
DepUpdates []string
|
||||
Updates []string
|
||||
HelmUpdates []string
|
||||
NewHelmChartVersion string
|
||||
PreviousHelmChartVersion string
|
||||
}
|
||||
|
||||
func (r ReleaseNote) Template() {
|
||||
// Files are provided as a slice of strings.
|
||||
changelogTemplate, err := os.ReadFile("Changelog.md.gotmpl")
|
||||
if err != nil {
|
||||
ErrorF("Could not read changelog template file %s", err)
|
||||
}
|
||||
Debug("ChangeLog Templates %s", string(changelogTemplate))
|
||||
t := template.Must(template.New("changelog").Parse(string(changelogTemplate)))
|
||||
// create a new file
|
||||
file, err := os.Create(fmt.Sprintf("changelog/Changelog-%s.md", r.Version))
|
||||
if err != nil {
|
||||
ErrorF("Could not create changelog file %s", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
err = t.Execute(file, r)
|
||||
if err != nil {
|
||||
ErrorF("executing template: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (r ReleaseNote) HelmTemplate() {
|
||||
// Files are provided as a slice of strings.
|
||||
changelogTemplate, err := os.ReadFile("charts/ingress-nginx/changelog.md.gotmpl")
|
||||
if err != nil {
|
||||
ErrorF("Could not read changelog template file %s", err)
|
||||
}
|
||||
Debug("ChangeLog Templates %s", string(changelogTemplate))
|
||||
t := template.Must(template.New("changelog").Parse(string(changelogTemplate)))
|
||||
// create a new file
|
||||
file, err := os.Create(fmt.Sprintf("charts/ingress-nginx/changelog/Changelog-%s.md", r.NewHelmChartVersion))
|
||||
if err != nil {
|
||||
ErrorF("Could not create changelog file %s", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
err = t.Execute(file, r)
|
||||
if err != nil {
|
||||
ErrorF("executing template: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (r ReleaseNote) PrintRelease() {
|
||||
Info("Release Version: %v", r.NewControllerVersion)
|
||||
Info("Previous Version: %v", r.PreviousControllerVersion)
|
||||
Info("Controller Image: %v", r.ControllerImages[0].print())
|
||||
Info("Controller Chroot Image: %v", r.ControllerImages[1].print())
|
||||
for i := range r.Updates {
|
||||
Info("Update #%v - %v", i, r.Updates[i])
|
||||
}
|
||||
for j := range r.DepUpdates {
|
||||
Info("Dependabot Update #%v - %v", j, r.DepUpdates[j])
|
||||
}
|
||||
}
|
10
magefiles/utils/templates/e2edocs.tpl
Normal file
10
magefiles/utils/templates/e2edocs.tpl
Normal file
|
@ -0,0 +1,10 @@
|
|||
<!---
|
||||
This file is autogenerated!
|
||||
Do not try to edit it manually.
|
||||
-->
|
||||
|
||||
# e2e test suite for [Ingress NGINX Controller]({{.URL}})
|
||||
|
||||
{{ range $test := .Tests }}
|
||||
{{ $test }}
|
||||
{{- end }}
|
|
@ -50,7 +50,6 @@ RUN apk update \
|
|||
&& apk add -U --no-cache \
|
||||
bash \
|
||||
openssl \
|
||||
curl \
|
||||
ca-certificates \
|
||||
dumb-init \
|
||||
tzdata \
|
||||
|
|
|
@ -296,7 +296,10 @@ http {
|
|||
{{ end }}
|
||||
|
||||
aio threads;
|
||||
|
||||
{{ if $cfg.EnableAioWrite }}
|
||||
aio_write on;
|
||||
{{ end }}
|
||||
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
|
|
|
@ -7,7 +7,6 @@ RUN apk update \
|
|||
&& apk upgrade && apk add -U --no-cache \
|
||||
ca-certificates \
|
||||
bash \
|
||||
curl \
|
||||
tzdata \
|
||||
libc6-compat \
|
||||
openssl
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
E2E_BASE_IMAGE ?= "registry.k8s.io/ingress-nginx/e2e-test-runner:v20230623-d50c7193b@sha256:e5c68dc56934c273850bfb75c0348a2819756669baf59fcdce9e16771537b247"
|
||||
E2E_BASE_IMAGE ?= "registry.k8s.io/ingress-nginx/e2e-test-runner:v20230907-5bb82dcb7@sha256:421cda0f65a949b8b67b5e62a45071702d19ed458a3e2ba753171b0e66943210"
|
||||
|
||||
image:
|
||||
echo "..entered Makefile in /test/e2e-image"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue