From 53dc89f0a5e35dad3382bb12bee2ecac7f0f8e53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 05:42:39 -0800 Subject: [PATCH 001/184] Bump github.com/opencontainers/runc from 1.1.11 to 1.1.12 (#10951) Bumps [github.com/opencontainers/runc](https://github.com/opencontainers/runc) from 1.1.11 to 1.1.12. - [Release notes](https://github.com/opencontainers/runc/releases) - [Changelog](https://github.com/opencontainers/runc/blob/v1.1.12/CHANGELOG.md) - [Commits](https://github.com/opencontainers/runc/compare/v1.1.11...v1.1.12) --- updated-dependencies: - dependency-name: github.com/opencontainers/runc dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6bebebf67..3a4d1ee1c 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/moul/pb v0.0.0-20220425114252-bca18df4138c github.com/ncabatoff/process-exporter v0.7.10 github.com/onsi/ginkgo/v2 v2.15.0 - github.com/opencontainers/runc v1.1.11 + github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.18.0 github.com/prometheus/client_model v0.5.0 diff --git a/go.sum b/go.sum index b2075a17e..4b80b3a6f 100644 --- a/go.sum +++ b/go.sum @@ -287,8 +287,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -github.com/opencontainers/runc v1.1.11 h1:9LjxyVlE0BPMRP2wuQDRlHV4941Jp9rc3F0+YKimopA= -github.com/opencontainers/runc v1.1.11/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= +github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= +github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= From 48b98311229913803063ed34a738fa1f8fd7c012 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Fri, 2 Feb 2024 00:03:48 +0100 Subject: [PATCH 002/184] Chart: Remove useless `default` from `_params.tpl`. (#10957) --- charts/ingress-nginx/templates/_params.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/ingress-nginx/templates/_params.tpl b/charts/ingress-nginx/templates/_params.tpl index 47d024e85..3ca2de8a5 100644 --- a/charts/ingress-nginx/templates/_params.tpl +++ b/charts/ingress-nginx/templates/_params.tpl @@ -29,7 +29,7 @@ - --watch-namespace={{ default "$(POD_NAMESPACE)" .Values.controller.scope.namespace }} {{- end }} {{- if and (not .Values.controller.scope.enabled) .Values.controller.scope.namespaceSelector }} -- --watch-namespace-selector={{ default "" .Values.controller.scope.namespaceSelector }} +- --watch-namespace-selector={{ .Values.controller.scope.namespaceSelector }} {{- end }} {{- if and .Values.controller.reportNodeInternalIp .Values.controller.hostNetwork }} - --report-node-internal-ip-address={{ .Values.controller.reportNodeInternalIp }} From 3e740fe8e747eb37c35abb64e1d6f5db42e5b15c Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Fri, 2 Feb 2024 07:55:15 +0100 Subject: [PATCH 003/184] Chart: Set `--enable-metrics` depending on `controller.metrics.enabled`. (#10959) --- charts/ingress-nginx/templates/_params.tpl | 3 ++ .../tests/controller-daemonset_test.yaml | 31 +++++++++++++++++++ .../tests/controller-deployment_test.yaml | 16 ++++++++++ 3 files changed, 50 insertions(+) diff --git a/charts/ingress-nginx/templates/_params.tpl b/charts/ingress-nginx/templates/_params.tpl index 3ca2de8a5..0ddef0af1 100644 --- a/charts/ingress-nginx/templates/_params.tpl +++ b/charts/ingress-nginx/templates/_params.tpl @@ -54,6 +54,9 @@ {{- if .Values.controller.watchIngressWithoutClass }} - --watch-ingress-without-class=true {{- end }} +{{- if not .Values.controller.metrics.enabled }} +- --enable-metrics={{ .Values.controller.metrics.enabled }} +{{- end }} {{- if .Values.controller.enableTopologyAwareRouting }} - --enable-topology-aware-routing=true {{- end }} diff --git a/charts/ingress-nginx/tests/controller-daemonset_test.yaml b/charts/ingress-nginx/tests/controller-daemonset_test.yaml index 2e85848b6..1d3172227 100644 --- a/charts/ingress-nginx/tests/controller-daemonset_test.yaml +++ b/charts/ingress-nginx/tests/controller-daemonset_test.yaml @@ -14,3 +14,34 @@ tests: - equal: path: metadata.name value: RELEASE-NAME-ingress-nginx-controller + + - it: should create a DaemonSet with argument `--enable-metrics=false` if `controller.metrics.enabled` is false + set: + controller.kind: DaemonSet + controller.metrics.enabled: false + asserts: + - contains: + path: spec.template.spec.containers[0].args + content: --enable-metrics=false + + - it: should create a DaemonSet without argument `--enable-metrics=false` if `controller.metrics.enabled` is true + set: + controller.kind: DaemonSet + controller.metrics.enabled: true + asserts: + - notContains: + path: spec.template.spec.containers[0].args + content: --enable-metrics=false + + - it: should create a DaemonSet with resource limits if `controller.resources.limits` is set + set: + controller.kind: DaemonSet + controller.resources.limits.cpu: 500m + controller.resources.limits.memory: 512Mi + asserts: + - equal: + path: spec.template.spec.containers[0].resources.limits.cpu + value: 500m + - equal: + path: spec.template.spec.containers[0].resources.limits.memory + value: 512Mi diff --git a/charts/ingress-nginx/tests/controller-deployment_test.yaml b/charts/ingress-nginx/tests/controller-deployment_test.yaml index 01844612e..86d5828c0 100644 --- a/charts/ingress-nginx/tests/controller-deployment_test.yaml +++ b/charts/ingress-nginx/tests/controller-deployment_test.yaml @@ -21,6 +21,22 @@ tests: path: spec.replicas value: 3 + - it: should create a Deployment with argument `--enable-metrics=false` if `controller.metrics.enabled` is false + set: + controller.metrics.enabled: false + asserts: + - contains: + path: spec.template.spec.containers[0].args + content: --enable-metrics=false + + - it: should create a Deployment without argument `--enable-metrics=false` if `controller.metrics.enabled` is true + set: + controller.metrics.enabled: true + asserts: + - notContains: + path: spec.template.spec.containers[0].args + content: --enable-metrics=false + - it: should create a Deployment with resource limits if `controller.resources.limits` is set set: controller.resources.limits.cpu: 500m From 83b5ffb77feb281c9b5eacb942b2ded71d3428f5 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Fri, 2 Feb 2024 14:45:03 +0100 Subject: [PATCH 004/184] E2E Tests: Explicitly enable metrics. (#10962) --- test/e2e/wait-for-nginx.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/wait-for-nginx.sh b/test/e2e/wait-for-nginx.sh index d2529e348..ac0584962 100755 --- a/test/e2e/wait-for-nginx.sh +++ b/test/e2e/wait-for-nginx.sh @@ -89,6 +89,8 @@ controller: terminationGracePeriodSeconds: 1 admissionWebhooks: enabled: false + metrics: + enabled: true # ulimit -c unlimited # mkdir -p /tmp/coredump From 4a680c8b200cb865f8698ce0aef4123bfff32f3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 07:09:25 -0800 Subject: [PATCH 005/184] Bump github/codeql-action from 3.23.2 to 3.24.0 (#10971) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.23.2 to 3.24.0. - [Release notes](https://github.com/github/codeql-action/releases) - [Commits](https://github.com/github/codeql-action/compare/v3.23.2...v3.24.0) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/images.yaml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 71e3a81e6..bcae56657 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -186,7 +186,7 @@ jobs: ignore-unfixed: true output: 'trivy-results.sarif' - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v3.23.2 + uses: github/codeql-action/upload-sarif@v3.24.0 with: sarif_file: 'trivy-results.sarif' diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 7544e3fb3..e8564ec8d 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@25f779c0f271790cfca54f1c5e868acc372ba6f1 # v2.1.37 + uses: github/codeql-action/upload-sarif@39cc02b1d9c54094b4cdbc06cec937d19c16ef3b # v2.1.37 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index d805103a3..2281d846a 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@25f779c0f271790cfca54f1c5e868acc372ba6f1 # v2.1.37 + uses: github/codeql-action/upload-sarif@39cc02b1d9c54094b4cdbc06cec937d19c16ef3b # v2.1.37 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository From 27507157251da864766db00d04fb1b31bdd16aad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:50:16 -0800 Subject: [PATCH 006/184] Bump golang.org/x/crypto from 0.18.0 to 0.19.0 (#10976) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.18.0 to 0.19.0. - [Commits](https://github.com/golang/crypto/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 3a4d1ee1c..ed534d4da 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 - golang.org/x/crypto v0.18.0 + golang.org/x/crypto v0.19.0 google.golang.org/grpc v1.61.0 google.golang.org/grpc/examples v0.0.0-20221220003428-4f16fbe410f7 gopkg.in/go-playground/pool.v3 v3.1.1 @@ -103,8 +103,8 @@ require ( golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.20.0 // indirect golang.org/x/oauth2 v0.16.0 // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/term v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect + golang.org/x/term v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.16.1 // indirect diff --git a/go.sum b/go.sum index 4b80b3a6f..f290367e8 100644 --- a/go.sum +++ b/go.sum @@ -399,8 +399,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U 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.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= 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= @@ -537,12 +537,12 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= 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= From f6b28f548a294930a8917602e6bb5a698e8f6606 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:53:12 -0800 Subject: [PATCH 007/184] Bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 (#10980) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.7.0 to 4.0.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/3a919529898de77ec3da873e3063ca4b10e7f5cc...3cfe3a4abbb849e10058ce4af15d205b6da42804) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/golangci-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 16c3fe8fc..f6929e73c 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -29,6 +29,6 @@ jobs: check-latest: true - name: golangci-lint - uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 + uses: golangci/golangci-lint-action@3cfe3a4abbb849e10058ce4af15d205b6da42804 # v4.0.0 with: version: v1.55.2 From b0e5e9a39d7a6f587bb6ecbe4b501167ce2db750 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:59:07 -0800 Subject: [PATCH 008/184] Bump aquasecurity/trivy-action from 0.16.1 to 0.17.0 (#10979) Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.16.1 to 0.17.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/d43c1f16c00cfd3978dde6c07f4bbcf9eb6993ca...84384bd6e777ef152729993b8145ea352e9dd3ef) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/vulnerability-scans.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 2281d846a..1efd1fc0c 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -60,7 +60,7 @@ jobs: - name: Scan image with AquaSec/Trivy id: scan - uses: aquasecurity/trivy-action@d43c1f16c00cfd3978dde6c07f4bbcf9eb6993ca # v0.16.1 + uses: aquasecurity/trivy-action@84384bd6e777ef152729993b8145ea352e9dd3ef # v0.17.0 with: image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }} format: 'sarif' From 3408083b8013ec87a6920deb592aeb21c7e1052b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 04:02:07 -0800 Subject: [PATCH 009/184] Bump actions/download-artifact from 4.1.1 to 4.1.2 (#10981) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.1 to 4.1.2. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/6b208ae046db98c579e8a3aa621ab581ff575935...eaceaf801fd36c7dee90939fad912460b18a1ffe) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/zz-tmpl-k8s-e2e.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0fb0a7e8c..de63bd457 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -199,7 +199,7 @@ jobs: helm unittest charts/ingress-nginx -d - name: cache - uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 + uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2 with: name: docker.tar.gz diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index 6943a0854..563c487d3 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: cache - uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1 + uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2 with: name: docker.tar.gz From 86f3af8dead82f2d0905dceddeba213751e15b50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 04:31:31 -0800 Subject: [PATCH 010/184] Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#10978) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/26f96dfa697d77e81fd5907df203aa23a56210a8...5d5d22a31266ced268874388b861e4b58bb5c2f3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/zz-tmpl-k8s-e2e.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index de63bd457..7a0d5cf6b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -162,7 +162,7 @@ jobs: | gzip > docker.tar.gz - name: cache - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: name: docker.tar.gz path: docker.tar.gz diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index e8564ec8d..9d00e8c38 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -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@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: name: SARIF file path: results.sarif diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index 563c487d3..20fd1053d 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -50,7 +50,7 @@ jobs: make kind-e2e-test - name: Upload e2e junit-reports ${{ inputs.variation }} - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 if: success() || failure() with: name: e2e-test-reports-${{ inputs.k8s-version }}${{ inputs.variation }} From 7c3596854bc3855b99b80fcf23e1a8def7f7672f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 03:10:47 -0800 Subject: [PATCH 011/184] Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 (#10998) Bumps [github.com/prometheus/client_model](https://github.com/prometheus/client_model) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/compare/v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ed534d4da..7b18f3335 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.18.0 - github.com/prometheus/client_model v0.5.0 + github.com/prometheus/client_model v0.6.0 github.com/prometheus/common v0.46.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index f290367e8..4dc71934f 100644 --- a/go.sum +++ b/go.sum @@ -310,8 +310,8 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= From 09ab0ecf8d7c3f64e53c90be44c96579b1b76352 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 03:13:28 -0800 Subject: [PATCH 012/184] Bump dorny/paths-filter from 3.0.0 to 3.0.1 (#10994) Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/dorny/paths-filter/releases) - [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md) - [Commits](https://github.com/dorny/paths-filter/compare/0bc4621a3135347011ad047f9ecf449bf72ce2bd...ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a) --- updated-dependencies: - dependency-name: dorny/paths-filter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/docs.yaml | 2 +- .github/workflows/helm.yaml | 2 +- .github/workflows/images.yaml | 2 +- .github/workflows/zz-tmpl-images.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7a0d5cf6b..d7d20a246 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -49,7 +49,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0 + - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 18aac62ac..695ed2124 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -25,7 +25,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0 + - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 46327244a..09d70fb7a 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -37,7 +37,7 @@ jobs: run: | ./build/run-in-docker.sh ./hack/verify-chart-lint.sh - - uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0 + - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index bcae56657..3794a0cfa 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -42,7 +42,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0 + - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index c96c97350..fd56e986d 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -32,7 +32,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0 + - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} From 7edcdeefe5638fd47ae80a9a8b48884bef3e35c8 Mon Sep 17 00:00:00 2001 From: zengyuxing007 Date: Thu, 22 Feb 2024 11:00:17 +0800 Subject: [PATCH 013/184] Update ingress-path-matching.md (#11007) --- docs/user-guide/ingress-path-matching.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/ingress-path-matching.md b/docs/user-guide/ingress-path-matching.md index dd618e08b..d93e75fbb 100644 --- a/docs/user-guide/ingress-path-matching.md +++ b/docs/user-guide/ingress-path-matching.md @@ -3,7 +3,8 @@ ## Regular Expression Support !!! important - Regular expressions and wild cards are not supported in the `spec.rules.host` field. Full hostnames must be used. + Regular expressions is not supported in the `spec.rules.host` field. The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == +"*"). !!! note Please see the [FAQ](../faq.md#validation-of-path) for Validation Of __`path`__ From 536c4e7e068390282bd1239fdb70983e891edad1 Mon Sep 17 00:00:00 2001 From: zengyuxing007 Date: Thu, 22 Feb 2024 14:07:07 +0800 Subject: [PATCH 014/184] Update ingress-path-matching.md (#11008) --- docs/user-guide/ingress-path-matching.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/user-guide/ingress-path-matching.md b/docs/user-guide/ingress-path-matching.md index d93e75fbb..43d049043 100644 --- a/docs/user-guide/ingress-path-matching.md +++ b/docs/user-guide/ingress-path-matching.md @@ -3,8 +3,7 @@ ## Regular Expression Support !!! important - Regular expressions is not supported in the `spec.rules.host` field. The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == -"*"). + Regular expressions is not supported in the `spec.rules.host` field. The wildcard character '\*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == "\*"). !!! note Please see the [FAQ](../faq.md#validation-of-path) for Validation Of __`path`__ From 7fdce1640bbc3acdb8405c03917ca269028bc7b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:17:40 -0800 Subject: [PATCH 015/184] Bump actions/dependency-review-action from 4.0.0 to 4.1.3 (#11016) Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4.0.0 to 4.1.3. - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/4901385134134e04cec5fbe5ddfe3b2c5bd5d976...9129d7d40b8c12c1ed0f60400d00c92d437adcce) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/depreview.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index 68822744d..eadf099b3 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -11,4 +11,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: 'Dependency Review' - uses: actions/dependency-review-action@4901385134134e04cec5fbe5ddfe3b2c5bd5d976 # v4.0.0 + uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3 From 30d0d5e4b51143d0e794076583c94446c8b2b780 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 04:25:33 -0800 Subject: [PATCH 016/184] Bump github/codeql-action from 3.24.0 to 3.24.5 (#11017) * Bump github/codeql-action from 3.24.0 to 3.24.5 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.0 to 3.24.5. - [Release notes](https://github.com/github/codeql-action/releases) - [Commits](https://github.com/github/codeql-action/compare/v3.24.0...v3.24.5) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Update images.yaml * Update scorecards.yml * Update vulnerability-scans.yaml --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carlos Tadeu Panato Junior --- .github/workflows/images.yaml | 4 ++-- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 3794a0cfa..238cc6a80 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -186,7 +186,7 @@ jobs: ignore-unfixed: true output: 'trivy-results.sarif' - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v3.24.0 + uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5 with: sarif_file: 'trivy-results.sarif' @@ -238,4 +238,4 @@ jobs: export TAG=$(cat images/nginx-1.25/TAG) cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --push -t ingressnginx/nginx-1.25:${TAG} . - \ No newline at end of file + diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 9d00e8c38..387849a48 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@39cc02b1d9c54094b4cdbc06cec937d19c16ef3b # v2.1.37 + uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 1efd1fc0c..99e9fdfc7 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@39cc02b1d9c54094b4cdbc06cec937d19c16ef3b # v2.1.37 + uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository From e78af97ecdf10187b43786df216478df6ea440d1 Mon Sep 17 00:00:00 2001 From: Milas Bowman Date: Mon, 26 Feb 2024 07:32:18 -0500 Subject: [PATCH 017/184] chore(deps): upgrade headers-more module to 0.37 (#10991) https://github.com/openresty/headers-more-nginx-module/compare/v0.34...v0.37 Signed-off-by: Milas Bowman --- images/nginx-1.25/rootfs/build.sh | 2 +- images/nginx/rootfs/build.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/images/nginx-1.25/rootfs/build.sh b/images/nginx-1.25/rootfs/build.sh index 0fded23d6..5324170b0 100755 --- a/images/nginx-1.25/rootfs/build.sh +++ b/images/nginx-1.25/rootfs/build.sh @@ -26,7 +26,7 @@ export NDK_VERSION=v0.3.3 # Check for recent changes: https://github.com/openresty/set-misc-nginx-module/compare/v0.33...master export SETMISC_VERSION=796f5a3e518748eb29a93bd450324e0ad45b704e -# Check for recent changes: https://github.com/openresty/headers-more-nginx-module/compare/v0.34...master +# Check for recent changes: https://github.com/openresty/headers-more-nginx-module/compare/v0.37...master export MORE_HEADERS_VERSION=v0.37 # Check for recent changes: https://github.com/atomx/nginx-http-auth-digest/compare/v1.0.0...atomx:master diff --git a/images/nginx/rootfs/build.sh b/images/nginx/rootfs/build.sh index cd319a0b9..d6e7c4a58 100755 --- a/images/nginx/rootfs/build.sh +++ b/images/nginx/rootfs/build.sh @@ -26,8 +26,8 @@ export NDK_VERSION=0.3.2 # Check for recent changes: https://github.com/openresty/set-misc-nginx-module/compare/v0.33...master export SETMISC_VERSION=0.33 -# Check for recent changes: https://github.com/openresty/headers-more-nginx-module/compare/v0.34...master -export MORE_HEADERS_VERSION=0.34 +# Check for recent changes: https://github.com/openresty/headers-more-nginx-module/compare/v0.37...master +export MORE_HEADERS_VERSION=0.37 # Check for recent changes: https://github.com/atomx/nginx-http-auth-digest/compare/v1.0.0...atomx:master export NGINX_DIGEST_AUTH=1.0.0 @@ -204,7 +204,7 @@ get_src aa961eafb8317e0eb8da37eb6e2c9ff42267edd18b56947384e719b85188f58b \ get_src cd5e2cc834bcfa30149e7511f2b5a2183baf0b70dc091af717a89a64e44a2985 \ "https://github.com/openresty/set-misc-nginx-module/archive/v$SETMISC_VERSION.tar.gz" -get_src 0c0d2ced2ce895b3f45eb2b230cd90508ab2a773299f153de14a43e44c1209b3 \ +get_src cf6e169d6b350c06d0c730b0eaf4973394026ad40094cddd3b3a5b346577019d \ "https://github.com/openresty/headers-more-nginx-module/archive/v$MORE_HEADERS_VERSION.tar.gz" get_src f09851e6309560a8ff3e901548405066c83f1f6ff88aa7171e0763bd9514762b \ From 391a304b10296cb07171a4c47e97ece81617a759 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Mon, 26 Feb 2024 20:05:00 -0300 Subject: [PATCH 018/184] Bump grpc and reintroduce OTEL compilation (#11021) * Bump grpc and reintroduce OTEL compilation * Enable s390x again --- .github/workflows/images.yaml | 2 +- images/nginx-1.25/Makefile | 2 +- images/nginx-1.25/TAG | 2 +- images/nginx-1.25/rootfs/Dockerfile | 2 +- images/nginx-1.25/rootfs/build.sh | 36 +++++++++++++++++++++++++++-- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 238cc6a80..93092d80b 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -216,7 +216,7 @@ jobs: if: | (github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.changes.outputs.nginx125 == 'true') env: - PLATFORMS: linux/amd64,linux/arm,linux/arm64 + PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/images/nginx-1.25/Makefile b/images/nginx-1.25/Makefile index e03197109..cdd3e2a3c 100644 --- a/images/nginx-1.25/Makefile +++ b/images/nginx-1.25/Makefile @@ -32,7 +32,7 @@ IMAGE = $(REGISTRY)/nginx-1.25 export DOCKER_CLI_EXPERIMENTAL=enabled # build with buildx -PLATFORMS?=linux/amd64,linux/arm,linux/arm64 +PLATFORMS?=linux/amd64,linux/arm,linux/arm64,linux/s390x OUTPUT= PROGRESS=plain build: ensure-buildx diff --git a/images/nginx-1.25/TAG b/images/nginx-1.25/TAG index 8ce995b80..a92e82754 100644 --- a/images/nginx-1.25/TAG +++ b/images/nginx-1.25/TAG @@ -1 +1 @@ -v0.0.3 \ No newline at end of file +v0.0.4 \ No newline at end of file diff --git a/images/nginx-1.25/rootfs/Dockerfile b/images/nginx-1.25/rootfs/Dockerfile index 385b4ba02..8327d99f2 100644 --- a/images/nginx-1.25/rootfs/Dockerfile +++ b/images/nginx-1.25/rootfs/Dockerfile @@ -29,6 +29,7 @@ ENV LUA_PATH="/usr/local/share/luajit-2.1.0-beta3/?.lua;/usr/local/share/lua/5.1 ENV LUA_CPATH="/usr/local/lib/lua/?/?.so;/usr/local/lib/lua/?.so;;" COPY --from=builder /usr/local /usr/local +COPY --from=builder /usr/lib/libopentelemetry* /usr/local/lib COPY --from=builder /opt /opt COPY --from=builder /etc/nginx /etc/nginx @@ -50,7 +51,6 @@ RUN apk update \ tzdata \ grpc-cpp \ libprotobuf \ - && apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing opentelemetry-cpp-exporter-otlp-common opentelemetry-cpp-exporter-otlp-grpc \ && ln -s /usr/local/nginx/sbin/nginx /sbin/nginx \ && adduser -S -D -H -u 101 -h /usr/local/nginx \ -s /sbin/nologin -G www-data -g www-data www-data \ diff --git a/images/nginx-1.25/rootfs/build.sh b/images/nginx-1.25/rootfs/build.sh index 5324170b0..b449d89e4 100755 --- a/images/nginx-1.25/rootfs/build.sh +++ b/images/nginx-1.25/rootfs/build.sh @@ -104,6 +104,11 @@ export LUA_RESTY_GLOBAL_THROTTLE_VERSION=v0.2.0 # Check for recent changes: https://github.com/microsoft/mimalloc/compare/v1.7.6...master export MIMALOC_VERSION=v2.1.2 +# Check on https://github.com/open-telemetry/opentelemetry-cpp +export OPENTELEMETRY_CPP_VERSION="v1.11.0" +# Check on https://github.com/open-telemetry/opentelemetry-proto +export OPENTELEMETRY_PROTO_VERSION="v1.1.0" + export BUILD_PATH=/tmp/build ARCH=$(uname -m) @@ -119,6 +124,7 @@ get_src() echo "Downloading $url" curl -sSL "$url" -o "$f" + # TODO: Reenable checksum verification but make it smarter # echo "$hash $f" | sha256sum -c - || exit 10 if [ ! -z "$dest" ]; then mkdir ${BUILD_PATH}/${dest} @@ -177,7 +183,7 @@ apk add \ grpc-dev \ protobuf-dev -apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing opentelemetry-cpp-dev +# apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing opentelemetry-cpp-dev # There is some bug with some platforms and git, so force HTTP/1.1 git config --global http.version HTTP/1.1 @@ -195,6 +201,12 @@ get_src 66dc7081488811e9f925719e34d1b4504c2801c81dee2920e5452a86b11405ae \ get_src aa961eafb8317e0eb8da37eb6e2c9ff42267edd18b56947384e719b85188f58b \ "https://github.com/vision5/ngx_devel_kit/archive/$NDK_VERSION.tar.gz" "ngx_devel_kit" +get_src abc123 \ + "https://github.com/open-telemetry/opentelemetry-cpp/archive/$OPENTELEMETRY_CPP_VERSION.tar.gz" "opentelemetry-cpp" + +get_src abc123 \ + "https://github.com/open-telemetry/opentelemetry-proto/archive/$OPENTELEMETRY_PROTO_VERSION.tar.gz" "opentelemetry-proto" + get_src cd5e2cc834bcfa30149e7511f2b5a2183baf0b70dc091af717a89a64e44a2985 \ "https://github.com/openresty/set-misc-nginx-module/archive/$SETMISC_VERSION.tar.gz" "set-misc-nginx-module" @@ -288,7 +300,27 @@ make install ln -s /usr/local/bin/luajit /usr/local/bin/lua ln -s "$LUAJIT_INC" /usr/local/include/lua -cd "$BUILD_PATH" +cd "$BUILD_PATH/opentelemetry-cpp" +export CXXFLAGS="-DBENCHMARK_HAS_NO_INLINE_ASSEMBLY" +cmake -B build -G Ninja -Wno-dev \ + -DOTELCPP_PROTO_PATH="${BUILD_PATH}/opentelemetry-proto/" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING="OFF" \ + -DBUILD_W3CTRACECONTEXT_TEST="OFF" \ + -DCMAKE_BUILD_TYPE=None \ + -DWITH_ABSEIL=ON \ + -DWITH_STL=ON \ + -DWITH_EXAMPLES=OFF \ + -DWITH_ZPAGES=OFF \ + -DWITH_OTLP_GRPC=ON \ + -DWITH_OTLP_HTTP=ON \ + -DWITH_ZIPKIN=ON \ + -DWITH_PROMETHEUS=OFF \ + -DWITH_ASYNC_EXPORT_PREVIEW=OFF \ + -DWITH_METRICS_EXEMPLAR_PREVIEW=OFF + cmake --build build + cmake --install build # Git tuning git config --global --add core.compression -1 From 0a87031bbdba6f2cd3e66565043bd42d330858ba Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Mon, 26 Feb 2024 22:08:45 -0300 Subject: [PATCH 019/184] Bump modsecurity on nginx 1.25 (#11024) --- images/nginx-1.25/TAG | 2 +- images/nginx-1.25/rootfs/build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/nginx-1.25/TAG b/images/nginx-1.25/TAG index a92e82754..837042c77 100644 --- a/images/nginx-1.25/TAG +++ b/images/nginx-1.25/TAG @@ -1 +1 @@ -v0.0.4 \ No newline at end of file +v0.0.5 \ No newline at end of file diff --git a/images/nginx-1.25/rootfs/build.sh b/images/nginx-1.25/rootfs/build.sh index b449d89e4..3fe610945 100755 --- a/images/nginx-1.25/rootfs/build.sh +++ b/images/nginx-1.25/rootfs/build.sh @@ -39,7 +39,7 @@ export NGINX_SUBSTITUTIONS=e12e965ac1837ca709709f9a26f572a54d83430e export MODSECURITY_VERSION=v1.0.3 # Check for recent changes: https://github.com/SpiderLabs/ModSecurity/compare/v3.0.8...v3/master -export MODSECURITY_LIB_VERSION=v3.0.11 +export MODSECURITY_LIB_VERSION=v3.0.12 # Check for recent changes: https://github.com/coreruleset/coreruleset/compare/v3.3.2...v3.3/master export OWASP_MODSECURITY_CRS_VERSION=v3.3.5 From 30c431453484783269cb1fadc86d87c29db89024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9?= Date: Tue, 27 Feb 2024 14:41:04 +0100 Subject: [PATCH 020/184] Fix print-e2e-suite (#9536) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before: ``` $ make print-e2e-suite Reached DIND check ELSE block, inside run-in-docker.sh Compiled e2e.test Reached DIND check ELSE block, inside run-in-docker.sh + set -o errexit + set -o nounset + set -o pipefail +++ dirname hack/print-e2e-suite.sh ++ cd hack/.. ++ pwd -P + DIR=/go/src/k8s.io/ingress-nginx + /go/src/k8s.io/ingress-nginx/test/e2e/e2e.test -ginkgo.noColor -ginkgo.dryRun + sed 's|/go/src/k8s.io/ingress-nginx/|File: |g' + sed s/•//g + + head -n-3tail -n+5 You're using deprecated Ginkgo functionality: ============================================= --ginkgo.dryRun is deprecated, use --ginkgo.dry-run instead Learn more at: https://onsi.github.io/ginkgo/MIGRATING_TO_V2#changed-command-line-flags --ginkgo.noColor is deprecated, use --ginkgo.no-color instead Learn more at: https://onsi.github.io/ginkgo/MIGRATING_TO_V2#changed-command-line-flags To silence deprecations that can be silenced set the following environment variable: ACK_GINKGO_DEPRECATIONS=2.6.1 Will run 423 of 423 specs ``` After: ``` $ make print-e2e-suite Reached DIND check ELSE block, inside run-in-docker.sh Compiled e2e.test Reached DIND check ELSE block, inside run-in-docker.sh Will run 423 of 423 specs ------------------------------ [Annotations] service-upstream when using the default value (false) and enabling in the annotations should use the Service Cluster IP and Port File: test/e2e/annotations/serviceupstream.go:41 [0.000 seconds] ------------------------------ [...] ``` Signed-off-by: Hervé Werner --- hack/print-e2e-suite.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hack/print-e2e-suite.sh b/hack/print-e2e-suite.sh index e6b083d58..12b0efb13 100755 --- a/hack/print-e2e-suite.sh +++ b/hack/print-e2e-suite.sh @@ -14,8 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -if [ -n "$DEBUG" ]; then - set -x +if [ "$DEBUG" == "true" ]; then + set -x fi set -o errexit @@ -25,5 +25,6 @@ set -o pipefail DIR=$(cd $(dirname "${BASH_SOURCE}")/.. && pwd -P) $DIR/test/e2e/e2e.test \ - -ginkgo.noColor \ - -ginkgo.dryRun | sed "s|$DIR/|File: |g" | sed 's/•//g' | tail -n+5 | head -n-3 + --ginkgo.no-color \ + --ginkgo.v \ + --ginkgo.dry-run | sed "s|$DIR/|File: |g" | sed 's/•//g' | tail -n+5 | head -n-3 From 3a887f28e828fdae70d25981356014ecc12b72e8 Mon Sep 17 00:00:00 2001 From: Artur Juraszek Date: Tue, 27 Feb 2024 13:56:40 +0000 Subject: [PATCH 021/184] Properly support a TLS-wrapped OCSP responder (#10164) Current implementation of OCSP stapling makes use of the DNS caching machinery[^1], which results in resty.http not seeing the actual host name of the OCSP responder. On HTTP level, this is already mitigated via overriding the Host header, but if a given responder operates on a HTTPS endpoint (a setup which, admittedly, isn't very popular due to its chicken-and-egg caveats involved but is nonetheless legal[^2]) the connection will fail to be established. A relevant (and a bit redacted) excerpt from logs: 2023/07/02 18:13:23 [info] 112#112: *29039 [lua] dns.lua:32: cache_set(): cache set for 'my.ocsp.responder' with value of [10.1.2.3, 10.4.5.6, 10.7.8.9] and ttl of 30., context: ngx.timer, client: 127.0.0.1, server: 0.0.0.0:442 2023/07/02 18:13:23 [error] 112#112: *29039 lua ssl certificate does not match host "10.1.2.3", context: ngx.timer, client: 127.0.0.1, server: 0.0.0.0:442 2023/07/02 18:13:23 [error] 112#112: *29039 [lua] certificate.lua:143: fetch_and_cache_ocsp_response(): could not get OCSP response: certificate host mismatch, context: ngx.timer, client: 127.0.0.1, server: 0.0.0.0:442 [^1]: https://github.com/kubernetes/ingress-nginx/blob/ebb6314/rootfs/etc/nginx/lua/certificate.lua#L81 [^2]: https://datatracker.ietf.org/doc/html/rfc2560#appendix-A.1.1 --- rootfs/etc/nginx/lua/certificate.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/rootfs/etc/nginx/lua/certificate.lua b/rootfs/etc/nginx/lua/certificate.lua index 48c8d7134..1b3d3b21f 100644 --- a/rootfs/etc/nginx/lua/certificate.lua +++ b/rootfs/etc/nginx/lua/certificate.lua @@ -103,6 +103,7 @@ local function do_ocsp_request(url, ocsp_request) ["Host"] = parsed_url[2], }, body = ocsp_request, + ssl_server_name = parsed_url[2], }) if not http_response then return nil, err From 1bc20da92f02daba83725d06fe71582deca12d62 Mon Sep 17 00:00:00 2001 From: Florian Schlichting Date: Tue, 27 Feb 2024 14:58:42 +0100 Subject: [PATCH 022/184] fix datasource, $exported_namespace variable in grafana nginx dashboard (#9092) * grafana/dashboards/nginx.json: re-add exported_namespace as a variable (was deleted entirely in #9523) * dashboards/nginx.json: switch around ingress and namespace selectors, and rename "Exported Namespace" to "Ingress Namespace" authored by tghartland at https://gist.github.com/tghartland/9147d88f991a95d4bab0fa7278c237eb * dashboards/nginx.json: make "Ingress Request Volume" and "Ingress Success Rate" panels look at selected Ingress Namespaces only, and rename two panel titels to use the renamed variable as suggested by tghartland in https://github.com/kubernetes/ingress-nginx/pull/9092#issuecomment-1285840900 * dashboards/nginx.json: apply Ingress Namespace selection to "Ingress Percentile Response Times and Transfer Rates" as well this is from https://github.com/kubernetes/ingress-nginx/pull/9092#issuecomment-1287114743 also by tghartland --- deploy/grafana/dashboards/nginx.json | 56 ++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/deploy/grafana/dashboards/nginx.json b/deploy/grafana/dashboards/nginx.json index 3c3205b4a..864d1dace 100644 --- a/deploy/grafana/dashboards/nginx.json +++ b/deploy/grafana/dashboards/nginx.json @@ -530,7 +530,7 @@ "steppedLine": false, "targets": [ { - "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)", + "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)", "format": "time_series", "hide": false, "instant": false, @@ -637,7 +637,7 @@ "steppedLine": false, "targets": [ { - "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", + "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", "format": "time_series", "instant": false, "interval": "10s", @@ -1183,7 +1183,7 @@ ], "targets": [ { - "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))", + "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", "format": "table", "hide": false, "instant": true, @@ -1192,7 +1192,7 @@ "refId": "C" }, { - "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))", + "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", "format": "table", "hide": false, "instant": true, @@ -1201,7 +1201,7 @@ "refId": "D" }, { - "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le, ingress))", + "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", "format": "table", "hide": false, "instant": true, @@ -1210,7 +1210,7 @@ "refId": "E" }, { - "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", + "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", "format": "table", "hide": false, "instant": true, @@ -1220,7 +1220,7 @@ "refId": "F" }, { - "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", + "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", "format": "table", "instant": true, "intervalFactor": 1, @@ -1312,7 +1312,7 @@ "targets": [ { "exemplar": true, - "expr": "histogram_quantile(0.80, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le))", + "expr": "histogram_quantile(0.80, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", "hide": false, "instant": false, @@ -1323,7 +1323,7 @@ }, { "exemplar": true, - "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le))", + "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", "hide": false, "instant": false, @@ -1335,7 +1335,7 @@ { "editorMode": "code", "exemplar": true, - "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le))", + "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", "hide": false, "instant": false, @@ -1345,7 +1345,7 @@ "refId": "E" } ], - "title": "Ingress Percentile Response Times", + "title": "Ingress Percentile Response Times (Ingress Namespaces)", "type": "timeseries" }, { @@ -1377,14 +1377,14 @@ "targets": [ { "exemplar": true, - "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\"}[2m])) by (le)", + "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le)", "format": "heatmap", "interval": "", "legendFormat": "{{le}}", "refId": "A" } ], - "title": "Ingress Request Latency Heatmap", + "title": "Ingress Request Latency Heatmap (Ingress Namespaces)", "tooltip": { "show": true, "showHistogram": true @@ -1561,7 +1561,31 @@ "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\",controller_class=~\"$controller_class\"}, controller_pod) ", "refresh": 1, "regex": "", - "sort": 0, + "sort": 1, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "tags": [], + "text": "All", + "value": "$__all" + }, + "datasource": "${DS_PROMETHEUS}", + "hide": 0, + "includeAll": true, + "label": "Ingress Namespace", + "multi": false, + "name": "exported_namespace", + "options": [], + "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\"}, exported_namespace) ", + "refresh": 1, + "regex": "", + "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", @@ -1582,10 +1606,10 @@ "multi": false, "name": "ingress", "options": [], - "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\"}, ingress) ", + "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\",exported_namespace=~\"$exported_namespace\"}, ingress) ", "refresh": 1, "regex": "", - "sort": 2, + "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", From 0e3e32d0aef58ec870495268de70058c901fbc19 Mon Sep 17 00:00:00 2001 From: Samuel Vaillant Date: Tue, 27 Feb 2024 15:06:39 +0100 Subject: [PATCH 023/184] test(gzip): reach ingress (#9541) --- test/e2e/settings/gzip.go | 114 ++++++++++++++++++++++++++++++++++---- 1 file changed, 104 insertions(+), 10 deletions(-) diff --git a/test/e2e/settings/gzip.go b/test/e2e/settings/gzip.go index 68e80d3a0..6f964b859 100644 --- a/test/e2e/settings/gzip.go +++ b/test/e2e/settings/gzip.go @@ -18,6 +18,7 @@ package settings import ( "fmt" + "net/http" "strings" "github.com/onsi/ginkgo/v2" @@ -29,11 +30,27 @@ import ( var _ = framework.DescribeSetting("gzip", func() { f := framework.NewDefaultFramework("gzip") + host := "gzip" + + ginkgo.BeforeEach(func() { + f.NewHttpbinDeployment() + f.EnsureIngress(framework.NewSingleIngress(host, "/", host, f.Namespace, framework.HTTPBinService, 80, nil)) + }) + ginkgo.It("should be disabled by default", func() { f.WaitForNginxConfiguration( func(cfg string) bool { return !strings.Contains(cfg, "gzip on;") - }) + }, + ) + + f.HTTPTestClient(). + GET("/xml"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentEncoding() }) ginkgo.It("should be enabled with default settings", func() { @@ -50,7 +67,16 @@ var _ = framework.DescribeSetting("gzip", func() { strings.Contains(cfg, fmt.Sprintf("gzip_types %s;", defaultCfg.GzipTypes)) && strings.Contains(cfg, "gzip_proxied any;") && strings.Contains(cfg, "gzip_vary on;") - }) + }, + ) + + f.HTTPTestClient(). + GET("/xml"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentEncoding("gzip") }) ginkgo.It("should set gzip_comp_level to 4", func() { @@ -61,7 +87,16 @@ var _ = framework.DescribeSetting("gzip", func() { func(cfg string) bool { return strings.Contains(cfg, "gzip on;") && strings.Contains(cfg, "gzip_comp_level 4;") - }) + }, + ) + + f.HTTPTestClient(). + GET("/xml"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentEncoding("gzip") }) ginkgo.It("should set gzip_disable to msie6", func() { @@ -72,28 +107,87 @@ var _ = framework.DescribeSetting("gzip", func() { func(cfg string) bool { return strings.Contains(cfg, "gzip on;") && strings.Contains(cfg, `gzip_disable "msie6";`) - }) + }, + ) + + f.HTTPTestClient(). + GET("/xml"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + WithHeader("User-Agent", "Mozilla/4.8 [en] (Windows NT 5.1; U)"). + Expect(). + Status(http.StatusOK). + ContentEncoding("gzip") + + f.HTTPTestClient(). + GET("/xml"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + WithHeader("User-Agent", "Mozilla/45.0 (compatible; MSIE 6.0; Windows NT 5.1)"). + Expect(). + Status(http.StatusOK). + ContentEncoding() }) ginkgo.It("should set gzip_min_length to 100", func() { f.UpdateNginxConfigMapData("use-gzip", "true") f.UpdateNginxConfigMapData("gzip-min-length", "100") + f.UpdateNginxConfigMapData("gzip-types", "application/octet-stream") f.WaitForNginxConfiguration( func(cfg string) bool { return strings.Contains(cfg, "gzip on;") && - strings.Contains(cfg, "gzip_min_length 100;") - }) + strings.Contains(cfg, "gzip_min_length 100;") && + strings.Contains(cfg, "gzip_types application/octet-stream;") + }, + ) + + f.HTTPTestClient(). + GET("/bytes/99"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentType("application/octet-stream"). + ContentEncoding() + + f.HTTPTestClient(). + GET("/bytes/100"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentType("application/octet-stream"). + ContentEncoding("gzip") }) - ginkgo.It("should set gzip_types to application/javascript", func() { + ginkgo.It("should set gzip_types to text/html", func() { f.UpdateNginxConfigMapData("use-gzip", "true") - f.UpdateNginxConfigMapData("gzip-types", "application/javascript") + f.UpdateNginxConfigMapData("gzip-types", "text/html") f.WaitForNginxConfiguration( func(cfg string) bool { return strings.Contains(cfg, "gzip on;") && - strings.Contains(cfg, "gzip_types application/javascript;") - }) + strings.Contains(cfg, "gzip_types text/html;") + }, + ) + + f.HTTPTestClient(). + GET("/xml"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentType("application/xml"). + ContentEncoding() + + f.HTTPTestClient(). + GET("/html"). + WithHeader("Host", host). + WithHeader("Accept-Encoding", "gzip"). + Expect(). + Status(http.StatusOK). + ContentType("text/html"). + ContentEncoding("gzip") }) }) From 58f6285c7049b25d3e3f2dac310516fc9eaf2c73 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Tue, 27 Feb 2024 12:50:45 -0300 Subject: [PATCH 024/184] Stop reporting interrupted tests (#11027) --- test/e2e/framework/framework.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index b62ad691c..4723117c8 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -25,6 +25,7 @@ import ( "k8s.io/ingress-nginx/test/e2e/framework/httpexpect" "github.com/onsi/ginkgo/v2" + ginkgotypes "github.com/onsi/ginkgo/v2/types" "github.com/stretchr/testify/assert" appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" @@ -178,7 +179,7 @@ func (f *Framework) AfterEach() { assert.Nil(ginkgo.GinkgoT(), err, "deleting IngressClass") }(f.KubeClientSet, f.IngressClass) - if !ginkgo.CurrentSpecReport().Failed() { + if !ginkgo.CurrentSpecReport().Failed() || ginkgo.CurrentSpecReport().State.Is(ginkgotypes.SpecStateInterrupted) { return } From bb6d1b77be818b133286dcf449e22d772b8331d9 Mon Sep 17 00:00:00 2001 From: Bazze <1932208+Bazze@users.noreply.github.com> Date: Tue, 27 Feb 2024 18:27:48 +0100 Subject: [PATCH 025/184] Update controller-prometheusrules.yaml (#8902) As fixed in pull request #7829 for the ServiceMonitor resource, this is also needed for the PrometheusRule. When upgrading the ingress-nginx chart in our environment (via Pulumi) from a really old version to the latest (4.2.0) we noticed it wanted to delete the PrometheusRule resource. This PR should fix that. --- charts/ingress-nginx/templates/controller-prometheusrules.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/ingress-nginx/templates/controller-prometheusrules.yaml b/charts/ingress-nginx/templates/controller-prometheusrules.yaml index f0b93cc8c..41684c370 100644 --- a/charts/ingress-nginx/templates/controller-prometheusrules.yaml +++ b/charts/ingress-nginx/templates/controller-prometheusrules.yaml @@ -1,4 +1,4 @@ -{{- if and ( .Values.controller.metrics.enabled ) ( .Values.controller.metrics.prometheusRule.enabled ) ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) -}} +{{- if and .Values.controller.metrics.enabled .Values.controller.metrics.prometheusRule.enabled -}} apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: From b4ea953cced3890b26c7d2cdd3adb071a65d675f Mon Sep 17 00:00:00 2001 From: Khoo Hao Yit Date: Wed, 28 Feb 2024 01:41:09 +0800 Subject: [PATCH 026/184] add missing backend-protocol annotation option (#9545) --- docs/user-guide/nginx-configuration/annotations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index 42dc918e3..184c4993b 100755 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -39,7 +39,7 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz |[nginx.ingress.kubernetes.io/auth-proxy-set-headers](#external-authentication)|string| |[nginx.ingress.kubernetes.io/auth-snippet](#external-authentication)|string| |[nginx.ingress.kubernetes.io/enable-global-auth](#external-authentication)|"true" or "false"| -|[nginx.ingress.kubernetes.io/backend-protocol](#backend-protocol)|string|HTTP,HTTPS,GRPC,GRPCS| +|[nginx.ingress.kubernetes.io/backend-protocol](#backend-protocol)|string| |[nginx.ingress.kubernetes.io/canary](#canary)|"true" or "false"| |[nginx.ingress.kubernetes.io/canary-by-header](#canary)|string| |[nginx.ingress.kubernetes.io/canary-by-header-value](#canary)|string| @@ -907,7 +907,7 @@ Include /etc/nginx/owasp-modsecurity-crs/nginx-modsecurity.conf ### Backend Protocol Using `backend-protocol` annotations is possible to indicate how NGINX should communicate with the backend service. (Replaces `secure-backends` in older versions) -Valid Values: HTTP, HTTPS, GRPC, GRPCS and FCGI +Valid Values: HTTP, HTTPS, AUTO_HTTP, GRPC, GRPCS and FCGI By default NGINX uses `HTTP`. From fa0bf819841ddf11b71a7ae1228a1761c9596e8c Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Tue, 27 Feb 2024 14:52:42 -0300 Subject: [PATCH 027/184] Bump go libraries (#11023) * Bump go libraries * Fix update codegen execution * Fix errors on klog * Fix gzip test * Bump libraries on webhook certgen * Fix webhook-certgen compilation --- cmd/nginx/logger.go | 4 +- go.mod | 107 +-- go.sum | 251 +++--- go.work.sum | 468 ++++++++++- hack/update-codegen.sh | 4 +- images/kube-webhook-certgen/TAG | 2 +- images/kube-webhook-certgen/rootfs/Dockerfile | 2 +- images/kube-webhook-certgen/rootfs/go.mod | 72 +- images/kube-webhook-certgen/rootfs/go.sum | 764 ++---------------- internal/ingress/annotations/rewrite/main.go | 8 +- .../ingress/metric/collectors/testutils.go | 4 +- magefiles/go.mod | 17 +- magefiles/go.sum | 34 +- test/e2e/settings/gzip.go | 4 +- test/e2e/settings/pod_security_policy.go | 142 ---- .../settings/pod_security_policy_volumes.go | 127 --- 16 files changed, 765 insertions(+), 1245 deletions(-) delete mode 100644 test/e2e/settings/pod_security_policy.go delete mode 100644 test/e2e/settings/pod_security_policy_volumes.go diff --git a/cmd/nginx/logger.go b/cmd/nginx/logger.go index 323085c83..8f0db0257 100644 --- a/cmd/nginx/logger.go +++ b/cmd/nginx/logger.go @@ -33,11 +33,11 @@ func logger(address string) { server.SetFormat(syslog.RFC3164) server.SetHandler(handler) if err := server.ListenUDP(address); err != nil { - klog.Fatalf("failed bind internal syslog: %w", err) + klog.Fatalf("failed bind internal syslog: %s", err.Error()) } if err := server.Boot(); err != nil { - klog.Fatalf("failed to boot internal syslog: %w", err) + klog.Fatalf("failed to boot internal syslog: %s", err.Error()) } klog.Infof("Is Chrooted, starting logger") diff --git a/go.mod b/go.mod index 7b18f3335..1aed07bba 100644 --- a/go.mod +++ b/go.mod @@ -19,108 +19,113 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.18.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.46.0 + github.com/prometheus/common v0.48.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 - golang.org/x/crypto v0.19.0 - google.golang.org/grpc v1.61.0 - google.golang.org/grpc/examples v0.0.0-20221220003428-4f16fbe410f7 + golang.org/x/crypto v0.20.0 + google.golang.org/grpc v1.62.0 + google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 - k8s.io/api v0.27.6 - k8s.io/apiextensions-apiserver v0.27.6 - k8s.io/apimachinery v0.27.6 - k8s.io/apiserver v0.27.6 - k8s.io/cli-runtime v0.27.6 - k8s.io/client-go v0.27.6 - k8s.io/code-generator v0.27.6 - k8s.io/component-base v0.27.6 - k8s.io/klog/v2 v2.100.1 + k8s.io/api v0.29.2 + k8s.io/apiextensions-apiserver v0.29.2 + k8s.io/apimachinery v0.29.2 + k8s.io/apiserver v0.29.2 + k8s.io/cli-runtime v0.29.2 + k8s.io/client-go v0.29.2 + k8s.io/code-generator v0.29.2 + k8s.io/component-base v0.29.2 + k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 - sigs.k8s.io/controller-runtime v0.14.6 + sigs.k8s.io/controller-runtime v0.17.2 sigs.k8s.io/mdtoc v1.1.0 ) require ( + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/BurntSushi/toml v1.3.2 // indirect github.com/beorn7/perks v1.0.1 // indirect 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.4.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // 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 - github.com/evanphx/json-patch v4.12.0+incompatible // indirect - github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.3 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect + github.com/evanphx/json-patch/v5 v5.9.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect - github.com/go-errors/errors v1.4.2 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-errors/errors v1.5.1 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-openapi/jsonpointer v0.20.2 // indirect + github.com/go-openapi/jsonreference v0.20.4 // indirect + github.com/go-openapi/swag v0.22.9 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/godbus/dbus/v5 v5.0.6 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7 // indirect - github.com/google/btree v1.0.1 // indirect - github.com/google/gnostic v0.5.7-v3refs // indirect + github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/gofuzz v1.1.0 // indirect - github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/pprof v0.0.0-20240225044709-fd706174c886 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.4.0 // indirect - github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect - github.com/imdario/mergo v0.3.6 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mmarkdown/mmark v2.0.40+incompatible // indirect - github.com/moby/sys/mountinfo v0.5.0 // indirect + github.com/moby/sys/mountinfo v0.7.1 // indirect + github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/ncabatoff/go-seq v0.0.0-20180805175032-b08ef85ed833 // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/procfs v0.12.0 // indirect - github.com/sergi/go-diff v1.1.0 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect - github.com/xlab/treeprint v1.1.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/xlab/treeprint v1.2.0 // indirect github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect github.com/yudai/pp v2.0.1+incompatible // indirect - go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + go.starlark.net v0.0.0-20240123142251-f86470692795 // indirect + golang.org/x/mod v0.15.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/oauth2 v0.17.0 // indirect + golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.17.0 // indirect golang.org/x/term v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.16.1 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect google.golang.org/protobuf v1.32.0 // indirect + gopkg.in/evanphx/json-patch.v5 v5.9.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 gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect + k8s.io/gengo v0.0.0-20240226174109-00c4be8627da // indirect + k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b // indirect + k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kustomize/api v0.13.2 // indirect - sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/kustomize/api v0.16.0 // indirect + sigs.k8s.io/kustomize/kyaml v0.16.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 4dc71934f..88d1a1a44 100644 --- a/go.sum +++ b/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -59,30 +61,31 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/coreos/go-systemd/v22 v22.4.0 h1:y9YHcjnjynCd/DVbg5j9L/33jQM3MxJlbj/zWskzfGU= -github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= 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= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/eapache/channels v1.1.0 h1:F1taHcn7/F0i8DYqKXJnyhJcVpp2kgFcNePxXtnyu4k= github.com/eapache/channels v1.1.0/go.mod h1:jMm2qB5Ubtg9zLd+inMZd2/NUvXgzmWXsDaLyQIGfH0= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= -github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.11.3 h1:yagOQz/38xJmcNeZJtrUcKjkHRltIaIFXKWeG1SkWGE= +github.com/emicklei/go-restful/v3 v3.11.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= -github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= +github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= @@ -90,8 +93,8 @@ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyT github.com/fullsailor/pkcs7 v0.0.0-20160414161337-2585af45975b/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= -github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= -github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= +github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -102,24 +105,23 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -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= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= +github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= +github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= +github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= +github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= +github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= +github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -154,14 +156,15 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS 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/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7 h1:oKYOfNR7Hp6XpZ4JqolL5u642Js5Z0n7psPVl+S5heo= github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= +github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 h1:k4Tw0nt6lwro3Uin8eqoET7MDA4JnT8YgbCjc/g5E3k= +github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= -github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +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.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -172,11 +175,13 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/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.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +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 v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -186,26 +191,25 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 h1:pUa4ghanp6q4IJHwE9RwLgmVFfReJN+KbQ8ExNEUUoQ= -github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240225044709-fd706174c886 h1:JSJUTZTQT1Gzb2ROdAKOY3HwzBYcclS2GgumhMfHqjw= +github.com/google/pprof v0.0.0-20240225044709-fd706174c886/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= @@ -241,8 +245,8 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= @@ -252,8 +256,10 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mmarkdown/mmark v2.0.40+incompatible h1:vMeUeDzBK3H+/mU0oMVfMuhSXJlIA+DE/DMPQNAj5C4= github.com/mmarkdown/mmark v2.0.40+incompatible/go.mod h1:Uvmoz7tvsWpr7bMVxIpqZPyN3FbOtzDmnsJDFp7ltJs= -github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/mountinfo v0.7.1 h1:/tTvQaSJRr2FshkhXiIpux6fQ2Zvc4j7tAhMTStAG2g= +github.com/moby/sys/mountinfo v0.7.1/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -289,8 +295,8 @@ github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -316,8 +322,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= +github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -332,21 +338,19 @@ github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6po 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= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/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 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.1.3/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -356,14 +360,11 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/urfave/cli v1.17.1-0.20160602030128-01a33823596e/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= -github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yudai/gojsondiff v1.0.0 h1:27cbfqXLVEJ1o8I6v3y9lg8Ydm53EKqHXAOMxEGlCOA= github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 h1:BHyfKlQyqbsFN5p3IfnEUduWvb9is428/nNb5L3U01M= @@ -382,14 +383,14 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 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= +go.starlark.net v0.0.0-20240123142251-f86470692795 h1:LmbG8Pq7KDGkglKVn8VpZOZj6vb9b8nKEGcg9l03epM= +go.starlark.net v0.0.0-20240123142251-f86470692795/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= 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= @@ -399,8 +400,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U 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.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= 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= @@ -411,6 +412,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -432,8 +435,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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= @@ -468,16 +471,16 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= 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.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= 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= @@ -489,6 +492,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -504,7 +509,6 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -532,11 +536,12 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -556,8 +561,8 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 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= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -603,14 +608,14 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc 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.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= 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= +gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= +gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= 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= @@ -664,9 +669,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 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-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= 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= @@ -679,10 +683,10 @@ 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.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= -google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -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/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab h1:tg8hvIl5RmFBuXlcJMuL0h4Psh1gx5Q5xEMwzBZIzWA= +google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab/go.mod h1:liVNnGuZDITxuksuZ+BBvdy7FcJfeNk+efF9qgqNUmc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -704,6 +708,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/evanphx/json-patch.v5 v5.9.0 h1:hx1VU2SGj4F8r9b8GUwJLdc8DNO8sy79ZGui0G05GLo= +gopkg.in/evanphx/json-patch.v5 v5.9.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= @@ -724,7 +730,6 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/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= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -734,48 +739,48 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.27.6 h1:PBWu/lywJe2qQcshMjubzcBg7+XDZOo7O8JJAWuYtUo= -k8s.io/api v0.27.6/go.mod h1:AQYj0UsFCp3qJE7bOVnUuy4orCsXVkvHefnbYQiNWgk= -k8s.io/apiextensions-apiserver v0.27.6 h1:mOwSBJtThZhpJr+8gEkc3wFDIjq87E3JspR5mtZxIg8= -k8s.io/apiextensions-apiserver v0.27.6/go.mod h1:AVNlLYRrESG5Poo6ASRUhY2pvoKPcNt8y/IuZ4lx3o8= -k8s.io/apimachinery v0.27.6 h1:mGU8jmBq5o8mWBov+mLjdTBcU+etTE19waies4AQ6NE= -k8s.io/apimachinery v0.27.6/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/apiserver v0.27.6 h1:r/eHN8r3lG2buggHrVMy++kKhHlHn1HWSX1dqDtes54= -k8s.io/apiserver v0.27.6/go.mod h1:Xeo9OEXn2kDLK5pqspjdXQx7YKgDyKSpwIB4p0BmpAQ= -k8s.io/cli-runtime v0.27.6 h1:ik1+20C0AvxYcqEzwebH2PHOlqBTKUHZnOuPtG2CCl8= -k8s.io/cli-runtime v0.27.6/go.mod h1:+qSBK08EJL1fFvsfVNlETzsgGtxIhascIGZSuaQXQro= -k8s.io/client-go v0.27.6 h1:vzI8804gpUtpMCNaFjIFyJrifH7u//LJCJPy8fQuYQg= -k8s.io/client-go v0.27.6/go.mod h1:PMsXcDKiJTW7PHJ64oEsIUJF319wm+EFlCj76oE5QXM= -k8s.io/code-generator v0.27.6 h1:1zkSDvylcA11s91aYg5U7fZ24EXMZ+KIDOj/Z3Ti4c8= -k8s.io/code-generator v0.27.6/go.mod h1:DPung1sI5vBgn4AGKtlPRQAyagj/ir/4jI55ipZHVww= -k8s.io/component-base v0.27.6 h1:hF5WxX7Tpi9/dXAbLjPVkIA6CA6Pi6r9JOHyo0uCDYI= -k8s.io/component-base v0.27.6/go.mod h1:NvjLtaneUeb0GgMPpCBF+4LNB9GuhDHi16uUTjBhQfU= -k8s.io/gengo v0.0.0-20220902162205-c0856e24416d h1:U9tB195lKdzwqicbJvyJeOXV7Klv+wNAWENRnXEGi08= -k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= +k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= +k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg= +k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8= +k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= +k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= +k8s.io/apiserver v0.29.2 h1:+Z9S0dSNr+CjnVXQePG8TcBWHr3Q7BmAr7NraHvsMiQ= +k8s.io/apiserver v0.29.2/go.mod h1:B0LieKVoyU7ykQvPFm7XSdIHaCHSzCzQWPFa5bqbeMQ= +k8s.io/cli-runtime v0.29.2 h1:smfsOcT4QujeghsNjECKN3lwyX9AwcFU0nvJ7sFN3ro= +k8s.io/cli-runtime v0.29.2/go.mod h1:KLisYYfoqeNfO+MkTWvpqIyb1wpJmmFJhioA0xd4MW8= +k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= +k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/code-generator v0.29.2 h1:c9/iw2KnNpw2IRV+wwuG/Wns2TjPSgjWzbbjTevyiHI= +k8s.io/code-generator v0.29.2/go.mod h1:FwFi3C9jCrmbPjekhaCYcYG1n07CYiW1+PAPCockaos= +k8s.io/component-base v0.29.2 h1:lpiLyuvPA9yV1aQwGLENYyK7n/8t6l3nn3zAtFTJYe8= +k8s.io/component-base v0.29.2/go.mod h1:BfB3SLrefbZXiBfbM+2H1dlat21Uewg/5qtKOl8degM= +k8s.io/gengo v0.0.0-20240226174109-00c4be8627da h1:uH7pylUCo++9PSvrUA34sbk4Y6PHw/bgEFa80pejI+I= +k8s.io/gengo v0.0.0-20240226174109-00c4be8627da/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= -k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b h1:1dzw/KqgSPod72SUp2tuTOmK33TlY2fHlrVU2M9VrOM= +k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b/go.mod h1:Pa1PvrP7ACSkuX6I7KYomY6cmMA0Tx86waBhDUgoKPw= +k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= +k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 h1:SAElp8THCfmBdM+4lmWX5gebiSSkEr7PAYDVF91qpfg= pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732/go.mod h1:lpvCfhqEHNJSSpG5R5A2EgsVzG8RTt4RfPoQuRAcDmg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.14.6 h1:oxstGVvXGNnMvY7TAESYk+lzr6S3V5VFxQ6d92KcwQA= -sigs.k8s.io/controller-runtime v0.14.6/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0= +sigs.k8s.io/controller-runtime v0.17.2 h1:FwHwD1CTUemg0pW2otk7/U5/i5m2ymzvOXdbeGOUvw0= +sigs.k8s.io/controller-runtime v0.17.2/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA= -sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw= -sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA= -sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4= +sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g= +sigs.k8s.io/kustomize/api v0.16.0/go.mod h1:MnFZ7IP2YqVyVwMWoRxPtgl/5hpA+eCCrQR/866cm5c= +sigs.k8s.io/kustomize/kyaml v0.16.0 h1:6J33uKSoATlKZH16unr2XOhDI+otoe2sR3M8PDzW3K0= +sigs.k8s.io/kustomize/kyaml v0.16.0/go.mod h1:xOK/7i+vmE14N2FdFyugIshB8eF6ALpy7jI87Q2nRh4= sigs.k8s.io/mdtoc v1.1.0 h1:q3YtqYzmC2e0hgLXRIOm7/QLuPux1CX3ZHCwlbABxZo= sigs.k8s.io/mdtoc v1.1.0/go.mod h1:QZLVEdHH2iNIR4uHAZyvFRtjloHgVItk8lo/mzCtq3w= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/go.work.sum b/go.work.sum index d73c169de..af236d3b1 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,180 +1,451 @@ +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= 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 v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= +cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= +cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc= +cloud.google.com/go/accessapproval v1.7.5/go.mod h1:g88i1ok5dvQ9XJsxpUInWWvUBrIZhyPDPbk4T01OoJ0= cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= +cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M= +cloud.google.com/go/accesscontextmanager v1.8.5/go.mod h1:TInEhcZ7V9jptGNqN3EzZ5XMhT6ijWxTGjzyETwmL0Q= cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= +cloud.google.com/go/aiplatform v1.52.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= +cloud.google.com/go/aiplatform v1.58.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= +cloud.google.com/go/aiplatform v1.60.0/go.mod h1:eTlGuHOahHprZw3Hio5VKmtThIOak5/qy6pzdsqcQnM= cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= +cloud.google.com/go/analytics v0.22.0/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= +cloud.google.com/go/analytics v0.23.0/go.mod h1:YPd7Bvik3WS95KBok2gPXDqQPHy08TsCQG6CdUCb+u0= cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= +cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY= +cloud.google.com/go/apigateway v1.6.5/go.mod h1:6wCwvYRckRQogyDDltpANi3zsCDl6kWi0b4Je+w2UiI= cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= +cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0= +cloud.google.com/go/apigeeconnect v1.6.5/go.mod h1:MEKm3AiT7s11PqTfKE3KZluZA9O91FNysvd3E6SJ6Ow= cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= +cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8= +cloud.google.com/go/apigeeregistry v0.8.3/go.mod h1:aInOWnqF4yMQx8kTjDqHNXjZGh/mxeNlAf52YqtASUs= cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= +cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg= +cloud.google.com/go/appengine v1.8.5/go.mod h1:uHBgNoGLTS5di7BvU25NFDuKa82v0qQLjyMJLuPQrVo= cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= +cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M= +cloud.google.com/go/area120 v0.8.5/go.mod h1:BcoFCbDLZjsfe4EkCnEq1LKvHSK0Ew/zk5UFu6GMyA0= cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= +cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE= +cloud.google.com/go/artifactregistry v1.14.7/go.mod h1:0AUKhzWQzfmeTvT4SjfI4zjot72EMfrkvL9g9aRjnnM= cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= +cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= +cloud.google.com/go/asset v1.17.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= +cloud.google.com/go/asset v1.17.2/go.mod h1:SVbzde67ehddSoKf5uebOD1sYw8Ab/jD/9EIeWg99q4= cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= +cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= +cloud.google.com/go/assuredworkloads v1.11.5/go.mod h1:FKJ3g3ZvkL2D7qtqIGnDufFkHxwIpNM9vtmhvt+6wqk= cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= +cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8= +cloud.google.com/go/automl v1.13.5/go.mod h1:MDw3vLem3yh+SvmSgeYUmUKqyls6NzSumDm9OJ3xJ1Y= cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= +cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g= +cloud.google.com/go/baremetalsolution v1.2.4/go.mod h1:BHCmxgpevw9IEryE99HbYEfxXkAEA3hkMJbYYsHtIuY= cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= +cloud.google.com/go/batch v1.6.3/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= +cloud.google.com/go/batch v1.7.0/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= +cloud.google.com/go/batch v1.8.0/go.mod h1:k8V7f6VE2Suc0zUM4WtoibNrA6D3dqBpB+++e3vSGYc= cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo= +cloud.google.com/go/beyondcorp v1.0.4/go.mod h1:Gx8/Rk2MxrvWfn4WIhHIG1NV7IBfg14pTKv1+EArVcc= cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= +cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= +cloud.google.com/go/bigquery v1.58.0/go.mod h1:0eh4mWNY0KrBTjUzLjoYImapGORq9gEPT7MWjCy9lik= +cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= +cloud.google.com/go/billing v1.17.4/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= +cloud.google.com/go/billing v1.18.0/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= +cloud.google.com/go/billing v1.18.2/go.mod h1:PPIwVsOOQ7xzbADCwNe8nvK776QpfrOAUkvKjCUcpSE= cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= +cloud.google.com/go/binaryauthorization v1.7.3/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= +cloud.google.com/go/binaryauthorization v1.8.0/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= +cloud.google.com/go/binaryauthorization v1.8.1/go.mod h1:1HVRyBerREA/nhI7yLang4Zn7vfNVA3okoAR9qYQJAQ= cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= +cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE= +cloud.google.com/go/certificatemanager v1.7.5/go.mod h1:uX+v7kWqy0Y3NG/ZhNvffh0kuqkKZIXdvlZRO7z0VtM= cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= +cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= +cloud.google.com/go/channel v1.17.4/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= +cloud.google.com/go/channel v1.17.5/go.mod h1:FlpaOSINDAXgEext0KMaBq/vwpLMkkPAw9b2mApQeHc= cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.14.3/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= +cloud.google.com/go/cloudbuild v1.15.0/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= +cloud.google.com/go/cloudbuild v1.15.1/go.mod h1:gIofXZSu+XD2Uy+qkOrGKEx45zd7s28u/k8f99qKals= cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= +cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc= +cloud.google.com/go/clouddms v1.7.4/go.mod h1:RdrVqoFG9RWI5AvZ81SxJ/xvxPdtcRhFotwdE79DieY= cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= +cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0= +cloud.google.com/go/cloudtasks v1.12.6/go.mod h1:b7c7fe4+TJsFZfDyzO51F7cjq7HLUlRi/KZQLQjDsaY= 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 v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= 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/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/contactcenterinsights v1.11.3/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= +cloud.google.com/go/contactcenterinsights v1.12.1/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= +cloud.google.com/go/contactcenterinsights v1.13.0/go.mod h1:ieq5d5EtHsu8vhe2y3amtZ+BE+AQwX5qAy7cpo0POsI= cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= +cloud.google.com/go/container v1.27.1/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= +cloud.google.com/go/container v1.29.0/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= +cloud.google.com/go/container v1.31.0/go.mod h1:7yABn5s3Iv3lmw7oMmyGbeV6tQj86njcTijkkGuvdZA= cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= +cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U= +cloud.google.com/go/containeranalysis v0.11.4/go.mod h1:cVZT7rXYBS9NG1rhQbWL9pWbXCKHWJPYraE8/FTSYPE= cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= +cloud.google.com/go/datacatalog v1.18.3/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= +cloud.google.com/go/datacatalog v1.19.2/go.mod h1:2YbODwmhpLM4lOFe3PuEhHK9EyTzQJ5AXgIy7EDKTEE= +cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= +cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w= +cloud.google.com/go/dataflow v0.9.5/go.mod h1:udl6oi8pfUHnL0z6UN9Lf9chGqzDMVqcYTcZ1aPnCZQ= cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= +cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs= +cloud.google.com/go/dataform v0.9.2/go.mod h1:S8cQUwPNWXo7m/g3DhWHsLBoufRNn9EgFrMgne2j7cI= cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= +cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM= +cloud.google.com/go/datafusion v1.7.5/go.mod h1:bYH53Oa5UiqahfbNK9YuYKteeD4RbQSNMx7JF7peGHc= cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= +cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8= +cloud.google.com/go/datalabeling v0.8.5/go.mod h1:IABB2lxQnkdUbMnQaOl2prCOfms20mcPxDBm36lps+s= cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.11.1/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataplex v1.14.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataplex v1.14.2/go.mod h1:0oGOSFlEKef1cQeAHXy4GZPB/Ife0fz/PxBf+ZymA2U= cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= +cloud.google.com/go/dataproc/v2 v2.2.3/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= +cloud.google.com/go/dataproc/v2 v2.3.0/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= +cloud.google.com/go/dataproc/v2 v2.4.0/go.mod h1:3B1Ht2aRB8VZIteGxQS/iNSJGzt9+CA0WGnDVMEm7Z4= cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= +cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c= +cloud.google.com/go/dataqna v0.8.5/go.mod h1:vgihg1mz6n7pb5q2YJF7KlXve6tCglInd6XO0JGOlWM= cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA= +cloud.google.com/go/datastream v1.10.4/go.mod h1:7kRxPdxZxhPg3MFeCSulmAJnil8NJGGvSNdn4p1sRZo= cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/deploy v1.14.2/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= +cloud.google.com/go/deploy v1.17.0/go.mod h1:XBr42U5jIr64t92gcpOXxNrqL2PStQCXHuKK5GRUuYo= +cloud.google.com/go/deploy v1.17.1/go.mod h1:SXQyfsXrk0fBmgBHRzBjQbZhMfKZ3hMQBw5ym7MN/50= cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= +cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= +cloud.google.com/go/dialogflow v1.48.1/go.mod h1:C1sjs2/g9cEwjCltkKeYp3FFpz8BOzNondEaAlCpt+A= +cloud.google.com/go/dialogflow v1.49.0/go.mod h1:dhVrXKETtdPlpPhE7+2/k4Z8FRNUp6kMV3EW3oz/fe0= cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= +cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI= +cloud.google.com/go/dlp v1.11.2/go.mod h1:9Czi+8Y/FegpWzgSfkRlyz+jwW6Te9Rv26P3UfU/h/w= cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= +cloud.google.com/go/documentai v1.23.5/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= +cloud.google.com/go/documentai v1.23.7/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= +cloud.google.com/go/documentai v1.25.0/go.mod h1:ftLnzw5VcXkLItp6pw1mFic91tMRyfv6hHEY5br4KzY= cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= +cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY= +cloud.google.com/go/domains v0.9.5/go.mod h1:dBzlxgepazdFhvG7u23XMhmMKBjrkoUNaw0A8AQB55Y= cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= +cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE= +cloud.google.com/go/edgecontainer v1.1.5/go.mod h1:rgcjrba3DEDEQAidT4yuzaKWTbkTI5zAMu3yy6ZWS0M= 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/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM= +cloud.google.com/go/essentialcontacts v1.6.6/go.mod h1:XbqHJGaiH0v2UvtuucfOzFXN+rpL/aU5BCZLn4DYl1Q= cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg= +cloud.google.com/go/eventarc v1.13.4/go.mod h1:zV5sFVoAa9orc/52Q+OuYUG9xL2IIZTbbuTHC6JSY8s= cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= +cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= +cloud.google.com/go/filestore v1.8.0/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= +cloud.google.com/go/filestore v1.8.1/go.mod h1:MbN9KcaM47DRTIuLfQhJEsjaocVebNtNQhSLhKCF5GM= cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= +cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= +cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I= +cloud.google.com/go/functions v1.16.0/go.mod h1:nbNpfAG7SG7Duw/o1iZ6ohvL7mc6MapWQVpqtM29n8k= cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= +cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI= +cloud.google.com/go/gkebackup v1.3.5/go.mod h1:KJ77KkNN7Wm1LdMopOelV6OodM01pMuK2/5Zt1t4Tvc= cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= +cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw= +cloud.google.com/go/gkeconnect v0.8.5/go.mod h1:LC/rS7+CuJ5fgIbXv8tCD/mdfnlAadTaUufgOkmijuk= cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= +cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc= +cloud.google.com/go/gkehub v0.14.5/go.mod h1:6bzqxM+a+vEH/h8W8ec4OJl4r36laxTs3A/fMNHJ0wA= cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= +cloud.google.com/go/gkemulticloud v1.1.0/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= +cloud.google.com/go/gkemulticloud v1.1.1/go.mod h1:C+a4vcHlWeEIf45IB5FFR5XGjTeYhF83+AYIpTy4i2Q= cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= +cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE= +cloud.google.com/go/gsuiteaddons v1.6.5/go.mod h1:Lo4P2IvO8uZ9W+RaC6s1JVxo42vgy+TX5a6hfBZ0ubs= 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/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= +cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw= +cloud.google.com/go/iap v1.9.4/go.mod h1:vO4mSq0xNf/Pu6E5paORLASBwEmphXEjgCFg7aeNu1w= cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= +cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI= +cloud.google.com/go/ids v1.4.5/go.mod h1:p0ZnyzjMWxww6d2DvMGnFwCsSxDJM666Iir1bK1UuBo= cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= +cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk= +cloud.google.com/go/iot v1.7.5/go.mod h1:nq3/sqTz3HGaWJi1xNiX7F41ThOzpud67vwk0YsSsqs= cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= +cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= +cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc= +cloud.google.com/go/language v1.12.3/go.mod h1:evFX9wECX6mksEva8RbRnr/4wi/vKGYnAJrTRXU8+f8= cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= +cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA= +cloud.google.com/go/lifesciences v0.9.5/go.mod h1:OdBm0n7C0Osh5yZB7j9BXyrMnTRGBJIZonUMxo5CzPw= cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= +cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= 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/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= +cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= +cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= +cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM= +cloud.google.com/go/managedidentities v1.6.5/go.mod h1:fkFI2PwwyRQbjLxlm5bQ8SjtObFMW3ChBGNqaMcgZjI= cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= +cloud.google.com/go/maps v1.6.1/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= +cloud.google.com/go/maps v1.6.3/go.mod h1:VGAn809ADswi1ASofL5lveOHPnE6Rk/SFTTBx1yuOLw= +cloud.google.com/go/maps v1.6.4/go.mod h1:rhjqRy8NWmDJ53saCfsXQ0LKwBHfi6OSh5wkq6BaMhI= cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= +cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4= +cloud.google.com/go/mediatranslation v0.8.5/go.mod h1:y7kTHYIPCIfgyLbKncgqouXJtLsU+26hZhHEEy80fSs= cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= +cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0= +cloud.google.com/go/memcache v1.10.5/go.mod h1:/FcblbNd0FdMsx4natdj+2GWzTq+cjZvMa1I+9QsuMA= cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE= +cloud.google.com/go/metastore v1.13.4/go.mod h1:FMv9bvPInEfX9Ac1cVcRXp8EBBQnBcqH6gz3KvJ9BAE= cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= +cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= +cloud.google.com/go/monitoring v1.17.0/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= +cloud.google.com/go/monitoring v1.18.0/go.mod h1:c92vVBCeq/OB4Ioyo+NbN2U7tlg5ZH41PZcdvfc+Lcg= cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= +cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek= +cloud.google.com/go/networkconnectivity v1.14.4/go.mod h1:PU12q++/IMnDJAB+3r+tJtuCXCfwfN+C6Niyj6ji1Po= cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= +cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU= +cloud.google.com/go/networkmanagement v1.9.4/go.mod h1:daWJAl0KTFytFL7ar33I6R/oNBH8eEOX/rBNHrC/8TA= cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= +cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w= +cloud.google.com/go/networksecurity v0.9.5/go.mod h1:KNkjH/RsylSGyyZ8wXpue8xpCEK+bTtvof8SBfIhMG8= cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= +cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70= +cloud.google.com/go/notebooks v1.11.3/go.mod h1:0wQyI2dQC3AZyQqWnRsp+yA+kY4gC7ZIVP4Qg3AQcgo= cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= +cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY= +cloud.google.com/go/optimization v1.6.3/go.mod h1:8ve3svp3W6NFcAEFr4SfJxrldzhUl4VMUJmhrqVKtYA= cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= +cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI= +cloud.google.com/go/orchestration v1.8.5/go.mod h1:C1J7HesE96Ba8/hZ71ISTV2UAat0bwN+pi85ky38Yq8= cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= +cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= +cloud.google.com/go/orgpolicy v1.12.0/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= +cloud.google.com/go/orgpolicy v1.12.1/go.mod h1:aibX78RDl5pcK3jA8ysDQCFkVxLj3aOQqrbBaUL2V5I= cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= +cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA= +cloud.google.com/go/osconfig v1.12.5/go.mod h1:D9QFdxzfjgw3h/+ZaAb5NypM8bhOMqBzgmbhzWViiW8= cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= +cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY= +cloud.google.com/go/oslogin v1.13.0/go.mod h1:xPJqLwpTZ90LSE5IL1/svko+6c5avZLluiyylMb/sRA= +cloud.google.com/go/oslogin v1.13.1/go.mod h1:vS8Sr/jR7QvPWpCjNqy6LYZr5Zs1e8ZGW/KPn9gmhws= cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= +cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE= +cloud.google.com/go/phishingprotection v0.8.5/go.mod h1:g1smd68F7mF1hgQPuYn3z8HDbNre8L6Z0b7XMYFmX7I= cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= +cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0= +cloud.google.com/go/policytroubleshooter v1.10.3/go.mod h1:+ZqG3agHT7WPb4EBIRqUv4OyIwRTZvsVDHZ8GlZaoxk= cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= +cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0= +cloud.google.com/go/privatecatalog v0.9.5/go.mod h1:fVWeBOVe7uj2n3kWRGlUQqR/pOd450J9yZoOECcQqJk= cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.34.0/go.mod h1:alj4l4rBg+N3YTFDDC+/YyFTs6JAjam2QfYsddcAW4c= +cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= 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/recaptchaenterprise/v2 v2.8.3/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= +cloud.google.com/go/recaptchaenterprise/v2 v2.9.0/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= +cloud.google.com/go/recaptchaenterprise/v2 v2.9.2/go.mod h1:trwwGkfhCmp05Ll5MSJPXY7yvnO0p4v3orGANAFHAuU= cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= +cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU= +cloud.google.com/go/recommendationengine v0.8.5/go.mod h1:A38rIXHGFvoPvmy6pZLozr0g59NRNREz4cx7F58HAsQ= cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= +cloud.google.com/go/recommender v1.11.3/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= +cloud.google.com/go/recommender v1.12.0/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= +cloud.google.com/go/recommender v1.12.1/go.mod h1:gf95SInWNND5aPas3yjwl0I572dtudMhMIG4ni8nr+0= cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= +cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs= +cloud.google.com/go/redis v1.14.2/go.mod h1:g0Lu7RRRz46ENdFKQ2EcQZBAJ2PtJHJLuiiRuEXwyQw= cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= +cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0= +cloud.google.com/go/resourcemanager v1.9.5/go.mod h1:hep6KjelHA+ToEjOfO3garMKi/CLYwTqeAw7YiEI9x8= cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= +cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI= +cloud.google.com/go/resourcesettings v1.6.5/go.mod h1:WBOIWZraXZOGAgoR4ukNj0o0HiSMO62H9RpFi9WjP9I= cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= +cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg= +cloud.google.com/go/retail v1.16.0/go.mod h1:LW7tllVveZo4ReWt68VnldZFWJRzsh9np+01J9dYWzE= cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= +cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4= +cloud.google.com/go/run v1.3.4/go.mod h1:FGieuZvQ3tj1e9GnzXqrMABSuir38AJg5xhiYq+SF3o= cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= +cloud.google.com/go/scheduler v1.10.4/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= +cloud.google.com/go/scheduler v1.10.5/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= +cloud.google.com/go/scheduler v1.10.6/go.mod h1:pe2pNCtJ+R01E06XCDOJs1XvAMbv28ZsQEbqknxGOuE= cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= +cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w= +cloud.google.com/go/secretmanager v1.11.5/go.mod h1:eAGv+DaCHkeVyQi0BeXgAHOU0RdrMeZIASKc+S7VqH4= cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= +cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4= +cloud.google.com/go/security v1.15.5/go.mod h1:KS6X2eG3ynWjqcIX976fuToN5juVkF6Ra6c7MPnldtc= cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= +cloud.google.com/go/securitycenter v1.24.2/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= +cloud.google.com/go/securitycenter v1.24.3/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= +cloud.google.com/go/securitycenter v1.24.4/go.mod h1:PSccin+o1EMYKcFQzz9HMMnZ2r9+7jbc+LvPjXhpwcU= cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw= +cloud.google.com/go/servicedirectory v1.11.4/go.mod h1:Bz2T9t+/Ehg6x+Y7Ycq5xiShYLD96NfEsWNHyitj1qM= cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= +cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM= +cloud.google.com/go/shell v1.7.5/go.mod h1:hL2++7F47/IfpfTO53KYf1EC+F56k3ThfNEXd4zcuiE= cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= +cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0= +cloud.google.com/go/spanner v1.55.0/go.mod h1:HXEznMUVhC+PC+HDyo9YFG2Ajj5BQDkcbqB9Z2Ffxi0= +cloud.google.com/go/spanner v1.56.0/go.mod h1:DndqtUKQAt3VLuV2Le+9Y3WTnq5cNKrnLb/Piqcj+h0= cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= +cloud.google.com/go/speech v1.21.0/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= +cloud.google.com/go/speech v1.21.1/go.mod h1:E5GHZXYQlkqWQwY5xRSLHw2ci5NMQNG52FfMU1aZrIA= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= +cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc= +cloud.google.com/go/storagetransfer v1.10.4/go.mod h1:vef30rZKu5HSEf/x1tK3WfWrL0XVoUQN/EPDRGPzjZs= cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= +cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI= +cloud.google.com/go/talent v1.6.6/go.mod h1:y/WQDKrhVz12WagoarpAIyKKMeKGKHWPoReZ0g8tseQ= cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= +cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74= +cloud.google.com/go/texttospeech v1.7.5/go.mod h1:tzpCuNWPwrNJnEa4Pu5taALuZL4QRRLcb+K9pbhXT6M= cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= +cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y= +cloud.google.com/go/tpu v1.6.5/go.mod h1:P9DFOEBIBhuEcZhXi+wPoVy/cji+0ICFi4TtTkMHSSs= cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= +cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY= +cloud.google.com/go/trace v1.10.5/go.mod h1:9hjCV1nGBCtXbAE4YK7OqJ8pmPYSxPA0I67JwRd5s3M= cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= +cloud.google.com/go/translate v1.10.0/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= +cloud.google.com/go/translate v1.10.1/go.mod h1:adGZcQNom/3ogU65N9UXHOnnSvjPwA/jKQUMnsYXOyk= cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= +cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU= +cloud.google.com/go/video v1.20.4/go.mod h1:LyUVjyW+Bwj7dh3UJnUGZfyqjEto9DnrvTe1f/+QrW0= cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= +cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8= +cloud.google.com/go/videointelligence v1.11.5/go.mod h1:/PkeQjpRponmOerPeJxNPuxvi12HlW7Em0lJO14FC3I= cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= +cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM= +cloud.google.com/go/vision/v2 v2.8.0/go.mod h1:ocqDiA2j97pvgogdyhoxiQp2ZkDCyr0HWpicywGGRhU= cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= +cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70= +cloud.google.com/go/vmmigration v1.7.5/go.mod h1:pkvO6huVnVWzkFioxSghZxIGcsstDvYiVCxQ9ZH3eYI= cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4= +cloud.google.com/go/vmwareengine v1.1.1/go.mod h1:nMpdsIVkUrSaX8UvmnBhzVzG7PPvNYc5BszcvIVudYs= cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= +cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk= +cloud.google.com/go/vpcaccess v1.7.5/go.mod h1:slc5ZRvvjP78c2dnL7m4l4R9GwL3wDLcpIWz6P/ziig= cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= +cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0= +cloud.google.com/go/webrisk v1.9.5/go.mod h1:aako0Fzep1Q714cPEM5E+mtYX8/jsfegAuS8aivxy3U= cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= +cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o= +cloud.google.com/go/websecurityscanner v1.6.5/go.mod h1:QR+DWaxAz2pWooylsBF854/Ijvuoa3FCyS1zBa1rAVQ= cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= +cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= +cloud.google.com/go/workflows v1.12.4/go.mod h1:yQ7HUqOkdJK4duVtMeBCAOPiN1ZF1E9pAMX51vpwB/w= +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/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= 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/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= @@ -186,87 +457,278 @@ github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwys github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/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/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= 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/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= 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/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.5/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-openapi/swag v0.22.6/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= 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/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 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.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= +github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +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.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= +golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808/go.mod h1:KG1lNk5ZFNssSZLrpVb4sMXKMpGwGXOxSG3rnu2gZQQ= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +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.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= +google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= +google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4= +google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= +google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= +google.golang.org/genproto v0.0.0-20231212172506-995d672761c0/go.mod h1:l/k7rMz0vFTBPy+tFSGvXEd3z+BcoG1k7EHbqm+YBsY= +google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= 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-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= +google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= +google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3/go.mod h1:k2dtGpRrbsSyKcNPKKI5sstZkrNCZwpU/ns96JoHbGg= +google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= +google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20231212172506-995d672761c0/go.mod h1:guYXGPwC6jwxgWKW5Y405fKWOFNwlvUlUnzyp9i0uqo= 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-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014/go.mod h1:SaPjaZGWb0lPqs6Ittu0spdfrOArqji4ZdeP5IC/9N4= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= 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.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= 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/evanphx/json-patch.v5 v5.6.0 h1:BMT6KIwBD9CaU91PJCZIe46bDmBWa9ynTQgJIOpfQBk= +gopkg.in/evanphx/json-patch.v5 v5.6.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= +gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index fadc67633..47a104584 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -27,7 +27,7 @@ if [[ ! -d ${CODEGEN_PKG} ]]; then fi # Ensure we can execute. -chmod +x ${CODEGEN_PKG}/generate-groups.sh +chmod +x ${CODEGEN_PKG}/kube_codegen.sh # generate the code with: # --output-base because this script should also be able to run inside the vendor dir of @@ -37,7 +37,7 @@ chmod +x ${CODEGEN_PKG}/generate-groups.sh # k8s.io/ingress-nginx/pkg/client k8s.io/ingress-nginx/pkg/apis \ # nginxingress:v1alpha1 \ # --output-base "$(dirname ${BASH_SOURCE})/../../.." -${CODEGEN_PKG}/generate-groups.sh "deepcopy" \ +${CODEGEN_PKG}/kube_codegen.sh "deepcopy" \ k8s.io/ingress-nginx/internal k8s.io/ingress-nginx/pkg/apis \ .:ingress \ --output-base "$(dirname ${BASH_SOURCE})/../../.." \ diff --git a/images/kube-webhook-certgen/TAG b/images/kube-webhook-certgen/TAG index 95e94cdd3..90ab6e946 100644 --- a/images/kube-webhook-certgen/TAG +++ b/images/kube-webhook-certgen/TAG @@ -1 +1 @@ -v0.0.1 \ No newline at end of file +v0.0.2 \ No newline at end of file diff --git a/images/kube-webhook-certgen/rootfs/Dockerfile b/images/kube-webhook-certgen/rootfs/Dockerfile index 7ec098a99..2348db825 100644 --- a/images/kube-webhook-certgen/rootfs/Dockerfile +++ b/images/kube-webhook-certgen/rootfs/Dockerfile @@ -22,7 +22,7 @@ ARG TARGETARCH WORKDIR /workspace COPY . . -RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} go build -a -o kube-webhook-certgen main.go +RUN go mod tidy && CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} go build -a -o kube-webhook-certgen main.go FROM --platform=$BUILDPLATFORM gcr.io/distroless/static:nonroot ARG BUILDPLATFORM diff --git a/images/kube-webhook-certgen/rootfs/go.mod b/images/kube-webhook-certgen/rootfs/go.mod index 7e321dc49..9cb4bf263 100644 --- a/images/kube-webhook-certgen/rootfs/go.mod +++ b/images/kube-webhook-certgen/rootfs/go.mod @@ -3,61 +3,57 @@ module github.com/jet/kube-webhook-certgen go 1.21 require ( - github.com/onrik/logrus v0.9.0 - github.com/sirupsen/logrus v1.9.0 - github.com/spf13/cobra v1.7.0 - k8s.io/api v0.27.6 - k8s.io/apimachinery v0.27.6 - k8s.io/client-go v0.27.6 - k8s.io/kube-aggregator v0.22.6 + github.com/onrik/logrus v0.11.0 + github.com/sirupsen/logrus v1.9.3 + github.com/spf13/cobra v1.8.0 + k8s.io/api v0.29.2 + k8s.io/apimachinery v0.29.2 + k8s.io/client-go v0.29.2 + k8s.io/kube-aggregator v0.29.2 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.10.2 // indirect - github.com/evanphx/json-patch v4.12.0+incompatible // indirect - github.com/go-logr/logr v1.2.4 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/emicklei/go-restful/v3 v3.11.3 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-openapi/jsonpointer v0.20.2 // indirect + github.com/go-openapi/jsonreference v0.20.4 // indirect + github.com/go-openapi/swag v0.22.9 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gnostic v0.5.7-v3refs // indirect - github.com/google/go-cmp v0.5.9 // indirect - github.com/google/gofuzz v1.1.0 // indirect - github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 // indirect - github.com/google/uuid v1.3.1 // indirect - github.com/imdario/mergo v0.3.6 // indirect + github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/pprof v0.0.0-20240225044709-fd706174c886 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kr/pretty v0.3.1 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/ginkgo/v2 v2.13.0 // indirect - github.com/onsi/gomega v1.27.10 // indirect + github.com/onsi/ginkgo/v2 v2.15.0 // indirect + github.com/onsi/gomega v1.30.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.8.4 // indirect - github.com/tidwall/gjson v1.14.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.12.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.14.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.31.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/oauth2 v0.17.0 // indirect + golang.org/x/sys v0.17.0 // indirect + golang.org/x/term v0.17.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.18.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b // indirect + k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/images/kube-webhook-certgen/rootfs/go.sum b/images/kube-webhook-certgen/rootfs/go.sum index 004bd7d96..966d69209 100644 --- a/images/kube-webhook-certgen/rootfs/go.sum +++ b/images/kube-webhook-certgen/rootfs/go.sum @@ -1,808 +1,144 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -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/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -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/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -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/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= -github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -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/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -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-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -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.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/emicklei/go-restful/v3 v3.11.3 h1:yagOQz/38xJmcNeZJtrUcKjkHRltIaIFXKWeG1SkWGE= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= +github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -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.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -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/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= -github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +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.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-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 h1:pUa4ghanp6q4IJHwE9RwLgmVFfReJN+KbQ8ExNEUUoQ= -github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +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/pprof v0.0.0-20240225044709-fd706174c886 h1:JSJUTZTQT1Gzb2ROdAKOY3HwzBYcclS2GgumhMfHqjw= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 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= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -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/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onrik/logrus v0.9.0 h1:oT7VstCUxWBoX7fswYK61fi9bzRBSpROq5CR2b7wxQo= -github.com/onrik/logrus v0.9.0/go.mod h1:qfe9NeZVAJfIxviw3cYkZo3kvBtLoPRJriAO8zl7qTk= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= -github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -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.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onrik/logrus v0.11.0 h1:pu+BCaWL36t0yQaj/2UHK2erf88dwssAKOT51mxPUVs= +github.com/onrik/logrus v0.11.0/go.mod h1:fO2vlZwIdti6PidD3gV5YKt9Lq5ptpnP293RAe1ITwk= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= 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.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/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.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tidwall/gjson v1.14.0 h1:6aeJ0bzojgWLa82gDQHcx3S0Lr/O51I9bJ5nv6JFx5w= -github.com/tidwall/gjson v1.14.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= +github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= -go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= -go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -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= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -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.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -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.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/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= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/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.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= 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.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -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= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= 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= -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= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -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/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -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= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -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.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= 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.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= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= 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= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/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= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.22.6/go.mod h1:q1F7IfaNrbi/83ebLy3YFQYLjPSNyunZ/IXQxMmbwCg= -k8s.io/api v0.27.6 h1:PBWu/lywJe2qQcshMjubzcBg7+XDZOo7O8JJAWuYtUo= -k8s.io/api v0.27.6/go.mod h1:AQYj0UsFCp3qJE7bOVnUuy4orCsXVkvHefnbYQiNWgk= -k8s.io/apimachinery v0.22.6/go.mod h1:ZvVLP5iLhwVFg2Yx9Gh5W0um0DUauExbRhe+2Z8I1EU= -k8s.io/apimachinery v0.27.6 h1:mGU8jmBq5o8mWBov+mLjdTBcU+etTE19waies4AQ6NE= -k8s.io/apimachinery v0.27.6/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/apiserver v0.22.6/go.mod h1:OlL1rGa2kKWGj2JEXnwBcul/BwC9Twe95gm4ohtiIIs= -k8s.io/client-go v0.22.6/go.mod h1:TffU4AV2idZGeP+g3kdFZP+oHVHWPL1JYFySOALriw0= -k8s.io/client-go v0.27.6 h1:vzI8804gpUtpMCNaFjIFyJrifH7u//LJCJPy8fQuYQg= -k8s.io/client-go v0.27.6/go.mod h1:PMsXcDKiJTW7PHJ64oEsIUJF319wm+EFlCj76oE5QXM= -k8s.io/code-generator v0.22.6/go.mod h1:iOZwYADSgFPNGWfqHFfg1V0TNJnl1t0WyZluQp4baqU= -k8s.io/component-base v0.22.6/go.mod h1:ngHLefY4J5fq2fApNdbWyj4yh0lvw36do4aAjNN8rc8= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-aggregator v0.22.6 h1:/iaXzOWia2dqOQkIA9eJtkmfTveJMLz3Dci9ZA/WgmU= -k8s.io/kube-aggregator v0.22.6/go.mod h1:0RSTzxqiwsj5HUlov195Z72ZKyE4qgedKXCl6sLKAjM= -k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= -k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.27/go.mod h1:tq2nT0Kx7W+/f2JVE+zxYtUhdjuELJkVpNz+x/QN5R4= +k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= +k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= +k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= +k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= +k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= +k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/kube-aggregator v0.29.2 h1:z9qJn5wlGmGaX6EfM7OEhr6fq6SBjDKR6tPRZ/qgxeY= +k8s.io/kube-aggregator v0.29.2/go.mod h1:QEuwzmMJJsg0eg1Gv+u4cWcYeJG2+8vN8/nTXBzopUo= +k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b h1:1dzw/KqgSPod72SUp2tuTOmK33TlY2fHlrVU2M9VrOM= +k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= diff --git a/internal/ingress/annotations/rewrite/main.go b/internal/ingress/annotations/rewrite/main.go index cd9ed3993..d78a004b9 100644 --- a/internal/ingress/annotations/rewrite/main.go +++ b/internal/ingress/annotations/rewrite/main.go @@ -152,14 +152,14 @@ func (a rewrite) Parse(ing *networking.Ingress) (interface{}, error) { config.SSLRedirect, err = parser.GetBoolAnnotation(sslRedirectAnnotation, ing, a.annotationConfig.Annotations) if err != nil { if errors.IsValidationError(err) { - klog.Warningf("%sis invalid, defaulting to '%s'", sslRedirectAnnotation, a.r.GetDefaultBackend().SSLRedirect) + klog.Warningf("%s is invalid, defaulting to '%t'", sslRedirectAnnotation, a.r.GetDefaultBackend().SSLRedirect) } config.SSLRedirect = a.r.GetDefaultBackend().SSLRedirect } config.PreserveTrailingSlash, err = parser.GetBoolAnnotation(preserveTrailingSlashAnnotation, ing, a.annotationConfig.Annotations) if err != nil { if errors.IsValidationError(err) { - klog.Warningf("%sis invalid, defaulting to '%s'", preserveTrailingSlashAnnotation, a.r.GetDefaultBackend().PreserveTrailingSlash) + klog.Warningf("%s is invalid, defaulting to '%t'", preserveTrailingSlashAnnotation, a.r.GetDefaultBackend().PreserveTrailingSlash) } config.PreserveTrailingSlash = a.r.GetDefaultBackend().PreserveTrailingSlash } @@ -167,7 +167,7 @@ func (a rewrite) Parse(ing *networking.Ingress) (interface{}, error) { config.ForceSSLRedirect, err = parser.GetBoolAnnotation(forceSSLRedirectAnnotation, ing, a.annotationConfig.Annotations) if err != nil { if errors.IsValidationError(err) { - klog.Warningf("%sis invalid, defaulting to '%s'", forceSSLRedirectAnnotation, a.r.GetDefaultBackend().ForceSSLRedirect) + klog.Warningf("%s is invalid, defaulting to '%t'", forceSSLRedirectAnnotation, a.r.GetDefaultBackend().ForceSSLRedirect) } config.ForceSSLRedirect = a.r.GetDefaultBackend().ForceSSLRedirect } @@ -175,7 +175,7 @@ func (a rewrite) Parse(ing *networking.Ingress) (interface{}, error) { config.UseRegex, err = parser.GetBoolAnnotation(useRegexAnnotation, ing, a.annotationConfig.Annotations) if err != nil { if errors.IsValidationError(err) { - klog.Warningf("%sis invalid, defaulting to 'false'", useRegexAnnotation) + klog.Warningf("%s is invalid, defaulting to 'false'", useRegexAnnotation) } config.UseRegex = false } diff --git a/internal/ingress/metric/collectors/testutils.go b/internal/ingress/metric/collectors/testutils.go index 669e89e17..e59ccfd9c 100644 --- a/internal/ingress/metric/collectors/testutils.go +++ b/internal/ingress/metric/collectors/testutils.go @@ -50,7 +50,7 @@ func GatherAndCompare(_ prometheus.Collector, expected string, metricNames []str if !reflect.DeepEqual(metrics, normalizeMetricFamilies(expectedMetrics)) { // Encode the gathered output to the readable text format for comparison. var buf1 bytes.Buffer - enc := expfmt.NewEncoder(&buf1, expfmt.FmtText) + enc := expfmt.NewEncoder(&buf1, expfmt.NewFormat(expfmt.TypeTextPlain)) for _, mf := range metrics { if err := enc.Encode(mf); err != nil { return fmt.Errorf("encoding result failed: %s", err) @@ -59,7 +59,7 @@ func GatherAndCompare(_ prometheus.Collector, expected string, metricNames []str // Encode normalized expected metrics again to generate them in the same ordering // the registry does to spot differences more easily. var buf2 bytes.Buffer - enc = expfmt.NewEncoder(&buf2, expfmt.FmtText) + enc = expfmt.NewEncoder(&buf2, expfmt.NewFormat(expfmt.TypeTextPlain)) for _, mf := range normalizeMetricFamilies(expectedMetrics) { if err := enc.Encode(mf); err != nil { return fmt.Errorf("encoding result failed: %s", err) diff --git a/magefiles/go.mod b/magefiles/go.mod index 25610b647..9dddf9f71 100644 --- a/magefiles/go.mod +++ b/magefiles/go.mod @@ -8,7 +8,7 @@ require ( github.com/helm/helm v2.17.0+incompatible github.com/magefile/mage v1.15.0 github.com/vmware-labs/yaml-jsonpath v0.3.2 - golang.org/x/oauth2 v0.12.0 + golang.org/x/oauth2 v0.17.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -22,17 +22,16 @@ require ( github.com/gobwas/glob v0.2.3 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/onsi/gomega v1.27.10 // indirect + github.com/onsi/gomega v1.30.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect - github.com/stretchr/testify v1.8.4 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/net v0.17.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.31.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect + golang.org/x/crypto v0.20.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/apimachinery v0.27.6 // indirect + k8s.io/apimachinery v0.29.2 // indirect k8s.io/helm v2.17.0+incompatible // indirect ) diff --git a/magefiles/go.sum b/magefiles/go.sum index f9b01b2ef..9abe8e950 100644 --- a/magefiles/go.sum +++ b/magefiles/go.sum @@ -22,7 +22,6 @@ github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg78 github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= 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.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -37,8 +36,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 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-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= 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= @@ -67,16 +65,13 @@ github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042 github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= 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.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= 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.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= 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/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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= @@ -88,19 +83,15 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 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.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= -golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -113,10 +104,8 @@ golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= 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.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= @@ -127,8 +116,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= -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/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -137,8 +125,7 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -156,7 +143,6 @@ 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.27.6 h1:mGU8jmBq5o8mWBov+mLjdTBcU+etTE19waies4AQ6NE= -k8s.io/apimachinery v0.27.6/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= 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= diff --git a/test/e2e/settings/gzip.go b/test/e2e/settings/gzip.go index 6f964b859..c7e580e07 100644 --- a/test/e2e/settings/gzip.go +++ b/test/e2e/settings/gzip.go @@ -33,8 +33,8 @@ var _ = framework.DescribeSetting("gzip", func() { host := "gzip" ginkgo.BeforeEach(func() { - f.NewHttpbinDeployment() - f.EnsureIngress(framework.NewSingleIngress(host, "/", host, f.Namespace, framework.HTTPBinService, 80, nil)) + f.NewHttpbunDeployment() + f.EnsureIngress(framework.NewSingleIngress(host, "/", host, f.Namespace, framework.HTTPBunService, 80, nil)) }) ginkgo.It("should be disabled by default", func() { diff --git a/test/e2e/settings/pod_security_policy.go b/test/e2e/settings/pod_security_policy.go deleted file mode 100644 index b21fb870e..000000000 --- a/test/e2e/settings/pod_security_policy.go +++ /dev/null @@ -1,142 +0,0 @@ -/* -Copyright 2018 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 settings - -import ( - "context" - "net/http" - "strconv" - "strings" - - "github.com/onsi/ginkgo/v2" - "github.com/stretchr/testify/assert" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - policyv1beta1 "k8s.io/api/policy/v1beta1" - rbacv1 "k8s.io/api/rbac/v1" - k8sErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "k8s.io/ingress-nginx/test/e2e/framework" -) - -const ( - ingressControllerPSP = "ingress-controller-psp" -) - -var _ = framework.IngressNginxDescribe("[Security] Pod Security Policies", func() { - f := framework.NewDefaultFramework("pod-security-policies") - - ginkgo.It("should be running with a Pod Security Policy", func() { - k8sversion, err := f.KubeClientSet.Discovery().ServerVersion() - if err != nil { - assert.Nil(ginkgo.GinkgoT(), err, "getting version") - } - - numversion, err := strconv.Atoi(k8sversion.Minor) - if err != nil { - assert.Nil(ginkgo.GinkgoT(), err, "converting version") - } - - if numversion > 24 { - ginkgo.Skip("PSP not supported in this version") - } - - psp := createPodSecurityPolicy() - _, err = f.KubeClientSet.PolicyV1beta1().PodSecurityPolicies().Create(context.TODO(), psp, metav1.CreateOptions{}) - if !k8sErrors.IsAlreadyExists(err) { - assert.Nil(ginkgo.GinkgoT(), err, "creating Pod Security Policy") - } - - role, err := f.KubeClientSet.RbacV1().Roles(f.Namespace).Get(context.TODO(), "nginx-ingress", metav1.GetOptions{}) - assert.Nil(ginkgo.GinkgoT(), err, "getting ingress controller cluster role") - assert.NotNil(ginkgo.GinkgoT(), role) - - role.Rules = append(role.Rules, rbacv1.PolicyRule{ - APIGroups: []string{"policy"}, - Resources: []string{"podsecuritypolicies"}, - ResourceNames: []string{ingressControllerPSP}, - Verbs: []string{"use"}, - }) - - _, err = f.KubeClientSet.RbacV1().Roles(f.Namespace).Update(context.TODO(), role, metav1.UpdateOptions{}) - assert.Nil(ginkgo.GinkgoT(), err, "updating ingress controller cluster role to use a pod security policy") - - // update the deployment just to trigger a rolling update and the use of the security policy - err = f.UpdateIngressControllerDeployment(func(deployment *appsv1.Deployment) error { - args := deployment.Spec.Template.Spec.Containers[0].Args - args = append(args, "--v=2") - deployment.Spec.Template.Spec.Containers[0].Args = args - _, err := f.KubeClientSet.AppsV1().Deployments(f.Namespace).Update(context.TODO(), deployment, metav1.UpdateOptions{}) - - return err - }) - assert.Nil(ginkgo.GinkgoT(), err, "unexpected error updating ingress controller deployment flags") - - f.WaitForNginxListening(80) - - f.NewEchoDeployment() - - f.WaitForNginxConfiguration( - func(cfg string) bool { - return strings.Contains(cfg, "server_tokens off") - }) - - f.HTTPTestClient(). - GET("/"). - WithHeader("Host", "foo.bar.com"). - Expect(). - Status(http.StatusNotFound) - }) -}) - -func createPodSecurityPolicy() *policyv1beta1.PodSecurityPolicy { - trueValue := true - return &policyv1beta1.PodSecurityPolicy{ - ObjectMeta: metav1.ObjectMeta{ - Name: ingressControllerPSP, - }, - Spec: policyv1beta1.PodSecurityPolicySpec{ - AllowPrivilegeEscalation: &trueValue, - RequiredDropCapabilities: []corev1.Capability{"All"}, - RunAsUser: policyv1beta1.RunAsUserStrategyOptions{ - Rule: "RunAsAny", - }, - SELinux: policyv1beta1.SELinuxStrategyOptions{ - Rule: "RunAsAny", - }, - FSGroup: policyv1beta1.FSGroupStrategyOptions{ - Ranges: []policyv1beta1.IDRange{ - { - Min: 1, - Max: 65535, - }, - }, - Rule: "MustRunAs", - }, - SupplementalGroups: policyv1beta1.SupplementalGroupsStrategyOptions{ - Ranges: []policyv1beta1.IDRange{ - { - Min: 1, - Max: 65535, - }, - }, - Rule: "MustRunAs", - }, - }, - } -} diff --git a/test/e2e/settings/pod_security_policy_volumes.go b/test/e2e/settings/pod_security_policy_volumes.go deleted file mode 100644 index f8fc58300..000000000 --- a/test/e2e/settings/pod_security_policy_volumes.go +++ /dev/null @@ -1,127 +0,0 @@ -/* -Copyright 2018 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 settings - -import ( - "context" - "net/http" - "strconv" - "strings" - - "github.com/onsi/ginkgo/v2" - "github.com/stretchr/testify/assert" - - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - rbacv1 "k8s.io/api/rbac/v1" - k8sErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "k8s.io/ingress-nginx/test/e2e/framework" -) - -var _ = framework.IngressNginxDescribe("[Security] Pod Security Policies with volumes", func() { - f := framework.NewDefaultFramework("pod-security-policies-volumes") - - ginkgo.It("should be running with a Pod Security Policy", func() { - k8sversion, err := f.KubeClientSet.Discovery().ServerVersion() - if err != nil { - assert.Nil(ginkgo.GinkgoT(), err, "getting version") - } - - numversion, err := strconv.Atoi(k8sversion.Minor) - if err != nil { - assert.Nil(ginkgo.GinkgoT(), err, "converting version") - } - - if numversion > 24 { - ginkgo.Skip("PSP not supported in this version") - } - psp := createPodSecurityPolicy() - _, err = f.KubeClientSet.PolicyV1beta1().PodSecurityPolicies().Create(context.TODO(), psp, metav1.CreateOptions{}) - if !k8sErrors.IsAlreadyExists(err) { - assert.Nil(ginkgo.GinkgoT(), err, "creating Pod Security Policy") - } - - role, err := f.KubeClientSet.RbacV1().Roles(f.Namespace).Get(context.TODO(), "nginx-ingress", metav1.GetOptions{}) - assert.Nil(ginkgo.GinkgoT(), err, "getting ingress controller cluster role") - assert.NotNil(ginkgo.GinkgoT(), role) - - role.Rules = append(role.Rules, rbacv1.PolicyRule{ - APIGroups: []string{"policy"}, - Resources: []string{"podsecuritypolicies"}, - ResourceNames: []string{ingressControllerPSP}, - Verbs: []string{"use"}, - }) - - _, err = f.KubeClientSet.RbacV1().Roles(f.Namespace).Update(context.TODO(), role, metav1.UpdateOptions{}) - assert.Nil(ginkgo.GinkgoT(), err, "updating ingress controller cluster role to use a pod security policy") - - err = f.UpdateIngressControllerDeployment(func(deployment *appsv1.Deployment) error { - args := deployment.Spec.Template.Spec.Containers[0].Args - args = append(args, "--v=2") - deployment.Spec.Template.Spec.Containers[0].Args = args - - deployment.Spec.Template.Spec.Volumes = []corev1.Volume{ - { - Name: "ssl", VolumeSource: corev1.VolumeSource{ - EmptyDir: &corev1.EmptyDirVolumeSource{}, - }, - }, - { - Name: "tmp", VolumeSource: corev1.VolumeSource{ - EmptyDir: &corev1.EmptyDirVolumeSource{}, - }, - }, - } - - fsGroup := int64(33) - deployment.Spec.Template.Spec.SecurityContext = &corev1.PodSecurityContext{ - FSGroup: &fsGroup, - } - - deployment.Spec.Template.Spec.Containers[0].VolumeMounts = []corev1.VolumeMount{ - { - Name: "ssl", MountPath: "/etc/my-amazing-ssl", - }, - { - Name: "tmp", MountPath: "/my-other-tmp", - }, - } - - _, err := f.KubeClientSet.AppsV1().Deployments(f.Namespace).Update(context.TODO(), deployment, metav1.UpdateOptions{}) - - return err - }) - assert.Nil(ginkgo.GinkgoT(), err, "updating ingress controller deployment") - - f.WaitForNginxListening(80) - - f.NewEchoDeployment() - - f.WaitForNginxConfiguration( - func(cfg string) bool { - return strings.Contains(cfg, "server_tokens off") - }) - - f.HTTPTestClient(). - GET("/"). - WithHeader("Host", "foo.bar.com"). - Expect(). - Status(http.StatusNotFound) - }) -}) From 862b05d91369eb2279a3bf9eb280746ca85aed9b Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Tue, 27 Feb 2024 15:51:37 -0300 Subject: [PATCH 028/184] Fix kubewebhook image tag (#11033) --- images/kube-webhook-certgen/TAG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/kube-webhook-certgen/TAG b/images/kube-webhook-certgen/TAG index 90ab6e946..0d0c52f84 100644 --- a/images/kube-webhook-certgen/TAG +++ b/images/kube-webhook-certgen/TAG @@ -1 +1 @@ -v0.0.2 \ No newline at end of file +v1.4.0 From 7a75538dea40f5735862e361149f68e6a8c0f287 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Wed, 28 Feb 2024 02:32:13 -0300 Subject: [PATCH 029/184] Bump kubewebhook certgen (#11034) Signed-off-by: Ricardo Katz Co-authored-by: Jintao Zhang --- charts/ingress-nginx/README.md | 4 ++-- charts/ingress-nginx/values.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 44bb10bd7..5c98763cf 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -253,11 +253,11 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.admissionWebhooks.namespaceSelector | object | `{}` | | | controller.admissionWebhooks.objectSelector | object | `{}` | | | controller.admissionWebhooks.patch.enabled | bool | `true` | | -| controller.admissionWebhooks.patch.image.digest | string | `"sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084"` | | +| controller.admissionWebhooks.patch.image.digest | string | `"sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334"` | | | controller.admissionWebhooks.patch.image.image | string | `"ingress-nginx/kube-webhook-certgen"` | | | controller.admissionWebhooks.patch.image.pullPolicy | string | `"IfNotPresent"` | | | controller.admissionWebhooks.patch.image.registry | string | `"registry.k8s.io"` | | -| controller.admissionWebhooks.patch.image.tag | string | `"v20231226-1a7112e06"` | | +| controller.admissionWebhooks.patch.image.tag | string | `"v1.4.0"` | | | controller.admissionWebhooks.patch.labels | object | `{}` | Labels to be added to patch job resources | | controller.admissionWebhooks.patch.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not | | controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os" | string | `"linux"` | | diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 5e76d2fb4..487b72f81 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -781,8 +781,8 @@ 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: v20231226-1a7112e06 - digest: sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + tag: v1.4.0 + digest: sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 pullPolicy: IfNotPresent # -- Provide a priority class name to the webhook patching job ## From 02e3af9039bb79f1905b887ffd9c6b950f3729a0 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Wed, 28 Feb 2024 17:05:38 -0300 Subject: [PATCH 030/184] bump nginx and Go, remove tag file and old CI jobs (#11037) * bump nginx and remove tag file * Bump go, remove old CI jobs --- .github/workflows/ci.yaml | 5 +++-- .github/workflows/images.yaml | 23 ----------------------- GOLANG_VERSION | 2 +- NGINX_BASE | 2 +- TAG | 1 - 5 files changed, 5 insertions(+), 28 deletions(-) delete mode 100644 TAG diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d7d20a246..32915f4c2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -67,6 +67,7 @@ jobs: - 'charts/ingress-nginx/**/*' - 'NGINX_BASE' baseimage: + - 'NGINX_BASE' - 'images/nginx-1.25/**' test-go: @@ -141,7 +142,7 @@ jobs: needs.changes.outputs.baseimage == 'true' run: | export TAG=$(cat images/nginx-1.25/TAG) - cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --load -t gcr.io/k8s-staging-ingress-nginx/nginx-1.25:${TAG} . + cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --load -t registry.k8s.io/ingress-nginx/nginx-1.25:${TAG} . - name: Build images env: @@ -151,7 +152,7 @@ jobs: run: | echo "building images..." export TAGNGINX=$(cat images/nginx-1.25/TAG) - make BASE_IMAGE=gcr.io/k8s-staging-ingress-nginx/nginx-1.25:${TAGNGINX} clean-image build image image-chroot + make BASE_IMAGE=registry.k8s.io/ingress-nginx/nginx-1.25:${TAGNGINX} clean-image build image image-chroot make -C test/e2e-image image echo "creating images cache..." diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 93092d80b..d125586e4 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -167,29 +167,6 @@ jobs: run: | cd images/ && make NAME=kube-webhook-certgen test test-e2e - nginx: - runs-on: ubuntu-latest - needs: changes - if: | - (needs.changes.outputs.nginx == 'true') - steps: - - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: nginx-base-image - run: | - cd images/nginx/rootfs && docker build -t docker.io/nginx-test-workflow/nginx:${{ github.sha }} . - - name: Run Trivy on NGINX Image - uses: aquasecurity/trivy-action@master - with: - image-ref: 'docker.io/nginx-test-workflow/nginx:${{ github.sha }}' - format: 'sarif' - ignore-unfixed: true - output: 'trivy-results.sarif' - - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5 - with: - sarif_file: 'trivy-results.sarif' - opentelemetry: runs-on: ubuntu-latest env: diff --git a/GOLANG_VERSION b/GOLANG_VERSION index 6e83421e4..80a81c0e7 100644 --- a/GOLANG_VERSION +++ b/GOLANG_VERSION @@ -1 +1 @@ -1.21.6 \ No newline at end of file +1.22.0 \ No newline at end of file diff --git a/NGINX_BASE b/NGINX_BASE index 058a89bb1..4daa5c4d3 100644 --- a/NGINX_BASE +++ b/NGINX_BASE @@ -1 +1 @@ -registry.k8s.io/ingress-nginx/nginx:v20231208-4c39e6acc@sha256:03508408458d00ba4e219d2693ba2a039ba66d4151ab9b43794f61877e0abb73 \ No newline at end of file +registry.k8s.io/ingress-nginx/nginx-1.25:v0.0.5@sha256:cdafd6c9d36e23414ce41330a482f9136ce82fac46802809681f61cdcd5ad0bb diff --git a/TAG b/TAG deleted file mode 100644 index 57d503d1e..000000000 --- a/TAG +++ /dev/null @@ -1 +0,0 @@ -v1.9.5 From dc999d81da6d9258bf448874be5f1f0e2156ec94 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Wed, 28 Feb 2024 21:41:06 -0300 Subject: [PATCH 031/184] Release version v1.10.0 (#11039) --- README.md | 9 +-- changelog/controller-1.10.0.md | 68 +++++++++++++++++++ charts/ingress-nginx/Chart.yaml | 7 +- charts/ingress-nginx/README.md | 6 +- .../changelog/helm-chart-4.10.0.md | 9 +++ charts/ingress-nginx/values.yaml | 4 +- deploy/static/provider/aws/deploy.yaml | 49 ++++++------- .../aws/nlb-with-tls-termination/deploy.yaml | 49 ++++++------- deploy/static/provider/baremetal/deploy.yaml | 49 ++++++------- deploy/static/provider/cloud/deploy.yaml | 49 ++++++------- deploy/static/provider/do/deploy.yaml | 49 ++++++------- deploy/static/provider/exoscale/deploy.yaml | 49 ++++++------- deploy/static/provider/kind/deploy.yaml | 49 ++++++------- deploy/static/provider/oracle/deploy.yaml | 49 ++++++------- deploy/static/provider/scw/deploy.yaml | 49 ++++++------- docs/e2e-tests.md | 35 +++------- 16 files changed, 325 insertions(+), 254 deletions(-) create mode 100644 changelog/controller-1.10.0.md create mode 100644 charts/ingress-nginx/changelog/helm-chart-4.10.0.md diff --git a/README.md b/README.md index e955cd359..3e6cce5e0 100644 --- a/README.md +++ b/README.md @@ -38,16 +38,17 @@ the versions listed. Ingress-Nginx versions **may** work on older versions, but | Supported | Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version | Helm Chart Version | |:--:|-----------------------|------------------------------|----------------|---------------|------------------------------| +| 🔄 | **v1.10.0** | 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.0* | | 🔄 | **v1.9.6** | 1.29, 1.28, 1.27, 1.26, 1.25 | 3.19.0 | 1.21.6 | 4.9.1* | | 🔄 | **v1.9.5** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.9.0* | | 🔄 | **v1.9.4** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.3 | | 🔄 | **v1.9.3** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* | | 🔄 | **v1.9.1** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* | | 🔄 | **v1.9.0** | 1.28, 1.27, 1.26, 1.25 | 3.18.2 | 1.21.6 | 4.8.* | -| 🔄 | **v1.8.4** | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* | -| 🔄 | **v1.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.8.4** | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* | +| | **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.* | | | **v1.7.0** | 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* | | | v1.6.4 | 1.26, 1.25, 1.24, 1.23 | 3.17.0 | 1.21.6 | 4.5.* | diff --git a/changelog/controller-1.10.0.md b/changelog/controller-1.10.0.md new file mode 100644 index 000000000..e0a6c9a10 --- /dev/null +++ b/changelog/controller-1.10.0.md @@ -0,0 +1,68 @@ +# Changelog + +This release is the first using NGINX v1.25.0! + +## Breaking changes +* This version does not support chroot image, this will be fixed on a future minor patch release +* This version dropped Opentracing and zipkin modules, just Opentelemetry is supported +* This version dropped support for PodSecurityPolicy +* This version dropped support for GeoIP (legacy). Only GeoIP2 is supported + +### controller-v1.10.0 + +Images: + +* registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + +### All changes: + +* Start the release of v1.10.0 (#11038) +* bump nginx and Go, remove tag file and old CI jobs (#11037) +* Fix kubewebhook image tag (#11033) +* add missing backend-protocol annotation option (#9545) +* Update controller-prometheusrules.yaml (#8902) +* Stop reporting interrupted tests (#11027) +* test(gzip): reach ingress (#9541) +* fix datasource, $exported_namespace variable in grafana nginx dashboard (#9092) +* Properly support a TLS-wrapped OCSP responder (#10164) +* Fix print-e2e-suite (#9536) +* chore(deps): upgrade headers-more module to 0.37 (#10991) +* Update ingress-path-matching.md (#11008) +* Update ingress-path-matching.md (#11007) +* E2E Tests: Explicitly enable metrics. (#10962) +* Chart: Set `--enable-metrics` depending on `controller.metrics.enabled`. (#10959) +* Chart: Remove useless `default` from `_params.tpl`. (#10957) +* Fix golang makefile var name (#10932) +* Fixing image push (#10931) +* fix: live-docs script (#10928) +* docs: Add vouch-proxy OAuth example (#10929) +* Add OTEL build test and for NGINX v1.25 (#10889) +* docs: update annotations docs with missing session-cookie section (#10917) +* Release controller 1.9.6 and helm 4.9.1 (#10919) + +### Dependency updates: + +* Bump kubewebhook certgen (#11034) +* Bump go libraries (#11023) +* Bump modsecurity on nginx 1.25 (#11024) +* Bump grpc and reintroduce OTEL compilation (#11021) +* Bump github/codeql-action from 3.24.0 to 3.24.5 (#11017) +* Bump actions/dependency-review-action from 4.0.0 to 4.1.3 (#11016) +* Bump dorny/paths-filter from 3.0.0 to 3.0.1 (#10994) +* Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 (#10998) +* Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#10978) +* Bump actions/download-artifact from 4.1.1 to 4.1.2 (#10981) +* Bump aquasecurity/trivy-action from 0.16.1 to 0.17.0 (#10979) +* Bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 (#10980) +* Bump golang.org/x/crypto from 0.18.0 to 0.19.0 (#10976) +* Bump github/codeql-action from 3.23.2 to 3.24.0 (#10971) +* Bump github.com/opencontainers/runc from 1.1.11 to 1.1.12 (#10951) +* Bump google.golang.org/grpc from 1.60.1 to 1.61.0 (#10938) +* Bump actions/upload-artifact from 4.2.0 to 4.3.0 (#10937) +* Bump dorny/test-reporter from 1.7.0 to 1.8.0 (#10936) +* Bump github/codeql-action from 3.23.1 to 3.23.2 (#10935) +* Bump dorny/paths-filter from 2.11.1 to 3.0.0 (#10934) +* Bump alpine to 3.19.1 (#10930) +* Bump go to v1.21.6 and set a single source of truth (#10926) + +**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-v1.9.6...controller-v1.10.0 diff --git a/charts/ingress-nginx/Chart.yaml b/charts/ingress-nginx/Chart.yaml index df4f6fe63..1bd30b31d 100644 --- a/charts/ingress-nginx/Chart.yaml +++ b/charts/ingress-nginx/Chart.yaml @@ -1,10 +1,9 @@ annotations: artifacthub.io/changes: |- - - "update web hook cert gen to latest release v20231226-1a7112e06" - - "Update Ingress-Nginx version controller-v1.9.6" + - "Update Ingress-Nginx version controller-v1.10.0" artifacthub.io/prerelease: "false" apiVersion: v2 -appVersion: 1.9.6 +appVersion: 1.10.0 description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer home: https://github.com/kubernetes/ingress-nginx @@ -20,4 +19,4 @@ maintainers: name: ingress-nginx sources: - https://github.com/kubernetes/ingress-nginx -version: 4.9.1 +version: 4.10.0 diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 5c98763cf..8f1f3491d 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -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 -![Version: 4.9.1](https://img.shields.io/badge/Version-4.9.1-informational?style=flat-square) ![AppVersion: 1.9.6](https://img.shields.io/badge/AppVersion-1.9.6-informational?style=flat-square) +![Version: 4.10.0](https://img.shields.io/badge/Version-4.10.0-informational?style=flat-square) ![AppVersion: 1.10.0](https://img.shields.io/badge/AppVersion-1.10.0-informational?style=flat-square) To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources. @@ -317,7 +317,7 @@ 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 | `false` | | | controller.image.chroot | bool | `false` | | -| controller.image.digest | string | `"sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c"` | | +| controller.image.digest | string | `"sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c"` | | | controller.image.digestChroot | string | `"sha256:7eb46ff733429e0e46892903c7394aff149ac6d284d92b3946f3baf7ff26a096"` | | | controller.image.image | string | `"ingress-nginx/controller"` | | | controller.image.pullPolicy | string | `"IfNotPresent"` | | @@ -326,7 +326,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.image.runAsNonRoot | bool | `true` | | | controller.image.runAsUser | int | `101` | | | controller.image.seccompProfile.type | string | `"RuntimeDefault"` | | -| controller.image.tag | string | `"v1.9.6"` | | +| controller.image.tag | string | `"v1.10.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 | diff --git a/charts/ingress-nginx/changelog/helm-chart-4.10.0.md b/charts/ingress-nginx/changelog/helm-chart-4.10.0.md new file mode 100644 index 000000000..a1f1847ec --- /dev/null +++ b/charts/ingress-nginx/changelog/helm-chart-4.10.0.md @@ -0,0 +1,9 @@ +# Changelog + +This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org). + +### 4.10.0 + +* - "Update Ingress-Nginx version controller-v1.10.0" + +**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.9.1...helm-chart-4.10.0 diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 487b72f81..71c3240fb 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -26,8 +26,8 @@ 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.9.6" - digest: sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + tag: "v1.10.0" + digest: sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c digestChroot: sha256:7eb46ff733429e0e46892903c7394aff149ac6d284d92b3946f3baf7ff26a096 pullPolicy: IfNotPresent runAsNonRoot: true diff --git a/deploy/static/provider/aws/deploy.yaml b/deploy/static/provider/aws/deploy.yaml index f73e0fce0..0e8356305 100644 --- a/deploy/static/provider/aws/deploy.yaml +++ b/deploy/static/provider/aws/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -435,6 +435,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -446,7 +447,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -522,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -533,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -547,7 +548,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -573,7 +574,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -584,7 +585,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -600,7 +601,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -626,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -639,7 +640,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml b/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml index 7f6019fbb..5c12ba3b9 100644 --- a/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml +++ b/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -444,6 +444,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -455,7 +456,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -534,7 +535,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -545,7 +546,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -559,7 +560,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -585,7 +586,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -596,7 +597,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -612,7 +613,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -638,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -651,7 +652,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/baremetal/deploy.yaml b/deploy/static/provider/baremetal/deploy.yaml index af484aa73..b513fa97f 100644 --- a/deploy/static/provider/baremetal/deploy.yaml +++ b/deploy/static/provider/baremetal/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -429,6 +429,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -440,7 +441,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -516,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -527,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -541,7 +542,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -567,7 +568,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -578,7 +579,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -594,7 +595,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -620,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -633,7 +634,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/cloud/deploy.yaml b/deploy/static/provider/cloud/deploy.yaml index 8ac9dedaf..147d76d5e 100644 --- a/deploy/static/provider/cloud/deploy.yaml +++ b/deploy/static/provider/cloud/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -431,6 +431,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -442,7 +443,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -518,7 +519,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -529,7 +530,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -543,7 +544,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -569,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -580,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -596,7 +597,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -622,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -635,7 +636,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/do/deploy.yaml b/deploy/static/provider/do/deploy.yaml index 7a49f28d0..801b6d75c 100644 --- a/deploy/static/provider/do/deploy.yaml +++ b/deploy/static/provider/do/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -434,6 +434,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -445,7 +446,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -521,7 +522,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -532,7 +533,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -546,7 +547,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -572,7 +573,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -583,7 +584,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -599,7 +600,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -625,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -638,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/exoscale/deploy.yaml b/deploy/static/provider/exoscale/deploy.yaml index cf02501a4..79d945a53 100644 --- a/deploy/static/provider/exoscale/deploy.yaml +++ b/deploy/static/provider/exoscale/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -436,6 +436,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -447,7 +448,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -527,7 +528,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -538,7 +539,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -552,7 +553,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -578,7 +579,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -589,7 +590,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -605,7 +606,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -631,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -644,7 +645,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/kind/deploy.yaml b/deploy/static/provider/kind/deploy.yaml index d27f83d9d..4963253c1 100644 --- a/deploy/static/provider/kind/deploy.yaml +++ b/deploy/static/provider/kind/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -430,6 +430,7 @@ spec: - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key - --watch-ingress-without-class=true + - --enable-metrics=false - --publish-status-address=localhost env: - name: POD_NAME @@ -442,7 +443,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -528,7 +529,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -539,7 +540,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -553,7 +554,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -579,7 +580,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -590,7 +591,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -606,7 +607,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -632,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -645,7 +646,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/oracle/deploy.yaml b/deploy/static/provider/oracle/deploy.yaml index 8d2200925..080c206a5 100644 --- a/deploy/static/provider/oracle/deploy.yaml +++ b/deploy/static/provider/oracle/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -435,6 +435,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -446,7 +447,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -522,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -533,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -547,7 +548,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -573,7 +574,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -584,7 +585,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -600,7 +601,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -626,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -639,7 +640,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/scw/deploy.yaml b/deploy/static/provider/scw/deploy.yaml index 44d91e1af..d98955d80 100644 --- a/deploy/static/provider/scw/deploy.yaml +++ b/deploy/static/provider/scw/deploy.yaml @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.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.9.6 + app.kubernetes.io/version: 1.10.0 spec: containers: - args: @@ -434,6 +434,7 @@ spec: - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key + - --enable-metrics=false env: - name: POD_NAME valueFrom: @@ -445,7 +446,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c + image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -521,7 +522,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -532,7 +533,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-create spec: containers: @@ -546,7 +547,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: create securityContext: @@ -572,7 +573,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -583,7 +584,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission-patch spec: containers: @@ -599,7 +600,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231226-1a7112e06@sha256:25d6a5f11211cc5c3f9f2bf552b585374af287b4debf693cacbe2da47daa5084 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -625,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.9.6 + app.kubernetes.io/version: 1.10.0 name: nginx spec: controller: k8s.io/ingress-nginx @@ -638,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.9.6 + app.kubernetes.io/version: 1.10.0 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/docs/e2e-tests.md b/docs/e2e-tests.md index bbcdadfc6..b836fff6e 100644 --- a/docs/e2e-tests.md +++ b/docs/e2e-tests.md @@ -147,6 +147,7 @@ Do not try to edit it manually. - [should not allow - portless origin with wildcard origin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L520) - [should allow correct origins - missing subdomain + origin with wildcard origin and correct origin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L540) - [should allow - missing origins (should allow all origins)](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L576) +- [should allow correct origin but not others - cors allow origin annotations contain trailing comma](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/cors.go#L636) ### [custom-http-errors](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/customhttperrors.go#L34) - [configures Nginx correctly](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/customhttperrors.go#L41) ### [default-backend](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/default_backend.go#L29) @@ -155,6 +156,8 @@ Do not try to edit it manually. - [disable-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L35) - [disable-http-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L53) - [disable-stream-access-log set access_log off](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableaccesslog.go#L71) +### [disable-proxy-intercept-errors](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableproxyintercepterrors.go#L31) +- [configures Nginx correctly](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/disableproxyintercepterrors.go#L39) ### [backend-protocol - FastCGI](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L30) - [should use fastcgi_pass in the configuration file](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L37) - [should add fastcgi_index in the configuration file](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/annotations/fastcgi.go#L54) @@ -402,13 +405,13 @@ Do not try to edit it manually. - [should have worker_rlimit_nofile option and be independent on amount of worker processes](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/global_options.go#L37) ### [settings-global-rate-limit](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/globalratelimit.go#L30) - [generates correct NGINX configuration](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/globalratelimit.go#L38) -### [gzip](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L29) -- [should be disabled by default](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L32) -- [should be enabled with default settings](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L39) -- [should set gzip_comp_level to 4](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L56) -- [should set gzip_disable to msie6](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L67) -- [should set gzip_min_length to 100](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L78) -- [should set gzip_types to application/javascript](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L89) +### [gzip](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L30) +- [should be disabled by default](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L40) +- [should be enabled with default settings](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L56) +- [should set gzip_comp_level to 4](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L82) +- [should set gzip_disable to msie6](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L102) +- [should set gzip_min_length to 100](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L132) +- [should set gzip_types to text/html](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/gzip.go#L164) ### [hash size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L27) - [should set server_names_hash_bucket_size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L39) - [should set server_names_hash_max_size](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/hash-size.go#L47) @@ -478,26 +481,8 @@ Do not try to edit it manually. - [should include opentelemetry_trust_incoming_spans on directive when enabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L76) - [should not exists opentelemetry_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L91) - [should exists opentelemetry_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentelemetry.go#L106) -### [Configure OpenTracing](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L52) -- [should not exists opentracing directive](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L62) -- [should exists opentracing directive when is enabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L75) -- [should include opentracing_trust_incoming_span off directive when disabled](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L89) -- [should not exists opentracing_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L104) -- [should exists opentracing_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L119) -- [should not exists opentracing_location_operation_name directive when is empty](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L134) -- [should exists opentracing_location_operation_name directive when is configured](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L149) -- [should enable opentracing using zipkin](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L164) -- [should enable opentracing using jaeger](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L176) -- [should enable opentracing using jaeger with sampler host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L188) -- [should propagate the w3c header when configured with jaeger](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L201) -- [should enable opentracing using jaeger with an HTTP endpoint](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L232) -- [should enable opentracing using datadog](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/opentracing.go#L245) ### [plugins](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/plugins.go#L28) - [should exist a x-hello-world header](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/plugins.go#L35) -### [[Security] Pod Security Policies](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy.go#L41) -- [should be running with a Pod Security Policy](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy.go#L44) -### [[Security] Pod Security Policies with volumes](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy_volumes.go#L37) -- [should be running with a Pod Security Policy](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/pod_security_policy_volumes.go#L40) ### [proxy-connect-timeout](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L29) - [should set valid proxy timeouts using configmap values](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L37) - [should not set invalid proxy timeouts using configmap values](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/settings/proxy_connect_timeout.go#L53) From 41879b14f1ae2d41e3284488b3cc1132e31c8282 Mon Sep 17 00:00:00 2001 From: longwuyuan Date: Fri, 1 Mar 2024 20:56:44 +0530 Subject: [PATCH 032/184] set deploy url to v1-10-0 in docs --- docs/deploy/index.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/deploy/index.md b/docs/deploy/index.md index ae28c2502..4e6b71235 100644 --- a/docs/deploy/index.md +++ b/docs/deploy/index.md @@ -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.2/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/aws/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template +1. Download the [deploy.yaml](https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template ```console - wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml + wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/do/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/scw/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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.2/deploy/static/provider/baremetal/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/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), From 683105ebdcbd4b5c2029bf5eb8bfecf52d4c0242 Mon Sep 17 00:00:00 2001 From: Bartosz Fenski Date: Sun, 3 Mar 2024 07:54:36 +0100 Subject: [PATCH 033/184] quotes around numbers fort ports definitions (#11052) --- charts/ingress-nginx/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 71c3240fb..553c5e892 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -1077,13 +1077,13 @@ imagePullSecrets: [] ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md ## tcp: {} -# 8080: "default/example-tcp-svc:9000" +# "8080": "default/example-tcp-svc:9000" # -- UDP service key-value pairs ## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md ## udp: {} -# 53: "kube-system/kube-dns:53" +# "53": "kube-system/kube-dns:53" # -- Prefix for TCP and UDP ports names in ingress controller service ## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration From 2a9dc340e7e5708a78e69b359b1927155a6351f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 03:21:27 -0800 Subject: [PATCH 034/184] Bump dorny/paths-filter from 3.0.1 to 3.0.2 (#11061) Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/dorny/paths-filter/releases) - [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md) - [Commits](https://github.com/dorny/paths-filter/compare/ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a...de90cc6fb38fc0963ad72b210f1f284cd68cea36) --- updated-dependencies: - dependency-name: dorny/paths-filter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/docs.yaml | 2 +- .github/workflows/helm.yaml | 2 +- .github/workflows/images.yaml | 2 +- .github/workflows/zz-tmpl-images.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 32915f4c2..9e81ddfd5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -49,7 +49,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 695ed2124..d37c1f3bf 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -25,7 +25,7 @@ jobs: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 09d70fb7a..1a7eb4334 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -37,7 +37,7 @@ jobs: run: | ./build/run-in-docker.sh ./hack/verify-chart-lint.sh - - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index d125586e4..d144f2286 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -42,7 +42,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index fd56e986d..45f5d9184 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -32,7 +32,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: token: ${{ secrets.GITHUB_TOKEN }} From 6ab637d26d7e36631af8fcfc81f0fcbd59cdbf8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 03:24:14 -0800 Subject: [PATCH 035/184] Bump aquasecurity/trivy-action from 0.17.0 to 0.18.0 (#11058) Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.17.0 to 0.18.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/84384bd6e777ef152729993b8145ea352e9dd3ef...062f2592684a31eb3aa050cc61e7ca1451cecd3d) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/vulnerability-scans.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 99e9fdfc7..e94eeee06 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -60,7 +60,7 @@ jobs: - name: Scan image with AquaSec/Trivy id: scan - uses: aquasecurity/trivy-action@84384bd6e777ef152729993b8145ea352e9dd3ef # v0.17.0 + uses: aquasecurity/trivy-action@062f2592684a31eb3aa050cc61e7ca1451cecd3d # v0.18.0 with: image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }} format: 'sarif' From 1e79313bf50d0b4517c8712668af2a259a03261f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 03:26:51 -0800 Subject: [PATCH 036/184] Bump github/codeql-action from 3.24.5 to 3.24.6 (#11060) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.5 to 3.24.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/47b3d888fe66b639e431abf22ebca059152f1eea...8a470fddafa5cbb6266ee11b37ef4d8aae19c571) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 387849a48..79996ca2f 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5 + uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index e94eeee06..5d37ecbf8 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@47b3d888fe66b639e431abf22ebca059152f1eea # v3.24.5 + uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository From b3b22dbb1d3160455d3eba4eb26b499a541166bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 06:11:33 -0800 Subject: [PATCH 037/184] Bump github.com/prometheus/common from 0.48.0 to 0.49.0 (#11056) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.48.0 to 0.49.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.48.0...v0.49.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 1aed07bba..4ecb15ceb 100644 --- a/go.mod +++ b/go.mod @@ -17,9 +17,9 @@ require ( github.com/onsi/ginkgo/v2 v2.15.0 github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 - github.com/prometheus/client_golang v1.18.0 + github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.48.0 + github.com/prometheus/common v0.49.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index 88d1a1a44..0fdb83713 100644 --- a/go.sum +++ b/go.sum @@ -247,6 +247,7 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= @@ -310,8 +311,8 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -322,8 +323,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.49.0 h1:ToNTdK4zSnPVJmh698mGFkDor9wBI/iGaJy5dbH1EgI= +github.com/prometheus/common v0.49.0/go.mod h1:Kxm+EULxRbUkjGU6WFsQqo3ORzB4tyKvlWFOE9mB2sE= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 513665443af0447e320bad5cd2136ce58e186f92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 06:16:44 -0800 Subject: [PATCH 038/184] Bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#11057) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/f95db51fddba0c2d1ec667646a06c2ce06100226...0d103c3126aa41d772a8362f6aa67afac040f80c) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/images.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9e81ddfd5..0bf99a413 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -124,7 +124,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 + uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c # v3.1.0 with: version: latest diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index d144f2286..e46c1b4bd 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -201,7 +201,7 @@ jobs: uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 + uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c # v3.1.0 with: version: latest platforms: ${{ env.PLATFORMS }} From f3f4f3e9d3c725136094a56217a3639fcf480df9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 07:13:08 -0800 Subject: [PATCH 039/184] Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#11055) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 4ecb15ceb..5302136d3 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/common v0.49.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.20.0 diff --git a/go.sum b/go.sum index 0fdb83713..dd490e7ec 100644 --- a/go.sum +++ b/go.sum @@ -352,8 +352,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.1.3/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -361,8 +361,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/urfave/cli v1.17.1-0.20160602030128-01a33823596e/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= From 272712adfb44b31b3928a2b3270dd1694d1b3418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 11:37:52 -0800 Subject: [PATCH 040/184] Bump actions/download-artifact from 4.1.2 to 4.1.4 (#11059) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.2 to 4.1.4. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/eaceaf801fd36c7dee90939fad912460b18a1ffe...c850b930e6ba138125429b7e5c93fc707a7f8427) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/zz-tmpl-k8s-e2e.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0bf99a413..edb7c1e5d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -200,7 +200,7 @@ jobs: helm unittest charts/ingress-nginx -d - name: cache - uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2 + uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 with: name: docker.tar.gz diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index 20fd1053d..3a8916049 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: cache - uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4.1.2 + uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 with: name: docker.tar.gz From 6c4f2ea03a30bf5bcdb80fffb5509be1606a9590 Mon Sep 17 00:00:00 2001 From: James Strong Date: Mon, 4 Mar 2024 14:45:49 -0500 Subject: [PATCH 041/184] Update README.md (#11065) remove older version, left latest for release train. --- README.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3e6cce5e0..80725aa82 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ingress-nginx is an Ingress controller for Kubernetes using [NGINX](https://www.nginx.org/) as a reverse proxy and load balancer. -[Learn more about Ingress on the main Kubernetes documentation site](https://kubernetes.io/docs/concepts/services-networking/ingress/). +[Learn more about Ingress on the Kubernetes documentation site](https://kubernetes.io/docs/concepts/services-networking/ingress/). ## Get started @@ -28,7 +28,7 @@ If you encounter issues, review the [troubleshooting docs](docs/troubleshooting. See [the list of releases](https://github.com/kubernetes/ingress-nginx/releases) for all changes. For detailed changes for each release, please check the [changelog-$version.md](./changelog) file for the release version. -For detailed changes on the `ingress-nginx` helm chart, please check the changelog folder for a specific version +For detailed changes on the `ingress-nginx` helm chart, please check the changelog folder for a specific version. [CHANGELOG-$current-version.md](./charts/ingress-nginx/changelog) file. ### Supported Versions table @@ -45,17 +45,12 @@ the versions listed. Ingress-Nginx versions **may** work on older versions, but | 🔄 | **v1.9.3** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* | | 🔄 | **v1.9.1** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* | | 🔄 | **v1.9.0** | 1.28, 1.27, 1.26, 1.25 | 3.18.2 | 1.21.6 | 4.8.* | -| | **v1.8.4** | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* | -| | **v1.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.* | -| | **v1.7.0** | 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* | +| | v1.8.4 | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* | +| | v1.7.1 | 1.27, 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* | | | v1.6.4 | 1.26, 1.25, 1.24, 1.23 | 3.17.0 | 1.21.6 | 4.5.* | | | v1.5.1 | 1.25, 1.24, 1.23 | 3.16.2 | 1.21.6 | 4.4.* | | | v1.4.0 | 1.25, 1.24, 1.23, 1.22 | 3.16.2 | 1.19.10† | 4.3.0 | | | v1.3.1 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.2 | 1.19.10† | 4.2.5 | -| | v1.3.0 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.0 | 1.19.10† | 4.2.3 | See [this article](https://kubernetes.io/blog/2021/07/26/update-with-ingress-nginx/) if you want upgrade to the stable Ingress API. From a302cc5ccaa62ee6c47a965240dbba98879ebf96 Mon Sep 17 00:00:00 2001 From: Grinish Date: Tue, 5 Mar 2024 22:49:14 -0700 Subject: [PATCH 042/184] docs: update the 404 link to FAQ (#11069) --- docs/examples/rewrite/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples/rewrite/README.md b/docs/examples/rewrite/README.md index aadcc1e4b..16889e0bc 100644 --- a/docs/examples/rewrite/README.md +++ b/docs/examples/rewrite/README.md @@ -31,7 +31,7 @@ Rewriting can be controlled using the following annotations: [Captured groups](https://www.regular-expressions.info/refcapture.html) are saved in numbered placeholders, chronologically, in the form `$1`, `$2` ... `$n`. These placeholders can be used as parameters in the `rewrite-target` annotation. !!! note - Please see the [FAQ](../faq.md#validation-of-path) for Validation Of __`path`__ + Please see the [FAQ](../../faq.md#validation-of-path) for Validation Of __`path`__ Create an Ingress rule with a rewrite annotation: From 9b63559cbb492c4ace8641b81c6adc6fc54aa9ce Mon Sep 17 00:00:00 2001 From: Matheus Fidelis Date: Wed, 6 Mar 2024 10:59:22 -0300 Subject: [PATCH 043/184] feature(leader_election): flag to disable leader election feature on controller (#11064) --- charts/ingress-nginx/README.md | 1 + charts/ingress-nginx/templates/_params.tpl | 3 + charts/ingress-nginx/values.yaml | 2 + docs/user-guide/cli-arguments.md | 1 + internal/ingress/controller/controller.go | 2 + internal/ingress/controller/nginx.go | 38 ++++---- pkg/flags/flags.go | 4 + pkg/flags/flags_test.go | 34 +++++++ .../disableleaderelection/values.yaml | 34 +++++++ .../disableleaderelection/disable_leader.go | 93 +++++++++++++++++++ test/e2e/e2e.go | 1 + 11 files changed, 195 insertions(+), 18 deletions(-) create mode 100644 test/e2e-image/namespace-overlays/disableleaderelection/values.yaml create mode 100644 test/e2e/disableleaderelection/disable_leader.go diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 8f1f3491d..38fa071c5 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -293,6 +293,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.containerSecurityContext | object | `{}` | Security context for controller containers | | controller.customTemplate.configMapKey | string | `""` | | | controller.customTemplate.configMapName | string | `""` | | +| controller.disableLeaderElection | bool | `false` | This configuration disable Nginx Controller Leader Election | | controller.dnsConfig | object | `{}` | Optionally customize the pod dnsConfig. | | controller.dnsPolicy | string | `"ClusterFirst"` | Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'. By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller to keep resolving names inside the k8s network, use ClusterFirstWithHostNet. | | controller.electionID | string | `""` | Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader' | diff --git a/charts/ingress-nginx/templates/_params.tpl b/charts/ingress-nginx/templates/_params.tpl index 0ddef0af1..b2b54db19 100644 --- a/charts/ingress-nginx/templates/_params.tpl +++ b/charts/ingress-nginx/templates/_params.tpl @@ -60,6 +60,9 @@ {{- if .Values.controller.enableTopologyAwareRouting }} - --enable-topology-aware-routing=true {{- end }} +{{- if .Values.controller.disableLeaderElection }} +- --disable-leader-election=true +{{- end }} {{- range $key, $value := .Values.controller.extraArgs }} {{- /* Accept keys without values or with false as value */}} {{- if eq ($value | quote | len) 2 }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 553c5e892..3ec2e4c33 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -83,6 +83,8 @@ controller: # -- This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" # Defaults to false enableTopologyAwareRouting: false + # -- This configuration disable Nginx Controller Leader Election + disableLeaderElection: 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. diff --git a/docs/user-guide/cli-arguments.md b/docs/user-guide/cli-arguments.md index 07a17a271..275c753ec 100644 --- a/docs/user-guide/cli-arguments.md +++ b/docs/user-guide/cli-arguments.md @@ -25,6 +25,7 @@ They are set in the container spec of the `ingress-nginx-controller` Deployment | `--enable-metrics` | Enables the collection of NGINX metrics. (default true) | | `--enable-ssl-chain-completion` | Autocomplete SSL certificate chains with missing intermediate CA certificates. Certificates uploaded to Kubernetes must have the "Authority Information Access" X.509 v3 extension for this to succeed. (default false)| | `--enable-ssl-passthrough` | Enable SSL Passthrough. (default false) | +| `--disable-leader-election` | Disable Leader Election on Nginx Controller. (default false) | | `--enable-topology-aware-routing` | Enable topology aware routing feature, needs service object annotation service.kubernetes.io/topology-mode sets to auto. (default false) | | `--exclude-socket-metrics` | Set of socket request metrics to exclude which won't be exported nor being calculated. The possible socket request metrics to exclude are documented in the monitoring guide e.g. 'nginx_ingress_controller_request_duration_seconds,nginx_ingress_controller_response_size'| | `--health-check-path` | URL path of the health check endpoint. Configured inside the NGINX status server. All requests received on the port defined by the healthz-port parameter are forwarded internally to this path. (default "/healthz") | diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index cb8d3712c..495fead15 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -100,6 +100,8 @@ type Configuration struct { EnableSSLPassthrough bool + DisableLeaderElection bool + EnableProfiling bool EnableMetrics bool diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 578d5b4e8..10aafc571 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -271,26 +271,28 @@ func (n *NGINXController) Start() { // TODO: For now, as the the IngressClass logics has changed, is up to the // cluster admin to create different Leader Election IDs. // Should revisit this in a future - electionID := n.cfg.ElectionID - setupLeaderElection(&leaderElectionConfig{ - Client: n.cfg.Client, - ElectionID: electionID, - OnStartedLeading: func(stopCh chan struct{}) { - if n.syncStatus != nil { - go n.syncStatus.Run(stopCh) - } + if !n.cfg.DisableLeaderElection { + electionID := n.cfg.ElectionID + setupLeaderElection(&leaderElectionConfig{ + Client: n.cfg.Client, + ElectionID: electionID, + OnStartedLeading: func(stopCh chan struct{}) { + if n.syncStatus != nil { + go n.syncStatus.Run(stopCh) + } - n.metricCollector.OnStartedLeading(electionID) - // manually update SSL expiration metrics - // (to not wait for a reload) - n.metricCollector.SetSSLExpireTime(n.runningConfig.Servers) - n.metricCollector.SetSSLInfo(n.runningConfig.Servers) - }, - OnStoppedLeading: func() { - n.metricCollector.OnStoppedLeading(electionID) - }, - }) + n.metricCollector.OnStartedLeading(electionID) + // manually update SSL expiration metrics + // (to not wait for a reload) + n.metricCollector.SetSSLExpireTime(n.runningConfig.Servers) + n.metricCollector.SetSSLInfo(n.runningConfig.Servers) + }, + OnStoppedLeading: func() { + n.metricCollector.OnStoppedLeading(electionID) + }, + }) + } cmd := n.command.ExecCommand() diff --git a/pkg/flags/flags.go b/pkg/flags/flags.go index d3bc4ee86..d7157fa79 100644 --- a/pkg/flags/flags.go +++ b/pkg/flags/flags.go @@ -146,6 +146,9 @@ Requires the update-status parameter.`) enableSSLPassthrough = flags.Bool("enable-ssl-passthrough", false, `Enable SSL Passthrough.`) + disableLeaderElection = flags.Bool("disable-leader-election", false, + `Disable Leader Election on NGINX Controller.`) + disableServiceExternalName = flags.Bool("disable-svc-external-name", false, `Disable support for Services of type ExternalName.`) @@ -333,6 +336,7 @@ https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-g MonitorMaxBatchSize: *monitorMaxBatchSize, DisableServiceExternalName: *disableServiceExternalName, EnableSSLPassthrough: *enableSSLPassthrough, + DisableLeaderElection: *disableLeaderElection, ResyncPeriod: *resyncPeriod, DefaultService: *defaultSvc, Namespace: *watchNamespace, diff --git a/pkg/flags/flags_test.go b/pkg/flags/flags_test.go index bffe2b16d..54b35dbca 100644 --- a/pkg/flags/flags_test.go +++ b/pkg/flags/flags_test.go @@ -109,3 +109,37 @@ func TestMaxmindRetryDownload(t *testing.T) { t.Fatalf("Expected an error parsing flags but none returned") } } + +func TestDisableLeaderElectionFlag(t *testing.T) { + ResetForTesting(func() { t.Fatal("Parsing failed") }) + + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"cmd", "--disable-leader-election", "--http-port", "80", "--https-port", "443"} + + _, conf, err := ParseFlags() + if err != nil { + t.Fatalf("Unexpected error parsing default flags: %v", err) + } + + if !conf.DisableLeaderElection { + t.Fatalf("Expected --disable-leader-election and conf.DisableLeaderElection as true, but found: %v", conf.DisableLeaderElection) + } +} + +func TestIfLeaderElectionDisabledFlagIsFalse(t *testing.T) { + ResetForTesting(func() { t.Fatal("Parsing failed") }) + + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"cmd", "--http-port", "80", "--https-port", "443"} + + _, conf, err := ParseFlags() + if err != nil { + t.Fatalf("Unexpected error parsing default flags: %v", err) + } + + if conf.DisableLeaderElection { + t.Fatalf("Expected --disable-leader-election and conf.DisableLeaderElection as false, but found: %v", conf.DisableLeaderElection) + } +} diff --git a/test/e2e-image/namespace-overlays/disableleaderelection/values.yaml b/test/e2e-image/namespace-overlays/disableleaderelection/values.yaml new file mode 100644 index 000000000..f312a9fb4 --- /dev/null +++ b/test/e2e-image/namespace-overlays/disableleaderelection/values.yaml @@ -0,0 +1,34 @@ +# TODO: remove the need to use fullnameOverride +fullnameOverride: nginx-ingress +controller: + image: + repository: ingress-controller/controller + chroot: true + tag: 1.0.0-dev + digest: + digestChroot: + scope: + # Necessary to allow the ingress controller to get the topology information from the nodes + enabled: false + config: + worker-processes: "1" + readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 1 + livenessProbe: + initialDelaySeconds: 3 + periodSeconds: 1 + service: + type: NodePort + extraArgs: + # e2e tests do not require information about ingress status + update-status: "false" + terminationGracePeriodSeconds: 1 + admissionWebhooks: + enabled: false + + disableLeaderElection: true + +rbac: + create: true + scope: false diff --git a/test/e2e/disableleaderelection/disable_leader.go b/test/e2e/disableleaderelection/disable_leader.go new file mode 100644 index 000000000..fd7369dfb --- /dev/null +++ b/test/e2e/disableleaderelection/disable_leader.go @@ -0,0 +1,93 @@ +/* +Copyright 2024 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 disableleaderelection + +import ( + "net/http" + "strings" + + "github.com/onsi/ginkgo/v2" + + "k8s.io/ingress-nginx/test/e2e/framework" +) + +var _ = framework.IngressNginxDescribe("[Disable Leader] Routing works when leader election was disabled", func() { + f := framework.NewDefaultFramework("disableleaderelection") + + ginkgo.BeforeEach(func() { + f.NewEchoDeployment() + }) + + ginkgo.It("should create multiple ingress routings rules when leader election has disabled", func() { + host1 := "leader.election.disabled.com" + host2 := "leader.election.disabled2.com" + + ing1 := framework.NewSingleIngress(host1, "/foo", host1, f.Namespace, framework.EchoService, 80, nil) + f.EnsureIngress(ing1) + + ing2 := framework.NewSingleIngress(host2, "/ping", host2, f.Namespace, framework.EchoService, 80, nil) + f.EnsureIngress(ing2) + + f.WaitForNginxServer(host1, + func(server string) bool { + return strings.Contains(server, host1) && + strings.Contains(server, "location /foo") + }) + + f.WaitForNginxServer(host2, + func(server string) bool { + return strings.Contains(server, host2) && + strings.Contains(server, "location /ping") + }) + + f.HTTPTestClient(). + GET("/foo"). + WithHeader("Host", host1). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/bar"). + WithHeader("Host", host1). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/foo"). + WithHeader("Host", host2). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/ping"). + WithHeader("Host", host2). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/pong"). + WithHeader("Host", host2). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/ping"). + WithHeader("Host", host1). + Expect(). + Status(http.StatusNotFound) + }) +}) diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 25d714f88..9abfe7c2c 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -34,6 +34,7 @@ import ( _ "k8s.io/ingress-nginx/test/e2e/annotations/modsecurity" _ "k8s.io/ingress-nginx/test/e2e/dbg" _ "k8s.io/ingress-nginx/test/e2e/defaultbackend" + _ "k8s.io/ingress-nginx/test/e2e/disableleaderelection" _ "k8s.io/ingress-nginx/test/e2e/endpointslices" _ "k8s.io/ingress-nginx/test/e2e/gracefulshutdown" _ "k8s.io/ingress-nginx/test/e2e/ingress" From 0e11470ef335d58ddbe02020d6473654e62c5d5b Mon Sep 17 00:00:00 2001 From: James Strong Date: Wed, 6 Mar 2024 09:53:45 -0500 Subject: [PATCH 044/184] bump golang (#11070) Signed-off-by: James Strong --- GOLANG_VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOLANG_VERSION b/GOLANG_VERSION index 80a81c0e7..24b38a959 100644 --- a/GOLANG_VERSION +++ b/GOLANG_VERSION @@ -1 +1 @@ -1.22.0 \ No newline at end of file +1.22.1 \ No newline at end of file From 12fbe9b16313bf54b97b55af2dd06f29db467563 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Thu, 7 Mar 2024 11:39:53 +0100 Subject: [PATCH 045/184] golangci-lint update, ci cleanup, group dependabot updates (#11071) * bump golangci-lint to v1.56.x Signed-off-by: cpanato * cleanup empty lines Signed-off-by: cpanato * group dependabot updates Signed-off-by: cpanato * run on job changes as well Signed-off-by: cpanato * remove deprecated checks Signed-off-by: cpanato * fix lints and format Signed-off-by: cpanato --------- Signed-off-by: cpanato --- .github/actions/mkdocs/Dockerfile | 2 +- .github/dependabot.yml | 14 ++++++++++++ .github/workflows/ci.yaml | 12 +++++----- .github/workflows/golangci-lint.yml | 11 +++++----- .github/workflows/images.yaml | 5 +---- .github/workflows/plugin.yaml | 2 +- .golangci.yml | 2 -- cmd/dbg/main.go | 12 +++++----- cmd/nginx/main.go | 5 ++--- cmd/plugin/commands/backends/backends.go | 2 +- cmd/plugin/commands/certs/certs.go | 2 +- cmd/plugin/commands/conf/conf.go | 2 +- cmd/plugin/commands/exec/exec.go | 2 +- cmd/plugin/commands/general/general.go | 2 +- cmd/plugin/commands/info/info.go | 2 +- cmd/plugin/commands/ingresses/ingresses.go | 10 ++++----- cmd/plugin/commands/lint/main.go | 4 ++-- cmd/plugin/commands/logs/logs.go | 2 +- cmd/plugin/commands/ssh/ssh.go | 2 +- images/opentelemetry/rootfs/init_module.go | 1 - internal/ingress/annotations/authreq/main.go | 4 ++-- internal/ingress/annotations/canary/main.go | 4 ++-- .../annotations/parser/validators_test.go | 2 +- internal/ingress/controller/checker_test.go | 2 +- .../ingress/controller/controller_test.go | 20 ++++++++--------- internal/ingress/controller/location.go | 2 +- internal/ingress/controller/nginx.go | 1 - internal/ingress/controller/nginx_test.go | 2 +- internal/ingress/controller/status.go | 2 +- internal/ingress/controller/store/store.go | 2 +- .../ingress/controller/template/template.go | 8 +++---- .../metric/collectors/admission_test.go | 2 +- .../metric/collectors/controller_test.go | 2 +- internal/ingress/metric/collectors/socket.go | 2 +- .../ingress/metric/collectors/socket_test.go | 3 +-- .../ingress/metric/collectors/testutils.go | 2 +- internal/net/ssl/ssl.go | 1 - internal/net/ssl/ssl_test.go | 2 +- internal/nginx/maxmind.go | 2 +- magefiles/steps/release.go | 1 - magefiles/utils/e2edocs.go | 22 +++++++------------ test/e2e/framework/exec.go | 2 +- test/e2e/framework/framework.go | 6 ++--- test/e2e/framework/httpexpect/request.go | 2 +- test/e2e/tcpudp/tcp.go | 2 +- 45 files changed, 96 insertions(+), 100 deletions(-) diff --git a/.github/actions/mkdocs/Dockerfile b/.github/actions/mkdocs/Dockerfile index 378128978..f00584d32 100644 --- a/.github/actions/mkdocs/Dockerfile +++ b/.github/actions/mkdocs/Dockerfile @@ -1,4 +1,4 @@ -FROM squidfunk/mkdocs-material:9.4.5 +FROM squidfunk/mkdocs-material:9.4.5 COPY action.sh /action.sh diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5ad21ca95..69d1ba161 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,10 @@ updates: - "area/dependency" - "release-note-none" - "ok-to-test" + groups: + all: + update-types: + - "patch" - package-ecosystem: "github-actions" directory: "/" schedule: @@ -17,6 +21,11 @@ updates: - "area/dependency" - "release-note-none" - "ok-to-test" + groups: + all: + update-types: + - "minor" + - "patch" - package-ecosystem: "docker" directory: "/images" schedule: @@ -25,3 +34,8 @@ updates: - "area/dependency" - "release-note-none" - "ok-to-test" + groups: + actions: + update-types: + - "minor" + - "patch" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index edb7c1e5d..266565578 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -78,10 +78,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - + - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV - + - name: Set up Go id: go uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 @@ -100,13 +100,13 @@ jobs: golangversion: ${{ steps.golangversion.outputs.version }} if: | (needs.changes.outputs.go == 'true') || (needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true') - + env: PLATFORMS: linux/amd64 steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - + - name: Get go version id: golangversion run: | @@ -136,14 +136,14 @@ jobs: curl -LO https://dl.k8s.io/release/v1.27.3/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl - + - name: Build NGINX Base image if: | needs.changes.outputs.baseimage == 'true' run: | export TAG=$(cat images/nginx-1.25/TAG) cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --load -t registry.k8s.io/ingress-nginx/nginx-1.25:${TAG} . - + - name: Build images env: TAG: 1.0.0-dev diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index f6929e73c..b5ad3c93c 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -2,10 +2,9 @@ name: golangci-lint on: pull_request: - branches: - - "*" paths: - '**/*.go' + - '.github/workflows/golangci-lint.yml' permissions: contents: read @@ -17,18 +16,18 @@ jobs: steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - + - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV - + - name: Set up Go id: go uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: go-version: ${{ env.GOLANG_VERSION }} check-latest: true - + - name: golangci-lint uses: golangci/golangci-lint-action@3cfe3a4abbb849e10058ce4af15d205b6da42804 # v4.0.0 with: - version: v1.55.2 + version: v1.56 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index e46c1b4bd..5effdee82 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -69,7 +69,7 @@ jobs: - 'images/opentelemetry/**' nginx125: - 'images/nginx-1.25/TAG' - + #### TODO: Make the below jobs 'less dumb' and use the job name as parameter (the github.job context does not work here) cfssl: needs: changes @@ -89,7 +89,6 @@ jobs: name: custom-error-pages secrets: inherit - e2e-test-echo: needs: changes if: | @@ -214,5 +213,3 @@ jobs: run: | export TAG=$(cat images/nginx-1.25/TAG) cd images/nginx-1.25/rootfs && docker buildx build --platform=${{ env.PLATFORMS }} --push -t ingressnginx/nginx-1.25:${TAG} . - - diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index fe99b2444..6f4804d6f 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -33,7 +33,7 @@ jobs: args: release --snapshot --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - + - name: Run GoReleaser if: ${{ startsWith(github.ref, 'refs/tags/') }} uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0 diff --git a/.golangci.yml b/.golangci.yml index 5da8f0399..0cf49e6af 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -200,9 +200,7 @@ linters-settings: - stringConcatSimplify - stringsCompare - switchTrue - - timeCmpSimplify - timeExprSimplify - - todoCommentWithoutDetail - tooManyResultsChecker - typeAssertChain - typeDefFirst diff --git a/cmd/dbg/main.go b/cmd/dbg/main.go index b63bcf5fe..ab68001c9 100644 --- a/cmd/dbg/main.go +++ b/cmd/dbg/main.go @@ -47,7 +47,7 @@ func main() { backendsAllCmd := &cobra.Command{ Use: "all", Short: "Output the all dynamic backend information as a JSON array", - Run: func(cmd *cobra.Command, args []string) { + Run: func(_ *cobra.Command, _ []string) { backendsAll() }, } @@ -56,7 +56,7 @@ func main() { backendsListCmd := &cobra.Command{ Use: "list", Short: "Output a newline-separated list of the backend names", - Run: func(cmd *cobra.Command, args []string) { + Run: func(_ *cobra.Command, _ []string) { backendsList() }, } @@ -66,7 +66,7 @@ func main() { Use: "get [backend name]", Short: "Output the backend information only for the backend that has this name", Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { + Run: func(_ *cobra.Command, args []string) { backendsGet(args[0]) }, } @@ -81,7 +81,7 @@ func main() { Use: "get [hostname]", Short: "Get the dynamically-loaded certificate information for the given hostname", Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, args []string) error { certGet(args[0]) return nil }, @@ -93,7 +93,7 @@ func main() { generalCmd := &cobra.Command{ Use: "general", Short: "Output the general dynamic lua state", - Run: func(cmd *cobra.Command, args []string) { + Run: func(_ *cobra.Command, _ []string) { general() }, } @@ -102,7 +102,7 @@ func main() { confCmd := &cobra.Command{ Use: "conf", Short: "Dump the contents of /etc/nginx/nginx.conf", - Run: func(cmd *cobra.Command, args []string) { + Run: func(_ *cobra.Command, _ []string) { readNginxConf() }, } diff --git a/cmd/nginx/main.go b/cmd/nginx/main.go index 1d30091ef..5ab54aa93 100644 --- a/cmd/nginx/main.go +++ b/cmd/nginx/main.go @@ -74,7 +74,7 @@ func main() { handleFatalInitError(err) } - if len(conf.DefaultService) > 0 { + if conf.DefaultService != "" { err := checkService(conf.DefaultService, kubeClient) if err != nil { klog.Fatal(err) @@ -83,7 +83,7 @@ func main() { klog.InfoS("Valid default backend", "service", conf.DefaultService) } - if len(conf.PublishService) > 0 { + if conf.PublishService != "" { err := checkService(conf.PublishService, kubeClient) if err != nil { klog.Fatal(err) @@ -235,7 +235,6 @@ func createApiserverClient(apiserverHost, rootCAFile, kubeConfig string) (*kuber retries++ return false, nil }) - // err is returned in case of timeout in the exponential backoff (ErrWaitTimeout) if err != nil { return nil, lastErr diff --git a/cmd/plugin/commands/backends/backends.go b/cmd/plugin/commands/backends/backends.go index ff44fd9c2..e7bd42147 100644 --- a/cmd/plugin/commands/backends/backends.go +++ b/cmd/plugin/commands/backends/backends.go @@ -34,7 +34,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "backends", Short: "Inspect the dynamic backend information of an ingress-nginx instance", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, _ []string) error { backend, err := cmd.Flags().GetString("backend") if err != nil { return err diff --git a/cmd/plugin/commands/certs/certs.go b/cmd/plugin/commands/certs/certs.go index ee27cf1b1..4a7fee1cf 100644 --- a/cmd/plugin/commands/certs/certs.go +++ b/cmd/plugin/commands/certs/certs.go @@ -35,7 +35,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "certs", Short: "Output the certificate data stored in an ingress-nginx pod", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, _ []string) error { host, err := cmd.Flags().GetString("host") if err != nil { return err diff --git a/cmd/plugin/commands/conf/conf.go b/cmd/plugin/commands/conf/conf.go index 090fb40bb..5821b11f1 100644 --- a/cmd/plugin/commands/conf/conf.go +++ b/cmd/plugin/commands/conf/conf.go @@ -36,7 +36,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "conf", Short: "Inspect the generated nginx.conf", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, _ []string) error { host, err := cmd.Flags().GetString("host") if err != nil { return err diff --git a/cmd/plugin/commands/exec/exec.go b/cmd/plugin/commands/exec/exec.go index 8e853c534..a91bdb594 100644 --- a/cmd/plugin/commands/exec/exec.go +++ b/cmd/plugin/commands/exec/exec.go @@ -34,7 +34,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "exec", Short: "Execute a command inside an ingress-nginx pod", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, args []string) error { util.PrintError(exec(flags, *pod, *deployment, *selector, *container, args, opts)) return nil }, diff --git a/cmd/plugin/commands/general/general.go b/cmd/plugin/commands/general/general.go index cea403562..d7b3b34f9 100644 --- a/cmd/plugin/commands/general/general.go +++ b/cmd/plugin/commands/general/general.go @@ -34,7 +34,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "general", Short: "Inspect the other dynamic ingress-nginx information", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, _ []string) error { util.PrintError(general(flags, *pod, *deployment, *selector, *container)) return nil }, diff --git a/cmd/plugin/commands/info/info.go b/cmd/plugin/commands/info/info.go index 246046c3a..e0fd3aaec 100644 --- a/cmd/plugin/commands/info/info.go +++ b/cmd/plugin/commands/info/info.go @@ -32,7 +32,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "info", Short: "Show information about the ingress-nginx service", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, _ []string) error { service, err := cmd.Flags().GetString("service") if err != nil { return err diff --git a/cmd/plugin/commands/ingresses/ingresses.go b/cmd/plugin/commands/ingresses/ingresses.go index 8a25418db..7cb90a570 100644 --- a/cmd/plugin/commands/ingresses/ingresses.go +++ b/cmd/plugin/commands/ingresses/ingresses.go @@ -36,7 +36,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { Use: "ingresses", Aliases: []string{"ingress", "ing"}, Short: "Provide a short summary of all of the ingress definitions", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, _ []string) error { host, err := cmd.Flags().GetString("host") if err != nil { return err @@ -139,14 +139,14 @@ func getIngressRows(ingresses *[]networking.Ingress) []ingressRow { ing := &(*ingresses)[i] address := "" for _, lbIng := range ing.Status.LoadBalancer.Ingress { - if len(lbIng.IP) > 0 { + if lbIng.IP != "" { address = address + lbIng.IP + "," } - if len(lbIng.Hostname) > 0 { + if lbIng.Hostname != "" { address = address + lbIng.Hostname + "," } } - if len(address) > 0 { + if address != "" { address = address[:len(address)-1] } @@ -166,7 +166,7 @@ func getIngressRows(ingresses *[]networking.Ingress) []ingressRow { } // Handle catch-all ingress - if len(ing.Spec.Rules) == 0 && len(defaultBackendService) > 0 { + if len(ing.Spec.Rules) == 0 && defaultBackendService != "" { row := ingressRow{ Namespace: ing.Namespace, IngressName: ing.Name, diff --git a/cmd/plugin/commands/lint/main.go b/cmd/plugin/commands/lint/main.go index 847fe86c9..69ab984f5 100644 --- a/cmd/plugin/commands/lint/main.go +++ b/cmd/plugin/commands/lint/main.go @@ -38,7 +38,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "lint", Short: "Inspect kubernetes resources for possible issues", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, _ []string) error { err := opts.Validate() if err != nil { return err @@ -73,7 +73,7 @@ func createSubcommand(flags *genericclioptions.ConfigFlags, names []string, shor Use: names[0], Aliases: names[1:], Short: short, - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, _ []string) error { err := opts.Validate() if err != nil { return err diff --git a/cmd/plugin/commands/logs/logs.go b/cmd/plugin/commands/logs/logs.go index 22068d469..d9f6e7bd8 100644 --- a/cmd/plugin/commands/logs/logs.go +++ b/cmd/plugin/commands/logs/logs.go @@ -36,7 +36,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "logs", Short: "Get the kubernetes logs for an ingress-nginx pod", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, _ []string) error { util.PrintError(logs(flags, *pod, *deployment, *selector, *container, o)) return nil }, diff --git a/cmd/plugin/commands/ssh/ssh.go b/cmd/plugin/commands/ssh/ssh.go index a4762d781..c9631d10b 100644 --- a/cmd/plugin/commands/ssh/ssh.go +++ b/cmd/plugin/commands/ssh/ssh.go @@ -32,7 +32,7 @@ func CreateCommand(flags *genericclioptions.ConfigFlags) *cobra.Command { cmd := &cobra.Command{ Use: "ssh", Short: "ssh into a running ingress-nginx pod", - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(_ *cobra.Command, _ []string) error { util.PrintError(ssh(flags, *pod, *deployment, *selector, *container)) return nil }, diff --git a/images/opentelemetry/rootfs/init_module.go b/images/opentelemetry/rootfs/init_module.go index bebec728f..5d285052d 100644 --- a/images/opentelemetry/rootfs/init_module.go +++ b/images/opentelemetry/rootfs/init_module.go @@ -74,7 +74,6 @@ func run() error { return nil }) - if err != nil { return fmt.Errorf("failed to copy files: %w", err) } diff --git a/internal/ingress/annotations/authreq/main.go b/internal/ingress/annotations/authreq/main.go index c66b0ed47..ad38c36b1 100644 --- a/internal/ingress/annotations/authreq/main.go +++ b/internal/ingress/annotations/authreq/main.go @@ -416,7 +416,7 @@ func (a authReq) Parse(ing *networking.Ingress) (interface{}, error) { harr := strings.Split(hstr, ",") for _, header := range harr { header = strings.TrimSpace(header) - if len(header) > 0 { + if header != "" { if !ValidHeader(header) { return nil, ing_errors.NewLocationDenied("invalid headers list") } @@ -505,7 +505,7 @@ func ParseStringToCacheDurations(input string) ([]string, error) { arr := strings.Split(input, ",") for _, duration := range arr { duration = strings.TrimSpace(duration) - if len(duration) > 0 { + if duration != "" { if !ValidCacheDuration(duration) { authCacheDuration = []string{DefaultCacheDuration} return authCacheDuration, ing_errors.NewLocationDenied(fmt.Sprintf("invalid cache duration: %s", duration)) diff --git a/internal/ingress/annotations/canary/main.go b/internal/ingress/annotations/canary/main.go index be5761675..ccfe14261 100644 --- a/internal/ingress/annotations/canary/main.go +++ b/internal/ingress/annotations/canary/main.go @@ -177,8 +177,8 @@ func (c canary) Parse(ing *networking.Ingress) (interface{}, error) { config.Cookie = "" } - if !config.Enabled && (config.Weight > 0 || len(config.Header) > 0 || len(config.HeaderValue) > 0 || len(config.Cookie) > 0 || - len(config.HeaderPattern) > 0) { + if !config.Enabled && (config.Weight > 0 || config.Header != "" || config.HeaderValue != "" || config.Cookie != "" || + config.HeaderPattern != "") { return nil, errors.NewInvalidAnnotationConfiguration(canaryAnnotation, "configured but not enabled") } diff --git a/internal/ingress/annotations/parser/validators_test.go b/internal/ingress/annotations/parser/validators_test.go index 8523232a2..ed8449452 100644 --- a/internal/ingress/annotations/parser/validators_test.go +++ b/internal/ingress/annotations/parser/validators_test.go @@ -104,7 +104,7 @@ func Test_checkAnnotation(t *testing.T) { }, fields: AnnotationFields{ "otherannotation": AnnotationConfig{ - Validator: func(value string) error { return nil }, + Validator: func(_ string) error { return nil }, }, }, }, diff --git a/internal/ingress/controller/checker_test.go b/internal/ingress/controller/checker_test.go index 5fb6b09fd..a8a0b67ad 100644 --- a/internal/ingress/controller/checker_test.go +++ b/internal/ingress/controller/checker_test.go @@ -53,7 +53,7 @@ func TestNginxCheck(t *testing.T) { server := &httptest.Server{ Listener: listener, Config: &http.Server{ - Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "ok") }), diff --git a/internal/ingress/controller/controller_test.go b/internal/ingress/controller/controller_test.go index c07fcfadf..e257dd1f1 100644 --- a/internal/ingress/controller/controller_test.go +++ b/internal/ingress/controller/controller_test.go @@ -170,7 +170,7 @@ func (fakeTemplate) Write(conf *ngx_config.TemplateConfig) ([]byte, error) { func TestCheckIngress(t *testing.T) { defer func() { - err := filepath.Walk(os.TempDir(), func(path string, info os.FileInfo, err error) error { + err := filepath.Walk(os.TempDir(), func(path string, info os.FileInfo, _ error) error { if info.IsDir() && os.TempDir() != path { return filepath.SkipDir } @@ -1573,7 +1573,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 1 { t.Errorf("servers count should be 1, got %d", len(servers)) return @@ -1640,7 +1640,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 1 { t.Errorf("servers count should be 1, got %d", len(servers)) return @@ -1700,7 +1700,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 1 { t.Errorf("servers count should be 1, got %d", len(servers)) return @@ -1799,7 +1799,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 2 { t.Errorf("servers count should be 2, got %d", len(servers)) return @@ -2059,7 +2059,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 2 { t.Errorf("servers count should be 2, got %d", len(servers)) return @@ -2190,7 +2190,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(ingresses []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 2 { t.Errorf("servers count should be 2, got %d", len(servers)) return @@ -2298,7 +2298,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(ingresses []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 2 { t.Errorf("servers count should be 2, got %d", len(servers)) return @@ -2367,7 +2367,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 2 { t.Errorf("servers count should be 1, got %d", len(servers)) return @@ -2437,7 +2437,7 @@ func TestGetBackendServers(t *testing.T) { }, }, }, - Validate: func(ingresses []*ingress.Ingress, upstreams []*ingress.Backend, servers []*ingress.Server) { + Validate: func(_ []*ingress.Ingress, _ []*ingress.Backend, servers []*ingress.Server) { if len(servers) != 2 { t.Errorf("servers count should be 2, got %d", len(servers)) return diff --git a/internal/ingress/controller/location.go b/internal/ingress/controller/location.go index 9776f8c87..221c089c2 100644 --- a/internal/ingress/controller/location.go +++ b/internal/ingress/controller/location.go @@ -100,7 +100,7 @@ func normalizePrefixPath(path string) string { } func needsRewrite(location *ingress.Location) bool { - if len(location.Rewrite.Target) > 0 && location.Rewrite.Target != location.Path { + if location.Rewrite.Target != "" && location.Rewrite.Target != location.Path { return true } diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 10aafc571..1d385e506 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -197,7 +197,6 @@ func NewNGINXController(config *Configuration, mc metric.Collector) *NGINXContro filesToWatch = append(filesToWatch, path) return nil }) - if err != nil { klog.Fatalf("Error creating file watchers: %v", err) } diff --git a/internal/ingress/controller/nginx_test.go b/internal/ingress/controller/nginx_test.go index c68b0b188..27180e066 100644 --- a/internal/ingress/controller/nginx_test.go +++ b/internal/ingress/controller/nginx_test.go @@ -391,7 +391,7 @@ func TestCleanTempNginxCfg(t *testing.T) { var files []string - err = filepath.Walk(os.TempDir(), func(path string, info os.FileInfo, err error) error { + err = filepath.Walk(os.TempDir(), func(path string, info os.FileInfo, _ error) error { if info.IsDir() && os.TempDir() != path { return filepath.SkipDir } diff --git a/internal/ingress/controller/status.go b/internal/ingress/controller/status.go index e061b2cb7..6bab7c2ad 100644 --- a/internal/ingress/controller/status.go +++ b/internal/ingress/controller/status.go @@ -59,7 +59,7 @@ func setupLeaderElection(config *leaderElectionConfig) { var stopCh chan struct{} callbacks := leaderelection.LeaderCallbacks{ - OnStartedLeading: func(ctx context.Context) { + OnStartedLeading: func(_ context.Context) { klog.V(2).InfoS("I am the new leader") stopCh = make(chan struct{}) diff --git a/internal/ingress/controller/store/store.go b/internal/ingress/controller/store/store.go index 4288785de..284f53209 100644 --- a/internal/ingress/controller/store/store.go +++ b/internal/ingress/controller/store/store.go @@ -292,7 +292,7 @@ func New( // the memory consumption of nginx-ingress-controller explode. // In order to avoid that we filter out labels OWNER=TILLER. labelsTweakListOptionsFunc := func(options *metav1.ListOptions) { - if len(options.LabelSelector) > 0 { + if options.LabelSelector != "" { options.LabelSelector += ",OWNER!=TILLER" } else { options.LabelSelector = "OWNER!=TILLER" diff --git a/internal/ingress/controller/template/template.go b/internal/ingress/controller/template/template.go index f08eee498..7cd6a0604 100644 --- a/internal/ingress/controller/template/template.go +++ b/internal/ingress/controller/template/template.go @@ -497,7 +497,7 @@ func buildResolvers(res, disableIpv6 interface{}) string { } func needsRewrite(location *ingress.Location) bool { - if len(location.Rewrite.Target) > 0 && location.Rewrite.Target != location.Path { + if location.Rewrite.Target != "" && location.Rewrite.Target != location.Path { return true } return false @@ -771,10 +771,10 @@ func buildProxyPass(_ string, b, loc interface{}) string { return defProxyPass } - if len(location.Rewrite.Target) > 0 { + if location.Rewrite.Target != "" { var xForwardedPrefix string - if len(location.XForwardedPrefix) > 0 { + if location.XForwardedPrefix != "" { xForwardedPrefix = fmt.Sprintf("%s X-Forwarded-Prefix %q;\n", proxySetHeader(location), location.XForwardedPrefix) } @@ -1738,7 +1738,7 @@ func buildCorsOriginRegex(corsOrigins []string) string { originsRegex := "if ($http_origin ~* (" for i, origin := range corsOrigins { originTrimmed := strings.TrimSpace(origin) - if len(originTrimmed) > 0 { + if originTrimmed != "" { builtOrigin := buildOriginRegex(originTrimmed) originsRegex += builtOrigin if i != len(corsOrigins)-1 { diff --git a/internal/ingress/metric/collectors/admission_test.go b/internal/ingress/metric/collectors/admission_test.go index 68208ad3e..a23384a88 100644 --- a/internal/ingress/metric/collectors/admission_test.go +++ b/internal/ingress/metric/collectors/admission_test.go @@ -59,7 +59,7 @@ func TestAdmissionCounters(t *testing.T) { }{ { name: "should return 0 as values on a fresh initiated collector", - test: func(am *AdmissionCollector) { + test: func(_ *AdmissionCollector) { }, want: metadataFirst + ` nginx_ingress_controller_admission_config_size{controller_class="nginx",controller_namespace="default",controller_pod="pod"} 0 diff --git a/internal/ingress/metric/collectors/controller_test.go b/internal/ingress/metric/collectors/controller_test.go index 15735df42..53a0fd31a 100644 --- a/internal/ingress/metric/collectors/controller_test.go +++ b/internal/ingress/metric/collectors/controller_test.go @@ -42,7 +42,7 @@ func TestControllerCounters(t *testing.T) { }{ { name: "should return not increment in metrics if no operations are invoked", - test: func(cm *Controller) { + test: func(_ *Controller) { }, want: metadata + ` nginx_ingress_controller_config_last_reload_successful{controller_class="nginx",controller_namespace="default",controller_pod="pod"} 0 diff --git a/internal/ingress/metric/collectors/socket.go b/internal/ingress/metric/collectors/socket.go index a70024c57..248f23f63 100644 --- a/internal/ingress/metric/collectors/socket.go +++ b/internal/ingress/metric/collectors/socket.go @@ -329,7 +329,7 @@ func (sc *SocketCollector) handleMessage(msg []byte) { continue } - if sc.reportStatusClasses && len(stats.Status) > 0 { + if sc.reportStatusClasses && stats.Status != "" { stats.Status = fmt.Sprintf("%cxx", stats.Status[0]) } diff --git a/internal/ingress/metric/collectors/socket_test.go b/internal/ingress/metric/collectors/socket_test.go index 71e9097c9..2113b4725 100644 --- a/internal/ingress/metric/collectors/socket_test.go +++ b/internal/ingress/metric/collectors/socket_test.go @@ -30,8 +30,7 @@ import ( func TestNewUDPLogListener(t *testing.T) { var count uint64 - //nolint:unparam // Unused `message` param is required by the handleMessages function - fn := func(message []byte) { + fn := func(message []byte) { //nolint:unparam,revive // Unused `message` param is required by the handleMessages function atomic.AddUint64(&count, 1) } diff --git a/internal/ingress/metric/collectors/testutils.go b/internal/ingress/metric/collectors/testutils.go index e59ccfd9c..3fc0fc754 100644 --- a/internal/ingress/metric/collectors/testutils.go +++ b/internal/ingress/metric/collectors/testutils.go @@ -109,7 +109,7 @@ func removeUnusedWhitespace(s string) string { for _, l := range lines { trimmedLine = strings.TrimSpace(l) - if len(trimmedLine) > 0 { + if trimmedLine != "" { trimmedLines = append(trimmedLines, trimmedLine) } } diff --git a/internal/net/ssl/ssl.go b/internal/net/ssl/ssl.go index 26fd706e1..f8bac2377 100644 --- a/internal/net/ssl/ssl.go +++ b/internal/net/ssl/ssl.go @@ -400,7 +400,6 @@ func getFakeHostSSLCert(host string) (cert, key []byte) { var err error priv, err = rsa.GenerateKey(rand.Reader, 2048) - if err != nil { klog.Fatalf("failed to generate fake private key: %v", err) } diff --git a/internal/net/ssl/ssl_test.go b/internal/net/ssl/ssl_test.go index 9f8c5eeae..47fa07c7c 100644 --- a/internal/net/ssl/ssl_test.go +++ b/internal/net/ssl/ssl_test.go @@ -446,7 +446,7 @@ func TestTLSKeyReloader(t *testing.T) { } watcher.load() - s := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) + s := httptest.NewUnstartedServer(http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) {})) s.Config.TLSConfig = watcher.TLSConfig() s.Listener = tls.NewListener(s.Listener, s.Config.TLSConfig) go s.Start() diff --git a/internal/nginx/maxmind.go b/internal/nginx/maxmind.go index 1dc2f4d4e..3bd895b5d 100644 --- a/internal/nginx/maxmind.go +++ b/internal/nginx/maxmind.go @@ -132,7 +132,7 @@ func DownloadGeoLite2DB(attempts int, period time.Duration) error { } func createURL(mirror, licenseKey, dbName string) string { - if len(mirror) > 0 { + if mirror != "" { return fmt.Sprintf("%s/%s.tar.gz", mirror, dbName) } return fmt.Sprintf(maxmindURL, licenseKey, dbName) diff --git a/magefiles/steps/release.go b/magefiles/steps/release.go index 1ed09850f..4cb8b40bd 100644 --- a/magefiles/steps/release.go +++ b/magefiles/steps/release.go @@ -215,7 +215,6 @@ func (Release) LatestCommitLogs() { } func commitsBetweenTags(newversion, oldversion string) []string { - var newTag, oldTag string tags := getAllControllerTags() newTag, oldTag = tags[0], tags[1] diff --git a/magefiles/utils/e2edocs.go b/magefiles/utils/e2edocs.go index 2edc2ca40..2f5626db6 100644 --- a/magefiles/utils/e2edocs.go +++ b/magefiles/utils/e2edocs.go @@ -25,22 +25,19 @@ import ( "os" "path/filepath" "regexp" + "slices" "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", - } -) +var skipFiles = []string{ + "test/e2e/framework/framework.go", + "test/e2e/e2e.go", + "test/e2e/e2e_test.go", +} const ( testDir = "test/e2e" @@ -48,9 +45,7 @@ const ( URL = "https://github.com/kubernetes/ingress-nginx/tree/main/" ) -var ( - betweenquotes = regexp.MustCompile(`("|\')(?P.*)("|\')`) -) +var betweenquotes = regexp.MustCompile(`("|\')(?P.*)("|\')`) type E2ETemplate struct { URL string @@ -102,7 +97,7 @@ func (t *E2ETemplate) walkE2eDir(path string, d fs.DirEntry, errAggregated error fileScanner.Split(bufio.ScanLines) tests := make([]string, 0) - var lineN = 0 + lineN := 0 for fileScanner.Scan() { lineN = lineN + 1 if !containsGinkgoTest(fileScanner.Text()) { @@ -136,5 +131,4 @@ func GenerateE2EDocs() (string, error) { return "", err } return tplBuff.String(), nil - } diff --git a/test/e2e/framework/exec.go b/test/e2e/framework/exec.go index 9e4b55122..580a8f58e 100644 --- a/test/e2e/framework/exec.go +++ b/test/e2e/framework/exec.go @@ -102,7 +102,7 @@ func (f *Framework) NamespaceContent() (string, error) { } eout := strings.TrimSpace(execErr.String()) - if len(eout) > 0 { + if eout != "" { return "", fmt.Errorf("stderr: %v", eout) } diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 4723117c8..b71d84baa 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -313,7 +313,7 @@ func (f *Framework) matchNginxConditions(name string, matcher func(cfg string) b return false, nil } - if klog.V(10).Enabled() && len(o) > 0 { + if klog.V(10).Enabled() && o != "" { klog.InfoS("NGINX", "configuration", o) } @@ -335,7 +335,7 @@ func (f *Framework) matchNginxCustomConditions(from, to string, matcher func(cfg return false, nil } - if klog.V(10).Enabled() && len(o) > 0 { + if klog.V(10).Enabled() && o != "" { klog.InfoS("NGINX", "configuration", o) } @@ -501,7 +501,7 @@ func (f *Framework) newHTTPTestClient(config *tls.Config, setIngressURL bool) *h Transport: &http.Transport{ TLSClientConfig: config, }, - CheckRedirect: func(req *http.Request, via []*http.Request) error { + CheckRedirect: func(_ *http.Request, _ []*http.Request) error { return http.ErrUseLastResponse }, }, httpexpect.NewAssertReporter()) diff --git a/test/e2e/framework/httpexpect/request.go b/test/e2e/framework/httpexpect/request.go index 0ae85dd79..4daba136e 100644 --- a/test/e2e/framework/httpexpect/request.go +++ b/test/e2e/framework/httpexpect/request.go @@ -93,7 +93,7 @@ func (h *HTTPRequest) ForceResolve(ip string, port uint16) *HTTPRequest { return h } newTransport := oldTransport.Clone() - newTransport.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) { + newTransport.DialContext = func(ctx context.Context, network, _ string) (net.Conn, error) { return dialer.DialContext(ctx, network, resolveAddr) } h.client.Transport = newTransport diff --git a/test/e2e/tcpudp/tcp.go b/test/e2e/tcpudp/tcp.go index f06d6c9a3..856184d18 100644 --- a/test/e2e/tcpudp/tcp.go +++ b/test/e2e/tcpudp/tcp.go @@ -133,7 +133,7 @@ var _ = framework.IngressNginxDescribe("[TCP] tcp-services", func() { // Execute the test. Use the `external name` service to resolve a domain name. resolver := net.Resolver{ PreferGo: true, - Dial: func(ctx context.Context, network, address string) (net.Conn, error) { + Dial: func(ctx context.Context, _, _ string) (net.Conn, error) { d := net.Dialer{} return d.DialContext(ctx, "tcp", fmt.Sprintf("%v:5353", ip)) }, From 7a2e4b19a1ac1ea84664c1fad6ecaeb579a60321 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 05:52:06 -0800 Subject: [PATCH 046/184] Bump github.com/prometheus/common from 0.49.0 to 0.50.0 (#11075) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.49.0 to 0.50.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.49.0...v0.50.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 5302136d3..45c8cd352 100644 --- a/go.mod +++ b/go.mod @@ -19,13 +19,13 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.49.0 + github.com/prometheus/common v0.50.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 - golang.org/x/crypto v0.20.0 + golang.org/x/crypto v0.21.0 google.golang.org/grpc v1.62.0 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 @@ -104,17 +104,17 @@ require ( github.com/yudai/pp v2.0.1+incompatible // indirect go.starlark.net v0.0.0-20240123142251-f86470692795 // indirect golang.org/x/mod v0.15.0 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/term v0.17.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.9.0 // indirect gopkg.in/go-playground/assert.v1 v1.2.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index dd490e7ec..3dba34da9 100644 --- a/go.sum +++ b/go.sum @@ -323,8 +323,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.49.0 h1:ToNTdK4zSnPVJmh698mGFkDor9wBI/iGaJy5dbH1EgI= -github.com/prometheus/common v0.49.0/go.mod h1:Kxm+EULxRbUkjGU6WFsQqo3ORzB4tyKvlWFOE9mB2sE= +github.com/prometheus/common v0.50.0 h1:YSZE6aa9+luNa2da6/Tik0q0A5AbR+U003TItK57CPQ= +github.com/prometheus/common v0.50.0/go.mod h1:wHFBCEVWVmHMUpg7pYcOm2QUR/ocQdYSJVQJKnHc3xQ= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -401,8 +401,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U 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.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= -golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= 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= @@ -472,16 +472,16 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= 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.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= 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= @@ -543,12 +543,12 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= 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= @@ -700,8 +700,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.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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= From 43595fc5b700fa1a8a08829b4700e69ce2d43fe9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 07:00:53 -0800 Subject: [PATCH 047/184] Bump the all group with 1 update (#11072) Bumps the all group with 1 update: [google.golang.org/grpc](https://github.com/grpc/grpc-go). Updates `google.golang.org/grpc` from 1.62.0 to 1.62.1 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.62.0...v1.62.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 45c8cd352..4d9378a7b 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.21.0 - google.golang.org/grpc v1.62.0 + google.golang.org/grpc v1.62.1 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 diff --git a/go.sum b/go.sum index 3dba34da9..38259da21 100644 --- a/go.sum +++ b/go.sum @@ -684,8 +684,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.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= -google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab h1:tg8hvIl5RmFBuXlcJMuL0h4Psh1gx5Q5xEMwzBZIzWA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab/go.mod h1:liVNnGuZDITxuksuZ+BBvdy7FcJfeNk+efF9qgqNUmc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From f3a4f071747e4ca48cb6a7cad4c5ccca38520322 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 08:01:56 -0800 Subject: [PATCH 048/184] Bump the all group with 1 update (#11073) Bumps the all group with 1 update: [actions/add-to-project](https://github.com/actions/add-to-project). Updates `actions/add-to-project` from 0.5.0 to 0.6.0 - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/31b3f3ccdc584546fc445612dec3f38ff5edb41c...0609a2702eefb44781da00f8e04901d6e5cd2b92) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 95537e16c..2d398e24c 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -13,7 +13,7 @@ jobs: repository-projects: write issues: write steps: - - uses: actions/add-to-project@31b3f3ccdc584546fc445612dec3f38ff5edb41c # v0.5.0 + - uses: actions/add-to-project@0609a2702eefb44781da00f8e04901d6e5cd2b92 # v0.6.0 with: project-url: https://github.com/orgs/kubernetes/projects/104 github-token: ${{ secrets.PROJECT_WRITER }} From 7d12628208b9652f80d042e32ff4d266a7db9eb5 Mon Sep 17 00:00:00 2001 From: bossm8 <91630231+bossm8@users.noreply.github.com> Date: Fri, 8 Mar 2024 21:32:40 +0100 Subject: [PATCH 049/184] [mTLS] Fix acme verfication when mTLS and Client CN verification is enabled (#11062) --- rootfs/etc/nginx/template/nginx.tmpl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index d58be2880..381fc134c 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -985,8 +985,10 @@ stream { {{ if not ( empty $server.CertificateAuth.MatchCN ) }} {{ if gt (len $server.CertificateAuth.MatchCN) 0 }} - if ( $ssl_client_s_dn !~ {{ $server.CertificateAuth.MatchCN }} ) { - return 403 "client certificate unauthorized"; + location ~ ^/(?!(\.well-known/acme-challenge)) { + if ( $ssl_client_s_dn !~ {{ $server.CertificateAuth.MatchCN }} ) { + return 403 "client certificate unauthorized"; + } } {{ end }} {{ end }} From 157e53b814861f57f41baf0cf4a90ec1daa0f039 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 12:35:08 -0800 Subject: [PATCH 050/184] Bump github.com/onsi/ginkgo/v2 from 2.15.0 to 2.16.0 (#11076) Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.15.0 to 2.16.0. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.15.0...v2.16.0) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4d9378a7b..6e3723b15 100644 --- a/go.mod +++ b/go.mod @@ -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.15.0 + github.com/onsi/ginkgo/v2 v2.16.0 github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 diff --git a/go.sum b/go.sum index 38259da21..5a40ced85 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ 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.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/ginkgo/v2 v2.16.0 h1:7q1w9frJDzninhXxjZd+Y/x54XNjG/UlRLIYPZafsPM= +github.com/onsi/ginkgo/v2 v2.16.0/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= 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.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= From 9c384c7eb85b9833bad491e14fffcfe3b9c59ee5 Mon Sep 17 00:00:00 2001 From: bossm8 <91630231+bossm8@users.noreply.github.com> Date: Sat, 9 Mar 2024 01:06:47 +0100 Subject: [PATCH 051/184] Undo #11062 since it breaks the nginx config (#11082) * [mTLS] Fix acme verfication when mTLS and Client CN verification is enabled * revert mTLS location excluding acme-challenge since each location will match ultimately resulting in 404 for all request paths --- rootfs/etc/nginx/template/nginx.tmpl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index 381fc134c..d58be2880 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -985,10 +985,8 @@ stream { {{ if not ( empty $server.CertificateAuth.MatchCN ) }} {{ if gt (len $server.CertificateAuth.MatchCN) 0 }} - location ~ ^/(?!(\.well-known/acme-challenge)) { - if ( $ssl_client_s_dn !~ {{ $server.CertificateAuth.MatchCN }} ) { - return 403 "client certificate unauthorized"; - } + if ( $ssl_client_s_dn !~ {{ $server.CertificateAuth.MatchCN }} ) { + return 403 "client certificate unauthorized"; } {{ end }} {{ end }} From b5c447612c48e9d517e5c6dd4ae0f0a176203cde Mon Sep 17 00:00:00 2001 From: Ramon Borges Date: Mon, 11 Mar 2024 22:14:25 +0100 Subject: [PATCH 052/184] Chart: Deploy `PodDisruptionBudget` with KEDA. (#11032) * feat: deploy PDB if Keda is enabled and the minimum amount of replicas is greater than 1 * feat: add the corresponding unit-test to check PDB deployment with Keda * chore: rename the test of PDB to follow suggested pattern * chore: update the test-case suite name to the new format * Update charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml Co-authored-by: Marco Ebert * Update charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml Co-authored-by: Marco Ebert --------- Co-authored-by: Marco Ebert --- .../controller-poddisruptionbudget.yaml | 8 ++- .../controller-poddisruptionbudget_test.yaml | 65 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml diff --git a/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml b/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml index 8cb7d4b97..fe142a346 100644 --- a/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml +++ b/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml @@ -1,4 +1,10 @@ -{{- if or (and .Values.controller.autoscaling.enabled (gt (.Values.controller.autoscaling.minReplicas | int) 1)) (and (not .Values.controller.autoscaling.enabled) (gt (.Values.controller.replicaCount | int) 1)) }} +{{- $replicas := .Values.controller.replicaCount }} +{{- if .Values.controller.autoscaling.enabled }} +{{- $replicas = .Values.controller.autoscaling.minReplicas }} +{{- else if .Values.controller.keda.enabled }} +{{- $replicas = .Values.controller.keda.minReplicas }} +{{- end }} +{{- if gt ($replicas | int) 1 }} apiVersion: {{ ternary "policy/v1" "policy/v1beta1" (semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version) }} kind: PodDisruptionBudget metadata: diff --git a/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml b/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml new file mode 100644 index 000000000..3055d5351 --- /dev/null +++ b/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml @@ -0,0 +1,65 @@ +suite: Controller > PodDisruptionBudget +templates: + - controller-poddisruptionbudget.yaml + +tests: + - it: should create a PodDisruptionBudget if `controller.replicaCount` is greater than 1 + set: + controller.replicaCount: 2 + asserts: + - hasDocuments: + count: 1 + - isKind: + of: PodDisruptionBudget + - equal: + path: metadata.name + value: RELEASE-NAME-ingress-nginx-controller + + - it: should not create a PodDisruptionBudget if `controller.replicaCount` is less than or equal 1 + set: + controller.replicaCount: 1 + asserts: + - hasDocuments: + count: 0 + + - it: should create a PodDisruptionBudget if `controller.autoscaling.enabled` is true and `controller.autoscaling.minReplicas` is greater than 1 + set: + controller.autoscaling.enabled: true + controller.autoscaling.minReplicas: 2 + asserts: + - hasDocuments: + count: 1 + - isKind: + of: PodDisruptionBudget + - equal: + path: metadata.name + value: RELEASE-NAME-ingress-nginx-controller + + - it: should not create a PodDisruptionBudget if `controller.autoscaling.enabled` is true and `controller.autoscaling.minReplicas` is less than or equal 1 + set: + controller.autoscaling.enabled: true + controller.autoscaling.minReplicas: 1 + asserts: + - hasDocuments: + count: 0 + + - it: should create a PodDisruptionBudget if `controller.keda.enabled` is true and `controller.keda.minReplicas` is greater than 1 + set: + controller.keda.enabled: true + controller.keda.minReplicas: 2 + asserts: + - hasDocuments: + count: 1 + - isKind: + of: PodDisruptionBudget + - equal: + path: metadata.name + value: RELEASE-NAME-ingress-nginx-controller + + - it: should not create a PodDisruptionBudget if `controller.keda.enabled` is true and `controller.keda.minReplicas` is less than or equal 1 + set: + controller.keda.enabled: true + controller.keda.minReplicas: 1 + asserts: + - hasDocuments: + count: 0 From 2894b8a060fd50a3b991f9f084e0cbc5bae4133c Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Tue, 12 Mar 2024 14:39:07 +0100 Subject: [PATCH 053/184] Chart: Improve IngressClass documentation. (#11104) --- charts/ingress-nginx/README.md | 11 +++---- .../templates/controller-ingressclass.yaml | 2 -- charts/ingress-nginx/values.yaml | 29 ++++++++++++------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 38fa071c5..faab94c2d 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -330,11 +330,12 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.image.tag | string | `"v1.10.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 | -| controller.ingressClassResource.default | bool | `false` | Is this the default ingressClass for the cluster | -| controller.ingressClassResource.enabled | bool | `true` | Is this ingressClass enabled or not | -| controller.ingressClassResource.name | string | `"nginx"` | Name of the ingressClass | -| controller.ingressClassResource.parameters | object | `{}` | Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters. | +| controller.ingressClassResource | object | `{"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | +| controller.ingressClassResource.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value. This value is also being set as the `--controller-class` argument of this Ingress Controller. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class | +| controller.ingressClassResource.default | bool | `false` | If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation. Ingress creation gets rejected if there are multiple default IngressClasses. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class | +| controller.ingressClassResource.enabled | bool | `true` | Create the IngressClass or not | +| controller.ingressClassResource.name | string | `"nginx"` | Name of the IngressClass | +| controller.ingressClassResource.parameters | object | `{}` | A link to a custom resource containing additional configuration for the controller. This is optional if the controller consuming this IngressClass does not require additional parameters. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class | | controller.keda.apiVersion | string | `"keda.sh/v1alpha1"` | | | controller.keda.behavior | object | `{}` | | | controller.keda.cooldownPeriod | int | `300` | | diff --git a/charts/ingress-nginx/templates/controller-ingressclass.yaml b/charts/ingress-nginx/templates/controller-ingressclass.yaml index 9492784a2..f28c116ee 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass.yaml @@ -1,6 +1,4 @@ {{- if .Values.controller.ingressClassResource.enabled -}} -# We don't support namespaced ingressClass yet -# So a ClusterRole and a ClusterRoleBinding is required apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 3ec2e4c33..50f958562 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -110,21 +110,30 @@ controller: 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 - ## IngressClass resources are supported since k8s >= 1.18 and required since k8s >= 1.19 + # -- This section refers to the creation of the IngressClass resource. + # IngressClasses are immutable and cannot be changed after creation. + # We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. ingressClassResource: - # -- Name of the ingressClass + # -- Name of the IngressClass name: nginx - # -- Is this ingressClass enabled or not + # -- Create the IngressClass or not enabled: true - # -- Is this the default ingressClass for the cluster + # -- If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation. + # Ingress creation gets rejected if there are multiple default IngressClasses. + # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class default: false - # -- Controller-value of the controller that is processing this ingressClass - controllerValue: "k8s.io/ingress-nginx" - # -- Parameters is a link to a custom resource containing additional - # configuration for the controller. This is optional if the controller - # does not require extra parameters. + # -- Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value. + # This value is also being set as the `--controller-class` argument of this Ingress Controller. + # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class + controllerValue: k8s.io/ingress-nginx + # -- A link to a custom resource containing additional configuration for the controller. + # This is optional if the controller consuming this IngressClass does not require additional parameters. + # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class parameters: {} + # parameters: + # apiGroup: k8s.example.com + # kind: IngressParameters + # name: external-lb # -- 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 ingressClass: nginx From aa5deedae3dc9d55fd12f482d92c1cb86337cc0a Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Tue, 12 Mar 2024 14:41:27 +0100 Subject: [PATCH 054/184] Chart: Add Gacko to maintainers. Again. (#11107) --- charts/ingress-nginx/Chart.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/charts/ingress-nginx/Chart.yaml b/charts/ingress-nginx/Chart.yaml index 1bd30b31d..3e977530f 100644 --- a/charts/ingress-nginx/Chart.yaml +++ b/charts/ingress-nginx/Chart.yaml @@ -13,6 +13,7 @@ keywords: - nginx kubeVersion: '>=1.20.0-0' maintainers: +- name: Gacko - name: rikatz - name: strongjz - name: tao12345666333 From 9480cde724d167c3246563586b5aaae86d26de00 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Tue, 12 Mar 2024 14:43:51 +0100 Subject: [PATCH 055/184] Chart: Align HPA & KEDA conditions. (#11110) --- .../templates/controller-deployment.yaml | 2 +- .../templates/controller-keda.yaml | 2 +- .../controller-poddisruptionbudget.yaml | 8 +++++-- .../tests/controller-deployment_test.yaml | 22 +++++++++++++++++++ .../tests/controller-hpa_test.yaml | 18 +++++++++++++-- .../tests/controller-keda_test.yaml | 18 +++++++++++++-- .../controller-poddisruptionbudget_test.yaml | 8 +++++++ 7 files changed, 70 insertions(+), 8 deletions(-) diff --git a/charts/ingress-nginx/templates/controller-deployment.yaml b/charts/ingress-nginx/templates/controller-deployment.yaml index 5ff45585b..879802779 100644 --- a/charts/ingress-nginx/templates/controller-deployment.yaml +++ b/charts/ingress-nginx/templates/controller-deployment.yaml @@ -19,7 +19,7 @@ spec: matchLabels: {{- include "ingress-nginx.selectorLabels" . | nindent 6 }} app.kubernetes.io/component: controller - {{- if not (or .Values.controller.autoscaling.enabled .Values.controller.keda.enabled) }} + {{- if eq .Values.controller.autoscaling.enabled .Values.controller.keda.enabled }} replicas: {{ .Values.controller.replicaCount }} {{- end }} revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} diff --git a/charts/ingress-nginx/templates/controller-keda.yaml b/charts/ingress-nginx/templates/controller-keda.yaml index 6ff9c0b22..24d30fa0a 100644 --- a/charts/ingress-nginx/templates/controller-keda.yaml +++ b/charts/ingress-nginx/templates/controller-keda.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.controller.keda.enabled (eq .Values.controller.kind "Deployment") -}} +{{- if and (eq .Values.controller.kind "Deployment") .Values.controller.keda.enabled (not .Values.controller.autoscaling.enabled) -}} apiVersion: {{ .Values.controller.keda.apiVersion }} kind: ScaledObject metadata: diff --git a/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml b/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml index fe142a346..8e0181f9f 100644 --- a/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml +++ b/charts/ingress-nginx/templates/controller-poddisruptionbudget.yaml @@ -1,7 +1,10 @@ +# PDB is not supported for DaemonSets. +# https://github.com/kubernetes/kubernetes/issues/108124 +{{- if eq .Values.controller.kind "Deployment" }} {{- $replicas := .Values.controller.replicaCount }} -{{- if .Values.controller.autoscaling.enabled }} +{{- if and .Values.controller.autoscaling.enabled (not .Values.controller.keda.enabled) }} {{- $replicas = .Values.controller.autoscaling.minReplicas }} -{{- else if .Values.controller.keda.enabled }} +{{- else if and .Values.controller.keda.enabled (not .Values.controller.autoscaling.enabled) }} {{- $replicas = .Values.controller.keda.minReplicas }} {{- end }} {{- if gt ($replicas | int) 1 }} @@ -30,3 +33,4 @@ spec: maxUnavailable: {{ .Values.controller.maxUnavailable }} {{- end }} {{- end }} +{{- end }} diff --git a/charts/ingress-nginx/tests/controller-deployment_test.yaml b/charts/ingress-nginx/tests/controller-deployment_test.yaml index 86d5828c0..3af5ba981 100644 --- a/charts/ingress-nginx/tests/controller-deployment_test.yaml +++ b/charts/ingress-nginx/tests/controller-deployment_test.yaml @@ -21,6 +21,28 @@ tests: path: spec.replicas value: 3 + - it: should create a Deployment without replicas if `controller.autoscaling.enabled` is true + set: + controller.autoscaling.enabled: true + asserts: + - notExists: + path: spec.replicas + + - it: should create a Deployment without replicas if `controller.keda.enabled` is true + set: + controller.keda.enabled: true + asserts: + - notExists: + path: spec.replicas + + - it: should create a Deployment with replicas if `controller.autoscaling.enabled` is true and `controller.keda.enabled` is true + set: + controller.autoscaling.enabled: true + controller.keda.enabled: true + asserts: + - exists: + path: spec.replicas + - it: should create a Deployment with argument `--enable-metrics=false` if `controller.metrics.enabled` is false set: controller.metrics.enabled: false diff --git a/charts/ingress-nginx/tests/controller-hpa_test.yaml b/charts/ingress-nginx/tests/controller-hpa_test.yaml index 7cd668509..869d3a690 100644 --- a/charts/ingress-nginx/tests/controller-hpa_test.yaml +++ b/charts/ingress-nginx/tests/controller-hpa_test.yaml @@ -3,9 +3,8 @@ templates: - controller-hpa.yaml tests: - - it: should create a HPA if `controller.kind` is "Deployment" and `controller.autoscaling.enabled` is true + - it: should create an HPA if `controller.autoscaling.enabled` is true set: - controller.kind: Deployment controller.autoscaling.enabled: true asserts: - hasDocuments: @@ -15,3 +14,18 @@ tests: - equal: path: metadata.name value: RELEASE-NAME-ingress-nginx-controller + + - it: should not create an HPA if `controller.autoscaling.enabled` is true and `controller.keda.enabled` is true + set: + controller.autoscaling.enabled: true + controller.keda.enabled: true + asserts: + - hasDocuments: + count: 0 + + - it: should not create an HPA if `controller.kind` is "DaemonSet" + set: + controller.kind: DaemonSet + asserts: + - hasDocuments: + count: 0 diff --git a/charts/ingress-nginx/tests/controller-keda_test.yaml b/charts/ingress-nginx/tests/controller-keda_test.yaml index e6ca8dbfe..800283483 100644 --- a/charts/ingress-nginx/tests/controller-keda_test.yaml +++ b/charts/ingress-nginx/tests/controller-keda_test.yaml @@ -3,9 +3,8 @@ templates: - controller-keda.yaml tests: - - it: should create a ScaledObject if `controller.kind` is "Deployment" and `controller.keda.enabled` is true + - it: should create a ScaledObject if `controller.keda.enabled` is true set: - controller.kind: Deployment controller.keda.enabled: true asserts: - hasDocuments: @@ -15,3 +14,18 @@ tests: - equal: path: metadata.name value: RELEASE-NAME-ingress-nginx-controller + + - it: should not create a ScaledObject if `controller.keda.enabled` is true and `controller.autoscaling.enabled` is true + set: + controller.keda.enabled: true + controller.autoscaling.enabled: true + asserts: + - hasDocuments: + count: 0 + + - it: should not create a ScaledObject if `controller.kind` is "DaemonSet" + set: + controller.kind: DaemonSet + asserts: + - hasDocuments: + count: 0 diff --git a/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml b/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml index 3055d5351..48b4fafcc 100644 --- a/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml +++ b/charts/ingress-nginx/tests/controller-poddisruptionbudget_test.yaml @@ -63,3 +63,11 @@ tests: asserts: - hasDocuments: count: 0 + + - it: should not create a PodDisruptionBudget if `controller.autoscaling.enabled` is true and `controller.keda.enabled` is true + set: + controller.autoscaling.enabled: true + controller.keda.enabled: true + asserts: + - hasDocuments: + count: 0 From a2f67e2ba6962840979e056cff630947da24f805 Mon Sep 17 00:00:00 2001 From: Luca Berneking Date: Tue, 12 Mar 2024 14:51:08 +0100 Subject: [PATCH 056/184] Fix admission controller logging of `admissionTime` and `testedConfigurationSize` (#11089) --- internal/ingress/metric/collectors/admission.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ingress/metric/collectors/admission.go b/internal/ingress/metric/collectors/admission.go index 7b84325c0..456f56963 100644 --- a/internal/ingress/metric/collectors/admission.go +++ b/internal/ingress/metric/collectors/admission.go @@ -151,7 +151,7 @@ func (am *AdmissionCollector) SetAdmissionMetrics(testedIngressLength, testedIng testedIngressTime, renderingIngressLength, renderingIngressTime, - ByteFormat(int64(testedConfigurationSize)), admissionTime, + ByteFormat(int64(testedConfigurationSize)), ) } From a00a1499a0f3ea63da031698ad48e815d7f8eb99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 16:51:31 -0700 Subject: [PATCH 057/184] Bump google.golang.org/protobuf in /images/kube-webhook-certgen/rootfs (#11120) Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- images/kube-webhook-certgen/rootfs/go.mod | 2 +- images/kube-webhook-certgen/rootfs/go.sum | 42 ++++++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/images/kube-webhook-certgen/rootfs/go.mod b/images/kube-webhook-certgen/rootfs/go.mod index 9cb4bf263..de1d86bdd 100644 --- a/images/kube-webhook-certgen/rootfs/go.mod +++ b/images/kube-webhook-certgen/rootfs/go.mod @@ -46,7 +46,7 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/images/kube-webhook-certgen/rootfs/go.sum b/images/kube-webhook-certgen/rootfs/go.sum index 966d69209..5f88f3da3 100644 --- a/images/kube-webhook-certgen/rootfs/go.sum +++ b/images/kube-webhook-certgen/rootfs/go.sum @@ -3,16 +3,23 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs 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= github.com/emicklei/go-restful/v3 v3.11.3 h1:yagOQz/38xJmcNeZJtrUcKjkHRltIaIFXKWeG1SkWGE= +github.com/emicklei/go-restful/v3 v3.11.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= +github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= +github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= +github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +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/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= @@ -25,8 +32,11 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ 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/pprof v0.0.0-20240225044709-fd706174c886 h1:JSJUTZTQT1Gzb2ROdAKOY3HwzBYcclS2GgumhMfHqjw= +github.com/google/pprof v0.0.0-20240225044709-fd706174c886/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -51,12 +61,15 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/onrik/logrus v0.11.0 h1:pu+BCaWL36t0yQaj/2UHK2erf88dwssAKOT51mxPUVs= github.com/onrik/logrus v0.11.0/go.mod h1:fO2vlZwIdti6PidD3gV5YKt9Lq5ptpnP293RAe1ITwk= github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= @@ -77,44 +90,67 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 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.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= 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= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= 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.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -133,12 +169,16 @@ k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTK k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-aggregator v0.29.2 h1:z9qJn5wlGmGaX6EfM7OEhr6fq6SBjDKR6tPRZ/qgxeY= k8s.io/kube-aggregator v0.29.2/go.mod h1:QEuwzmMJJsg0eg1Gv+u4cWcYeJG2+8vN8/nTXBzopUo= k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b h1:1dzw/KqgSPod72SUp2tuTOmK33TlY2fHlrVU2M9VrOM= +k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b/go.mod h1:Pa1PvrP7ACSkuX6I7KYomY6cmMA0Tx86waBhDUgoKPw= k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= +k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From 112b9bb028da76b81c98387bacb4841a78c67e32 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Thu, 14 Mar 2024 14:23:13 +0100 Subject: [PATCH 058/184] Chart: Render `controller.ingressClassResource.parameters` natively. (#11108) --- charts/ingress-nginx/templates/_helpers.tpl | 10 --- .../templates/controller-ingressclass.yaml | 8 +- .../tests/controller-daemonset_test.yaml | 9 +++ .../tests/controller-deployment_test.yaml | 8 ++ .../tests/controller-ingressclass_test.yaml | 77 +++++++++++++++++++ 5 files changed, 99 insertions(+), 13 deletions(-) create mode 100644 charts/ingress-nginx/tests/controller-ingressclass_test.yaml diff --git a/charts/ingress-nginx/templates/_helpers.tpl b/charts/ingress-nginx/templates/_helpers.tpl index db1ab2e24..9ac2dc569 100644 --- a/charts/ingress-nginx/templates/_helpers.tpl +++ b/charts/ingress-nginx/templates/_helpers.tpl @@ -242,16 +242,6 @@ Check the ingress controller version tag is at most three versions behind the la {{- end -}} {{- end -}} -{{/* -IngressClass parameters. -*/}} -{{- define "ingressClass.parameters" -}} - {{- if .Values.controller.ingressClassResource.parameters -}} - parameters: -{{ toYaml .Values.controller.ingressClassResource.parameters | indent 4}} - {{ end }} -{{- end -}} - {{/* Extra modules. */}} diff --git a/charts/ingress-nginx/templates/controller-ingressclass.yaml b/charts/ingress-nginx/templates/controller-ingressclass.yaml index f28c116ee..e439e0adb 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass.yaml @@ -9,11 +9,13 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ .Values.controller.ingressClassResource.name }} -{{- if .Values.controller.ingressClassResource.default }} + {{- if .Values.controller.ingressClassResource.default }} annotations: ingressclass.kubernetes.io/is-default-class: "true" -{{- end }} + {{- end }} spec: controller: {{ .Values.controller.ingressClassResource.controllerValue }} - {{ template "ingressClass.parameters" . }} + {{- with .Values.controller.ingressClassResource.parameters }} + parameters: {{ toYaml . | nindent 4 }} + {{- end }} {{- end }} diff --git a/charts/ingress-nginx/tests/controller-daemonset_test.yaml b/charts/ingress-nginx/tests/controller-daemonset_test.yaml index 1d3172227..316455362 100644 --- a/charts/ingress-nginx/tests/controller-daemonset_test.yaml +++ b/charts/ingress-nginx/tests/controller-daemonset_test.yaml @@ -33,6 +33,15 @@ tests: path: spec.template.spec.containers[0].args content: --enable-metrics=false + - it: should create a DaemonSet with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" + set: + controller.kind: DaemonSet + controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal + asserts: + - contains: + path: spec.template.spec.containers[0].args + content: --controller-class=k8s.io/ingress-nginx-internal + - it: should create a DaemonSet with resource limits if `controller.resources.limits` is set set: controller.kind: DaemonSet diff --git a/charts/ingress-nginx/tests/controller-deployment_test.yaml b/charts/ingress-nginx/tests/controller-deployment_test.yaml index 3af5ba981..eee99385d 100644 --- a/charts/ingress-nginx/tests/controller-deployment_test.yaml +++ b/charts/ingress-nginx/tests/controller-deployment_test.yaml @@ -59,6 +59,14 @@ tests: path: spec.template.spec.containers[0].args content: --enable-metrics=false + - it: should create a Deployment with argument `--controller-class=k8s.io/ingress-nginx-internal` if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" + set: + controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal + asserts: + - contains: + path: spec.template.spec.containers[0].args + content: --controller-class=k8s.io/ingress-nginx-internal + - it: should create a Deployment with resource limits if `controller.resources.limits` is set set: controller.resources.limits.cpu: 500m diff --git a/charts/ingress-nginx/tests/controller-ingressclass_test.yaml b/charts/ingress-nginx/tests/controller-ingressclass_test.yaml new file mode 100644 index 000000000..f766f922e --- /dev/null +++ b/charts/ingress-nginx/tests/controller-ingressclass_test.yaml @@ -0,0 +1,77 @@ +suite: Controller > IngressClass +templates: + - controller-ingressclass.yaml + +tests: + - it: should create an IngressClass + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx + + - it: should create an IngressClass with name "nginx-internal" if `controller.ingressClassResource.name` is "nginx-internal" + set: + controller.ingressClassResource.name: nginx-internal + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-internal + + - it: "should create an IngressClass with annotation `ingressclass.kubernetes.io/is-default-class: \"true\"` if `controller.ingressClassResource.default` is true" + set: + controller.ingressClassResource.default: true + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx + - equal: + path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"] + value: "true" + + - it: should create an IngressClass with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" + set: + controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx + - equal: + path: spec.controller + value: k8s.io/ingress-nginx-internal + + - it: should create an IngressClass with parameters if `controller.ingressClassResource.parameters` is set + set: + controller.ingressClassResource.parameters: + apiGroup: k8s.example.com + kind: IngressParameters + name: external-lb + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx + - equal: + path: spec.parameters + value: + apiGroup: k8s.example.com + kind: IngressParameters + name: external-lb From f0b986d93f54301eb7c643a24f1bb9981c559ac6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 07:29:03 -0700 Subject: [PATCH 059/184] Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /magefiles (#11121) Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- magefiles/go.mod | 2 +- magefiles/go.sum | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/magefiles/go.mod b/magefiles/go.mod index 9dddf9f71..bdc592cdd 100644 --- a/magefiles/go.mod +++ b/magefiles/go.mod @@ -29,7 +29,7 @@ require ( github.com/sergi/go-diff v1.3.1 // indirect golang.org/x/crypto v0.20.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/apimachinery v0.29.2 // indirect diff --git a/magefiles/go.sum b/magefiles/go.sum index 9abe8e950..8130f1178 100644 --- a/magefiles/go.sum +++ b/magefiles/go.sum @@ -29,6 +29,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +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.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -37,6 +38,7 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ 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.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/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= @@ -66,12 +68,14 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa 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.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= 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/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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= @@ -80,21 +84,30 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl 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= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/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.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -103,20 +116,31 @@ golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +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.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +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.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 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= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -125,7 +149,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 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.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -144,5 +169,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C 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.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= +k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= 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= From e3ea23110a6d16f5e11f8fb7b94259fb0103dd9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 07:32:08 -0700 Subject: [PATCH 060/184] Bump google.golang.org/protobuf in /images/custom-error-pages/rootfs (#11119) Bumps google.golang.org/protobuf from 1.28.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- images/custom-error-pages/rootfs/go.mod | 2 +- images/custom-error-pages/rootfs/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/custom-error-pages/rootfs/go.mod b/images/custom-error-pages/rootfs/go.mod index 37cd1fcbd..eebc562a5 100644 --- a/images/custom-error-pages/rootfs/go.mod +++ b/images/custom-error-pages/rootfs/go.mod @@ -13,5 +13,5 @@ require ( github.com/prometheus/common v0.26.0 // indirect github.com/prometheus/procfs v0.6.0 // indirect golang.org/x/sys v0.1.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) diff --git a/images/custom-error-pages/rootfs/go.sum b/images/custom-error-pages/rootfs/go.sum index a5f86cade..99c959a36 100644 --- a/images/custom-error-pages/rootfs/go.sum +++ b/images/custom-error-pages/rootfs/go.sum @@ -129,8 +129,8 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 0bed0a455871a572cdf810422ede8c1501a1d736 Mon Sep 17 00:00:00 2001 From: Robert Ma Date: Thu, 14 Mar 2024 07:39:56 -0700 Subject: [PATCH 061/184] Fix typos in OTel doc (#11081) --- docs/user-guide/third-party-addons/opentelemetry.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/user-guide/third-party-addons/opentelemetry.md b/docs/user-guide/third-party-addons/opentelemetry.md index d735fca4f..e681e1c69 100644 --- a/docs/user-guide/third-party-addons/opentelemetry.md +++ b/docs/user-guide/third-party-addons/opentelemetry.md @@ -279,10 +279,10 @@ for common annotations and configurations: ### Annotations -| Legacy | OpenTelemetry | -|--------------------------------------------------|--------------------------------------------------| -| `nginx.ingress.kubernetes.io/enable-opentracing` | `nginx.ingress.kubernetes.io/enable-opentelemetry` | -| `opentracing-trust-incoming-span` | `opentracing-trust-incoming-span` | +| Legacy | OpenTelemetry | +|---------------------------------------------------------------|-----------------------------------------------------------------| +| `nginx.ingress.kubernetes.io/enable-opentracing` | `nginx.ingress.kubernetes.io/enable-opentelemetry` | +| `nginx.ingress.kubernetes.io/opentracing-trust-incoming-span` | `nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span` | ### Configs From 56a0968675d8ed2599bf9ae96c82b0a64f4dbb3d Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Sun, 17 Mar 2024 22:27:27 +0100 Subject: [PATCH 062/184] Chart: Add IngressClass aliases. (#11109) --- charts/ingress-nginx/README.md | 3 +- .../controller-ingressclass-aliases.yaml | 20 ++++ .../controller-ingressclass-aliases_test.yaml | 92 +++++++++++++++++++ charts/ingress-nginx/values.yaml | 7 ++ 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml create mode 100644 charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index faab94c2d..1f912ea09 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -330,7 +330,8 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.image.tag | string | `"v1.10.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 | object | `{"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | +| controller.ingressClassResource | object | `{"aliases":[],"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | +| controller.ingressClassResource.aliases | list | `[]` | Aliases of this IngressClass. Creates copies with identical settings but the respective alias as name. Useful for development environments with only one Ingress Controller but production-like Ingress resources. `default` gets enabled on the original IngressClass only. | | controller.ingressClassResource.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value. This value is also being set as the `--controller-class` argument of this Ingress Controller. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class | | controller.ingressClassResource.default | bool | `false` | If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation. Ingress creation gets rejected if there are multiple default IngressClasses. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class | | controller.ingressClassResource.enabled | bool | `true` | Create the IngressClass or not | diff --git a/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml b/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml new file mode 100644 index 000000000..b4b20690e --- /dev/null +++ b/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml @@ -0,0 +1,20 @@ +{{- if .Values.controller.ingressClassResource.enabled -}} +{{- range .Values.controller.ingressClassResource.aliases }} +--- +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + labels: + {{- include "ingress-nginx.labels" $ | nindent 4 }} + app.kubernetes.io/component: controller + {{- with $.Values.controller.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + name: {{ . }} +spec: + controller: {{ $.Values.controller.ingressClassResource.controllerValue }} + {{- with $.Values.controller.ingressClassResource.parameters }} + parameters: {{ toYaml . | nindent 4 }} + {{- end }} +{{- end }} +{{- end }} diff --git a/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml b/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml new file mode 100644 index 000000000..ef0780d9c --- /dev/null +++ b/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml @@ -0,0 +1,92 @@ +suite: Controller > IngressClass > Aliases +templates: + - controller-ingressclass-aliases.yaml + +tests: + - it: should not create IngressClass aliases + asserts: + - hasDocuments: + count: 0 + + - it: should create an IngressClass alias with name "nginx-alias" if `controller.ingressClassResource.aliases` is set + set: + controller.ingressClassResource.aliases: + - nginx-alias + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-alias + + - it: should create an IngressClass alias without annotation `ingressclass.kubernetes.io/is-default-class` if `controller.ingressClassResource.default` is true + set: + controller.ingressClassResource.aliases: + - nginx-alias + controller.ingressClassResource.default: true + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-alias + - notExists: + path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"] + + - it: should create an IngressClass alias with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" + set: + controller.ingressClassResource.aliases: + - nginx-alias + controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-alias + - equal: + path: spec.controller + value: k8s.io/ingress-nginx-internal + + - it: should create an IngressClass alias with parameters if `controller.ingressClassResource.parameters` is set + set: + controller.ingressClassResource.aliases: + - nginx-alias + controller.ingressClassResource.parameters: + apiGroup: k8s.example.com + kind: IngressParameters + name: external-lb + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-alias + - equal: + path: spec.parameters + value: + apiGroup: k8s.example.com + kind: IngressParameters + name: external-lb + + - it: should create two IngressClass aliases if `controller.ingressClassResource.aliases` has two elements + set: + controller.ingressClassResource.aliases: + - nginx-alias-1 + - nginx-alias-2 + asserts: + - hasDocuments: + count: 2 + - isKind: + of: IngressClass + - matchRegex: + path: metadata.name + pattern: nginx-alias-(1|2) diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 50f958562..5be9519df 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -126,6 +126,13 @@ controller: # This value is also being set as the `--controller-class` argument of this Ingress Controller. # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class controllerValue: k8s.io/ingress-nginx + # -- Aliases of this IngressClass. Creates copies with identical settings but the respective alias as name. + # Useful for development environments with only one Ingress Controller but production-like Ingress resources. + # `default` gets enabled on the original IngressClass only. + aliases: [] + # aliases: + # - nginx-alias-1 + # - nginx-alias-2 # -- A link to a custom resource containing additional configuration for the controller. # This is optional if the controller consuming this IngressClass does not require additional parameters. # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class From d49f114af3bb758b98e93ce0445d83f3d76a6366 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 04:45:18 -0700 Subject: [PATCH 063/184] Bump the all group with 1 update (#11134) Bumps the all group with 1 update: [k8s.io/component-base](https://github.com/kubernetes/component-base). Updates `k8s.io/component-base` from 0.29.2 to 0.29.3 - [Commits](https://github.com/kubernetes/component-base/compare/v0.29.2...v0.29.3) --- updated-dependencies: - dependency-name: k8s.io/component-base dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 6e3723b15..960df0c20 100644 --- a/go.mod +++ b/go.mod @@ -30,14 +30,14 @@ require ( google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 - k8s.io/api v0.29.2 + k8s.io/api v0.29.3 k8s.io/apiextensions-apiserver v0.29.2 - k8s.io/apimachinery v0.29.2 + k8s.io/apimachinery v0.29.3 k8s.io/apiserver v0.29.2 k8s.io/cli-runtime v0.29.2 - k8s.io/client-go v0.29.2 + k8s.io/client-go v0.29.3 k8s.io/code-generator v0.29.2 - k8s.io/component-base v0.29.2 + k8s.io/component-base v0.29.3 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 sigs.k8s.io/controller-runtime v0.17.2 @@ -67,7 +67,7 @@ require ( github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/gnostic-models v0.6.8 // indirect diff --git a/go.sum b/go.sum index 5a40ced85..0b21a7cc5 100644 --- a/go.sum +++ b/go.sum @@ -154,8 +154,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 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/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 h1:k4Tw0nt6lwro3Uin8eqoET7MDA4JnT8YgbCjc/g5E3k= github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= @@ -740,22 +740,22 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= -k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= +k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= +k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg= k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8= -k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= k8s.io/apiserver v0.29.2 h1:+Z9S0dSNr+CjnVXQePG8TcBWHr3Q7BmAr7NraHvsMiQ= k8s.io/apiserver v0.29.2/go.mod h1:B0LieKVoyU7ykQvPFm7XSdIHaCHSzCzQWPFa5bqbeMQ= k8s.io/cli-runtime v0.29.2 h1:smfsOcT4QujeghsNjECKN3lwyX9AwcFU0nvJ7sFN3ro= k8s.io/cli-runtime v0.29.2/go.mod h1:KLisYYfoqeNfO+MkTWvpqIyb1wpJmmFJhioA0xd4MW8= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= +k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= k8s.io/code-generator v0.29.2 h1:c9/iw2KnNpw2IRV+wwuG/Wns2TjPSgjWzbbjTevyiHI= k8s.io/code-generator v0.29.2/go.mod h1:FwFi3C9jCrmbPjekhaCYcYG1n07CYiW1+PAPCockaos= -k8s.io/component-base v0.29.2 h1:lpiLyuvPA9yV1aQwGLENYyK7n/8t6l3nn3zAtFTJYe8= -k8s.io/component-base v0.29.2/go.mod h1:BfB3SLrefbZXiBfbM+2H1dlat21Uewg/5qtKOl8degM= +k8s.io/component-base v0.29.3 h1:Oq9/nddUxlnrCuuR2K/jp6aflVvc0uDvxMzAWxnGzAo= +k8s.io/component-base v0.29.3/go.mod h1:Yuj33XXjuOk2BAaHsIGHhCKZQAgYKhqIxIjIr2UXYio= k8s.io/gengo v0.0.0-20240226174109-00c4be8627da h1:uH7pylUCo++9PSvrUA34sbk4Y6PHw/bgEFa80pejI+I= k8s.io/gengo v0.0.0-20240226174109-00c4be8627da/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= From 9d251d955ef50aef4549598b0a68fb9525624623 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 07:00:00 -0700 Subject: [PATCH 064/184] Bump the all group with 4 updates (#11133) Bumps the all group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [docker/login-action](https://github.com/docker/login-action) and [github/codeql-action](https://github.com/github/codeql-action). Updates `actions/checkout` from 4.1.1 to 4.1.2 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/b4ffde65f46336ab88eb53be808477a3936bae11...9bb56186c3b09b4f86b1c65136769dd318469633) Updates `docker/setup-buildx-action` from 3.1.0 to 3.2.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/0d103c3126aa41d772a8362f6aa67afac040f80c...2b51285047da1547ffb1b2203d8be4c0af6b1f20) Updates `docker/login-action` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/343f7c4344506bcbf9b4de18042ae17996df046d...e92390c5fb421da1463c202d546fed0ec5c39f20) Updates `github/codeql-action` from 3.24.6 to 3.24.7 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/8a470fddafa5cbb6266ee11b37ef4d8aae19c571...3ab4101902695724f9365a384f86c1074d94e18c) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 10 +++++----- .github/workflows/depreview.yaml | 2 +- .github/workflows/docs.yaml | 4 ++-- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/helm.yaml | 4 ++-- .github/workflows/images.yaml | 12 ++++++------ .github/workflows/perftest.yaml | 2 +- .github/workflows/plugin.yaml | 2 +- .github/workflows/scorecards.yml | 4 ++-- .github/workflows/vulnerability-scans.yaml | 6 +++--- .github/workflows/zz-tmpl-images.yaml | 8 ++++---- .github/workflows/zz-tmpl-k8s-e2e.yaml | 2 +- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 266565578..a033bbfa9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -77,7 +77,7 @@ jobs: (needs.changes.outputs.go == 'true') steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -105,7 +105,7 @@ jobs: PLATFORMS: linux/amd64 steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Get go version id: golangversion @@ -124,7 +124,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c # v3.1.0 + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 with: version: latest @@ -183,7 +183,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Setup Go uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index eadf099b3..6d9f9dc8f 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -9,6 +9,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: 'Dependency Review' uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index d37c1f3bf..d6182ec9c 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Deploy uses: ./.github/actions/mkdocs diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index b5ad3c93c..d287061d5 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 1a7eb4334..da86a36f0 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Run Artifact Hub lint run: | @@ -61,7 +61,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 5effdee82..e5684ba79 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -41,7 +41,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -144,7 +144,7 @@ jobs: k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0, v1.29.0] steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -178,7 +178,7 @@ jobs: nginx: ['1.25.3', '1.21.6'] steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: image build run: | cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build @@ -195,17 +195,17 @@ jobs: PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c # v3.1.0 + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 with: version: latest platforms: ${{ env.PLATFORMS }} - name: Login to GitHub Container Registry - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/perftest.yaml b/.github/workflows/perftest.yaml index 7f62fedf4..3650e7263 100644 --- a/.github/workflows/perftest.yaml +++ b/.github/workflows/perftest.yaml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Install K6 run: | diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index 6f4804d6f..a074eaa5b 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: fetch-depth: 0 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 79996ca2f..43c63c733 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -27,7 +27,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: persist-credentials: false @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6 + uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 5d37ecbf8..13131d633 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -22,7 +22,7 @@ jobs: versions: ${{ steps.version.outputs.TAGS }} steps: - name: Checkout code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: fetch-depth: 0 @@ -52,7 +52,7 @@ jobs: versions: ${{ fromJSON(needs.version.outputs.versions) }} steps: - name: Checkout code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - shell: bash id: test @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6 + uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index 45f5d9184..e8fa4f472 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -48,7 +48,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Build run: | @@ -67,10 +67,10 @@ jobs: PLATFORMS: ${{ inputs.platforms-publish }} steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: Login to GitHub Container Registry - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index 3a8916049..ad03bf0a1 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: cache uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 From 3c4e78e6b755eb33821c4477106f424bd8792d8f Mon Sep 17 00:00:00 2001 From: Matheus Fidelis Date: Tue, 19 Mar 2024 11:32:15 -0300 Subject: [PATCH 065/184] feature(geoip2_autoreload): Enable GeoIP2 auto_reload config (#11079) * feature(geoip2_autoreload): GeoIP Autoreload feature(geoip2_autoreload): fix lint feature(geoip2_autoreload): changing flag interval feature(geoip2_autoreload): tests - up and running feature(geoip2_autoreload): tests - up and running feature(geoip2): testing feature(geoip2): remove typo feature(geoip2_autoreload): fixing tests * feature(geoip2_autoreload): working * feature(geoip2_autoreload): including tests on geoip2 test file --- .../nginx-configuration/configmap.md | 7 +++ internal/ingress/controller/config/config.go | 5 ++ rootfs/etc/nginx/template/nginx.tmpl | 24 ++++++++++ test/e2e/settings/geoip2.go | 48 +++++++++++++++++++ 4 files changed, 84 insertions(+) diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 75971b9a5..ff23196a4 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -101,6 +101,7 @@ The following table shows a configuration option's name, type, and the default v |[use-gzip](#use-gzip)|bool|"false"|| |[use-geoip](#use-geoip)|bool|"true"|| |[use-geoip2](#use-geoip2)|bool|"false"|| +|[geoip2-autoreload-in-minutes](#geoip2-autoreload-in-minutes)|int|"0"|| |[enable-brotli](#enable-brotli)|bool|"false"|| |[brotli-level](#brotli-level)|int|4|| |[brotli-min-length](#brotli-min-length)|int|20|| @@ -737,6 +738,12 @@ Alternatively, it is possible to use a volume to mount the files `/etc/nginx/geo _**default:**_ false +## geoip2-autoreload-in-minutes + +Enables the [geoip2 module](https://github.com/leev/ngx_http_geoip2_module) autoreload in MaxMind databases setting the interval in minutes. + +_**default:**_ 0 + ## enable-brotli Enables or disables compression of HTTP responses using the ["brotli" module](https://github.com/google/ngx_brotli). diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index bad82b8b0..12bbb662a 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -436,6 +436,10 @@ type Configuration struct { // By default this is disabled UseGeoIP2 bool `json:"use-geoip2,omitempty"` + // GeoIP2AutoReloadMinutes enables autoreload on geoip2 setting the interval in minutes + // By default this is disabled using 0 + GeoIP2AutoReloadMinutes int `json:"geoip2-autoreload-in-minutes,omitempty"` + // Enables or disables the use of the NGINX Brotli Module for compression // https://github.com/google/ngx_brotli EnableBrotli bool `json:"enable-brotli,omitempty"` @@ -841,6 +845,7 @@ func NewDefault() Configuration { EnableAioWrite: true, UseGzip: false, UseGeoIP2: false, + GeoIP2AutoReloadMinutes: 0, WorkerProcesses: strconv.Itoa(runtime.NumCPU()), WorkerShutdownTimeout: "240s", VariablesHashBucketSize: 256, diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index d58be2880..d5172ff3f 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -172,6 +172,9 @@ http { {{ range $index, $file := $all.MaxmindEditionFiles }} {{ if eq $file "GeoLite2-Country.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoLite2-Country.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_country_code source=$remote_addr country iso_code; $geoip2_country_name source=$remote_addr country names en; $geoip2_country_geoname_id source=$remote_addr country geoname_id; @@ -183,6 +186,9 @@ http { {{ if eq $file "GeoIP2-Country.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoIP2-Country.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_country_code source=$remote_addr country iso_code; $geoip2_country_name source=$remote_addr country names en; $geoip2_country_geoname_id source=$remote_addr country geoname_id; @@ -194,6 +200,9 @@ http { {{ if eq $file "GeoLite2-City.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoLite2-City.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_city_country_code source=$remote_addr country iso_code; $geoip2_city_country_name source=$remote_addr country names en; $geoip2_city_country_geoname_id source=$remote_addr country geoname_id; @@ -217,6 +226,9 @@ http { {{ if eq $file "GeoIP2-City.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoIP2-City.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_city_country_code source=$remote_addr country iso_code; $geoip2_city_country_name source=$remote_addr country names en; $geoip2_city_country_geoname_id source=$remote_addr country geoname_id; @@ -240,6 +252,9 @@ http { {{ if eq $file "GeoLite2-ASN.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoLite2-ASN.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_asn source=$remote_addr autonomous_system_number; $geoip2_org source=$remote_addr autonomous_system_organization; } @@ -247,6 +262,9 @@ http { {{ if eq $file "GeoIP2-ASN.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoIP2-ASN.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_asn source=$remote_addr autonomous_system_number; $geoip2_org source=$remote_addr autonomous_system_organization; } @@ -254,6 +272,9 @@ http { {{ if eq $file "GeoIP2-ISP.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoIP2-ISP.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_isp source=$remote_addr isp; $geoip2_isp_org source=$remote_addr organization; $geoip2_asn source=$remote_addr default=0 autonomous_system_number; @@ -268,6 +289,9 @@ http { {{ if eq $file "GeoIP2-Anonymous-IP.mmdb" }} geoip2 /etc/ingress-controller/geoip/GeoIP2-Anonymous-IP.mmdb { + {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} + auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; + {{ end }} $geoip2_is_anon source=$remote_addr is_anonymous; $geoip2_is_anonymous source=$remote_addr default=0 is_anonymous; $geoip2_is_anonymous_vpn source=$remote_addr default=0 is_anonymous_vpn; diff --git a/test/e2e/settings/geoip2.go b/test/e2e/settings/geoip2.go index 7da26d810..064863734 100644 --- a/test/e2e/settings/geoip2.go +++ b/test/e2e/settings/geoip2.go @@ -124,4 +124,52 @@ var _ = framework.DescribeSetting("Geoip2", func() { Expect(). Status(http.StatusOK) }) + + ginkgo.It("should up and running nginx controller using autoreload flag", func() { + edition := "GeoLite2-Country" + + err := f.UpdateIngressControllerDeployment(func(deployment *appsv1.Deployment) error { + args := deployment.Spec.Template.Spec.Containers[0].Args + args = append(args, "--maxmind-edition-ids="+edition) + deployment.Spec.Template.Spec.Containers[0].Args = args + _, err := f.KubeClientSet.AppsV1().Deployments(f.Namespace).Update(context.TODO(), deployment, metav1.UpdateOptions{}) + return err + }) + assert.Nil(ginkgo.GinkgoT(), err, "updating ingress controller deployment flags") + + filename := fmt.Sprintf("/etc/ingress-controller/geoip/%s.mmdb", edition) + exec, err := f.ExecIngressPod(fmt.Sprintf(`sh -c "mkdir -p '%s' && wget -O '%s' '%s' 2>&1"`, filepath.Dir(filename), filename, testdataURL)) + framework.Logf(exec) + assert.Nil(ginkgo.GinkgoT(), err, fmt.Sprintln("error downloading test geoip2 db", filename)) + + f.SetNginxConfigMapData(map[string]string{ + "use-geoip2": "true", + "geoip2-autoreload-in-minutes": "5", + }) + + // Check Configmap Autoreload Patterns + f.WaitForNginxConfiguration( + func(cfg string) bool { + return strings.Contains(cfg, fmt.Sprintf("geoip2 %s", filename)) && + strings.Contains(cfg, "auto_reload 5m;") + }, + ) + + // Check if Nginx could up, running and routing with auto_reload configs + host := "ping.com" + ing := framework.NewSingleIngress(host, "/", host, f.Namespace, framework.EchoService, 80, nil) + f.EnsureIngress(ing) + + f.WaitForNginxServer(host, + func(server string) bool { + return strings.Contains(server, host) && + strings.Contains(server, "location /") + }) + + f.HTTPTestClient(). + GET("/"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + }) }) From c25b80ca0067f0d4adf9dd879d2477d4830bff0f Mon Sep 17 00:00:00 2001 From: dVerhees <30548963+dVerhees@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:28:24 +0100 Subject: [PATCH 066/184] fix geoip2 configuration docs (#11150) --- docs/user-guide/nginx-configuration/configmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index ff23196a4..849bbe807 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -731,7 +731,7 @@ _**default:**_ true Enables the [geoip2 module](https://github.com/leev/ngx_http_geoip2_module) for NGINX. Since `0.27.0` and due to a [change in the MaxMind databases](https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases) a license is required to have access to the databases. For this reason, it is required to define a new flag `--maxmind-license-key` in the ingress controller deployment to download the databases needed during the initialization of the ingress controller. -Alternatively, it is possible to use a volume to mount the files `/etc/nginx/geoip/GeoLite2-City.mmdb` and `/etc/nginx/geoip/GeoLite2-ASN.mmdb`, avoiding the overhead of the download. +Alternatively, it is possible to use a volume to mount the files `/etc/ingress-controller/geoip/GeoLite2-City.mmdb` and `/etc/ingress-controller/geoip/GeoLite2-ASN.mmdb`, avoiding the overhead of the download. !!! important If the feature is enabled but the files are missing, GeoIP2 will not be enabled. From c0b3294bf47c00df66dc545048f550cc87f9db15 Mon Sep 17 00:00:00 2001 From: Ramon Borges Date: Sun, 24 Mar 2024 23:07:28 +0100 Subject: [PATCH 067/184] Add GRPC Buffer Size to the Configmap (#11155) * feat: add grpc buffer size in the nginx template * feat: add grpc buffer size in the configmap struct * feat: add test for GRCP buffer size configuration in the configmap * chore: add documentation for the grcp buffer size configuration * fix: fix the copyright year of the test * fix: fix import order * fix: fix ignore for the linter - reason was missing * chore: seems like we don't need to ignore the error handling --- .../nginx-configuration/configmap.md | 426 +++++++++--------- internal/ingress/controller/config/config.go | 9 +- rootfs/etc/nginx/template/nginx.tmpl | 4 + test/e2e/settings/grpc.go | 110 +++++ 4 files changed, 338 insertions(+), 211 deletions(-) create mode 100644 test/e2e/settings/grpc.go diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 849bbe807..9dad331f1 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -25,215 +25,216 @@ data: The following table shows a configuration option's name, type, and the default value: -|name|type|default|notes| -|:---|:---|:------|:----| -|[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|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|| -|[access-log-params](#access-log-params)|string|""|| -|[access-log-path](#access-log-path)|string|"/var/log/nginx/access.log"|| -|[http-access-log-path](#http-access-log-path)|string|""|| -|[stream-access-log-path](#stream-access-log-path)|string|""|| -|[enable-access-log-for-default-backend](#enable-access-log-for-default-backend)|bool|"false"|| -|[error-log-path](#error-log-path)|string|"/var/log/nginx/error.log"|| -|[enable-modsecurity](#enable-modsecurity)|bool|"false"|| -|[modsecurity-snippet](#modsecurity-snippet)|string|""|| -|[enable-owasp-modsecurity-crs](#enable-owasp-modsecurity-crs)|bool|"false"|| -|[client-header-buffer-size](#client-header-buffer-size)|string|"1k"|| -|[client-header-timeout](#client-header-timeout)|int|60|| -|[client-body-buffer-size](#client-body-buffer-size)|string|"8k"|| -|[client-body-timeout](#client-body-timeout)|int|60|| -|[disable-access-log](#disable-access-log)|bool|false|| -|[disable-ipv6](#disable-ipv6)|bool|false|| -|[disable-ipv6-dns](#disable-ipv6-dns)|bool|false|| -|[enable-underscores-in-headers](#enable-underscores-in-headers)|bool|false|| -|[enable-ocsp](#enable-ocsp)|bool|false|| -|[ignore-invalid-headers](#ignore-invalid-headers)|bool|true|| -|[retry-non-idempotent](#retry-non-idempotent)|bool|"false"|| -|[error-log-level](#error-log-level)|string|"notice"|| -|[http2-max-field-size](#http2-max-field-size)|string|""|DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers)| -|[http2-max-header-size](#http2-max-header-size)|string|""|DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers)| -|[http2-max-requests](#http2-max-requests)|int|0|DEPRECATED in favour of [keepalive_requests](#keepalive-requests)| -|[http2-max-concurrent-streams](#http2-max-concurrent-streams)|int|128|| -|[hsts](#hsts)|bool|"true"|| -|[hsts-include-subdomains](#hsts-include-subdomains)|bool|"true"|| -|[hsts-max-age](#hsts-max-age)|string|"31536000"|| -|[hsts-preload](#hsts-preload)|bool|"false"|| -|[keep-alive](#keep-alive)|int|75|| -|[keep-alive-requests](#keep-alive-requests)|int|1000|| -|[large-client-header-buffers](#large-client-header-buffers)|string|"4 8k"|| -|[log-format-escape-none](#log-format-escape-none)|bool|"false"|| -|[log-format-escape-json](#log-format-escape-json)|bool|"false"|| -|[log-format-upstream](#log-format-upstream)|string|`$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id`|| -|[log-format-stream](#log-format-stream)|string|`[$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time`|| -|[enable-multi-accept](#enable-multi-accept)|bool|"true"|| -|[max-worker-connections](#max-worker-connections)|int|16384|| -|[max-worker-open-files](#max-worker-open-files)|int|0|| -|[map-hash-bucket-size](#max-hash-bucket-size)|int|64|| -|[nginx-status-ipv4-whitelist](#nginx-status-ipv4-whitelist)|[]string|"127.0.0.1"|| -|[nginx-status-ipv6-whitelist](#nginx-status-ipv6-whitelist)|[]string|"::1"|| -|[proxy-real-ip-cidr](#proxy-real-ip-cidr)|[]string|"0.0.0.0/0"|| -|[proxy-set-headers](#proxy-set-headers)|string|""|| -|[server-name-hash-max-size](#server-name-hash-max-size)|int|1024|| -|[server-name-hash-bucket-size](#server-name-hash-bucket-size)|int|``| -|[proxy-headers-hash-max-size](#proxy-headers-hash-max-size)|int|512|| -|[proxy-headers-hash-bucket-size](#proxy-headers-hash-bucket-size)|int|64|| -|[plugins](#plugins)|[]string| || -|[reuse-port](#reuse-port)|bool|"true"|| -|[server-tokens](#server-tokens)|bool|"false"|| -|[ssl-ciphers](#ssl-ciphers)|string|"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"|| -|[ssl-ecdh-curve](#ssl-ecdh-curve)|string|"auto"|| -|[ssl-dh-param](#ssl-dh-param)|string|""|| -|[ssl-protocols](#ssl-protocols)|string|"TLSv1.2 TLSv1.3"|| -|[ssl-session-cache](#ssl-session-cache)|bool|"true"|| -|[ssl-session-cache-size](#ssl-session-cache-size)|string|"10m"|| -|[ssl-session-tickets](#ssl-session-tickets)|bool|"false"|| -|[ssl-session-ticket-key](#ssl-session-ticket-key)|string|``| -|[ssl-session-timeout](#ssl-session-timeout)|string|"10m"|| -|[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"|| -|[geoip2-autoreload-in-minutes](#geoip2-autoreload-in-minutes)|int|"0"|| -|[enable-brotli](#enable-brotli)|bool|"false"|| -|[brotli-level](#brotli-level)|int|4|| -|[brotli-min-length](#brotli-min-length)|int|20|| -|[brotli-types](#brotli-types)|string|"application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component"|| -|[use-http2](#use-http2)|bool|"true"|| -|[gzip-disable](#gzip-disable)|string|""|| -|[gzip-level](#gzip-level)|int|1|| -|[gzip-min-length](#gzip-min-length)|int|256|| -|[gzip-types](#gzip-types)|string|"application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component"|| -|[worker-processes](#worker-processes)|string|``|| -|[worker-cpu-affinity](#worker-cpu-affinity)|string|""|| -|[worker-shutdown-timeout](#worker-shutdown-timeout)|string|"240s"|| -|[load-balance](#load-balance)|string|"round_robin"|| -|[variables-hash-bucket-size](#variables-hash-bucket-size)|int|128|| -|[variables-hash-max-size](#variables-hash-max-size)|int|2048|| -|[upstream-keepalive-connections](#upstream-keepalive-connections)|int|320|| -|[upstream-keepalive-time](#upstream-keepalive-time)|string|"1h"|| -|[upstream-keepalive-timeout](#upstream-keepalive-timeout)|int|60|| -|[upstream-keepalive-requests](#upstream-keepalive-requests)|int|10000|| -|[limit-conn-zone-variable](#limit-conn-zone-variable)|string|"$binary_remote_addr"|| -|[proxy-stream-timeout](#proxy-stream-timeout)|string|"600s"|| -|[proxy-stream-next-upstream](#proxy-stream-next-upstream)|bool|"true"|| -|[proxy-stream-next-upstream-timeout](#proxy-stream-next-upstream-timeout)|string|"600s"|| -|[proxy-stream-next-upstream-tries](#proxy-stream-next-upstream-tries)|int|3|| -|[proxy-stream-responses](#proxy-stream-responses)|int|1|| -|[bind-address](#bind-address)|[]string|""|| -|[use-forwarded-headers](#use-forwarded-headers)|bool|"false"|| -|[enable-real-ip](#enable-real-ip)|bool|"false"|| -|[forwarded-for-header](#forwarded-for-header)|string|"X-Forwarded-For"|| -|[compute-full-forwarded-for](#compute-full-forwarded-for)|bool|"false"|| -|[proxy-add-original-uri-header](#proxy-add-original-uri-header)|bool|"false"|| -|[generate-request-id](#generate-request-id)|bool|"true"|| -|[enable-opentracing](#enable-opentracing)|bool|"false"|| -|[opentracing-operation-name](#opentracing-operation-name)|string|""|| -|[opentracing-location-operation-name](#opentracing-location-operation-name)|string|""|| -|[zipkin-collector-host](#zipkin-collector-host)|string|""|| -|[zipkin-collector-port](#zipkin-collector-port)|int|9411|| -|[zipkin-service-name](#zipkin-service-name)|string|"nginx"|| -|[zipkin-sample-rate](#zipkin-sample-rate)|float|1.0|| -|[jaeger-collector-host](#jaeger-collector-host)|string|""|| -|[jaeger-collector-port](#jaeger-collector-port)|int|6831|| -|[jaeger-endpoint](#jaeger-endpoint)|string|""|| -|[jaeger-service-name](#jaeger-service-name)|string|"nginx"|| -|[jaeger-propagation-format](#jaeger-propagation-format)|string|"jaeger"|| -|[jaeger-sampler-type](#jaeger-sampler-type)|string|"const"|| -|[jaeger-sampler-param](#jaeger-sampler-param)|string|"1"|| -|[jaeger-sampler-host](#jaeger-sampler-host)|string|"http://127.0.0.1"|| -|[jaeger-sampler-port](#jaeger-sampler-port)|int|5778|| -|[jaeger-trace-context-header-name](#jaeger-trace-context-header-name)|string|uber-trace-id|| -|[jaeger-debug-header](#jaeger-debug-header)|string|uber-debug-id|| -|[jaeger-baggage-header](#jaeger-baggage-header)|string|jaeger-baggage|| -|[jaeger-trace-baggage-header-prefix](#jaeger-trace-baggage-header-prefix)|string|uberctx-|| -|[datadog-collector-host](#datadog-collector-host)|string|""|| -|[datadog-collector-port](#datadog-collector-port)|int|8126|| -|[datadog-service-name](#datadog-service-name)|string|"nginx"|| -|[datadog-environment](#datadog-environment)|string|"prod"|| -|[datadog-operation-name-override](#datadog-operation-name-override)|string|"nginx.handle"|| -|[datadog-priority-sampling](#datadog-priority-sampling)|bool|"true"|| -|[datadog-sample-rate](#datadog-sample-rate)|float|1.0|| -|[enable-opentelemetry](#enable-opentelemetry)|bool|"false"|| -|[opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-span)|bool|"true"|| -|[opentelemetry-operation-name](#opentelemetry-operation-name)|string|""|| -|[opentelemetry-config](#/etc/nginx/opentelemetry.toml)|string|"/etc/nginx/opentelemetry.toml"|| -|[otlp-collector-host](#otlp-collector-host)|string|""|| -|[otlp-collector-port](#otlp-collector-port)|int|4317|| -|[otel-max-queuesize](#otel-max-queuesize)|int||| -|[otel-schedule-delay-millis](#otel-schedule-delay-millis)|int||| -|[otel-max-export-batch-size](#otel-max-export-batch-size)|int||| -|[otel-service-name](#otel-service-name)|string|"nginx"|| -|[otel-sampler](#otel-sampler)|string|"AlwaysOff"|| -|[otel-sampler-parent-based](#otel-sampler-parent-based)|bool|"false"|| -|[otel-sampler-ratio](#otel-sampler-ratio)|float|0.01|| -|[main-snippet](#main-snippet)|string|""|| -|[http-snippet](#http-snippet)|string|""|| -|[server-snippet](#server-snippet)|string|""|| -|[stream-snippet](#stream-snippet)|string|""|| -|[location-snippet](#location-snippet)|string|""|| -|[custom-http-errors](#custom-http-errors)|[]int|[]int{}|| -|[proxy-body-size](#proxy-body-size)|string|"1m"|| -|[proxy-connect-timeout](#proxy-connect-timeout)|int|5|| -|[proxy-read-timeout](#proxy-read-timeout)|int|60|| -|[proxy-send-timeout](#proxy-send-timeout)|int|60|| -|[proxy-buffers-number](#proxy-buffers-number)|int|4|| -|[proxy-buffer-size](#proxy-buffer-size)|string|"4k"|| -|[proxy-cookie-path](#proxy-cookie-path)|string|"off"|| -|[proxy-cookie-domain](#proxy-cookie-domain)|string|"off"|| -|[proxy-next-upstream](#proxy-next-upstream)|string|"error timeout"|| -|[proxy-next-upstream-timeout](#proxy-next-upstream-timeout)|int|0|| -|[proxy-next-upstream-tries](#proxy-next-upstream-tries)|int|3|| -|[proxy-redirect-from](#proxy-redirect-from)|string|"off"|| -|[proxy-request-buffering](#proxy-request-buffering)|string|"on"|| -|[ssl-redirect](#ssl-redirect)|bool|"true"|| -|[force-ssl-redirect](#force-ssl-redirect)|bool|"false"|| -|[denylist-source-range](#denylist-source-range)|[]string|[]string{}|| -|[whitelist-source-range](#whitelist-source-range)|[]string|[]string{}|| -|[skip-access-log-urls](#skip-access-log-urls)|[]string|[]string{}|| -|[limit-rate](#limit-rate)|int|0|| -|[limit-rate-after](#limit-rate-after)|int|0|| -|[lua-shared-dicts](#lua-shared-dicts)|string|""|| -|[http-redirect-code](#http-redirect-code)|int|308|| -|[proxy-buffering](#proxy-buffering)|string|"off"|| -|[limit-req-status-code](#limit-req-status-code)|int|503|| -|[limit-conn-status-code](#limit-conn-status-code)|int|503|| -|[enable-syslog](#enable-syslog)|bool|false|| -|[syslog-host](#syslog-host)|string|""|| -|[syslog-port](#syslog-port)|int|514|| -|[no-tls-redirect-locations](#no-tls-redirect-locations)|string|"/.well-known/acme-challenge"|| -|[global-auth-url](#global-auth-url)|string|""|| -|[global-auth-method](#global-auth-method)|string|""|| -|[global-auth-signin](#global-auth-signin)|string|""|| -|[global-auth-signin-redirect-param](#global-auth-signin-redirect-param)|string|"rd"|| -|[global-auth-response-headers](#global-auth-response-headers)|string|""|| -|[global-auth-request-redirect](#global-auth-request-redirect)|string|""|| -|[global-auth-snippet](#global-auth-snippet)|string|""|| -|[global-auth-cache-key](#global-auth-cache-key)|string|""|| -|[global-auth-cache-duration](#global-auth-cache-duration)|string|"200 202 401 5m"|| -|[no-auth-locations](#no-auth-locations)|string|"/.well-known/acme-challenge"|| -|[block-cidrs](#block-cidrs)|[]string|""|| -|[block-user-agents](#block-user-agents)|[]string|""|| -|[block-referers](#block-referers)|[]string|""|| -|[proxy-ssl-location-only](#proxy-ssl-location-only)|bool|"false"|| -|[default-type](#default-type)|string|"text/html"|| -|[global-rate-limit-memcached-host](#global-rate-limit)|string|""|| -|[global-rate-limit-memcached-port](#global-rate-limit)|int|11211|| -|[global-rate-limit-memcached-connect-timeout](#global-rate-limit)|int|50|| -|[global-rate-limit-memcached-max-idle-timeout](#global-rate-limit)|int|10000|| -|[global-rate-limit-memcached-pool-size](#global-rate-limit)|int|50|| -|[global-rate-limit-status-code](#global-rate-limit)|int|429|| -|[service-upstream](#service-upstream)|bool|"false"|| -|[ssl-reject-handshake](#ssl-reject-handshake)|bool|"false"|| -|[debug-connections](#debug-connections)|[]string|"127.0.0.1,1.1.1.1/24"|| -|[strict-validate-path-type](#strict-validate-path-type)|bool|"false" (v1.7.x)|| +|name| type | default |notes| +|:---|:-------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----| +|[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 | 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 || +|[access-log-params](#access-log-params)| string | "" || +|[access-log-path](#access-log-path)| string | "/var/log/nginx/access.log" || +|[http-access-log-path](#http-access-log-path)| string | "" || +|[stream-access-log-path](#stream-access-log-path)| string | "" || +|[enable-access-log-for-default-backend](#enable-access-log-for-default-backend)| bool | "false" || +|[error-log-path](#error-log-path)| string | "/var/log/nginx/error.log" || +|[enable-modsecurity](#enable-modsecurity)| bool | "false" || +|[modsecurity-snippet](#modsecurity-snippet)| string | "" || +|[enable-owasp-modsecurity-crs](#enable-owasp-modsecurity-crs)| bool | "false" || +|[client-header-buffer-size](#client-header-buffer-size)| string | "1k" || +|[client-header-timeout](#client-header-timeout)| int | 60 || +|[client-body-buffer-size](#client-body-buffer-size)| string | "8k" || +|[client-body-timeout](#client-body-timeout)| int | 60 || +|[disable-access-log](#disable-access-log)| bool | false || +|[disable-ipv6](#disable-ipv6)| bool | false || +|[disable-ipv6-dns](#disable-ipv6-dns)| bool | false || +|[enable-underscores-in-headers](#enable-underscores-in-headers)| bool | false || +|[enable-ocsp](#enable-ocsp)| bool | false || +|[ignore-invalid-headers](#ignore-invalid-headers)| bool | true || +|[retry-non-idempotent](#retry-non-idempotent)| bool | "false" || +|[error-log-level](#error-log-level)| string | "notice" || +|[http2-max-field-size](#http2-max-field-size)| string | "" |DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers)| +|[http2-max-header-size](#http2-max-header-size)| string | "" |DEPRECATED in favour of [large_client_header_buffers](#large-client-header-buffers)| +|[http2-max-requests](#http2-max-requests)| int | 0 |DEPRECATED in favour of [keepalive_requests](#keepalive-requests)| +|[http2-max-concurrent-streams](#http2-max-concurrent-streams)| int | 128 || +|[hsts](#hsts)| bool | "true" || +|[hsts-include-subdomains](#hsts-include-subdomains)| bool | "true" || +|[hsts-max-age](#hsts-max-age)| string | "31536000" || +|[hsts-preload](#hsts-preload)| bool | "false" || +|[keep-alive](#keep-alive)| int | 75 || +|[keep-alive-requests](#keep-alive-requests)| int | 1000 || +|[large-client-header-buffers](#large-client-header-buffers)| string | "4 8k" || +|[log-format-escape-none](#log-format-escape-none)| bool | "false" || +|[log-format-escape-json](#log-format-escape-json)| bool | "false" || +|[log-format-upstream](#log-format-upstream)| string | `$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id` || +|[log-format-stream](#log-format-stream)| string | `[$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time` || +|[enable-multi-accept](#enable-multi-accept)| bool | "true" || +|[max-worker-connections](#max-worker-connections)| int | 16384 || +|[max-worker-open-files](#max-worker-open-files)| int | 0 || +|[map-hash-bucket-size](#max-hash-bucket-size)| int | 64 || +|[nginx-status-ipv4-whitelist](#nginx-status-ipv4-whitelist)| []string | "127.0.0.1" || +|[nginx-status-ipv6-whitelist](#nginx-status-ipv6-whitelist)| []string | "::1" || +|[proxy-real-ip-cidr](#proxy-real-ip-cidr)| []string | "0.0.0.0/0" || +|[proxy-set-headers](#proxy-set-headers)| string | "" || +|[server-name-hash-max-size](#server-name-hash-max-size)| int | 1024 || +|[server-name-hash-bucket-size](#server-name-hash-bucket-size)| int | `` | +|[proxy-headers-hash-max-size](#proxy-headers-hash-max-size)| int | 512 || +|[proxy-headers-hash-bucket-size](#proxy-headers-hash-bucket-size)| int | 64 || +|[plugins](#plugins)| []string | || +|[reuse-port](#reuse-port)| bool | "true" || +|[server-tokens](#server-tokens)| bool | "false" || +|[ssl-ciphers](#ssl-ciphers)| string | "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" || +|[ssl-ecdh-curve](#ssl-ecdh-curve)| string | "auto" || +|[ssl-dh-param](#ssl-dh-param)| string | "" || +|[ssl-protocols](#ssl-protocols)| string | "TLSv1.2 TLSv1.3" || +|[ssl-session-cache](#ssl-session-cache)| bool | "true" || +|[ssl-session-cache-size](#ssl-session-cache-size)| string | "10m" || +|[ssl-session-tickets](#ssl-session-tickets)| bool | "false" || +|[ssl-session-ticket-key](#ssl-session-ticket-key)| string | `` | +|[ssl-session-timeout](#ssl-session-timeout)| string | "10m" || +|[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" || +|[geoip2-autoreload-in-minutes](#geoip2-autoreload-in-minutes)| int | "0" || +|[enable-brotli](#enable-brotli)| bool | "false" || +|[brotli-level](#brotli-level)| int | 4 || +|[brotli-min-length](#brotli-min-length)| int | 20 || +|[brotli-types](#brotli-types)| string | "application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component" || +|[use-http2](#use-http2)| bool | "true" || +|[gzip-disable](#gzip-disable)| string | "" || +|[gzip-level](#gzip-level)| int | 1 || +|[gzip-min-length](#gzip-min-length)| int | 256 || +|[gzip-types](#gzip-types)| string | "application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component" || +|[worker-processes](#worker-processes)| string | `` || +|[worker-cpu-affinity](#worker-cpu-affinity)| string | "" || +|[worker-shutdown-timeout](#worker-shutdown-timeout)| string | "240s" || +|[load-balance](#load-balance)| string | "round_robin" || +|[variables-hash-bucket-size](#variables-hash-bucket-size)| int | 128 || +|[variables-hash-max-size](#variables-hash-max-size)| int | 2048 || +|[upstream-keepalive-connections](#upstream-keepalive-connections)| int | 320 || +|[upstream-keepalive-time](#upstream-keepalive-time)| string | "1h" || +|[upstream-keepalive-timeout](#upstream-keepalive-timeout)| int | 60 || +|[upstream-keepalive-requests](#upstream-keepalive-requests)| int | 10000 || +|[limit-conn-zone-variable](#limit-conn-zone-variable)| string | "$binary_remote_addr" || +|[proxy-stream-timeout](#proxy-stream-timeout)| string | "600s" || +|[proxy-stream-next-upstream](#proxy-stream-next-upstream)| bool | "true" || +|[proxy-stream-next-upstream-timeout](#proxy-stream-next-upstream-timeout)| string | "600s" || +|[proxy-stream-next-upstream-tries](#proxy-stream-next-upstream-tries)| int | 3 || +|[proxy-stream-responses](#proxy-stream-responses)| int | 1 || +|[bind-address](#bind-address)| []string | "" || +|[use-forwarded-headers](#use-forwarded-headers)| bool | "false" || +|[enable-real-ip](#enable-real-ip)| bool | "false" || +|[forwarded-for-header](#forwarded-for-header)| string | "X-Forwarded-For" || +|[compute-full-forwarded-for](#compute-full-forwarded-for)| bool | "false" || +|[proxy-add-original-uri-header](#proxy-add-original-uri-header)| bool | "false" || +|[generate-request-id](#generate-request-id)| bool | "true" || +|[enable-opentracing](#enable-opentracing)| bool | "false" || +|[opentracing-operation-name](#opentracing-operation-name)| string | "" || +|[opentracing-location-operation-name](#opentracing-location-operation-name)| string | "" || +|[zipkin-collector-host](#zipkin-collector-host)| string | "" || +|[zipkin-collector-port](#zipkin-collector-port)| int | 9411 || +|[zipkin-service-name](#zipkin-service-name)| string | "nginx" || +|[zipkin-sample-rate](#zipkin-sample-rate)| float | 1.0 || +|[jaeger-collector-host](#jaeger-collector-host)| string | "" || +|[jaeger-collector-port](#jaeger-collector-port)| int | 6831 || +|[jaeger-endpoint](#jaeger-endpoint)| string | "" || +|[jaeger-service-name](#jaeger-service-name)| string | "nginx" || +|[jaeger-propagation-format](#jaeger-propagation-format)| string | "jaeger" || +|[jaeger-sampler-type](#jaeger-sampler-type)| string | "const" || +|[jaeger-sampler-param](#jaeger-sampler-param)| string | "1" || +|[jaeger-sampler-host](#jaeger-sampler-host)| string | "http://127.0.0.1" || +|[jaeger-sampler-port](#jaeger-sampler-port)| int | 5778 || +|[jaeger-trace-context-header-name](#jaeger-trace-context-header-name)| string | uber-trace-id || +|[jaeger-debug-header](#jaeger-debug-header)| string | uber-debug-id || +|[jaeger-baggage-header](#jaeger-baggage-header)| string | jaeger-baggage || +|[jaeger-trace-baggage-header-prefix](#jaeger-trace-baggage-header-prefix)| string | uberctx- || +|[datadog-collector-host](#datadog-collector-host)| string | "" || +|[datadog-collector-port](#datadog-collector-port)| int | 8126 || +|[datadog-service-name](#datadog-service-name)| string | "nginx" || +|[datadog-environment](#datadog-environment)| string | "prod" || +|[datadog-operation-name-override](#datadog-operation-name-override)| string | "nginx.handle" || +|[datadog-priority-sampling](#datadog-priority-sampling)| bool | "true" || +|[datadog-sample-rate](#datadog-sample-rate)| float | 1.0 || +|[enable-opentelemetry](#enable-opentelemetry)| bool | "false" || +|[opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-span)| bool | "true" || +|[opentelemetry-operation-name](#opentelemetry-operation-name)| string | "" || +|[opentelemetry-config](#/etc/nginx/opentelemetry.toml)| string | "/etc/nginx/opentelemetry.toml" || +|[otlp-collector-host](#otlp-collector-host)| string | "" || +|[otlp-collector-port](#otlp-collector-port)| int | 4317 || +|[otel-max-queuesize](#otel-max-queuesize)| int | || +|[otel-schedule-delay-millis](#otel-schedule-delay-millis)| int | || +|[otel-max-export-batch-size](#otel-max-export-batch-size)| int | || +|[otel-service-name](#otel-service-name)| string | "nginx" || +|[otel-sampler](#otel-sampler)| string | "AlwaysOff" || +|[otel-sampler-parent-based](#otel-sampler-parent-based)| bool | "false" || +|[otel-sampler-ratio](#otel-sampler-ratio)| float | 0.01 || +|[main-snippet](#main-snippet)| string | "" || +|[http-snippet](#http-snippet)| string | "" || +|[server-snippet](#server-snippet)| string | "" || +|[stream-snippet](#stream-snippet)| string | "" || +|[location-snippet](#location-snippet)| string | "" || +|[custom-http-errors](#custom-http-errors)| []int | []int{} || +|[proxy-body-size](#proxy-body-size)| string | "1m" || +|[proxy-connect-timeout](#proxy-connect-timeout)| int | 5 || +|[proxy-read-timeout](#proxy-read-timeout)| int | 60 || +|[proxy-send-timeout](#proxy-send-timeout)| int | 60 || +|[proxy-buffers-number](#proxy-buffers-number)| int | 4 || +|[proxy-buffer-size](#proxy-buffer-size)| string | "4k" || +|[proxy-cookie-path](#proxy-cookie-path)| string | "off" || +|[proxy-cookie-domain](#proxy-cookie-domain)| string | "off" || +|[proxy-next-upstream](#proxy-next-upstream)| string | "error timeout" || +|[proxy-next-upstream-timeout](#proxy-next-upstream-timeout)| int | 0 || +|[proxy-next-upstream-tries](#proxy-next-upstream-tries)| int | 3 || +|[proxy-redirect-from](#proxy-redirect-from)| string | "off" || +|[proxy-request-buffering](#proxy-request-buffering)| string | "on" || +|[ssl-redirect](#ssl-redirect)| bool | "true" || +|[force-ssl-redirect](#force-ssl-redirect)| bool | "false" || +|[denylist-source-range](#denylist-source-range)| []string | []string{} || +|[whitelist-source-range](#whitelist-source-range)| []string | []string{} || +|[skip-access-log-urls](#skip-access-log-urls)| []string | []string{} || +|[limit-rate](#limit-rate)| int | 0 || +|[limit-rate-after](#limit-rate-after)| int | 0 || +|[lua-shared-dicts](#lua-shared-dicts)| string | "" || +|[http-redirect-code](#http-redirect-code)| int | 308 || +|[proxy-buffering](#proxy-buffering)| string | "off" || +|[limit-req-status-code](#limit-req-status-code)| int | 503 || +|[limit-conn-status-code](#limit-conn-status-code)| int | 503 || +|[enable-syslog](#enable-syslog)| bool | false || +|[syslog-host](#syslog-host)| string | "" || +|[syslog-port](#syslog-port)| int | 514 || +|[no-tls-redirect-locations](#no-tls-redirect-locations)| string | "/.well-known/acme-challenge" || +|[global-auth-url](#global-auth-url)| string | "" || +|[global-auth-method](#global-auth-method)| string | "" || +|[global-auth-signin](#global-auth-signin)| string | "" || +|[global-auth-signin-redirect-param](#global-auth-signin-redirect-param)| string | "rd" || +|[global-auth-response-headers](#global-auth-response-headers)| string | "" || +|[global-auth-request-redirect](#global-auth-request-redirect)| string | "" || +|[global-auth-snippet](#global-auth-snippet)| string | "" || +|[global-auth-cache-key](#global-auth-cache-key)| string | "" || +|[global-auth-cache-duration](#global-auth-cache-duration)| string | "200 202 401 5m" || +|[no-auth-locations](#no-auth-locations)| string | "/.well-known/acme-challenge" || +|[block-cidrs](#block-cidrs)| []string | "" || +|[block-user-agents](#block-user-agents)| []string | "" || +|[block-referers](#block-referers)| []string | "" || +|[proxy-ssl-location-only](#proxy-ssl-location-only)| bool | "false" || +|[default-type](#default-type)| string | "text/html" || +|[global-rate-limit-memcached-host](#global-rate-limit)| string | "" || +|[global-rate-limit-memcached-port](#global-rate-limit)| int | 11211 || +|[global-rate-limit-memcached-connect-timeout](#global-rate-limit)| int | 50 || +|[global-rate-limit-memcached-max-idle-timeout](#global-rate-limit)| int | 10000 || +|[global-rate-limit-memcached-pool-size](#global-rate-limit)| int | 50 || +|[global-rate-limit-status-code](#global-rate-limit)| int | 429 || +|[service-upstream](#service-upstream)| bool | "false" || +|[ssl-reject-handshake](#ssl-reject-handshake)| bool | "false" || +|[debug-connections](#debug-connections)| []string | "127.0.0.1,1.1.1.1/24" || +|[strict-validate-path-type](#strict-validate-path-type)| bool | "false" (v1.7.x) || +|[grpc-buffer-size-kb](#grpc-buffer-size-kb)| int | 0 || ## add-headers @@ -1432,3 +1433,10 @@ This means that Ingress objects that rely on paths containing regex characters s The cluster admin should establish validation rules using mechanisms like [Open Policy Agent](https://www.openpolicyagent.org/) to validate that only authorized users can use `ImplementationSpecific` pathType and that only the authorized characters can be used. + +## grpc-buffer-size-kb + +Sets the configuration for the GRPC Buffer Size parameter. If not set it will use the default from NGINX. + +_References:_ +[https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size) \ No newline at end of file diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 12bbb662a..371f3069c 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -20,9 +20,8 @@ import ( "strconv" "time" - "k8s.io/klog/v2" - apiv1 "k8s.io/api/core/v1" + "k8s.io/klog/v2" "k8s.io/ingress-nginx/internal/ingress/defaults" "k8s.io/ingress-nginx/pkg/apis/ingress" @@ -752,6 +751,11 @@ type Configuration struct { // alphanumeric chars, "-", "_", "/".In case of additional characters, // like used on Rewrite configurations the user should use pathType as ImplementationSpecific StrictValidatePathType bool `json:"strict-validate-path-type"` + + // GRPCBufferSizeKb Sets the size of the buffer used for reading the response received + // from the gRPC server. The response is passed to the client synchronously, + // as soon as it is received. + GRPCBufferSizeKb int `json:"grpc-buffer-size-kb"` } // NewDefault returns the default nginx configuration @@ -917,6 +921,7 @@ func NewDefault() Configuration { GlobalRateLimitStatucCode: 429, DebugConnections: []string{}, StrictValidatePathType: false, // TODO: This will be true in future releases + GRPCBufferSizeKb: 0, } if klog.V(5).Enabled() { diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index d5172ff3f..f117070c8 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -331,6 +331,10 @@ http { client_body_buffer_size {{ $cfg.ClientBodyBufferSize }}; client_body_timeout {{ $cfg.ClientBodyTimeout }}s; + {{ if gt $cfg.GRPCBufferSizeKb 0 }} + grpc_buffer_size {{ $cfg.GRPCBufferSizeKb }}k; + {{ end }} + {{ if and (ne $cfg.HTTP2MaxHeaderSize "") (ne $cfg.HTTP2MaxFieldSize "") }} http2_max_field_size {{ $cfg.HTTP2MaxFieldSize }}; http2_max_header_size {{ $cfg.HTTP2MaxHeaderSize }}; diff --git a/test/e2e/settings/grpc.go b/test/e2e/settings/grpc.go new file mode 100644 index 000000000..fa5f35b24 --- /dev/null +++ b/test/e2e/settings/grpc.go @@ -0,0 +1,110 @@ +/* +Copyright 2024 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 settings + +import ( + "context" + "crypto/tls" + "fmt" + "strings" + + pb "github.com/moul/pb/grpcbin/go-grpc" + "github.com/onsi/ginkgo/v2" + "github.com/stretchr/testify/assert" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + + "k8s.io/ingress-nginx/test/e2e/framework" +) + +const echoHost = "echo" + +var _ = framework.DescribeSetting("GRPC", func() { + f := framework.NewDefaultFramework("grpc-buffersize", framework.WithHTTPBunEnabled()) + + ginkgo.It("should set the correct GRPC Buffer Size", func() { + f.SetNginxConfigMapData(map[string]string{ + "grpc-buffer-size-kb": "8", + }) + + f.WaitForNginxConfiguration( + func(cfg string) bool { + return strings.Contains(cfg, "grpc_buffer_size 8k") + }) + + f.NewGRPCBinDeployment() + + host := echoHost + + svc := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "grpcbin-test", + Namespace: f.Namespace, + }, + Spec: corev1.ServiceSpec{ + ExternalName: fmt.Sprintf("grpcbin.%v.svc.cluster.local", f.Namespace), + Type: corev1.ServiceTypeExternalName, + Ports: []corev1.ServicePort{ + { + Name: host, + Port: 9000, + TargetPort: intstr.FromInt(9000), + Protocol: "TCP", + }, + }, + }, + } + f.EnsureService(svc) + + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/backend-protocol": "GRPC", + } + + ing := framework.NewSingleIngressWithTLS(host, "/", host, []string{host}, f.Namespace, "grpcbin-test", 9000, annotations) + + f.EnsureIngress(ing) + + f.WaitForNginxServer(host, + func(server string) bool { + return strings.Contains(server, "grpc_pass grpc://upstream_balancer;") + }) + + conn, err := grpc.Dial(f.GetNginxIP()+":443", + grpc.WithTransportCredentials( + credentials.NewTLS(&tls.Config{ + ServerName: echoHost, + InsecureSkipVerify: true, //nolint:gosec // Ignore certificate validation in testing + }), + ), + ) + assert.Nil(ginkgo.GinkgoT(), err, "error creating a connection") + defer conn.Close() + + client := pb.NewGRPCBinClient(conn) + ctx := context.Background() + + res, err := client.HeadersUnary(ctx, &pb.EmptyMessage{}) + assert.Nil(ginkgo.GinkgoT(), err) + + metadata := res.GetMetadata() + assert.Equal(ginkgo.GinkgoT(), metadata["content-type"].Values[0], "application/grpc") + assert.Equal(ginkgo.GinkgoT(), metadata[":authority"].Values[0], host) + }) +}) From 365d886c1d8db4c6e4cc543f5ee08adc5480d0d1 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Mon, 25 Mar 2024 01:44:36 +0100 Subject: [PATCH 068/184] Chores: Remove recently added whitespaces. (#11156) --- docs/user-guide/nginx-configuration/configmap.md | 4 ++-- rootfs/etc/nginx/template/nginx.tmpl | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 9dad331f1..89a35b07b 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -741,7 +741,7 @@ _**default:**_ false ## geoip2-autoreload-in-minutes -Enables the [geoip2 module](https://github.com/leev/ngx_http_geoip2_module) autoreload in MaxMind databases setting the interval in minutes. +Enables the [geoip2 module](https://github.com/leev/ngx_http_geoip2_module) autoreload in MaxMind databases setting the interval in minutes. _**default:**_ 0 @@ -1439,4 +1439,4 @@ validate that only authorized users can use `ImplementationSpecific` pathType an Sets the configuration for the GRPC Buffer Size parameter. If not set it will use the default from NGINX. _References:_ -[https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size) \ No newline at end of file +[https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size) diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index f117070c8..b3b3f8683 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -202,7 +202,7 @@ http { geoip2 /etc/ingress-controller/geoip/GeoLite2-City.mmdb { {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; - {{ end }} + {{ end }} $geoip2_city_country_code source=$remote_addr country iso_code; $geoip2_city_country_name source=$remote_addr country names en; $geoip2_city_country_geoname_id source=$remote_addr country geoname_id; @@ -228,7 +228,7 @@ http { geoip2 /etc/ingress-controller/geoip/GeoIP2-City.mmdb { {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; - {{ end }} + {{ end }} $geoip2_city_country_code source=$remote_addr country iso_code; $geoip2_city_country_name source=$remote_addr country names en; $geoip2_city_country_geoname_id source=$remote_addr country geoname_id; @@ -254,7 +254,7 @@ http { geoip2 /etc/ingress-controller/geoip/GeoLite2-ASN.mmdb { {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; - {{ end }} + {{ end }} $geoip2_asn source=$remote_addr autonomous_system_number; $geoip2_org source=$remote_addr autonomous_system_organization; } @@ -264,7 +264,7 @@ http { geoip2 /etc/ingress-controller/geoip/GeoIP2-ASN.mmdb { {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; - {{ end }} + {{ end }} $geoip2_asn source=$remote_addr autonomous_system_number; $geoip2_org source=$remote_addr autonomous_system_organization; } @@ -274,7 +274,7 @@ http { geoip2 /etc/ingress-controller/geoip/GeoIP2-ISP.mmdb { {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; - {{ end }} + {{ end }} $geoip2_isp source=$remote_addr isp; $geoip2_isp_org source=$remote_addr organization; $geoip2_asn source=$remote_addr default=0 autonomous_system_number; @@ -291,7 +291,7 @@ http { geoip2 /etc/ingress-controller/geoip/GeoIP2-Anonymous-IP.mmdb { {{ if (gt $cfg.GeoIP2AutoReloadMinutes 0) }} auto_reload {{ $cfg.GeoIP2AutoReloadMinutes }}m; - {{ end }} + {{ end }} $geoip2_is_anon source=$remote_addr is_anonymous; $geoip2_is_anonymous source=$remote_addr default=0 is_anonymous; $geoip2_is_anonymous_vpn source=$remote_addr default=0 is_anonymous_vpn; From 9e29e89c41cf5d9555dfd95338bca422d9355e7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 04:48:48 -0700 Subject: [PATCH 069/184] Bump github.com/prometheus/common from 0.50.0 to 0.51.1 (#11159) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.50.0 to 0.51.1. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.50.0...v0.51.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 960df0c20..a5b488044 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 - github.com/prometheus/common v0.50.0 + github.com/prometheus/common v0.51.1 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index 0b21a7cc5..d79fb373f 100644 --- a/go.sum +++ b/go.sum @@ -323,8 +323,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.50.0 h1:YSZE6aa9+luNa2da6/Tik0q0A5AbR+U003TItK57CPQ= -github.com/prometheus/common v0.50.0/go.mod h1:wHFBCEVWVmHMUpg7pYcOm2QUR/ocQdYSJVQJKnHc3xQ= +github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= +github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From aedb13c9faead3f486d1e5f451a37dfd72e53b77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 04:19:21 -0700 Subject: [PATCH 070/184] Bump the all group with 3 updates (#11157) Bumps the all group with 3 updates: [actions/dependency-review-action](https://github.com/actions/dependency-review-action), [actions/add-to-project](https://github.com/actions/add-to-project) and [github/codeql-action](https://github.com/github/codeql-action). Updates `actions/dependency-review-action` from 4.1.3 to 4.2.4 - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/9129d7d40b8c12c1ed0f60400d00c92d437adcce...733dd5d4a5203f238c33806593ec0f5fc5343d8c) Updates `actions/add-to-project` from 0.6.0 to 0.6.1 - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/0609a2702eefb44781da00f8e04901d6e5cd2b92...1b844f0c5ac6446a402e0cb3693f9be5eca188c5) Updates `github/codeql-action` from 3.24.7 to 3.24.9 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/3ab4101902695724f9365a384f86c1074d94e18c...1b1aada464948af03b950897e5eb522f92603cc2) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/depreview.yaml | 2 +- .github/workflows/project.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index 6d9f9dc8f..f890b4b4d 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -11,4 +11,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: 'Dependency Review' - uses: actions/dependency-review-action@9129d7d40b8c12c1ed0f60400d00c92d437adcce # v4.1.3 + uses: actions/dependency-review-action@733dd5d4a5203f238c33806593ec0f5fc5343d8c # v4.2.4 diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 2d398e24c..a87742e63 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -13,7 +13,7 @@ jobs: repository-projects: write issues: write steps: - - uses: actions/add-to-project@0609a2702eefb44781da00f8e04901d6e5cd2b92 # v0.6.0 + - uses: actions/add-to-project@1b844f0c5ac6446a402e0cb3693f9be5eca188c5 # v0.6.1 with: project-url: https://github.com/orgs/kubernetes/projects/104 github-token: ${{ secrets.PROJECT_WRITER }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 43c63c733..3018dee65 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 + uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 13131d633..8bc0f8e40 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7 + uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository From 7c8af4928b9bbc02264d5c7fad95308f1744a143 Mon Sep 17 00:00:00 2001 From: Matheus Fidelis Date: Thu, 28 Mar 2024 10:36:23 -0300 Subject: [PATCH 071/184] Controller: Make Leader Election TTL configurable. (#11142) * feature(leader_ttl): feature to customize ttl to leader be re-elected * fix(review): docs --- charts/ingress-nginx/README.md | 1 + charts/ingress-nginx/templates/_params.tpl | 3 + charts/ingress-nginx/values.yaml | 2 + docs/user-guide/cli-arguments.md | 1 + internal/ingress/controller/controller.go | 1 + internal/ingress/controller/nginx.go | 5 +- internal/ingress/controller/status.go | 11 ++-- pkg/flags/flags.go | 8 +++ pkg/flags/flags_test.go | 69 ++++++++++++++++++++++ 9 files changed, 93 insertions(+), 8 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 1f912ea09..e7298b5b7 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -297,6 +297,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.dnsConfig | object | `{}` | Optionally customize the pod dnsConfig. | | controller.dnsPolicy | string | `"ClusterFirst"` | Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'. By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller to keep resolving names inside the k8s network, use ClusterFirstWithHostNet. | | controller.electionID | string | `""` | Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader' | +| controller.electionTTL | string | `""` | Duration a leader election is valid before it's getting re-elected, e.g. `15s`, `10m` or `1h`. (Default: 30s) | | controller.enableAnnotationValidations | bool | `false` | | | controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. # ref: https://github.com/microsoft/mimalloc # | | controller.enableTopologyAwareRouting | bool | `false` | This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" Defaults to false | diff --git a/charts/ingress-nginx/templates/_params.tpl b/charts/ingress-nginx/templates/_params.tpl index b2b54db19..48569a8b0 100644 --- a/charts/ingress-nginx/templates/_params.tpl +++ b/charts/ingress-nginx/templates/_params.tpl @@ -63,6 +63,9 @@ {{- if .Values.controller.disableLeaderElection }} - --disable-leader-election=true {{- end }} +{{- if .Values.controller.electionTTL }} +- --election-ttl={{ .Values.controller.electionTTL }} +{{- end }} {{- range $key, $value := .Values.controller.extraArgs }} {{- /* Accept keys without values or with false as value */}} {{- if eq ($value | quote | len) 2 }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 5be9519df..3741323c4 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -85,6 +85,8 @@ controller: enableTopologyAwareRouting: false # -- This configuration disable Nginx Controller Leader Election disableLeaderElection: false + # -- Duration a leader election is valid before it's getting re-elected, e.g. `15s`, `10m` or `1h`. (Default: 30s) + electionTTL: "" # -- 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. diff --git a/docs/user-guide/cli-arguments.md b/docs/user-guide/cli-arguments.md index 275c753ec..f8fdc2ddb 100644 --- a/docs/user-guide/cli-arguments.md +++ b/docs/user-guide/cli-arguments.md @@ -22,6 +22,7 @@ They are set in the container spec of the `ingress-nginx-controller` Deployment | `--disable-sync-events` | Disables the creation of 'Sync' Event resources, but still logs them | | `--dynamic-configuration-retries` | Number of times to retry failed dynamic configuration before failing to sync an ingress. (default 15) | | `--election-id` | Election id to use for Ingress status updates. (default "ingress-controller-leader") | +| `--election-ttl` | Duration a leader election is valid before it's getting re-elected, e.g. `15s`, `10m` or `1h`. (Default: 30s) | | `--enable-metrics` | Enables the collection of NGINX metrics. (default true) | | `--enable-ssl-chain-completion` | Autocomplete SSL certificate chains with missing intermediate CA certificates. Certificates uploaded to Kubernetes must have the "Authority Information Access" X.509 v3 extension for this to succeed. (default false)| | `--enable-ssl-passthrough` | Enable SSL Passthrough. (default false) | diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index 495fead15..db786a15c 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -91,6 +91,7 @@ type Configuration struct { UpdateStatus bool UseNodeInternalIP bool ElectionID string + ElectionTTL time.Duration UpdateStatusOnShutdown bool HealthCheckHost string diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 1d385e506..0df5409f4 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -274,8 +274,9 @@ func (n *NGINXController) Start() { if !n.cfg.DisableLeaderElection { electionID := n.cfg.ElectionID setupLeaderElection(&leaderElectionConfig{ - Client: n.cfg.Client, - ElectionID: electionID, + Client: n.cfg.Client, + ElectionID: electionID, + ElectionTTL: n.cfg.ElectionTTL, OnStartedLeading: func(stopCh chan struct{}) { if n.syncStatus != nil { go n.syncStatus.Run(stopCh) diff --git a/internal/ingress/controller/status.go b/internal/ingress/controller/status.go index 6bab7c2ad..5a169e1c3 100644 --- a/internal/ingress/controller/status.go +++ b/internal/ingress/controller/status.go @@ -36,7 +36,8 @@ import ( type leaderElectionConfig struct { Client clientset.Interface - ElectionID string + ElectionID string + ElectionTTL time.Duration OnStartedLeading func(chan struct{}) OnStoppedLeading func() @@ -107,13 +108,11 @@ func setupLeaderElection(config *leaderElectionConfig) { LockConfig: resourceLockConfig, } - ttl := 30 * time.Second - elector, err = leaderelection.NewLeaderElector(leaderelection.LeaderElectionConfig{ Lock: lock, - LeaseDuration: ttl, - RenewDeadline: ttl / 2, - RetryPeriod: ttl / 4, + LeaseDuration: config.ElectionTTL, + RenewDeadline: config.ElectionTTL / 2, + RetryPeriod: config.ElectionTTL / 4, Callbacks: callbacks, }) diff --git a/pkg/flags/flags.go b/pkg/flags/flags.go index d7157fa79..5891f636b 100644 --- a/pkg/flags/flags.go +++ b/pkg/flags/flags.go @@ -132,6 +132,9 @@ Requires setting the publish-service parameter to a valid Service reference.`) electionID = flags.String("election-id", "ingress-controller-leader", `Election id to use for Ingress status updates.`) + electionTTL = flags.Duration("election-ttl", 30*time.Second, + `Duration a leader election is valid before it's getting re-elected`) + updateStatusOnShutdown = flags.Bool("update-status-on-shutdown", true, `Update the load-balancer status of Ingress objects when the controller shuts down. Requires the update-status parameter.`) @@ -314,6 +317,10 @@ https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-g } } + if *electionTTL <= 0 { + *electionTTL = 30 * time.Second + } + histogramBuckets := &collectors.HistogramBuckets{ TimeBuckets: *timeBuckets, LengthBuckets: *lengthBuckets, @@ -327,6 +334,7 @@ https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-g KubeConfigFile: *kubeConfigFile, UpdateStatus: *updateStatus, ElectionID: *electionID, + ElectionTTL: *electionTTL, EnableProfiling: *profiling, EnableMetrics: *enableMetrics, MetricsPerHost: *metricsPerHost, diff --git a/pkg/flags/flags_test.go b/pkg/flags/flags_test.go index 54b35dbca..e51d5fa6c 100644 --- a/pkg/flags/flags_test.go +++ b/pkg/flags/flags_test.go @@ -19,6 +19,7 @@ package flags import ( "os" "testing" + "time" ) func TestNoMandatoryFlag(t *testing.T) { @@ -143,3 +144,71 @@ func TestIfLeaderElectionDisabledFlagIsFalse(t *testing.T) { t.Fatalf("Expected --disable-leader-election and conf.DisableLeaderElection as false, but found: %v", conf.DisableLeaderElection) } } + +func TestLeaderElectionTTLDefaultValue(t *testing.T) { + ResetForTesting(func() { t.Fatal("Parsing failed") }) + + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"cmd", "--http-port", "80", "--https-port", "443"} + + _, conf, err := ParseFlags() + if err != nil { + t.Fatalf("Unexpected error parsing default flags: %v", err) + } + + if conf.ElectionTTL != 30*time.Second { + t.Fatalf("Expected --election-ttl and conf.ElectionTTL as 30s, but found: %v", conf.ElectionTTL) + } +} + +func TestLeaderElectionTTLParseValueInSeconds(t *testing.T) { + ResetForTesting(func() { t.Fatal("Parsing failed") }) + + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"cmd", "--http-port", "80", "--https-port", "443", "--election-ttl", "10s"} + + _, conf, err := ParseFlags() + if err != nil { + t.Fatalf("Unexpected error parsing default flags: %v", err) + } + + if conf.ElectionTTL != 10*time.Second { + t.Fatalf("Expected --election-ttl and conf.ElectionTTL as 10s, but found: %v", conf.ElectionTTL) + } +} + +func TestLeaderElectionTTLParseValueInMinutes(t *testing.T) { + ResetForTesting(func() { t.Fatal("Parsing failed") }) + + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"cmd", "--http-port", "80", "--https-port", "443", "--election-ttl", "10m"} + + _, conf, err := ParseFlags() + if err != nil { + t.Fatalf("Unexpected error parsing default flags: %v", err) + } + + if conf.ElectionTTL != 10*time.Minute { + t.Fatalf("Expected --election-ttl and conf.ElectionTTL as 10m, but found: %v", conf.ElectionTTL) + } +} + +func TestLeaderElectionTTLParseValueInHours(t *testing.T) { + ResetForTesting(func() { t.Fatal("Parsing failed") }) + + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"cmd", "--http-port", "80", "--https-port", "443", "--election-ttl", "1h"} + + _, conf, err := ParseFlags() + if err != nil { + t.Fatalf("Unexpected error parsing default flags: %v", err) + } + + if conf.ElectionTTL != 1*time.Hour { + t.Fatalf("Expected --election-ttl and conf.ElectionTTL as 1h, but found: %v", conf.ElectionTTL) + } +} From e44cab7245ad0e0c31cb6d0c947fa1aa51cff1ba Mon Sep 17 00:00:00 2001 From: Matheus Fidelis Date: Fri, 29 Mar 2024 08:38:02 -0300 Subject: [PATCH 072/184] Proposal: e2e tests for regex patterns (#11174) * tests(path): proposal: e2e tests for regex patterns * gofumpt * gofumpt --- test/e2e/ingress/pathtype_prefix.go | 134 ++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/test/e2e/ingress/pathtype_prefix.go b/test/e2e/ingress/pathtype_prefix.go index fa664ce27..ce11ca8bf 100644 --- a/test/e2e/ingress/pathtype_prefix.go +++ b/test/e2e/ingress/pathtype_prefix.go @@ -68,4 +68,138 @@ var _ = framework.IngressNginxDescribe("[Ingress] [PathType] prefix checks", fun Expect(). Status(http.StatusOK) }) + + ginkgo.It("should test prefix path using simple regex pattern for /id/{int}", func() { + host := "echo.com.br" + + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/use-regex": `true`, + } + + ing := framework.NewSingleIngress(host, "/id/[0-9]+", host, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.HTTPTestClient(). + GET("/id/1"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/id/12"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/id/123"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/id/aaa"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/id/123a"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + }) + + ginkgo.It("should test prefix path using regex pattern for /id/{int} ignoring non-digits characters at end of string", func() { + host := "echo.regex.br" + + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/use-regex": `true`, + } + + ing := framework.NewSingleIngress(host, "/id/[0-9]+$", host, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.HTTPTestClient(). + GET("/id/1"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/id/aaa"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/id/123a"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + }) + + ginkgo.It("should test prefix path using fixed path size regex pattern /id/{int}{3}", func() { + host := "echo.regex.size.br" + + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/use-regex": `true`, + } + + ing := framework.NewSingleIngress(host, "/id/[0-9]{3}$", host, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.HTTPTestClient(). + GET("/id/99"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/id/123"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/id/9999"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/id/123a"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + }) + + ginkgo.It("should correctly route multi-segment path patterns", func() { + host := "echo.multi.segment.br" + + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/use-regex": `true`, + } + + ing := framework.NewSingleIngress(host, "/id/[0-9]+/post/[a-zA-Z]+$", host, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.HTTPTestClient(). + GET("/id/123/post/abc"). + WithHeader("Host", host). + Expect(). + Status(http.StatusOK) + + f.HTTPTestClient(). + GET("/id/123/post/abc123"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + + f.HTTPTestClient(). + GET("/id/abc/post/abc"). + WithHeader("Host", host). + Expect(). + Status(http.StatusNotFound) + }) }) From 5052c8acc06a7cd9ac9e27808d65e7a7a2fcea83 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Fri, 29 Mar 2024 13:39:28 +0100 Subject: [PATCH 073/184] bump ginkgo to v2.17.1 (#11177) Signed-off-by: cpanato --- build/run-in-docker.sh | 2 +- go.mod | 10 +++--- go.sum | 20 +++++------ images/kube-webhook-certgen/rootfs/go.mod | 21 +++++------ images/kube-webhook-certgen/rootfs/go.sum | 44 +++++++++++------------ magefiles/go.mod | 9 ++--- magefiles/go.sum | 21 ++++------- test/e2e/run-chart-test.sh | 2 +- test/e2e/run-kind-e2e.sh | 2 +- 9 files changed, 63 insertions(+), 68 deletions(-) diff --git a/build/run-in-docker.sh b/build/run-in-docker.sh index 367f6138a..62bd7115c 100755 --- a/build/run-in-docker.sh +++ b/build/run-in-docker.sh @@ -82,7 +82,7 @@ if [[ "$DOCKER_IN_DOCKER_ENABLED" == "true" ]]; then echo "..reached DIND check TRUE block, inside run-in-docker.sh" echo "FLAGS=$FLAGS" #go env - go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.15.0 + go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 find / -type f -name ginkgo 2>/dev/null which ginkgo /bin/bash -c "${FLAGS}" diff --git a/go.mod b/go.mod index a5b488044..a0bb140a0 100644 --- a/go.mod +++ b/go.mod @@ -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.16.0 + github.com/onsi/ginkgo/v2 v2.17.1 github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 @@ -31,12 +31,12 @@ require ( gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 k8s.io/api v0.29.3 - k8s.io/apiextensions-apiserver v0.29.2 + k8s.io/apiextensions-apiserver v0.29.3 k8s.io/apimachinery v0.29.3 - k8s.io/apiserver v0.29.2 - k8s.io/cli-runtime v0.29.2 + k8s.io/apiserver v0.29.3 + k8s.io/cli-runtime v0.29.3 k8s.io/client-go v0.29.3 - k8s.io/code-generator v0.29.2 + k8s.io/code-generator v0.29.3 k8s.io/component-base v0.29.3 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 diff --git a/go.sum b/go.sum index d79fb373f..4edd9fe56 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ 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.16.0 h1:7q1w9frJDzninhXxjZd+Y/x54XNjG/UlRLIYPZafsPM= -github.com/onsi/ginkgo/v2 v2.16.0/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= +github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= +github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= 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.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= @@ -742,18 +742,18 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= -k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg= -k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8= +k8s.io/apiextensions-apiserver v0.29.3 h1:9HF+EtZaVpFjStakF4yVufnXGPRppWFEQ87qnO91YeI= +k8s.io/apiextensions-apiserver v0.29.3/go.mod h1:po0XiY5scnpJfFizNGo6puNU6Fq6D70UJY2Cb2KwAVc= k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= -k8s.io/apiserver v0.29.2 h1:+Z9S0dSNr+CjnVXQePG8TcBWHr3Q7BmAr7NraHvsMiQ= -k8s.io/apiserver v0.29.2/go.mod h1:B0LieKVoyU7ykQvPFm7XSdIHaCHSzCzQWPFa5bqbeMQ= -k8s.io/cli-runtime v0.29.2 h1:smfsOcT4QujeghsNjECKN3lwyX9AwcFU0nvJ7sFN3ro= -k8s.io/cli-runtime v0.29.2/go.mod h1:KLisYYfoqeNfO+MkTWvpqIyb1wpJmmFJhioA0xd4MW8= +k8s.io/apiserver v0.29.3 h1:xR7ELlJ/BZSr2n4CnD3lfA4gzFivh0wwfNfz9L0WZcE= +k8s.io/apiserver v0.29.3/go.mod h1:hrvXlwfRulbMbBgmWRQlFru2b/JySDpmzvQwwk4GUOs= +k8s.io/cli-runtime v0.29.3 h1:r68rephmmytoywkw2MyJ+CxjpasJDQY7AGc3XY2iv1k= +k8s.io/cli-runtime v0.29.3/go.mod h1:aqVUsk86/RhaGJwDhHXH0jcdqBrgdF3bZWk4Z9D4mkM= k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= -k8s.io/code-generator v0.29.2 h1:c9/iw2KnNpw2IRV+wwuG/Wns2TjPSgjWzbbjTevyiHI= -k8s.io/code-generator v0.29.2/go.mod h1:FwFi3C9jCrmbPjekhaCYcYG1n07CYiW1+PAPCockaos= +k8s.io/code-generator v0.29.3 h1:m7E25/t9R9NvejspO2zBdyu+/Gl0Z5m7dCRc680KS14= +k8s.io/code-generator v0.29.3/go.mod h1:x47ofBhN4gxYFcxeKA1PYXeaPreAGaDN85Y/lNUsPoM= k8s.io/component-base v0.29.3 h1:Oq9/nddUxlnrCuuR2K/jp6aflVvc0uDvxMzAWxnGzAo= k8s.io/component-base v0.29.3/go.mod h1:Yuj33XXjuOk2BAaHsIGHhCKZQAgYKhqIxIjIr2UXYio= k8s.io/gengo v0.0.0-20240226174109-00c4be8627da h1:uH7pylUCo++9PSvrUA34sbk4Y6PHw/bgEFa80pejI+I= diff --git a/images/kube-webhook-certgen/rootfs/go.mod b/images/kube-webhook-certgen/rootfs/go.mod index de1d86bdd..b1903dcf3 100644 --- a/images/kube-webhook-certgen/rootfs/go.mod +++ b/images/kube-webhook-certgen/rootfs/go.mod @@ -6,10 +6,10 @@ require ( github.com/onrik/logrus v0.11.0 github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.8.0 - k8s.io/api v0.29.2 - k8s.io/apimachinery v0.29.2 - k8s.io/client-go v0.29.2 - k8s.io/kube-aggregator v0.29.2 + k8s.io/api v0.29.3 + k8s.io/apimachinery v0.29.3 + k8s.io/client-go v0.29.3 + k8s.io/kube-aggregator v0.29.3 ) require ( @@ -21,7 +21,7 @@ require ( github.com/go-openapi/jsonreference v0.20.4 // indirect github.com/go-openapi/swag v0.22.9 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20240225044709-fd706174c886 // indirect @@ -34,14 +34,15 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/ginkgo/v2 v2.15.0 // indirect + github.com/onsi/ginkgo/v2 v2.17.1 // indirect github.com/onsi/gomega v1.30.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/oauth2 v0.17.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/term v0.17.0 // indirect + github.com/stretchr/testify v1.9.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.18.0 // indirect diff --git a/images/kube-webhook-certgen/rootfs/go.sum b/images/kube-webhook-certgen/rootfs/go.sum index 5f88f3da3..4ec80305a 100644 --- a/images/kube-webhook-certgen/rootfs/go.sum +++ b/images/kube-webhook-certgen/rootfs/go.sum @@ -20,8 +20,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 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/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= 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.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -60,8 +60,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onrik/logrus v0.11.0 h1:pu+BCaWL36t0yQaj/2UHK2erf88dwssAKOT51mxPUVs= github.com/onrik/logrus v0.11.0/go.mod h1:fO2vlZwIdti6PidD3gV5YKt9Lq5ptpnP293RAe1ITwk= -github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= +github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -80,8 +80,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -104,10 +104,10 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -120,12 +120,12 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -162,16 +162,16 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 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/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= -k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= -k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= +k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= +k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= +k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-aggregator v0.29.2 h1:z9qJn5wlGmGaX6EfM7OEhr6fq6SBjDKR6tPRZ/qgxeY= -k8s.io/kube-aggregator v0.29.2/go.mod h1:QEuwzmMJJsg0eg1Gv+u4cWcYeJG2+8vN8/nTXBzopUo= +k8s.io/kube-aggregator v0.29.3 h1:5KvTyFN8sQq2imq8tMAHWEKoE64Zg9WSMaGX78KV6ps= +k8s.io/kube-aggregator v0.29.3/go.mod h1:xGJqV/SJJ1fbwTGfQLAZfwgqX1EMoaqfotDTkDrqqSk= k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b h1:1dzw/KqgSPod72SUp2tuTOmK33TlY2fHlrVU2M9VrOM= k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b/go.mod h1:Pa1PvrP7ACSkuX6I7KYomY6cmMA0Tx86waBhDUgoKPw= k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= diff --git a/magefiles/go.mod b/magefiles/go.mod index bdc592cdd..d41baf17e 100644 --- a/magefiles/go.mod +++ b/magefiles/go.mod @@ -8,7 +8,7 @@ require ( github.com/helm/helm v2.17.0+incompatible github.com/magefile/mage v1.15.0 github.com/vmware-labs/yaml-jsonpath v0.3.2 - golang.org/x/oauth2 v0.17.0 + golang.org/x/oauth2 v0.18.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -20,18 +20,19 @@ require ( github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/onsi/gomega v1.30.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect - golang.org/x/crypto v0.20.0 // indirect + github.com/stretchr/testify v1.9.0 // indirect + golang.org/x/crypto v0.21.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/apimachinery v0.29.2 // indirect + k8s.io/apimachinery v0.29.3 // indirect k8s.io/helm v2.17.0+incompatible // indirect ) diff --git a/magefiles/go.sum b/magefiles/go.sum index 8130f1178..5f402c490 100644 --- a/magefiles/go.sum +++ b/magefiles/go.sum @@ -30,8 +30,7 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 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/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -79,8 +78,7 @@ github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NF github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= 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= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -89,8 +87,7 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk 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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= -golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -100,10 +97,8 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ 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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -121,8 +116,7 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 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.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -168,7 +162,6 @@ 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.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= 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= diff --git a/test/e2e/run-chart-test.sh b/test/e2e/run-chart-test.sh index 05f199cb2..e38df8690 100755 --- a/test/e2e/run-chart-test.sh +++ b/test/e2e/run-chart-test.sh @@ -78,7 +78,7 @@ fi if [ "${SKIP_IMAGE_CREATION:-false}" = "false" ]; then if ! command -v ginkgo &> /dev/null; then - go install github.com/onsi/ginkgo/v2/ginkgo@v2.15.0 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 fi echo "[dev-env] building image" make -C ${DIR}/../../ clean-image build image diff --git a/test/e2e/run-kind-e2e.sh b/test/e2e/run-kind-e2e.sh index 5e4afb57d..891e5dbae 100755 --- a/test/e2e/run-kind-e2e.sh +++ b/test/e2e/run-kind-e2e.sh @@ -96,7 +96,7 @@ fi if [ "${SKIP_E2E_IMAGE_CREATION}" = "false" ]; then if ! command -v ginkgo &> /dev/null; then - go install github.com/onsi/ginkgo/v2/ginkgo@v2.15.0 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 fi echo "[dev-env] .. done building controller images" From 25d2758e94268559f971e8b28ddcd980f5b6448a Mon Sep 17 00:00:00 2001 From: "Y.Horie" Date: Sun, 31 Mar 2024 01:23:32 +0900 Subject: [PATCH 074/184] fixes brotli build issue (#10484) --- images/nginx/rootfs/build.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/images/nginx/rootfs/build.sh b/images/nginx/rootfs/build.sh index d6e7c4a58..98bb346fb 100755 --- a/images/nginx/rootfs/build.sh +++ b/images/nginx/rootfs/build.sh @@ -465,10 +465,8 @@ make install # Get Brotli source and deps cd "$BUILD_PATH" -git clone --depth=100 https://github.com/google/ngx_brotli.git +git clone --depth=1 https://github.com/google/ngx_brotli.git cd ngx_brotli -# https://github.com/google/ngx_brotli/issues/156 -git reset --hard 63ca02abdcf79c9e788d2eedcc388d2335902e52 git submodule init git submodule update From c0767ccc6164882aa83861ae0de68301f2e47505 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Sun, 31 Mar 2024 22:21:33 +0200 Subject: [PATCH 075/184] refactor helm ci tests part I (#11178) * refactor helm ci tests part I Signed-off-by: cpanato * update indentation Signed-off-by: cpanato * fix path Signed-off-by: cpanato * more updates Signed-off-by: cpanato * add helm-lint job Signed-off-by: cpanato --------- Signed-off-by: cpanato --- hack/verify-chart-lint.sh => .ct.yaml | 20 +++++---- .github/workflows/ci.yaml | 65 ++++++++++++++++++--------- charts/ingress-nginx/Chart.yaml | 14 +++--- 3 files changed, 64 insertions(+), 35 deletions(-) rename hack/verify-chart-lint.sh => .ct.yaml (67%) mode change 100755 => 100644 diff --git a/hack/verify-chart-lint.sh b/.ct.yaml old mode 100755 new mode 100644 similarity index 67% rename from hack/verify-chart-lint.sh rename to .ct.yaml index 1c661ae2b..229030219 --- a/hack/verify-chart-lint.sh +++ b/.ct.yaml @@ -1,6 +1,4 @@ -#!/bin/bash - -# Copyright 2020 The Kubernetes Authors. +# Copyright 2024 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. @@ -13,10 +11,16 @@ # 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. +--- +remote: origin +target-branch: main -set -o errexit -set -o nounset -set -o pipefail +validate-maintainers: false +check-version-increment: false -KUBE_ROOT="$( cd "$(dirname "$0")../" >/dev/null 2>&1 ; pwd -P )" -ct lint --charts ${KUBE_ROOT}/charts/ingress-nginx --validate-maintainers=false +chart-repos: + - ingress-nginx=https://kubernetes.github.io/ingress-nginx +helm-extra-args: --timeout 800s + +chart-dirs: + - charts diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a033bbfa9..f19b7158f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -168,28 +168,30 @@ jobs: name: docker.tar.gz path: docker.tar.gz retention-days: 5 - helm: - name: Helm chart + + helm-lint: + name: Helm chart lint runs-on: ubuntu-latest needs: - changes - - build if: | (needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true') - strategy: - matrix: - k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0] - steps: - name: Checkout uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - - - name: Setup Go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 with: - go-version: ${{ needs.build.outputs.golangversion }} - check-latest: true + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5 + + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 + with: + python-version: '3.x' + + - name: Set up chart-testing + uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 - name: Install Helm Unit Test Plugin run: | @@ -199,14 +201,8 @@ jobs: run: | helm unittest charts/ingress-nginx -d - - name: cache - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 - with: - name: docker.tar.gz - - - name: Lint - run: | - ./build/run-in-docker.sh ./hack/verify-chart-lint.sh + - name: Run chart-testing (lint) + run: ct lint --config ./.ct.yaml - name: Run helm-docs run: | @@ -227,6 +223,35 @@ jobs: ./ah lint -p charts/ingress-nginx || exit 1 rm -f ./ah ./ah_1.5.0_linux_amd64.tar.gz + helm-test: + name: Helm chart testing + runs-on: ubuntu-latest + needs: + - changes + - build + - helm-lint + if: | + (needs.changes.outputs.charts == 'true') || (needs.changes.outputs.baseimage == 'true') + + strategy: + matrix: + k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0] + + steps: + - name: Checkout + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + + - name: Setup Go + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + with: + go-version: ${{ needs.build.outputs.golangversion }} + check-latest: true + + - name: cache + uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + with: + name: docker.tar.gz + - name: fix permissions run: | sudo mkdir -p $HOME/.kube diff --git a/charts/ingress-nginx/Chart.yaml b/charts/ingress-nginx/Chart.yaml index 3e977530f..7996c29c5 100644 --- a/charts/ingress-nginx/Chart.yaml +++ b/charts/ingress-nginx/Chart.yaml @@ -9,15 +9,15 @@ description: Ingress controller for Kubernetes using NGINX as a reverse proxy an 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: -- ingress -- nginx + - ingress + - nginx kubeVersion: '>=1.20.0-0' maintainers: -- name: Gacko -- name: rikatz -- name: strongjz -- name: tao12345666333 + - name: Gacko + - name: rikatz + - name: strongjz + - name: tao12345666333 name: ingress-nginx sources: -- https://github.com/kubernetes/ingress-nginx + - https://github.com/kubernetes/ingress-nginx version: 4.10.0 From e48fbba774157d5f0c9173c69eac345ca18b1ccb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 05:39:33 -0700 Subject: [PATCH 076/184] Bump actions/add-to-project from 0.6.1 to 1.0.0 (#11184) Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.6.1 to 1.0.0. - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/1b844f0c5ac6446a402e0cb3693f9be5eca188c5...2e5cc851ca7162e9eb510e6da6a5c64022e606a7) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index a87742e63..b999e29be 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -13,7 +13,7 @@ jobs: repository-projects: write issues: write steps: - - uses: actions/add-to-project@1b844f0c5ac6446a402e0cb3693f9be5eca188c5 # v0.6.1 + - uses: actions/add-to-project@2e5cc851ca7162e9eb510e6da6a5c64022e606a7 # v1.0.0 with: project-url: https://github.com/orgs/kubernetes/projects/104 github-token: ${{ secrets.PROJECT_WRITER }} From df9d0e17550d92b1fe11deecd3efa1a391c5b630 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 08:41:43 -0700 Subject: [PATCH 077/184] Bump the all group with 2 updates (#11183) Bumps the all group with 2 updates: [actions/dependency-review-action](https://github.com/actions/dependency-review-action) and [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action). Updates `actions/dependency-review-action` from 4.2.4 to 4.2.5 - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/733dd5d4a5203f238c33806593ec0f5fc5343d8c...5bbc3ba658137598168acb2ab73b21c432dd411b) Updates `aquasecurity/trivy-action` from 0.18.0 to 0.19.0 - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/062f2592684a31eb3aa050cc61e7ca1451cecd3d...d710430a6722f083d3b36b8339ff66b32f22ee55) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/depreview.yaml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index f890b4b4d..3b553afd4 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -11,4 +11,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 - name: 'Dependency Review' - uses: actions/dependency-review-action@733dd5d4a5203f238c33806593ec0f5fc5343d8c # v4.2.4 + uses: actions/dependency-review-action@5bbc3ba658137598168acb2ab73b21c432dd411b # v4.2.5 diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 8bc0f8e40..2d671d966 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -60,7 +60,7 @@ jobs: - name: Scan image with AquaSec/Trivy id: scan - uses: aquasecurity/trivy-action@062f2592684a31eb3aa050cc61e7ca1451cecd3d # v0.18.0 + uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 # v0.19.0 with: image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }} format: 'sarif' From b233a96faaa94921ab4672a212dfff789b9c076d Mon Sep 17 00:00:00 2001 From: Karol Kieglerski Date: Thu, 4 Apr 2024 15:08:00 +0200 Subject: [PATCH 078/184] Fix-semver (#11193) --- .../ingress-nginx/templates/controller-service-internal.yaml | 4 ++-- .../ingress-nginx/templates/controller-service-webhook.yaml | 2 +- charts/ingress-nginx/templates/controller-service.yaml | 4 ++-- charts/ingress-nginx/templates/default-backend-service.yaml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/charts/ingress-nginx/templates/controller-service-internal.yaml b/charts/ingress-nginx/templates/controller-service-internal.yaml index 950eb8f05..6d0b47caf 100644 --- a/charts/ingress-nginx/templates/controller-service-internal.yaml +++ b/charts/ingress-nginx/templates/controller-service-internal.yaml @@ -58,7 +58,7 @@ spec: port: {{ .Values.controller.service.internal.ports.http | default .Values.controller.service.ports.http }} protocol: TCP targetPort: {{ .Values.controller.service.internal.targetPorts.http | default .Values.controller.service.targetPorts.http }} - {{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }} + {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }} appProtocol: http {{- end }} {{- if (and $setNodePorts (not (empty .Values.controller.service.internal.nodePorts.http))) }} @@ -70,7 +70,7 @@ spec: port: {{ .Values.controller.service.internal.ports.https | default .Values.controller.service.ports.https }} protocol: TCP targetPort: {{ .Values.controller.service.internal.targetPorts.https | default .Values.controller.service.targetPorts.https }} - {{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }} + {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.internal.appProtocol) }} appProtocol: https {{- end }} {{- if (and $setNodePorts (not (empty .Values.controller.service.internal.nodePorts.https))) }} diff --git a/charts/ingress-nginx/templates/controller-service-webhook.yaml b/charts/ingress-nginx/templates/controller-service-webhook.yaml index 2d02e23aa..6dcf1a10a 100644 --- a/charts/ingress-nginx/templates/controller-service-webhook.yaml +++ b/charts/ingress-nginx/templates/controller-service-webhook.yaml @@ -31,7 +31,7 @@ spec: - name: https-webhook port: 443 targetPort: webhook - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} + {{- if semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version }} appProtocol: https {{- end }} selector: diff --git a/charts/ingress-nginx/templates/controller-service.yaml b/charts/ingress-nginx/templates/controller-service.yaml index 74f608536..cb78a7035 100644 --- a/charts/ingress-nginx/templates/controller-service.yaml +++ b/charts/ingress-nginx/templates/controller-service.yaml @@ -58,7 +58,7 @@ spec: port: {{ .Values.controller.service.ports.http }} protocol: TCP targetPort: {{ .Values.controller.service.targetPorts.http }} - {{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }} + {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }} appProtocol: http {{- end }} {{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.http))) }} @@ -70,7 +70,7 @@ spec: port: {{ .Values.controller.service.ports.https }} protocol: TCP targetPort: {{ .Values.controller.service.targetPorts.https }} - {{- if and (semverCompare ">=1.20" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }} + {{- if and (semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version) (.Values.controller.service.appProtocol) }} appProtocol: https {{- end }} {{- if (and $setNodePorts (not (empty .Values.controller.service.nodePorts.https))) }} diff --git a/charts/ingress-nginx/templates/default-backend-service.yaml b/charts/ingress-nginx/templates/default-backend-service.yaml index 2cccd6e9e..65b6b8362 100644 --- a/charts/ingress-nginx/templates/default-backend-service.yaml +++ b/charts/ingress-nginx/templates/default-backend-service.yaml @@ -32,7 +32,7 @@ spec: port: {{ .Values.defaultBackend.service.servicePort }} protocol: TCP targetPort: http - {{- if semverCompare ">=1.20" .Capabilities.KubeVersion.Version }} + {{- if semverCompare ">=1.20.0-0" .Capabilities.KubeVersion.Version }} appProtocol: http {{- end }} selector: From 404bfc348518139c1c201f459d20d02ff85a2de3 Mon Sep 17 00:00:00 2001 From: James Strong Date: Thu, 4 Apr 2024 09:20:16 -0400 Subject: [PATCH 079/184] force nginx rebuild Signed-off-by: James Strong --- images/nginx-1.25/TAG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/nginx-1.25/TAG b/images/nginx-1.25/TAG index 837042c77..254a9f20d 100644 --- a/images/nginx-1.25/TAG +++ b/images/nginx-1.25/TAG @@ -1 +1 @@ -v0.0.5 \ No newline at end of file +v0.0.6 \ No newline at end of file From 8d402ebfd82f512bedf096920730be89fbbc871f Mon Sep 17 00:00:00 2001 From: James Strong Date: Thu, 4 Apr 2024 09:27:19 -0400 Subject: [PATCH 080/184] update test image and go version Signed-off-by: James Strong --- GOLANG_VERSION | 2 +- images/test-runner/TAG | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GOLANG_VERSION b/GOLANG_VERSION index 24b38a959..8864ad297 100644 --- a/GOLANG_VERSION +++ b/GOLANG_VERSION @@ -1 +1 @@ -1.22.1 \ No newline at end of file +1.22.2 \ No newline at end of file diff --git a/images/test-runner/TAG b/images/test-runner/TAG index 95e94cdd3..90ab6e946 100644 --- a/images/test-runner/TAG +++ b/images/test-runner/TAG @@ -1 +1 @@ -v0.0.1 \ No newline at end of file +v0.0.2 \ No newline at end of file From bf3fa531676ce2b61effb55f5a94345dbc382d09 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Thu, 4 Apr 2024 17:01:10 +0200 Subject: [PATCH 081/184] Owners: Promote Gacko to `ingress-nginx-maintainers` & `ingress-nginx-reviewers`. (#11165) * Owners: Sort `ingress-nginx-maintainers` & `ingress-nginx-reviewers`. * Owners: Update URL in aliases. * Images: Remove owners as it's identical to global owners. * Images: Remove global owners from `kube-webhook-certgen` owners. * Owners: Remove members from aliases covered by other aliases. ingress-nginx-helm-maintainers: - cpanato: Covered by ingress-nginx-maintainers - strongjz: Covered by ingress-nginx-maintainers ingress-nginx-helm-reviewers: - cpanato: Covered by ingress-nginx-reviewers - strongjz: Covered by ingress-nginx-reviewers ingress-nginx-docs-maintainers: - tao12345666333: Covered by ingress-nginx-maintainers * Owners: Promote myself to `ingress-nginx-maintainers` & `ingress-nginx-reviewers`. --- OWNERS | 4 ++-- OWNERS_ALIASES | 19 +++++++------------ charts/ingress-nginx/OWNERS | 2 +- docs/OWNERS | 4 ++-- images/OWNERS | 9 --------- images/kube-webhook-certgen/OWNERS | 8 +------- rootfs/etc/nginx/lua/OWNERS | 4 ++-- 7 files changed, 15 insertions(+), 35 deletions(-) delete mode 100644 images/OWNERS diff --git a/OWNERS b/OWNERS index da1da1b2e..f1e022c38 100644 --- a/OWNERS +++ b/OWNERS @@ -1,4 +1,4 @@ -# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md +# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners approvers: - ingress-nginx-maintainers @@ -7,6 +7,6 @@ reviewers: - ingress-nginx-reviewers emeritus_approvers: -- aledbf # 2020-04-02 +- aledbf # 2020-04-02 - bowei # 2022-10-12 - ElvinEfendi # 2023-04-23 diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 44fc67d2e..fa10804ce 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -1,4 +1,4 @@ -# See the OWNERS docs: https://git.k8s.io/community/docs/devel/owners.md +# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners aliases: sig-network-leads: @@ -11,34 +11,29 @@ aliases: - strongjz ingress-nginx-maintainers: + - cpanato + - Gacko + - puerco - rikatz - strongjz - - cpanato - - puerco - tao12345666333 ingress-nginx-reviewers: + - cpanato + - Gacko + - puerco - rikatz - strongjz - - puerco - - cpanato - tao12345666333 ingress-nginx-helm-maintainers: - - cpanato - - Gacko - - strongjz - ubergesundheit ingress-nginx-helm-reviewers: - - cpanato - - Gacko - - strongjz - ubergesundheit ingress-nginx-docs-maintainers: - longwuyuan - - tao12345666333 ingress-nginx-kube-webhook-certgen-reviewers: - invidian diff --git a/charts/ingress-nginx/OWNERS b/charts/ingress-nginx/OWNERS index 6b7e049ca..d588ede68 100644 --- a/charts/ingress-nginx/OWNERS +++ b/charts/ingress-nginx/OWNERS @@ -1,4 +1,4 @@ -# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md +# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners approvers: - ingress-nginx-helm-maintainers diff --git a/docs/OWNERS b/docs/OWNERS index e8b886e5b..245cb8688 100644 --- a/docs/OWNERS +++ b/docs/OWNERS @@ -1,7 +1,7 @@ -# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md +# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners approvers: - ingress-nginx-docs-maintainers labels: -- area/docs \ No newline at end of file +- area/docs diff --git a/images/OWNERS b/images/OWNERS deleted file mode 100644 index 00f162ebd..000000000 --- a/images/OWNERS +++ /dev/null @@ -1,9 +0,0 @@ -# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md - -approvers: -- ingress-nginx-admins -- ingress-nginx-maintainers - -reviewers: -- ingress-nginx-admins -- ingress-nginx-maintainers diff --git a/images/kube-webhook-certgen/OWNERS b/images/kube-webhook-certgen/OWNERS index ad47b2e6d..b4424221c 100644 --- a/images/kube-webhook-certgen/OWNERS +++ b/images/kube-webhook-certgen/OWNERS @@ -1,10 +1,4 @@ -# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md - -approvers: -- ingress-nginx-admins -- ingress-nginx-maintainers +# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners reviewers: -- ingress-nginx-admins -- ingress-nginx-maintainers - ingress-nginx-kube-webhook-certgen-reviewers diff --git a/rootfs/etc/nginx/lua/OWNERS b/rootfs/etc/nginx/lua/OWNERS index 79814fdba..efb131316 100644 --- a/rootfs/etc/nginx/lua/OWNERS +++ b/rootfs/etc/nginx/lua/OWNERS @@ -1,4 +1,4 @@ -# See the OWNERS docs: https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md +# See the OWNERS docs: https://www.kubernetes.dev/docs/guide/owners labels: -- area/lua \ No newline at end of file +- area/lua From 622e36fd6a988d540f871a45d0cd3e08d32b29db Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Thu, 4 Apr 2024 20:37:33 +0530 Subject: [PATCH 082/184] bump ginkgo to 2-17-1 in testrunner (#11202) --- images/test-runner/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/test-runner/Makefile b/images/test-runner/Makefile index 627475d22..ac0757ab2 100644 --- a/images/test-runner/Makefile +++ b/images/test-runner/Makefile @@ -59,7 +59,7 @@ image: --build-arg YAML_LINT_VERSION=1.33.0 \ --build-arg YAMALE_VERSION=4.0.4 \ --build-arg HELM_VERSION=3.11.2 \ - --build-arg GINKGO_VERSION=2.15.0 \ + --build-arg GINKGO_VERSION=2.17.1 \ --build-arg GOLINT_VERSION=latest \ -t ${IMAGE}:${TAG} rootfs @@ -80,7 +80,7 @@ build: ensure-buildx --build-arg YAML_LINT_VERSION=1.33.0 \ --build-arg YAMALE_VERSION=4.0.4 \ --build-arg HELM_VERSION=3.11.2 \ - --build-arg GINKGO_VERSION=2.15.0 \ + --build-arg GINKGO_VERSION=2.17.1 \ --build-arg GOLINT_VERSION=latest \ -t ${IMAGE}:${TAG} rootfs From 3599a4c6ccea43f136baf2f184f5ad72a6f1143f Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Thu, 4 Apr 2024 20:48:53 +0530 Subject: [PATCH 083/184] chunking related faq update (#11196) --- docs/faq.md | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 253378c65..a210c221b 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -7,27 +7,51 @@ Please read [Retain Client IPAddress Guide here](./user-guide/retaining-client-i ## Kubernetes v1.22 Migration -If you are using Ingress objects in your cluster (running Kubernetes older than v1.22), and you plan to upgrade your Kubernetes version to K8S 1.22 or above, then please read [the migration guide here](./user-guide/k8s-122-migration.md). +If you are using Ingress objects in your cluster (running Kubernetes older than +version 1.22), and you plan to upgrade your Kubernetes version to K8S 1.22 or +above, then please read [the migration guide here](./user-guide/k8s-122-migration.md). ## Validation Of __`path`__ -- For improving security and also following desired standards on Kubernetes API spec, the next release, scheduled for v1.8.0, will include a new & optional feature of validating the value for the key `ingress.spec.rules.http.paths.path` . +- For improving security and also following desired standards on Kubernetes API +spec, the next release, scheduled for v1.8.0, will include a new & optional +feature of validating the value for the key `ingress.spec.rules.http.paths.path`. -- This behavior will be disabled by default on the 1.8.0 release and enabled by default on the next breaking change release, set for 2.0.0. +- This behavior will be disabled by default on the 1.8.0 release and enabled by +default on the next breaking change release, set for 2.0.0. -- When "`ingress.spec.rules.http.pathType=Exact`" or "`pathType=Prefix`", this validation will limit the characters accepted on the field "`ingress.spec.rules.http.paths.path`", to "`alphanumeric characters`", and `"/," "_," "-."` Also, in this case, the path should start with `"/."` +- When "`ingress.spec.rules.http.pathType=Exact`" or "`pathType=Prefix`", this +validation will limit the characters accepted on the field "`ingress.spec.rules.http.paths.path`", +to "`alphanumeric characters`", and `"/," "_," "-."` Also, in this case, +the path should start with `"/."` -- When the ingress resource path contains other characters (like on rewrite configurations), the pathType value should be "`ImplementationSpecific`". +- When the ingress resource path contains other characters (like on rewrite +configurations), the pathType value should be "`ImplementationSpecific`". - API Spec on pathType is documented [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types) -- When this option is enabled, the validation will happen on the Admission Webhook. So if any new ingress object contains characters other than "`alphanumeric characters`", and `"/," "_," "-."` , in the `path` field, but is not using `pathType` value as `ImplementationSpecific`, then the ingress object will be denied admission. +- When this option is enabled, the validation will happen on the Admission +Webhook. So if any new ingress object contains characters other than +alphanumeric characters, and, `"/,","_","-"`, in the `path` field, but +is not using `pathType` value as `ImplementationSpecific`, then the ingress +object will be denied admission. -- The cluster admin should establish validation rules using mechanisms like "`Open Policy Agent`", to validate that only authorized users can use ImplementationSpecific pathType and that only the authorized characters can be used. [The configmap value is here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#strict-validate-path-type) +- The cluster admin should establish validation rules using mechanisms like +"`Open Policy Agent`", to validate that only authorized users can use +ImplementationSpecific pathType and that only the authorized characters can be +used. [The configmap value is here](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#strict-validate-path-type) - A complete example of an Openpolicyagent gatekeeper rule is available [here](https://kubernetes.github.io/ingress-nginx/examples/openpolicyagent/) -- If you have any issues or concerns, please do one of the following: - - Open a GitHub issue +- If you have any issues or concerns, please do one of the following: + - Open a GitHub issue - Comment in our Dev Slack Channel - - Open a thread in our Google Group ingress-nginx-dev@kubernetes.io + - Open a thread in our Google Group + +## Why is chunking not working since controller v1.10 ? + +- If your code is setting the HTTP header `"Transfer-Encoding: chunked"` and +the controller log messages show an error about duplicate header, it is +because of this change + +- More details are available in this issue From ad274ab2c62604a8d6b950793536df97f214a18f Mon Sep 17 00:00:00 2001 From: TheRealNoob Date: Thu, 4 Apr 2024 12:50:05 -0700 Subject: [PATCH 084/184] Chart: Make `controller.config` templatable. (#11181) * [helm] pass controller.config through tpl * add unittest * update README.md * Update charts/ingress-nginx/README.md Co-authored-by: Marco Ebert * Update charts/ingress-nginx/tests/controller-configmap_test.yaml Co-authored-by: Marco Ebert * Update charts/ingress-nginx/values.yaml Co-authored-by: Marco Ebert --------- Co-authored-by: Marco Ebert --- charts/ingress-nginx/README.md | 2 +- .../templates/controller-configmap.yaml | 2 +- .../tests/controller-configmap_test.yaml | 17 +++++++++++++++++ charts/ingress-nginx/values.yaml | 3 ++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index e7298b5b7..f5197537e 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -285,7 +285,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.autoscaling.targetCPUUtilizationPercentage | int | `50` | | | controller.autoscaling.targetMemoryUtilizationPercentage | int | `50` | | | controller.autoscalingTemplate | list | `[]` | | -| controller.config | object | `{}` | Will add custom configuration options to Nginx https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ | +| controller.config | object | `{}` | Global configuration passed to the ConfigMap consumed by the controller. Values may contain Helm templates. Ref.: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ | | controller.configAnnotations | object | `{}` | Annotations to be added to the controller config configuration configmap. | | controller.configMapNamespace | string | `""` | Allows customization of the configmap / nginx-configmap namespace; defaults to $(POD_NAMESPACE) | | controller.containerName | string | `"controller"` | Configures the controller container name | diff --git a/charts/ingress-nginx/templates/controller-configmap.yaml b/charts/ingress-nginx/templates/controller-configmap.yaml index 662a16204..22080d115 100644 --- a/charts/ingress-nginx/templates/controller-configmap.yaml +++ b/charts/ingress-nginx/templates/controller-configmap.yaml @@ -24,5 +24,5 @@ data: ssl-dh-param: {{ include "ingress-nginx.namespace" . }}/{{ include "ingress-nginx.controller.fullname" . }} {{- end }} {{- range $key, $value := .Values.controller.config }} - {{- $key | nindent 2 }}: {{ $value | quote }} + {{- $key | nindent 2 }}: {{ tpl (toString $value) $ | quote }} {{- end }} diff --git a/charts/ingress-nginx/tests/controller-configmap_test.yaml b/charts/ingress-nginx/tests/controller-configmap_test.yaml index 038760338..9cfea9800 100644 --- a/charts/ingress-nginx/tests/controller-configmap_test.yaml +++ b/charts/ingress-nginx/tests/controller-configmap_test.yaml @@ -12,3 +12,20 @@ tests: - equal: path: metadata.name value: RELEASE-NAME-ingress-nginx-controller + + - it: should create a ConfigMap with templated values if `controller.config` contains templates + set: + controller.config: + global-rate-limit-memcached-host: "memcached.{{ .Release.Namespace }}.svc.kubernetes.local" + global-rate-limit-memcached-port: 11211 + use-gzip: true + asserts: + - equal: + path: data.global-rate-limit-memcached-host + value: memcached.NAMESPACE.svc.kubernetes.local + - equal: + path: data.global-rate-limit-memcached-port + value: "11211" + - equal: + path: data.use-gzip + value: "true" diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 3741323c4..f0e5ba312 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -45,7 +45,8 @@ controller: containerPort: http: 80 https: 443 - # -- Will add custom configuration options to Nginx https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ + # -- Global configuration passed to the ConfigMap consumed by the controller. Values may contain Helm templates. + # Ref.: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/ config: {} # -- Annotations to be added to the controller config configuration configmap. configAnnotations: {} From fb7db8b7815acb0a6481f80582bb45a9eace3357 Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Fri, 5 Apr 2024 08:24:16 +0530 Subject: [PATCH 085/184] updated baseimage & deleted a useless file (#11208) --- NGINX_BASE | 2 +- ingress-nginx.yaml | 68 ---------------------------------------------- 2 files changed, 1 insertion(+), 69 deletions(-) delete mode 100644 ingress-nginx.yaml diff --git a/NGINX_BASE b/NGINX_BASE index 4daa5c4d3..4d2c4917f 100644 --- a/NGINX_BASE +++ b/NGINX_BASE @@ -1 +1 @@ -registry.k8s.io/ingress-nginx/nginx-1.25:v0.0.5@sha256:cdafd6c9d36e23414ce41330a482f9136ce82fac46802809681f61cdcd5ad0bb +registry.k8s.io/ingress-nginx/nginx-1.25:v0.0.6@sha256:b3e027ab191eb9461a9bcf25092eabb1d547cba164992dbd722c1aa2b4a936ee diff --git a/ingress-nginx.yaml b/ingress-nginx.yaml deleted file mode 100644 index be66255e0..000000000 --- a/ingress-nginx.yaml +++ /dev/null @@ -1,68 +0,0 @@ -CURRENT_VERSION: "v1.5.1" -GOLANG_VERSION: "1.19.2" -GIT_TAG: "controller-v1.5.1" -NGINX_BASE_IMAGE: "registry.k8s.io/ingress-nginx/nginx:0b5e0685112e4537ee20a0bdbba451e9f6158aa3@sha256:3f5e28bb248d5170e77b77fc2a1a385724aeff41a0b34b5afad7dd9cf93de000" -NGINX_VERSION: "1.21.6" -VERSION_TABLE: - - "v1.5.1": - - Alpine: "3.16.2" - - Kubernetes: ["1.25","1.24","1.23"] - - NGINX: "1.21.6" - - CONTROLLER_IMAGE: "registry.k8s.io/ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629" - - CHROOT_CONTROLLER_IMAGE: "registry.k8s.io/ingress-nginx/controller-chroot:v1.5.1@sha256:c1c091b88a6c936a83bd7b098662760a87868d12452529bad0d178fb36147345" - - "v1.4.0": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.3.1": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.3.0": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.2.1": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.1.3": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.1.2": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.1.1": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.1.0": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.0.5": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.0.4": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.0.3": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.0.2": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.0.1": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" - - "v1.0.0": - - Alpine: "3.16.2" - - Kubernetes: [ "1.24","1.23", "1.22", "1.21", "1.20" ] - - NGINX: "1.19.10" From f93cfb781523c4386aa11a11327a69b5a54e9dbe Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Fri, 5 Apr 2024 15:28:19 +0530 Subject: [PATCH 086/184] changed testrunner image sha (#11207) --- build/run-in-docker.sh | 4 ++-- test/e2e-image/Makefile | 2 +- test/e2e/run-chart-test.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/run-in-docker.sh b/build/run-in-docker.sh index 62bd7115c..5d4e82a09 100755 --- a/build/run-in-docker.sh +++ b/build/run-in-docker.sh @@ -44,7 +44,7 @@ function cleanup { } trap cleanup EXIT -E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20240126-760bf8eb@sha256:5e676bf2e5d5d035adfc6e093abee040af08327011e72fef640fa20da73cea2e} +E2E_IMAGE=${E2E_IMAGE:-registry.k8s.io/ingress-nginx/e2e-test-runner:v20240404-436df3e4@sha256:6bcba53b14d396177414e01f20e9111f1c009ac3b476a9b7668bb98d12bd5e85} if [[ "$RUNTIME" == podman ]]; then # Podman does not support both tag and digest @@ -96,4 +96,4 @@ else fi ${RUNTIME} run $args ${E2E_IMAGE} ${USE_SHELL} -c "${FLAGS}" -fi \ No newline at end of file +fi diff --git a/test/e2e-image/Makefile b/test/e2e-image/Makefile index 9f43c4691..daba2b674 100644 --- a/test/e2e-image/Makefile +++ b/test/e2e-image/Makefile @@ -1,6 +1,6 @@ DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -E2E_BASE_IMAGE ?= "registry.k8s.io/ingress-nginx/e2e-test-runner:v20240126-760bf8eb@sha256:5e676bf2e5d5d035adfc6e093abee040af08327011e72fef640fa20da73cea2e" +E2E_BASE_IMAGE ?= "registry.k8s.io/ingress-nginx/e2e-test-runner:v20240404-436df3e4@sha256:6bcba53b14d396177414e01f20e9111f1c009ac3b476a9b7668bb98d12bd5e85" image: echo "..entered Makefile in /test/e2e-image" diff --git a/test/e2e/run-chart-test.sh b/test/e2e/run-chart-test.sh index e38df8690..a453bd1b4 100755 --- a/test/e2e/run-chart-test.sh +++ b/test/e2e/run-chart-test.sh @@ -109,7 +109,7 @@ docker run --rm --interactive --network host \ --volume $KUBECONFIG:/root/.kube/config \ --volume "${DIR}/../../":/workdir \ --workdir /workdir \ - registry.k8s.io/ingress-nginx/e2e-test-runner:v20240126-760bf8eb@sha256:5e676bf2e5d5d035adfc6e093abee040af08327011e72fef640fa20da73cea2e \ + registry.k8s.io/ingress-nginx/e2e-test-runner:v20240404-436df3e4@sha256:6bcba53b14d396177414e01f20e9111f1c009ac3b476a9b7668bb98d12bd5e85 \ ct install \ --charts charts/ingress-nginx \ --helm-extra-args "--timeout 60s" From 7decd01468d390bd30a6c3dfd833c5c15222086b Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Fri, 5 Apr 2024 16:01:01 +0530 Subject: [PATCH 087/184] bumped certgeimage tag (#11212) --- images/kube-webhook-certgen/TAG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/kube-webhook-certgen/TAG b/images/kube-webhook-certgen/TAG index 0d0c52f84..66d62a800 100644 --- a/images/kube-webhook-certgen/TAG +++ b/images/kube-webhook-certgen/TAG @@ -1 +1 @@ -v1.4.0 +v1.4.1 From e9509e27aa9a6660a8bc70e96c988ce4be4aac11 Mon Sep 17 00:00:00 2001 From: Matheus Fidelis Date: Fri, 5 Apr 2024 08:54:48 -0300 Subject: [PATCH 088/184] feature(default_backend): topologySpreadConstraints on default backend (#11197) feature(default_backend): topologySpread support feature(default_backend): topologySpread support feature(default_backend): helm-docs feature(default_backend): helm-docs feature(default_backend): helm-docs feature(default_backend): helm-docs feature(default_backend): nit feature(default_backend): nit feature(default_backend): nit --- charts/ingress-nginx/README.md | 1 + .../templates/default-backend-deployment.yaml | 3 +++ charts/ingress-nginx/values.yaml | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index f5197537e..db162bc85 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -534,6 +534,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | defaultBackend.serviceAccount.create | bool | `true` | | | defaultBackend.serviceAccount.name | string | `""` | | | defaultBackend.tolerations | list | `[]` | Node tolerations for server scheduling to nodes with taints # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ # | +| defaultBackend.topologySpreadConstraints | list | `[]` | Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in. Ref.: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ | | defaultBackend.updateStrategy | object | `{}` | The update strategy to apply to the Deployment or DaemonSet # | | dhParam | string | `""` | A base64-encoded Diffie-Hellman parameter. This can be generated with: `openssl dhparam 4096 2> /dev/null | base64` # Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param | | imagePullSecrets | list | `[]` | Optional array of imagePullSecrets containing private registry credentials # Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ | diff --git a/charts/ingress-nginx/templates/default-backend-deployment.yaml b/charts/ingress-nginx/templates/default-backend-deployment.yaml index d342c8c35..dc2bbcbdd 100644 --- a/charts/ingress-nginx/templates/default-backend-deployment.yaml +++ b/charts/ingress-nginx/templates/default-backend-deployment.yaml @@ -109,6 +109,9 @@ spec: {{- if .Values.defaultBackend.affinity }} affinity: {{ toYaml .Values.defaultBackend.affinity | nindent 8 }} {{- end }} + {{- if .Values.defaultBackend.topologySpreadConstraints }} + topologySpreadConstraints: {{ tpl (toYaml .Values.defaultBackend.topologySpreadConstraints) $ | nindent 8 }} + {{- end }} terminationGracePeriodSeconds: 60 {{- if .Values.defaultBackend.extraVolumes }} volumes: {{ toYaml .Values.defaultBackend.extraVolumes | nindent 8 }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index f0e5ba312..86e0eabce 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -998,6 +998,25 @@ defaultBackend: # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)" affinity: {} + # -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in. + # Ref.: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ + topologySpreadConstraints: [] + # - labelSelector: + # matchLabels: + # app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}' + # app.kubernetes.io/instance: '{{ .Release.Name }}' + # app.kubernetes.io/component: default-backend + # 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: default-backend + # topologyKey: kubernetes.io/hostname + # maxSkew: 1 + # whenUnsatisfiable: ScheduleAnyway # -- Security context for default backend pods podSecurityContext: {} # -- Security context for default backend containers From 5e0792ecb56e3efef1697b27f06066a5144b8e3c Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Fri, 5 Apr 2024 20:46:55 +0530 Subject: [PATCH 089/184] updated certgen image shatag (#11214) --- charts/ingress-nginx/README.md | 4 ++-- charts/ingress-nginx/values.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index db162bc85..c3489a6c3 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -253,11 +253,11 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.admissionWebhooks.namespaceSelector | object | `{}` | | | controller.admissionWebhooks.objectSelector | object | `{}` | | | controller.admissionWebhooks.patch.enabled | bool | `true` | | -| controller.admissionWebhooks.patch.image.digest | string | `"sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334"` | | +| controller.admissionWebhooks.patch.image.digest | string | `"sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366"` | | | controller.admissionWebhooks.patch.image.image | string | `"ingress-nginx/kube-webhook-certgen"` | | | controller.admissionWebhooks.patch.image.pullPolicy | string | `"IfNotPresent"` | | | controller.admissionWebhooks.patch.image.registry | string | `"registry.k8s.io"` | | -| controller.admissionWebhooks.patch.image.tag | string | `"v1.4.0"` | | +| controller.admissionWebhooks.patch.image.tag | string | `"v1.4.1"` | | | controller.admissionWebhooks.patch.labels | object | `{}` | Labels to be added to patch job resources | | controller.admissionWebhooks.patch.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not | | controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os" | string | `"linux"` | | diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 86e0eabce..85990614b 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -802,8 +802,8 @@ 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.4.0 - digest: sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + tag: v1.4.1 + digest: sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 pullPolicy: IfNotPresent # -- Provide a priority class name to the webhook patching job ## From 158ba45b0bb06d38def61fb3f385bdf350a7f784 Mon Sep 17 00:00:00 2001 From: Jozef Halgas <43298212+jozefhalgas@users.noreply.github.com> Date: Fri, 5 Apr 2024 21:10:36 +0200 Subject: [PATCH 090/184] sort default backend hpa metrics (#11215) --- .../templates/default-backend-hpa.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/charts/ingress-nginx/templates/default-backend-hpa.yaml b/charts/ingress-nginx/templates/default-backend-hpa.yaml index 699323897..49bcdcfdc 100644 --- a/charts/ingress-nginx/templates/default-backend-hpa.yaml +++ b/charts/ingress-nginx/templates/default-backend-hpa.yaml @@ -21,14 +21,6 @@ spec: minReplicas: {{ .Values.defaultBackend.autoscaling.minReplicas }} maxReplicas: {{ .Values.defaultBackend.autoscaling.maxReplicas }} metrics: - {{- with .Values.defaultBackend.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ . }} - {{- end }} {{- with .Values.defaultBackend.autoscaling.targetMemoryUtilizationPercentage }} - type: Resource resource: @@ -37,4 +29,12 @@ spec: type: Utilization averageUtilization: {{ . }} {{- end }} + {{- with .Values.defaultBackend.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ . }} + {{- end }} {{- end }} From 531b007b604afce3fee8fa23a96dc5626401f762 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Fri, 5 Apr 2024 23:19:58 +0200 Subject: [PATCH 091/184] Chart: Add unit tests for default backend & topology spread constraints. (#11218) Also remove trailing whitespaces. --- .../templates/default-backend-deployment.yaml | 2 +- .../tests/controller-daemonset_test.yaml | 41 ++++++++ .../tests/controller-deployment_test.yaml | 40 ++++++++ .../default-backend-deployment_test.yaml | 94 +++++++++++++++++++ 4 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 charts/ingress-nginx/tests/default-backend-deployment_test.yaml diff --git a/charts/ingress-nginx/templates/default-backend-deployment.yaml b/charts/ingress-nginx/templates/default-backend-deployment.yaml index dc2bbcbdd..6834dba07 100644 --- a/charts/ingress-nginx/templates/default-backend-deployment.yaml +++ b/charts/ingress-nginx/templates/default-backend-deployment.yaml @@ -111,7 +111,7 @@ spec: {{- end }} {{- if .Values.defaultBackend.topologySpreadConstraints }} topologySpreadConstraints: {{ tpl (toYaml .Values.defaultBackend.topologySpreadConstraints) $ | nindent 8 }} - {{- end }} + {{- end }} terminationGracePeriodSeconds: 60 {{- if .Values.defaultBackend.extraVolumes }} volumes: {{ toYaml .Values.defaultBackend.extraVolumes | nindent 8 }} diff --git a/charts/ingress-nginx/tests/controller-daemonset_test.yaml b/charts/ingress-nginx/tests/controller-daemonset_test.yaml index 316455362..29359fd9e 100644 --- a/charts/ingress-nginx/tests/controller-daemonset_test.yaml +++ b/charts/ingress-nginx/tests/controller-daemonset_test.yaml @@ -54,3 +54,44 @@ tests: - equal: path: spec.template.spec.containers[0].resources.limits.memory value: 512Mi + + - it: should create a DaemonSet with topology spread constraints if `controller.topologySpreadConstraints` is set + set: + controller.kind: DaemonSet + controller.topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}' + app.kubernetes.io/instance: '{{ .Release.Name }}' + app.kubernetes.io/component: controller + topologyKey: topology.kubernetes.io/zone + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}' + app.kubernetes.io/instance: '{{ .Release.Name }}' + app.kubernetes.io/component: controller + topologyKey: kubernetes.io/hostname + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + asserts: + - equal: + path: spec.template.spec.topologySpreadConstraints + value: + - labelSelector: + matchLabels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/component: controller + topologyKey: topology.kubernetes.io/zone + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchLabels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/component: controller + topologyKey: kubernetes.io/hostname + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway diff --git a/charts/ingress-nginx/tests/controller-deployment_test.yaml b/charts/ingress-nginx/tests/controller-deployment_test.yaml index eee99385d..d0330db90 100644 --- a/charts/ingress-nginx/tests/controller-deployment_test.yaml +++ b/charts/ingress-nginx/tests/controller-deployment_test.yaml @@ -78,3 +78,43 @@ tests: - equal: path: spec.template.spec.containers[0].resources.limits.memory value: 512Mi + + - it: should create a Deployment with topology spread constraints if `controller.topologySpreadConstraints` is set + set: + controller.topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}' + app.kubernetes.io/instance: '{{ .Release.Name }}' + app.kubernetes.io/component: controller + topologyKey: topology.kubernetes.io/zone + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}' + app.kubernetes.io/instance: '{{ .Release.Name }}' + app.kubernetes.io/component: controller + topologyKey: kubernetes.io/hostname + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + asserts: + - equal: + path: spec.template.spec.topologySpreadConstraints + value: + - labelSelector: + matchLabels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/component: controller + topologyKey: topology.kubernetes.io/zone + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchLabels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/component: controller + topologyKey: kubernetes.io/hostname + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway diff --git a/charts/ingress-nginx/tests/default-backend-deployment_test.yaml b/charts/ingress-nginx/tests/default-backend-deployment_test.yaml new file mode 100644 index 000000000..e6fd0c541 --- /dev/null +++ b/charts/ingress-nginx/tests/default-backend-deployment_test.yaml @@ -0,0 +1,94 @@ +suite: Default Backend > Deployment +templates: + - default-backend-deployment.yaml + +tests: + - it: should not create a Deployment if `defaultBackend.enabled` is false + set: + defaultBackend.enabled: false + asserts: + - hasDocuments: + count: 0 + + - it: should create a Deployment if `defaultBackend.enabled` is true + set: + defaultBackend.enabled: true + asserts: + - hasDocuments: + count: 1 + - isKind: + of: Deployment + - equal: + path: metadata.name + value: RELEASE-NAME-ingress-nginx-defaultbackend + + - it: should create a Deployment with 3 replicas if `defaultBackend.replicaCount` is 3 + set: + defaultBackend.enabled: true + defaultBackend.replicaCount: 3 + asserts: + - equal: + path: spec.replicas + value: 3 + + - it: should create a Deployment without replicas if `defaultBackend.autoscaling.enabled` is true + set: + defaultBackend.enabled: true + defaultBackend.autoscaling.enabled: true + asserts: + - notExists: + path: spec.replicas + + - it: should create a Deployment with resource limits if `defaultBackend.resources.limits` is set + set: + defaultBackend.enabled: true + defaultBackend.resources.limits.cpu: 500m + defaultBackend.resources.limits.memory: 512Mi + asserts: + - equal: + path: spec.template.spec.containers[0].resources.limits.cpu + value: 500m + - equal: + path: spec.template.spec.containers[0].resources.limits.memory + value: 512Mi + + - it: should create a Deployment with topology spread constraints if `defaultBackend.topologySpreadConstraints` is set + set: + defaultBackend.enabled: true + defaultBackend.topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}' + app.kubernetes.io/instance: '{{ .Release.Name }}' + app.kubernetes.io/component: default-backend + 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: default-backend + topologyKey: kubernetes.io/hostname + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + asserts: + - equal: + path: spec.template.spec.topologySpreadConstraints + value: + - labelSelector: + matchLabels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/component: default-backend + topologyKey: topology.kubernetes.io/zone + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway + - labelSelector: + matchLabels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/component: default-backend + topologyKey: kubernetes.io/hostname + maxSkew: 1 + whenUnsatisfiable: ScheduleAnyway From 8ede0f777fa385baac04d4e7edb801e6cf2055b6 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Sat, 6 Apr 2024 00:43:09 +0200 Subject: [PATCH 092/184] update post submit helm ci and clean up (#11220) Signed-off-by: cpanato --- .github/workflows/helm.yaml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index da86a36f0..3ba506c29 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -11,12 +11,13 @@ permissions: jobs: changes: + runs-on: ubuntu-latest + permissions: contents: read # for dorny/paths-filter to fetch a list of changed files - pull-requests: read # for dorny/paths-filter to read pull requests - runs-on: ubuntu-latest - if: | - (github.repository == 'kubernetes/ingress-nginx') + + if: github.repository == 'kubernetes/ingress-nginx' + outputs: docs: ${{ steps.filter.outputs.docs }} charts: ${{ steps.filter.outputs.charts }} @@ -33,9 +34,11 @@ jobs: ./ah lint -p charts/ingress-nginx || exit 1 rm -f ./ah ./ah_1.5.0_linux_amd64.tar.gz - - name: Lint - run: | - ./build/run-in-docker.sh ./hack/verify-chart-lint.sh + - name: Set up chart-testing + uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 + + - name: Run chart-testing (lint) + run: ct lint --config ./.ct.yaml - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -55,9 +58,8 @@ jobs: needs: - changes - if: | - (github.repository == 'kubernetes/ingress-nginx') && - (needs.changes.outputs.charts == 'true') + + if: ${{ needs.changes.outputs.charts == 'true' }} steps: - name: Checkout master From ebc61bdea4eecea14ee168ff30b4359d218f09f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 03:50:43 -0700 Subject: [PATCH 093/184] Bump the all group with 3 updates (#11225) Bumps the all group with 3 updates: [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [dorny/test-reporter](https://github.com/dorny/test-reporter) and [github/codeql-action](https://github.com/github/codeql-action). Updates `docker/setup-buildx-action` from 3.2.0 to 3.3.0 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/2b51285047da1547ffb1b2203d8be4c0af6b1f20...d70bba72b1f3fd22344832f00baa16ece964efeb) Updates `dorny/test-reporter` from 1.8.0 to 1.9.0 - [Release notes](https://github.com/dorny/test-reporter/releases) - [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md) - [Commits](https://github.com/dorny/test-reporter/compare/eaa763f6ffc21c7a37837f56cd5f9737f27fc6c8...c40d89d5e987cd80f3a32b3c233556e22bdca958) Updates `github/codeql-action` from 3.24.9 to 3.24.10 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/1b1aada464948af03b950897e5eb522f92603cc2...4355270be187e1b672a7a1c7c7bae5afdc1ab94a) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: dorny/test-reporter dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- .github/workflows/images.yaml | 2 +- .github/workflows/junit-reports.yaml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f19b7158f..3e7067b8f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -124,7 +124,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 with: version: latest diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index e5684ba79..4afc27aa2 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -200,7 +200,7 @@ jobs: uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 with: version: latest platforms: ${{ env.PLATFORMS }} diff --git a/.github/workflows/junit-reports.yaml b/.github/workflows/junit-reports.yaml index 3b3318def..0d76abbfb 100644 --- a/.github/workflows/junit-reports.yaml +++ b/.github/workflows/junit-reports.yaml @@ -9,7 +9,7 @@ jobs: report: runs-on: ubuntu-latest steps: - - uses: dorny/test-reporter@eaa763f6ffc21c7a37837f56cd5f9737f27fc6c8 # v1.8.0 + - uses: dorny/test-reporter@c40d89d5e987cd80f3a32b3c233556e22bdca958 # v1.9.0 with: artifact: /e2e-test-reports-(.*)/ name: JEST Tests $1 # Name of the check run which will be created diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 3018dee65..d00db6ba3 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 + uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 2d671d966..3a34541a5 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9 + uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository From a93e9b938d91dc50b5eb46b420a640f427d3665e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 04:20:12 -0700 Subject: [PATCH 094/184] Bump github.com/prometheus/client_model in the all group (#11226) Bumps the all group with 1 update: [github.com/prometheus/client_model](https://github.com/prometheus/client_model). Updates `github.com/prometheus/client_model` from 0.6.0 to 0.6.1 - [Release notes](https://github.com/prometheus/client_model/releases) - [Commits](https://github.com/prometheus/client_model/compare/v0.6.0...v0.6.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_model dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a0bb140a0..81c402358 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 - github.com/prometheus/client_model v0.6.0 + github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.51.1 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index 4edd9fe56..c7a4596f4 100644 --- a/go.sum +++ b/go.sum @@ -317,8 +317,8 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= From 3c2cf13bb693ef185258d634a20764fa851a8666 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 04:23:07 -0700 Subject: [PATCH 095/184] Bump golang.org/x/crypto from 0.21.0 to 0.22.0 (#11229) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.21.0 to 0.22.0. - [Commits](https://github.com/golang/crypto/compare/v0.21.0...v0.22.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 81c402358..7b8c3beb5 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 - golang.org/x/crypto v0.21.0 + golang.org/x/crypto v0.22.0 google.golang.org/grpc v1.62.1 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 @@ -107,8 +107,8 @@ require ( golang.org/x/net v0.22.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect + golang.org/x/sys v0.19.0 // indirect + golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.18.0 // indirect diff --git a/go.sum b/go.sum index c7a4596f4..4b635c2ad 100644 --- a/go.sum +++ b/go.sum @@ -401,8 +401,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U 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.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= 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= @@ -543,12 +543,12 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= 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= From cb315d2db437ed8f037c2d3184e8560cf2d1c6e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 05:24:01 -0700 Subject: [PATCH 096/184] Bump github.com/prometheus/common from 0.51.1 to 0.52.2 (#11227) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.51.1 to 0.52.2. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.51.1...v0.52.2) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7b8c3beb5..22b5fa450 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.51.1 + github.com/prometheus/common v0.52.2 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index 4b635c2ad..2d7c137b5 100644 --- a/go.sum +++ b/go.sum @@ -323,8 +323,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.51.1 h1:eIjN50Bwglz6a/c3hAgSMcofL3nD+nFQkV6Dd4DsQCw= -github.com/prometheus/common v0.51.1/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From d808e389117b90ce1766a8b35278306271116bc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 05:26:39 -0700 Subject: [PATCH 097/184] Bump google.golang.org/grpc from 1.62.1 to 1.63.0 (#11228) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.62.1 to 1.63.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.62.1...v1.63.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 22b5fa450..2c63151a8 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.22.0 - google.golang.org/grpc v1.62.1 + google.golang.org/grpc v1.63.0 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 @@ -113,7 +113,7 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.9.0 // indirect gopkg.in/go-playground/assert.v1 v1.2.1 // indirect diff --git a/go.sum b/go.sum index 2d7c137b5..77c8836fc 100644 --- a/go.sum +++ b/go.sum @@ -670,8 +670,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 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/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= 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= @@ -684,8 +684,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.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.63.0 h1:WjKe+dnvABXyPJMD7KDNLxtoGk5tgk+YFWN6cBWjZE8= +google.golang.org/grpc v1.63.0/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab h1:tg8hvIl5RmFBuXlcJMuL0h4Psh1gx5Q5xEMwzBZIzWA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab/go.mod h1:liVNnGuZDITxuksuZ+BBvdy7FcJfeNk+efF9qgqNUmc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From b4cae70b52d23b7fc09f8409345bf4f2cf60e05e Mon Sep 17 00:00:00 2001 From: Tony Li Date: Tue, 9 Apr 2024 03:32:21 +0800 Subject: [PATCH 098/184] remove _ssl_expire_time_seconds metric by identifier (#9706) Signed-off-by: xiayu.lyt --- internal/ingress/controller/controller.go | 3 +-- .../ingress/metric/collectors/controller.go | 24 ++++++++++++------- .../metric/collectors/controller_test.go | 13 ++++++++-- internal/ingress/metric/dummy.go | 2 +- internal/ingress/metric/main.go | 6 ++--- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index db786a15c..a43c143e3 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -253,9 +253,8 @@ func (n *NGINXController) syncIngress(interface{}) error { } ri := utilingress.GetRemovedIngresses(n.runningConfig, pcfg) - re := utilingress.GetRemovedHosts(n.runningConfig, pcfg) rc := utilingress.GetRemovedCertificateSerialNumbers(n.runningConfig, pcfg) - n.metricCollector.RemoveMetrics(ri, re, rc) + n.metricCollector.RemoveMetrics(ri, rc) n.runningConfig = pcfg diff --git a/internal/ingress/metric/collectors/controller.go b/internal/ingress/metric/collectors/controller.go index e1d6789bb..4ee84bc56 100644 --- a/internal/ingress/metric/collectors/controller.go +++ b/internal/ingress/metric/collectors/controller.go @@ -30,7 +30,7 @@ import ( var ( operation = []string{"controller_namespace", "controller_class", "controller_pod"} ingressOperation = []string{"controller_namespace", "controller_class", "controller_pod", "namespace", "ingress"} - sslLabelHost = []string{"namespace", "class", "host", "secret_name"} + sslLabelHost = []string{"namespace", "class", "host", "secret_name", "identifier"} sslInfoLabels = []string{"namespace", "class", "host", "secret_name", "identifier", "issuer_organization", "issuer_common_name", "serial_number", "public_key_algorithm"} orphanityLabels = []string{"controller_namespace", "controller_class", "controller_pod", "namespace", "ingress", "type"} ) @@ -305,6 +305,7 @@ func (cm *Controller) SetSSLExpireTime(servers []*ingress.Server) { } labels["host"] = s.Hostname labels["secret_name"] = s.SSLCert.Name + labels["identifier"] = s.SSLCert.Identifier() cm.sslExpireTime.With(labels).Set(float64(s.SSLCert.ExpireTime.Unix())) } @@ -337,9 +338,9 @@ func (cm *Controller) SetSSLInfo(servers []*ingress.Server) { } } -// RemoveMetrics removes metrics for hostnames not available anymore -func (cm *Controller) RemoveMetrics(hosts, certificates []string, registry prometheus.Gatherer) { - cm.removeSSLExpireMetrics(true, hosts, registry) +// RemoveMetrics removes metrics for certificates not available anymore by identifier +func (cm *Controller) RemoveMetrics(certificates []string, registry prometheus.Gatherer) { + cm.removeSSLExpireMetrics(true, certificates, registry) cm.removeCertificatesMetrics(true, certificates, registry) } @@ -390,14 +391,14 @@ func (cm *Controller) removeCertificatesMetrics(onlyDefinedHosts bool, certifica } } -func (cm *Controller) removeSSLExpireMetrics(onlyDefinedHosts bool, hosts []string, registry prometheus.Gatherer) { +func (cm *Controller) removeSSLExpireMetrics(onlyDefinedCerts bool, certificates []string, registry prometheus.Gatherer) { mfs, err := registry.Gather() if err != nil { klog.ErrorS(err, "Error gathering metrics") return } - toRemove := sets.NewString(hosts...) + toRemove := sets.NewString(certificates...) for _, mf := range mfs { metricName := mf.GetName() @@ -414,19 +415,24 @@ func (cm *Controller) removeSSLExpireMetrics(onlyDefinedHosts bool, hosts []stri // remove labels that are constant deleteConstants(labels) + identifier, ok := labels["identifier"] + if !ok { + continue + } + host, ok := labels["host"] if !ok { continue } - if onlyDefinedHosts && !toRemove.Has(host) { + if onlyDefinedCerts && !toRemove.Has(identifier) { continue } - klog.V(2).InfoS("Removing prometheus metric", "gauge", metricName, "host", host) + klog.V(2).InfoS("Removing prometheus metric", "gauge", metricName, "host", host, "identifier", identifier) removed := cm.sslExpireTime.Delete(labels) if !removed { - klog.V(2).InfoS("metric removed", "metric", metricName, "host", host, "labels", labels) + klog.V(2).InfoS("metric removed", "metric", metricName, "host", host, "identifier", identifier, "labels", labels) } } } diff --git a/internal/ingress/metric/collectors/controller_test.go b/internal/ingress/metric/collectors/controller_test.go index 53a0fd31a..7c7ea8a67 100644 --- a/internal/ingress/metric/collectors/controller_test.go +++ b/internal/ingress/metric/collectors/controller_test.go @@ -88,6 +88,15 @@ func TestControllerCounters(t *testing.T) { Hostname: "demo", SSLCert: &ingress.SSLCert{ ExpireTime: t1, + Certificate: &x509.Certificate{ + PublicKeyAlgorithm: x509.ECDSA, + Issuer: pkix.Name{ + CommonName: "certificate issuer", + SerialNumber: "abcd1234", + Organization: []string{"issuer org"}, + }, + SerialNumber: big.NewInt(100), + }, }, }, { @@ -102,7 +111,7 @@ func TestControllerCounters(t *testing.T) { want: ` # HELP nginx_ingress_controller_ssl_expire_time_seconds Number of seconds since 1970 to the SSL Certificate expire.\n An example to check if this certificate will expire in 10 days is: "nginx_ingress_controller_ssl_expire_time_seconds < (time() + (10 * 24 * 3600))" # TYPE nginx_ingress_controller_ssl_expire_time_seconds gauge - nginx_ingress_controller_ssl_expire_time_seconds{class="nginx",host="demo",namespace="default",secret_name=""} 1.351807721e+09 + nginx_ingress_controller_ssl_expire_time_seconds{class="nginx",host="demo",identifier="abcd1234-100",namespace="default",secret_name=""} 1.351807721e+09 `, metrics: []string{"nginx_ingress_controller_ssl_expire_time_seconds"}, }, @@ -262,7 +271,7 @@ func TestRemoveMetrics(t *testing.T) { cm.SetSSLExpireTime(servers) cm.SetSSLInfo(servers) - cm.RemoveMetrics([]string{"demo"}, []string{"abcd1234-100"}, reg) + cm.RemoveMetrics([]string{"abcd1234-100"}, reg) if err := GatherAndCompare(cm, "", []string{"nginx_ingress_controller_ssl_expire_time_seconds"}, reg); err != nil { t.Errorf("unexpected collecting result:\n%s", err) diff --git a/internal/ingress/metric/dummy.go b/internal/ingress/metric/dummy.go index a619ccbd8..7b1485280 100644 --- a/internal/ingress/metric/dummy.go +++ b/internal/ingress/metric/dummy.go @@ -54,7 +54,7 @@ func (dc DummyCollector) IncCheckCount(string, string) {} func (dc DummyCollector) IncCheckErrorCount(string, string) {} // RemoveMetrics dummy implementation -func (dc DummyCollector) RemoveMetrics(_, _, _ []string) {} +func (dc DummyCollector) RemoveMetrics(_, _ []string) {} // Start dummy implementation func (dc DummyCollector) Start(_ string) {} diff --git a/internal/ingress/metric/main.go b/internal/ingress/metric/main.go index aa35a5c51..93c31622c 100644 --- a/internal/ingress/metric/main.go +++ b/internal/ingress/metric/main.go @@ -46,7 +46,7 @@ type Collector interface { IncOrphanIngress(string, string, string) DecOrphanIngress(string, string, string) - RemoveMetrics(ingresses, endpoints, certificates []string) + RemoveMetrics(ingresses, certificates []string) SetSSLExpireTime([]*ingress.Server) SetSSLInfo(servers []*ingress.Server) @@ -131,9 +131,9 @@ func (c *collector) IncReloadErrorCount() { c.ingressController.IncReloadErrorCount() } -func (c *collector) RemoveMetrics(ingresses, hosts, certificates []string) { +func (c *collector) RemoveMetrics(ingresses, certificates []string) { c.socket.RemoveMetrics(ingresses, c.registry) - c.ingressController.RemoveMetrics(hosts, certificates, c.registry) + c.ingressController.RemoveMetrics(certificates, c.registry) } func (c *collector) Start(admissionStatus string) { From d56aacdb31a0abe59ecb78d0ad078bd833c11da1 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Tue, 9 Apr 2024 17:08:48 +0800 Subject: [PATCH 099/184] Bump google.golang.org/grpc from 1.63.0 to 1.63.2 (#11237) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 遐宇 --- go.mod | 2 +- go.sum | 4 ++-- go.work.sum | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 2c63151a8..780ce5959 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.22.0 - google.golang.org/grpc v1.63.0 + google.golang.org/grpc v1.63.2 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 diff --git a/go.sum b/go.sum index 77c8836fc..b7f63c02f 100644 --- a/go.sum +++ b/go.sum @@ -684,8 +684,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.63.0 h1:WjKe+dnvABXyPJMD7KDNLxtoGk5tgk+YFWN6cBWjZE8= -google.golang.org/grpc v1.63.0/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab h1:tg8hvIl5RmFBuXlcJMuL0h4Psh1gx5Q5xEMwzBZIzWA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab/go.mod h1:liVNnGuZDITxuksuZ+BBvdy7FcJfeNk+efF9qgqNUmc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/go.work.sum b/go.work.sum index af236d3b1..4e1cead39 100644 --- a/go.work.sum +++ b/go.work.sum @@ -535,7 +535,6 @@ github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZY github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= @@ -583,6 +582,7 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -602,6 +602,7 @@ golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= @@ -625,7 +626,6 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -684,6 +684,7 @@ google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqt google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= 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-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= From 1f4ee0e235bfbc55d750b6a20cf4133381fa7dd7 Mon Sep 17 00:00:00 2001 From: Christian Groschupp Date: Tue, 9 Apr 2024 12:25:22 +0200 Subject: [PATCH 100/184] feat: add annotation to allow to add custom response headers (#9742) * add custom headers Signed-off-by: Christian Groschupp * add tests Signed-off-by: Christian Groschupp * add docs * update copyright * change comments * add e2e test customheaders * add custom headers validation * remove escapeLiteralDollar filter * validate value in custom headers * add regex for header value * fix annotation test * Revert "remove escapeLiteralDollar filter" This reverts commit ab48392b60dee4ce146a4c17e046849f9633c7fb. * add annotationConfig * fix test * fix golangci-lint findings * fix: add missung exp module --------- Signed-off-by: Christian Groschupp --- .../nginx-configuration/annotations.md | 17 +++ .../nginx-configuration/configmap.md | 5 + go.mod | 1 + go.work.sum | 77 +++++++++++ internal/ingress/annotations/annotations.go | 3 + .../ingress/annotations/annotations_test.go | 55 +++++++- .../ingress/annotations/customheaders/main.go | 124 ++++++++++++++++++ .../annotations/customheaders/main_test.go | 113 ++++++++++++++++ internal/ingress/controller/config/config.go | 1 + internal/ingress/controller/controller.go | 1 + .../ingress/controller/template/configmap.go | 20 +++ internal/ingress/defaults/main.go | 3 + pkg/apis/ingress/types.go | 4 +- rootfs/etc/nginx/template/nginx.tmpl | 7 + test/e2e/annotations/customheaders.go | 110 ++++++++++++++++ 15 files changed, 537 insertions(+), 4 deletions(-) create mode 100644 internal/ingress/annotations/customheaders/main.go create mode 100644 internal/ingress/annotations/customheaders/main_test.go create mode 100644 test/e2e/annotations/customheaders.go diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index 184c4993b..2230f80f7 100755 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -50,6 +50,7 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz |[nginx.ingress.kubernetes.io/client-body-buffer-size](#client-body-buffer-size)|string| |[nginx.ingress.kubernetes.io/configuration-snippet](#configuration-snippet)|string| |[nginx.ingress.kubernetes.io/custom-http-errors](#custom-http-errors)|[]int| +|[nginx.ingress.kubernetes.io/custom-headers](#custom-headers)|string| |[nginx.ingress.kubernetes.io/default-backend](#default-backend)|string| |[nginx.ingress.kubernetes.io/enable-cors](#enable-cors)|"true" or "false"| |[nginx.ingress.kubernetes.io/cors-allow-origin](#enable-cors)|string| @@ -338,6 +339,22 @@ Example usage: nginx.ingress.kubernetes.io/custom-http-errors: "404,415" ``` +### Custom Headers +This annotation is of the form `nginx.ingress.kubernetes.io/custom-headers: custom-headers-configmap` to specify a configmap name that contains custom headers. This annotation uses `more_set_headers` nginx directive. + +Example configmap: +```yaml +apiVersion: v1 +data: + Content-Type: application/json +kind: ConfigMap +metadata: + name: custom-headers-configmap +``` + +!!! attention + First define the allowed response headers in [global-allowed-response-headers](https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/configmap.md#global-allowed-response-headers). + ### Default Backend This annotation is of the form `nginx.ingress.kubernetes.io/default-backend: ` to specify a custom default backend. This `` is a reference to a service inside of the same namespace in which you are applying this annotation. This annotation overrides the global default backend. In case the service has [multiple ports](https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services), the first one is the one which will receive the backend traffic. diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 89a35b07b..52c54c4fe 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -209,6 +209,7 @@ The following table shows a configuration option's name, type, and the default v |[syslog-host](#syslog-host)| string | "" || |[syslog-port](#syslog-port)| int | 514 || |[no-tls-redirect-locations](#no-tls-redirect-locations)| string | "/.well-known/acme-challenge" || +|[global-allowed-response-headers](#global-allowed-response-headers)|string|""|| |[global-auth-url](#global-auth-url)| string | "" || |[global-auth-method](#global-auth-method)| string | "" || |[global-auth-signin](#global-auth-signin)| string | "" || @@ -1285,6 +1286,10 @@ Sets the port of syslog server. _**default:**_ 514 A comma-separated list of locations on which http requests will never get redirected to their https counterpart. _**default:**_ "/.well-known/acme-challenge" +## global-allowed-response-headers + +A comma-separated list of allowed response headers inside the [custom headers annotations](https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md#custom-headers) + ## global-auth-url A url to an existing service that provides authentication for all the locations. diff --git a/go.mod b/go.mod index 780ce5959..228ac7511 100644 --- a/go.mod +++ b/go.mod @@ -26,6 +26,7 @@ require ( github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.22.0 + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e google.golang.org/grpc v1.63.2 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 diff --git a/go.work.sum b/go.work.sum index 4e1cead39..4ce702139 100644 --- a/go.work.sum +++ b/go.work.sum @@ -379,6 +379,7 @@ cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXX cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0= cloud.google.com/go/spanner v1.55.0/go.mod h1:HXEznMUVhC+PC+HDyo9YFG2Ajj5BQDkcbqB9Z2Ffxi0= cloud.google.com/go/spanner v1.56.0/go.mod h1:DndqtUKQAt3VLuV2Le+9Y3WTnq5cNKrnLb/Piqcj+h0= +cloud.google.com/go/spanner v1.57.0/go.mod h1:aXQ5QDdhPRIqVhYmnkAdwPYvj/DRN0FguclhEWw+jOo= cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= @@ -442,14 +443,18 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= 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/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= @@ -468,6 +473,7 @@ github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= @@ -480,7 +486,12 @@ github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQ github.com/envoyproxy/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/getsentry/sentry-go v0.21.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -491,6 +502,9 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.5/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= github.com/go-openapi/swag v0.22.6/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= @@ -500,8 +514,10 @@ github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 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/cel-go v0.17.7/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= @@ -522,27 +538,42 @@ github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2e github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +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/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k= +github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/mrunalp/fileutils v0.5.1/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= 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/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= @@ -550,29 +581,61 @@ github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +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.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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI= +go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U= +go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA= +go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc= +go.etcd.io/etcd/pkg/v3 v3.5.10/go.mod h1:TKTuCKKcF1zxmfKWDkfz5qqYaE3JncKKZPFf8c1nFUs= +go.etcd.io/etcd/raft/v3 v3.5.10/go.mod h1:odD6kr8XQXTy9oQnyMPBOr0TVe+gT0neQhElQ6jbGRc= +go.etcd.io/etcd/server/v3 v3.5.10/go.mod h1:gBplPHfs6YI0L+RpGkTQO7buDbHv5HJGG/Bst0/zIPo= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0/go.mod h1:5z+/ZWJQKXa9YT34fQNx5K8Hd1EoIhvtUygUQPqEOgQ= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -614,6 +677,7 @@ golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= @@ -632,6 +696,7 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808/go.mod h1:KG1lNk5ZFNssSZLrpVb4sMXKMpGwGXOxSG3rnu2gZQQ= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -660,6 +725,7 @@ google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWL google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -685,6 +751,7 @@ google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqt google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= 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-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= @@ -697,6 +764,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go. google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg= google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= +google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:PVreiBMirk8ypES6aw9d4p6iiBNSIfZEBqr3UGoAi2E= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231212172506-995d672761c0/go.mod h1:guYXGPwC6jwxgWKW5Y405fKWOFNwlvUlUnzyp9i0uqo= @@ -711,6 +780,7 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014/go.mod h1:SaPjaZGWb0lPqs6Ittu0spdfrOArqji4ZdeP5IC/9N4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= @@ -722,14 +792,21 @@ google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= 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= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/evanphx/json-patch.v5 v5.6.0 h1:BMT6KIwBD9CaU91PJCZIe46bDmBWa9ynTQgJIOpfQBk= gopkg.in/evanphx/json-patch.v5 v5.6.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kms v0.29.3/go.mod h1:TBGbJKpRUMk59neTMDMddjIDL+D4HuFUbpuiuzmOPg0= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0/go.mod h1:VHVDI/KrK4fjnV61bE2g3sA7tiETLn8sooImelsCx3Y= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= diff --git a/internal/ingress/annotations/annotations.go b/internal/ingress/annotations/annotations.go index 302f0b4b1..0bb2ac7b8 100644 --- a/internal/ingress/annotations/annotations.go +++ b/internal/ingress/annotations/annotations.go @@ -20,6 +20,7 @@ import ( "dario.cat/mergo" "k8s.io/ingress-nginx/internal/ingress/annotations/canary" + "k8s.io/ingress-nginx/internal/ingress/annotations/customheaders" "k8s.io/ingress-nginx/internal/ingress/annotations/disableproxyintercepterrors" "k8s.io/ingress-nginx/internal/ingress/annotations/modsecurity" "k8s.io/ingress-nginx/internal/ingress/annotations/opentelemetry" @@ -82,6 +83,7 @@ type Ingress struct { Canary canary.Config CertificateAuth authtls.Config ClientBodyBufferSize string + CustomHeaders customheaders.Config ConfigurationSnippet string Connection connection.Config CorsConfig cors.Config @@ -133,6 +135,7 @@ func NewAnnotationExtractor(cfg resolver.Resolver) Extractor { "Canary": canary.NewParser(cfg), "CertificateAuth": authtls.NewParser(cfg), "ClientBodyBufferSize": clientbodybuffersize.NewParser(cfg), + "CustomHeaders": customheaders.NewParser(cfg), "ConfigurationSnippet": snippet.NewParser(cfg), "Connection": connection.NewParser(cfg), "CorsConfig": cors.NewParser(cfg), diff --git a/internal/ingress/annotations/annotations_test.go b/internal/ingress/annotations/annotations_test.go index 0f4f8f7d7..5df3cdc0e 100644 --- a/internal/ingress/annotations/annotations_test.go +++ b/internal/ingress/annotations/annotations_test.go @@ -43,16 +43,20 @@ var ( annotationAffinityCookieName = parser.GetAnnotationWithPrefix("session-cookie-name") annotationUpstreamHashBy = parser.GetAnnotationWithPrefix("upstream-hash-by") annotationCustomHTTPErrors = parser.GetAnnotationWithPrefix("custom-http-errors") + annotationCustomHeaders = parser.GetAnnotationWithPrefix("custom-headers") ) type mockCfg struct { resolver.Mock - MockSecrets map[string]*apiv1.Secret - MockServices map[string]*apiv1.Service + MockSecrets map[string]*apiv1.Secret + MockServices map[string]*apiv1.Service + MockConfigMaps map[string]*apiv1.ConfigMap } func (m mockCfg) GetDefaultBackend() defaults.Backend { - return defaults.Backend{} + return defaults.Backend{ + AllowedResponseHeaders: []string{"Content-Type"}, + } } func (m mockCfg) GetSecret(name string) (*apiv1.Secret, error) { @@ -63,6 +67,10 @@ func (m mockCfg) GetService(name string) (*apiv1.Service, error) { return m.MockServices[name], nil } +func (m mockCfg) GetConfigMap(name string) (*apiv1.ConfigMap, error) { + return m.MockConfigMaps[name], nil +} + func (m mockCfg) GetAuthCertificate(name string) (*resolver.AuthSSLCert, error) { secret, err := m.GetSecret(name) if err != nil { @@ -317,3 +325,44 @@ func TestCustomHTTPErrors(t *testing.T) { } } } + +func TestCustomResponseHeaders(t *testing.T) { + mockObj := mockCfg{} + mockObj.MockConfigMaps = map[string]*apiv1.ConfigMap{} + mockObj.MockConfigMaps["custom-headers"] = &apiv1.ConfigMap{Data: map[string]string{"Content-Type": "application/json"}} + mockObj.MockConfigMaps["empty-custom-headers"] = &apiv1.ConfigMap{Data: map[string]string{}} + + ec := NewAnnotationExtractor(mockObj) + ing := buildIngress() + fooAnns := []struct { + annotations map[string]string + headers map[string]string + }{ + {map[string]string{annotationCustomHeaders: "custom-headers"}, map[string]string{"Content-Type": "application/json"}}, + {map[string]string{annotationCustomHeaders: "empty-custom-headers"}, map[string]string{}}, + {nil, map[string]string{}}, + } + + for _, foo := range fooAnns { + ing.SetAnnotations(foo.annotations) + rann, err := ec.Extract(ing) + if err != nil { + t.Errorf("error should be null: %v", err) + } + r := rann.CustomHeaders.Headers + + // Check that expected headers were created + for i := range foo.headers { + if r[i] != foo.headers[i] { + t.Errorf("Returned %v but expected %v", r, foo.headers) + } + } + + // Check that no unexpected headers were created + for i := range r { + if r[i] != foo.headers[i] { + t.Errorf("Returned %v but expected %v", r, foo.headers) + } + } + } +} diff --git a/internal/ingress/annotations/customheaders/main.go b/internal/ingress/annotations/customheaders/main.go new file mode 100644 index 000000000..774e9c3d3 --- /dev/null +++ b/internal/ingress/annotations/customheaders/main.go @@ -0,0 +1,124 @@ +/* +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 customheaders + +import ( + "fmt" + "regexp" + + "k8s.io/klog/v2" + + networking "k8s.io/api/networking/v1" + + "golang.org/x/exp/slices" + "k8s.io/ingress-nginx/internal/ingress/annotations/parser" + ing_errors "k8s.io/ingress-nginx/internal/ingress/errors" + "k8s.io/ingress-nginx/internal/ingress/resolver" +) + +// Config returns the custom response headers for an Ingress rule +type Config struct { + Headers map[string]string `json:"headers,omitempty"` +} + +var ( + headerRegexp = regexp.MustCompile(`^[a-zA-Z\d\-_]+$`) + valueRegexp = regexp.MustCompile(`^[a-zA-Z\d_ :;.,\\/"'?!(){}\[\]@<>=\-+*#$&\x60|~^%]+$`) +) + +// ValidHeader checks is the provided string satisfies the header's name regex +func ValidHeader(header string) bool { + return headerRegexp.MatchString(header) +} + +// ValidValue checks is the provided string satisfies the value regex +func ValidValue(header string) bool { + return valueRegexp.MatchString(header) +} + +const ( + customHeadersConfigMapAnnotation = "custom-headers" +) + +var customHeadersAnnotation = parser.Annotation{ + Group: "backend", + Annotations: parser.AnnotationFields{ + customHeadersConfigMapAnnotation: { + Validator: parser.ValidateRegex(parser.BasicCharsRegex, true), + Scope: parser.AnnotationScopeLocation, + Risk: parser.AnnotationRiskMedium, + Documentation: `This annotation sets the name of a ConfigMap that specifies headers to pass to the client. + Only ConfigMaps on the same namespace are allowed`, + }, + }, +} + +type customHeaders struct { + r resolver.Resolver + annotationConfig parser.Annotation +} + +// NewParser creates a new custom response headers annotation parser +func NewParser(r resolver.Resolver) parser.IngressAnnotation { + return customHeaders{r: r, annotationConfig: customHeadersAnnotation} +} + +func (a customHeaders) GetDocumentation() parser.AnnotationFields { + return a.annotationConfig.Annotations +} + +// Parse parses the annotations contained in the ingress to use +// custom response headers +func (a customHeaders) Parse(ing *networking.Ingress) (interface{}, error) { + clientHeadersConfigMapName, err := parser.GetStringAnnotation(customHeadersConfigMapAnnotation, ing, a.annotationConfig.Annotations) + if err != nil { + klog.V(3).InfoS("client-headers annotation is undefined and will not be set") + } + + var headers map[string]string + defBackend := a.r.GetDefaultBackend() + + if clientHeadersConfigMapName != "" { + clientHeadersMapContents, err := a.r.GetConfigMap(clientHeadersConfigMapName) + if err != nil { + return nil, ing_errors.NewLocationDenied(fmt.Sprintf("unable to find configMap %q", clientHeadersConfigMapName)) + } + + for header, value := range clientHeadersMapContents.Data { + if !ValidHeader(header) { + return nil, ing_errors.NewLocationDenied("invalid header name in configmap") + } + if !ValidValue(value) { + return nil, ing_errors.NewLocationDenied("invalid header value in configmap") + } + if !slices.Contains(defBackend.AllowedResponseHeaders, header) { + return nil, ing_errors.NewLocationDenied(fmt.Sprintf("header %s is not allowed, defined allowed headers inside global-allowed-response-headers %v", header, defBackend.AllowedResponseHeaders)) + } + } + + headers = clientHeadersMapContents.Data + } + + return &Config{ + Headers: headers, + }, nil +} + +func (a customHeaders) Validate(anns map[string]string) error { + maxrisk := parser.StringRiskToRisk(a.r.GetSecurityConfiguration().AnnotationsRiskLevel) + return parser.CheckAnnotationRisk(anns, maxrisk, customHeadersAnnotation.Annotations) +} diff --git a/internal/ingress/annotations/customheaders/main_test.go b/internal/ingress/annotations/customheaders/main_test.go new file mode 100644 index 000000000..81c0b795a --- /dev/null +++ b/internal/ingress/annotations/customheaders/main_test.go @@ -0,0 +1,113 @@ +/* +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 customheaders + +import ( + "reflect" + "testing" + + api "k8s.io/api/core/v1" + networking "k8s.io/api/networking/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/ingress-nginx/internal/ingress/annotations/parser" + "k8s.io/ingress-nginx/internal/ingress/defaults" + "k8s.io/ingress-nginx/internal/ingress/resolver" +) + +func buildIngress() *networking.Ingress { + return &networking.Ingress{ + ObjectMeta: meta_v1.ObjectMeta{ + Name: "foo", + Namespace: api.NamespaceDefault, + }, + Spec: networking.IngressSpec{ + DefaultBackend: &networking.IngressBackend{ + Service: &networking.IngressServiceBackend{ + Name: "default-backend", + Port: networking.ServiceBackendPort{ + Number: 80, + }, + }, + }, + }, + } +} + +type mockBackend struct { + resolver.Mock +} + +// GetDefaultBackend returns the backend that must be used as default +func (m mockBackend) GetDefaultBackend() defaults.Backend { + return defaults.Backend{ + AllowedResponseHeaders: []string{"Content-Type", "Access-Control-Max-Age"}, + } +} + +func TestCustomHeadersParseInvalidAnnotations(t *testing.T) { + ing := buildIngress() + configMapResolver := mockBackend{} + configMapResolver.ConfigMaps = map[string]*api.ConfigMap{} + + _, err := NewParser(configMapResolver).Parse(ing) + if err != nil { + t.Errorf("expected error parsing ingress with custom-response-headers") + } + + data := map[string]string{} + data[parser.GetAnnotationWithPrefix("custom-headers")] = "custom-headers-configmap" + ing.SetAnnotations(data) + i, err := NewParser(&resolver.Mock{}).Parse(ing) + if err == nil { + t.Errorf("expected error parsing ingress with custom-response-headers") + } + if i != nil { + t.Errorf("expected %v but got %v", nil, i) + } +} + +func TestCustomHeadersParseAnnotations(t *testing.T) { + ing := buildIngress() + + data := map[string]string{} + data[parser.GetAnnotationWithPrefix("custom-headers")] = "custom-headers-configmap" + ing.SetAnnotations(data) + + configMapResolver := mockBackend{} + configMapResolver.ConfigMaps = map[string]*api.ConfigMap{} + + configMapResolver.ConfigMaps["custom-headers-configmap"] = &api.ConfigMap{Data: map[string]string{"Content-Type": "application/json", "Access-Control-Max-Age": "600"}} + + i, err := NewParser(configMapResolver).Parse(ing) + if err != nil { + t.Errorf("unexpected error parsing ingress with custom-response-headers: %s", err) + } + val, ok := i.(*Config) + if !ok { + t.Errorf("expected a *Config type") + } + + expectedResponseHeaders := map[string]string{} + expectedResponseHeaders["Content-Type"] = "application/json" + expectedResponseHeaders["Access-Control-Max-Age"] = "600" + + c := &Config{expectedResponseHeaders} + + if !reflect.DeepEqual(c, val) { + t.Errorf("expected %v but got %v", c, val) + } +} diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 371f3069c..47f2120f1 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -888,6 +888,7 @@ func NewDefault() Configuration { ProxyHTTPVersion: "1.1", ProxyMaxTempFileSize: "1024m", ServiceUpstream: false, + AllowedResponseHeaders: []string{}, }, UpstreamKeepaliveConnections: 320, UpstreamKeepaliveTime: "1h", diff --git a/internal/ingress/controller/controller.go b/internal/ingress/controller/controller.go index a43c143e3..2e782f485 100644 --- a/internal/ingress/controller/controller.go +++ b/internal/ingress/controller/controller.go @@ -1504,6 +1504,7 @@ func (n *NGINXController) createServers(data []*ingress.Ingress, func locationApplyAnnotations(loc *ingress.Location, anns *annotations.Ingress) { loc.BasicDigestAuth = anns.BasicDigestAuth loc.ClientBodyBufferSize = anns.ClientBodyBufferSize + loc.CustomHeaders = anns.CustomHeaders loc.ConfigurationSnippet = anns.ConfigurationSnippet loc.CorsConfig = anns.CorsConfig loc.ExternalAuth = anns.ExternalAuth diff --git a/internal/ingress/controller/template/configmap.go b/internal/ingress/controller/template/configmap.go index 9dc019bcc..f78dbad03 100644 --- a/internal/ingress/controller/template/configmap.go +++ b/internal/ingress/controller/template/configmap.go @@ -31,6 +31,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/ingress-nginx/internal/ingress/annotations/authreq" + "k8s.io/ingress-nginx/internal/ingress/annotations/customheaders" "k8s.io/ingress-nginx/internal/ingress/annotations/parser" "k8s.io/ingress-nginx/internal/ingress/controller/config" ing_net "k8s.io/ingress-nginx/internal/net" @@ -54,6 +55,7 @@ const ( nginxStatusIpv6Whitelist = "nginx-status-ipv6-whitelist" proxyHeaderTimeout = "proxy-protocol-header-timeout" workerProcesses = "worker-processes" + globalAllowedResponseHeaders = "global-allowed-response-headers" globalAuthURL = "global-auth-url" globalAuthMethod = "global-auth-method" globalAuthSignin = "global-auth-signin" @@ -115,6 +117,7 @@ func ReadConfig(src map[string]string) config.Configuration { blockUserAgentList := make([]string, 0) blockRefererList := make([]string, 0) responseHeaders := make([]string, 0) + allowedResponseHeaders := make([]string, 0) luaSharedDicts := make(map[string]int) debugConnectionsList := make([]string, 0) @@ -248,6 +251,22 @@ func ReadConfig(src map[string]string) config.Configuration { } } + // Verify that the configured global external authorization response headers are valid. if not, set the default value + if val, ok := conf[globalAllowedResponseHeaders]; ok { + delete(conf, globalAllowedResponseHeaders) + + if val != "" { + harr := splitAndTrimSpace(val, ",") + for _, header := range harr { + if !customheaders.ValidHeader(header) { + klog.Warningf("Global allowed response headers denied - %s.", header) + } else { + allowedResponseHeaders = append(allowedResponseHeaders, header) + } + } + } + } + // Verify that the configured global external authorization method is a valid HTTP method. if not, set the default value if val, ok := conf[globalAuthMethod]; ok { delete(conf, globalAuthMethod) @@ -422,6 +441,7 @@ func ReadConfig(src map[string]string) config.Configuration { to.ProxyStreamResponses = streamResponses to.DisableIpv6DNS = !ing_net.IsIPv6Enabled() to.LuaSharedDicts = luaSharedDicts + to.Backend.AllowedResponseHeaders = allowedResponseHeaders decoderConfig := &mapstructure.DecoderConfig{ Metadata: nil, diff --git a/internal/ingress/defaults/main.go b/internal/ingress/defaults/main.go index 2bb58c858..cfad388ef 100644 --- a/internal/ingress/defaults/main.go +++ b/internal/ingress/defaults/main.go @@ -176,6 +176,9 @@ type Backend struct { // By default, the NGINX ingress controller uses a list of all endpoints (Pod IP/port) in the NGINX upstream configuration. // It disables that behavior and instead uses a single upstream in NGINX, the service's Cluster IP and port. ServiceUpstream bool `json:"service-upstream"` + + // AllowedResponseHeaders allows to define allow response headers for custom header annotation + AllowedResponseHeaders []string `json:"global-allowed-response-headers"` } type SecurityConfiguration struct { diff --git a/pkg/apis/ingress/types.go b/pkg/apis/ingress/types.go index 2ad17ec3d..269814d34 100644 --- a/pkg/apis/ingress/types.go +++ b/pkg/apis/ingress/types.go @@ -27,6 +27,7 @@ import ( "k8s.io/ingress-nginx/internal/ingress/annotations/authtls" "k8s.io/ingress-nginx/internal/ingress/annotations/connection" "k8s.io/ingress-nginx/internal/ingress/annotations/cors" + "k8s.io/ingress-nginx/internal/ingress/annotations/customheaders" "k8s.io/ingress-nginx/internal/ingress/annotations/fastcgi" "k8s.io/ingress-nginx/internal/ingress/annotations/globalratelimit" "k8s.io/ingress-nginx/internal/ingress/annotations/ipallowlist" @@ -263,7 +264,8 @@ type Location struct { BasicDigestAuth auth.Config `json:"basicDigestAuth,omitempty"` // Denied returns an error when this location cannot not be allowed // Requesting a denied location should return HTTP code 403. - Denied *string `json:"denied,omitempty"` + Denied *string `json:"denied,omitempty"` + CustomHeaders customheaders.Config `json:"customHeaders,omitempty"` // CorsConfig returns the Cors Configuration for the ingress rule // +optional CorsConfig cors.Config `json:"corsConfig,omitempty"` diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index b3b3f8683..4c0da2eb9 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -1489,6 +1489,13 @@ stream { {{ $all.Cfg.LocationSnippet }} {{ end }} + {{ if $location.CustomHeaders }} + # Custom Response Headers + {{ range $k, $v := $location.CustomHeaders.Headers }} + more_set_headers {{ printf "%s: %s" $k $v | escapeLiteralDollar | quote }}; + {{ end }} + {{ end }} + {{/* if we are sending the request to a custom default backend, we add the required headers */}} {{ if (hasPrefix $location.Backend "custom-default-backend-") }} proxy_set_header X-Code 503; diff --git a/test/e2e/annotations/customheaders.go b/test/e2e/annotations/customheaders.go new file mode 100644 index 000000000..274ce8278 --- /dev/null +++ b/test/e2e/annotations/customheaders.go @@ -0,0 +1,110 @@ +/* +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 annotations + +import ( + "fmt" + "net/http" + "strings" + + "github.com/onsi/ginkgo/v2" + + "k8s.io/ingress-nginx/test/e2e/framework" +) + +const ( + customHeaderHost = "custom-headers" +) + +var _ = framework.DescribeAnnotation("custom-headers-*", func() { + f := framework.NewDefaultFramework("custom-headers") + + ginkgo.BeforeEach(func() { + f.NewEchoDeployment() + }) + + ginkgo.It("should return status code 200 when no custom-headers is configured", func() { + ing := framework.NewSingleIngress(customHeaderHost, "/", customHeaderHost, f.Namespace, framework.EchoService, 80, nil) + f.EnsureIngress(ing) + + f.WaitForNginxServer(customHeaderHost, + func(server string) bool { + return strings.Contains(server, "server_name custom-headers") + }) + + f.HTTPTestClient(). + GET("/"). + WithHeader("Host", customHeaderHost). + Expect(). + Status(http.StatusOK). + Body().Contains(fmt.Sprintf("host=%v", customHeaderHost)) + }) + + ginkgo.It("should return status code 503 when custom-headers is configured with an invalid secret", func() { + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/custom-headers": f.Namespace + "/custom-headers", + } + + ing := framework.NewSingleIngress(customHeaderHost, "/", customHeaderHost, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.WaitForNginxServer(customHeaderHost, + func(server string) bool { + return strings.Contains(server, "server_name custom-headers") + }) + + f.HTTPTestClient(). + GET("/"). + WithHeader("Host", customHeaderHost). + Expect(). + Status(http.StatusServiceUnavailable). + Body().Contains("503 Service Temporarily Unavailable") + }) + + ginkgo.It(`should set "more_set_headers 'My-Custom-Header' '42';" when custom-headers are set`, func() { + annotations := map[string]string{ + "nginx.ingress.kubernetes.io/custom-headers": f.Namespace + "/custom-headers", + } + + f.CreateConfigMap("custom-headers", map[string]string{ + "My-Custom-Header": "42", + "My-Custom-Header-Dollar": "$remote_addr", + }) + f.UpdateNginxConfigMapData("global-allowed-response-headers", "My-Custom-Header,My-Custom-Header-Dollar") + + ing := framework.NewSingleIngress(customHeaderHost, "/", customHeaderHost, f.Namespace, framework.EchoService, 80, annotations) + f.EnsureIngress(ing) + + f.WaitForNginxServer(customHeaderHost, + func(server string) bool { + return strings.Contains(server, `more_set_headers "My-Custom-Header: 42";`) + }) + + f.HTTPTestClient(). + GET("/"). + WithHeader("Host", customHeaderHost). + Expect(). + Status(http.StatusOK). + Header("My-Custom-Header").Contains("42") + f.HTTPTestClient(). + GET("/"). + WithHeader("Host", customHeaderHost). + Expect(). + Status(http.StatusOK). + Header("My-Custom-Header-Dollar").Contains("$remote_addr") + }) +}) From ca6d3622e5c2819a29f4a407ed272f42d10a91a9 Mon Sep 17 00:00:00 2001 From: James Strong Date: Tue, 9 Apr 2024 15:34:40 -0400 Subject: [PATCH 101/184] update k8s version to latest kind release (#11240) Signed-off-by: James Strong --- .github/workflows/ci.yaml | 8 ++++---- .github/workflows/images.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3e7067b8f..bc2dc24ef 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -235,7 +235,7 @@ jobs: strategy: matrix: - k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0] + k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] steps: - name: Checkout @@ -286,7 +286,7 @@ jobs: (needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true') strategy: matrix: - k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0] + k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml with: k8s-version: ${{ matrix.k8s }} @@ -300,7 +300,7 @@ jobs: (needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true') strategy: matrix: - k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0] + k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml with: k8s-version: ${{ matrix.k8s }} @@ -315,7 +315,7 @@ jobs: (needs.changes.outputs.go == 'true') || (needs.changes.outputs.baseimage == 'true') strategy: matrix: - k8s: [v1.26.6, v1.27.3, v1.28.0, v1.29.0] + k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] uses: ./.github/workflows/zz-tmpl-k8s-e2e.yaml with: k8s-version: ${{ matrix.k8s }} diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 4afc27aa2..28bbf6692 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -141,7 +141,7 @@ jobs: (needs.changes.outputs.kube-webhook-certgen == 'true') strategy: matrix: - k8s: [v1.25.11, v1.26.6, v1.27.3, v1.28.0, v1.29.0] + k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] steps: - name: Checkout uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 From fde59909297d5b384e5a550bec155ca37bcfad15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 08:02:17 -0700 Subject: [PATCH 102/184] Bump actions/add-to-project from 1.0.0 to 1.0.1 in the all group (#11262) Bumps the all group with 1 update: [actions/add-to-project](https://github.com/actions/add-to-project). Updates `actions/add-to-project` from 1.0.0 to 1.0.1 - [Release notes](https://github.com/actions/add-to-project/releases) - [Commits](https://github.com/actions/add-to-project/compare/2e5cc851ca7162e9eb510e6da6a5c64022e606a7...9bfe908f2eaa7ba10340b31e314148fcfe6a2458) --- updated-dependencies: - dependency-name: actions/add-to-project dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index b999e29be..59ad98a71 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -13,7 +13,7 @@ jobs: repository-projects: write issues: write steps: - - uses: actions/add-to-project@2e5cc851ca7162e9eb510e6da6a5c64022e606a7 # v1.0.0 + - uses: actions/add-to-project@9bfe908f2eaa7ba10340b31e314148fcfe6a2458 # v1.0.1 with: project-url: https://github.com/orgs/kubernetes/projects/104 github-token: ${{ secrets.PROJECT_WRITER }} From 5b8c1cd1d990b8bd206b44ec007e56730ad2260a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 08:04:36 -0700 Subject: [PATCH 103/184] Bump azure/setup-helm from 3.5 to 4 (#11263) Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 3.5 to 4. - [Release notes](https://github.com/azure/setup-helm/releases) - [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md) - [Commits](https://github.com/azure/setup-helm/compare/5119fcb9089d432beecbf79bb2c7915207344b78...b7246b12e77f7134dc2d460a3d5bad15bbe29390) --- updated-dependencies: - dependency-name: azure/setup-helm dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bc2dc24ef..e7f2da325 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -184,7 +184,7 @@ jobs: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5 + uses: azure/setup-helm@b7246b12e77f7134dc2d460a3d5bad15bbe29390 # v4.1.0 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: From b9e0c281d060ff3030daf300790a04e0fdb89a2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 09:12:02 -0700 Subject: [PATCH 104/184] Bump the all group with 2 updates (#11261) Bumps the all group with 2 updates: [github.com/prometheus/common](https://github.com/prometheus/common) and [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime). Updates `github.com/prometheus/common` from 0.52.2 to 0.52.3 - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.52.2...v0.52.3) Updates `sigs.k8s.io/controller-runtime` from 0.17.2 to 0.17.3 - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.2...v0.17.3) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 228ac7511..59701ed42 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.52.2 + github.com/prometheus/common v0.52.3 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 @@ -41,7 +41,7 @@ require ( k8s.io/component-base v0.29.3 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 - sigs.k8s.io/controller-runtime v0.17.2 + sigs.k8s.io/controller-runtime v0.17.3 sigs.k8s.io/mdtoc v1.1.0 ) diff --git a/go.sum b/go.sum index b7f63c02f..999739793 100644 --- a/go.sum +++ b/go.sum @@ -323,8 +323,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= -github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.52.3 h1:5f8uj6ZwHSscOGNdIQg6OiZv/ybiK2CO2q2drVZAQSA= +github.com/prometheus/common v0.52.3/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -770,8 +770,8 @@ pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732/go.mod h1:lpvCfhqEHNJSSpG5R rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.17.2 h1:FwHwD1CTUemg0pW2otk7/U5/i5m2ymzvOXdbeGOUvw0= -sigs.k8s.io/controller-runtime v0.17.2/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s= +sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk= +sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g= From 1dee4b131e61b0060618eabff76e26770f86135f Mon Sep 17 00:00:00 2001 From: James Strong Date: Thu, 18 Apr 2024 10:30:27 -0400 Subject: [PATCH 105/184] release helm chart from release branch (#11276) Signed-off-by: James Strong --- .github/workflows/helm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 3ba506c29..af8d91e1f 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + - release-* permissions: contents: read From 95554dccd25a5b6debac9a850c0b84ec2f815fe8 Mon Sep 17 00:00:00 2001 From: NierYYDS <141559828+NierYYDS@users.noreply.github.com> Date: Fri, 19 Apr 2024 01:06:32 +0800 Subject: [PATCH 106/184] fix: update kube version requirement to 1.21 (#11275) The controller depends on the v1 version of EndpointSlice, but the discovery.k8s.io/v1 API was first introduced in Kubernetes version 1.21. --- charts/ingress-nginx/Chart.yaml | 2 +- charts/ingress-nginx/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/ingress-nginx/Chart.yaml b/charts/ingress-nginx/Chart.yaml index 7996c29c5..f9bb890f8 100644 --- a/charts/ingress-nginx/Chart.yaml +++ b/charts/ingress-nginx/Chart.yaml @@ -11,7 +11,7 @@ icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Nginx_logo.svg/5 keywords: - ingress - nginx -kubeVersion: '>=1.20.0-0' +kubeVersion: '>=1.21.0-0' maintainers: - name: Gacko - name: rikatz diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index c3489a6c3..1c166e05e 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -10,7 +10,7 @@ This chart bootstraps an ingress-nginx deployment on a [Kubernetes](http://kuber ## Requirements -Kubernetes: `>=1.20.0-0` +Kubernetes: `>=1.21.0-0` ## Get Repo Info From e5b663690300180d0c3b0b349afaa89fbe5dd19d Mon Sep 17 00:00:00 2001 From: racequite <166888152+racequite@users.noreply.github.com> Date: Fri, 19 Apr 2024 17:25:09 +0800 Subject: [PATCH 107/184] chore: fix function names in comment (#11280) Signed-off-by: racequite --- internal/ingress/errors/errors.go | 2 +- internal/ingress/status/status.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/ingress/errors/errors.go b/internal/ingress/errors/errors.go index d70218334..62be8b77f 100644 --- a/internal/ingress/errors/errors.go +++ b/internal/ingress/errors/errors.go @@ -137,7 +137,7 @@ func IsValidationError(e error) bool { return ok } -// NewValidationError returns a new LocationDenied error +// NewRiskyAnnotations returns a new LocationDenied error func NewRiskyAnnotations(name string) error { return RiskyAnnotationError{ Reason: fmt.Errorf("annotation group %s contains risky annotation based on ingress configuration", name), diff --git a/internal/ingress/status/status.go b/internal/ingress/status/status.go index 81fb9044a..ef01cdd24 100644 --- a/internal/ingress/status/status.go +++ b/internal/ingress/status/status.go @@ -393,7 +393,7 @@ func statusAddressFromService(service string, kubeClient clientset.Interface) ([ return nil, fmt.Errorf("unable to extract IP address/es from service %v", service) } -// stringInSlice returns true if s is in list +// stringInIngresses returns true if s is in list func stringInIngresses(s string, list []v1.IngressLoadBalancerIngress) bool { for _, v := range list { if v.IP == s || v.Hostname == s { From 6bfc30a4b9de680bc5e86533d15b2f636580535a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 06:44:17 -0700 Subject: [PATCH 108/184] Bump golang.org/x/net in /images/kube-webhook-certgen/rootfs (#11283) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- images/kube-webhook-certgen/rootfs/go.mod | 2 +- images/kube-webhook-certgen/rootfs/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/kube-webhook-certgen/rootfs/go.mod b/images/kube-webhook-certgen/rootfs/go.mod index b1903dcf3..94da139a2 100644 --- a/images/kube-webhook-certgen/rootfs/go.mod +++ b/images/kube-webhook-certgen/rootfs/go.mod @@ -39,7 +39,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.9.0 // indirect - golang.org/x/net v0.22.0 // indirect + golang.org/x/net v0.23.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/term v0.18.0 // indirect diff --git a/images/kube-webhook-certgen/rootfs/go.sum b/images/kube-webhook-certgen/rootfs/go.sum index 4ec80305a..613ff3e2e 100644 --- a/images/kube-webhook-certgen/rootfs/go.sum +++ b/images/kube-webhook-certgen/rootfs/go.sum @@ -104,8 +104,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From af5cfbd0a25a8544ad51a04c0183cd6a97afc38b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 07:22:55 -0700 Subject: [PATCH 109/184] Bump golang.org/x/net from 0.22.0 to 0.23.0 (#11282) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 59701ed42..c4c445a60 100644 --- a/go.mod +++ b/go.mod @@ -105,7 +105,7 @@ require ( github.com/yudai/pp v2.0.1+incompatible // indirect go.starlark.net v0.0.0-20240123142251-f86470692795 // indirect golang.org/x/mod v0.15.0 // indirect - golang.org/x/net v0.22.0 // indirect + golang.org/x/net v0.23.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.19.0 // indirect diff --git a/go.sum b/go.sum index 999739793..65d5ec9b8 100644 --- a/go.sum +++ b/go.sum @@ -472,8 +472,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY 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.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= 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= From 48fbdfe3ba0c0e258890c970e2561caecea532dd Mon Sep 17 00:00:00 2001 From: Tom Hayward Date: Fri, 19 Apr 2024 08:41:08 -0700 Subject: [PATCH 110/184] fix path in file changed detected message (#11271) * fix path in file changed detected message Signed-off-by: Tom Hayward * fix typo in log message * explain code per review comments --------- Signed-off-by: Tom Hayward --- internal/ingress/controller/nginx.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 0df5409f4..b81734154 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -202,8 +202,11 @@ func NewNGINXController(config *Configuration, mc metric.Collector) *NGINXContro } for _, f := range filesToWatch { + // This redeclaration is necessary for the closure to get the correct value for the iteration in go versions <1.22 + // See https://go.dev/blog/loopvar-preview + f := f _, err = file.NewFileWatcher(f, func() { - klog.InfoS("File changed detected. Reloading NGINX", "path", f) + klog.InfoS("File change detected. Reloading NGINX", "path", f) n.syncQueue.EnqueueTask(task.GetDummyObject("file-change")) }) if err != nil { From 414e0b6c181840851367d077d7b174e465162c97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 10:30:01 +0000 Subject: [PATCH 111/184] Bump the all group with 5 updates Bumps the all group with 5 updates: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4.1.2` | `4.1.3` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.1` | `4.3.2` | | [azure/setup-helm](https://github.com/azure/setup-helm) | `4.1.0` | `4.2.0` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `4.1.4` | `4.1.5` | | [github/codeql-action](https://github.com/github/codeql-action) | `3.24.10` | `3.25.1` | Updates `actions/checkout` from 4.1.2 to 4.1.3 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/9bb56186c3b09b4f86b1c65136769dd318469633...1d96c772d19495a3b5c517cd2bc0cb401ea0529f) Updates `actions/upload-artifact` from 4.3.1 to 4.3.2 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/5d5d22a31266ced268874388b861e4b58bb5c2f3...1746f4ab65b179e0ea60a494b83293b640dd5bba) Updates `azure/setup-helm` from 4.1.0 to 4.2.0 - [Release notes](https://github.com/azure/setup-helm/releases) - [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md) - [Commits](https://github.com/azure/setup-helm/compare/b7246b12e77f7134dc2d460a3d5bad15bbe29390...fe7b79cd5ee1e45176fcad797de68ecaf3ca4814) Updates `actions/download-artifact` from 4.1.4 to 4.1.5 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/c850b930e6ba138125429b7e5c93fc707a7f8427...8caf195ad4b1dee92908e23f56eeb0696f1dd42d) Updates `github/codeql-action` from 3.24.10 to 3.25.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/4355270be187e1b672a7a1c7c7bae5afdc1ab94a...c7f9125735019aa87cfc361530512d50ea439c71) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: azure/setup-helm dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yaml | 16 ++++++++-------- .github/workflows/depreview.yaml | 2 +- .github/workflows/docs.yaml | 4 ++-- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/helm.yaml | 4 ++-- .github/workflows/images.yaml | 8 ++++---- .github/workflows/perftest.yaml | 2 +- .github/workflows/plugin.yaml | 2 +- .github/workflows/scorecards.yml | 6 +++--- .github/workflows/vulnerability-scans.yaml | 6 +++--- .github/workflows/zz-tmpl-images.yaml | 6 +++--- .github/workflows/zz-tmpl-k8s-e2e.yaml | 6 +++--- 12 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e7f2da325..a3d0e3187 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -77,7 +77,7 @@ jobs: (needs.changes.outputs.go == 'true') steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -105,7 +105,7 @@ jobs: PLATFORMS: linux/amd64 steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Get go version id: golangversion @@ -163,7 +163,7 @@ jobs: | gzip > docker.tar.gz - name: cache - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 with: name: docker.tar.gz path: docker.tar.gz @@ -179,12 +179,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 0 - name: Set up Helm - uses: azure/setup-helm@b7246b12e77f7134dc2d460a3d5bad15bbe29390 # v4.1.0 + uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: @@ -239,7 +239,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Setup Go uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 @@ -248,7 +248,7 @@ jobs: check-latest: true - name: cache - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 with: name: docker.tar.gz diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index 3b553afd4..bfe5ba55b 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -9,6 +9,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: 'Dependency Review' uses: actions/dependency-review-action@5bbc3ba658137598168acb2ab73b21c432dd411b # v4.2.5 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index d6182ec9c..740b76f79 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Deploy uses: ./.github/actions/mkdocs diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index d287061d5..02ebcaa38 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index af8d91e1f..e6383c682 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Run Artifact Hub lint run: | @@ -64,7 +64,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 28bbf6692..3e9cbcbae 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -41,7 +41,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -144,7 +144,7 @@ jobs: k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -178,7 +178,7 @@ jobs: nginx: ['1.25.3', '1.21.6'] steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: image build run: | cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build @@ -195,7 +195,7 @@ jobs: PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx diff --git a/.github/workflows/perftest.yaml b/.github/workflows/perftest.yaml index 3650e7263..87c828380 100644 --- a/.github/workflows/perftest.yaml +++ b/.github/workflows/perftest.yaml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Install K6 run: | diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index a074eaa5b..def284a39 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 0 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index d00db6ba3..e4a404ef8 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -27,7 +27,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 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@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 with: name: SARIF file path: results.sarif @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 3a34541a5..e0c1d838b 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -22,7 +22,7 @@ jobs: versions: ${{ steps.version.outputs.TAGS }} steps: - name: Checkout code - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 0 @@ -52,7 +52,7 @@ jobs: versions: ${{ fromJSON(needs.version.outputs.versions) }} steps: - name: Checkout code - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - shell: bash id: test @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index e8fa4f472..819a88cd4 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -48,7 +48,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Build run: | @@ -67,7 +67,7 @@ jobs: PLATFORMS: ${{ inputs.platforms-publish }} steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Login to GitHub Container Registry uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index ad03bf0a1..ab2ec536a 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -20,10 +20,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: cache - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 + uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 with: name: docker.tar.gz @@ -50,7 +50,7 @@ jobs: make kind-e2e-test - name: Upload e2e junit-reports ${{ inputs.variation }} - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 if: success() || failure() with: name: e2e-test-reports-${{ inputs.k8s-version }}${{ inputs.variation }} From 7379b804594c32e92410e31555030fa22eddf93c Mon Sep 17 00:00:00 2001 From: cuiyourong <166382782+cuiyourong@users.noreply.github.com> Date: Tue, 23 Apr 2024 19:27:06 +0800 Subject: [PATCH 112/184] Fix function name in comment (#11296) Signed-off-by: cuiyourong --- internal/ingress/annotations/parser/validators.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ingress/annotations/parser/validators.go b/internal/ingress/annotations/parser/validators.go index 64a9d133d..ffb4d9ba9 100644 --- a/internal/ingress/annotations/parser/validators.go +++ b/internal/ingress/annotations/parser/validators.go @@ -190,7 +190,7 @@ func ValidateServiceName(value string) error { return nil } -// checkAnnotations will check each annotation for: +// checkAnnotation will check each annotation for: // 1 - Does it contain the internal validation and docs config? // 2 - Does the ingress contains annotations? (validate null pointers) // 3 - Does it contains a validator? Should it contain a validator (not containing is a bug!) From 51847ac1b537c547cdb7bfb06d14e6d3d8476a73 Mon Sep 17 00:00:00 2001 From: James Strong Date: Tue, 23 Apr 2024 09:44:12 -0400 Subject: [PATCH 113/184] Release controller 1.10.1 (#11253) Signed-off-by: James Strong --- README.md | 1 + changelog/controller-1.10.1.md | 57 +++++++++++++++++++ deploy/static/provider/aws/deploy.yaml | 48 ++++++++-------- .../aws/nlb-with-tls-termination/deploy.yaml | 48 ++++++++-------- deploy/static/provider/baremetal/deploy.yaml | 48 ++++++++-------- deploy/static/provider/cloud/deploy.yaml | 48 ++++++++-------- deploy/static/provider/do/deploy.yaml | 48 ++++++++-------- deploy/static/provider/exoscale/deploy.yaml | 48 ++++++++-------- deploy/static/provider/kind/deploy.yaml | 48 ++++++++-------- deploy/static/provider/oracle/deploy.yaml | 48 ++++++++-------- deploy/static/provider/scw/deploy.yaml | 48 ++++++++-------- docs/deploy/index.md | 20 +++---- docs/e2e-tests.md | 4 ++ 13 files changed, 288 insertions(+), 226 deletions(-) create mode 100644 changelog/controller-1.10.1.md diff --git a/README.md b/README.md index 80725aa82..b0969fdbd 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ the versions listed. Ingress-Nginx versions **may** work on older versions, but | Supported | Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version | Helm Chart Version | |:--:|-----------------------|------------------------------|----------------|---------------|------------------------------| +| 🔄 | **v1.10.1** | 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.1* | | 🔄 | **v1.10.0** | 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.0* | | 🔄 | **v1.9.6** | 1.29, 1.28, 1.27, 1.26, 1.25 | 3.19.0 | 1.21.6 | 4.9.1* | | 🔄 | **v1.9.5** | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.9.0* | diff --git a/changelog/controller-1.10.1.md b/changelog/controller-1.10.1.md new file mode 100644 index 000000000..40fc321fa --- /dev/null +++ b/changelog/controller-1.10.1.md @@ -0,0 +1,57 @@ +# Changelog + +### controller-v1.10.1 + +Images: + +* registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e +* registry.k8s.io/ingress-nginx/controller-chroot:v1.10.1@sha256:c155954116b397163c88afcb3252462771bd7867017e8a17623e83601bab7ac7 + +### All changes: + +* start 1.10.1 build (#11246) +* force nginx rebuild (#11245) +* update k8s version to latest kind release (#11241) +* remove _ssl_expire_time_seconds metric by identifier (#11239) +* update post submit helm ci and clean up (#11221) +* Chart: Add unit tests for default backend & topology spread constraints. (#11219) +* sort default backend hpa metrics (#11217) +* updated certgen image shatag (#11216) +* changed testrunner image sha (#11211) +* bumped certgeimage tag (#11213) +* updated baseimage & deleted a useless file (#11209) +* bump ginkgo to 2-17-1 in testrunner (#11204) +* chunking related faq update (#11205) +* Fix-semver (#11199) +* refactor helm ci tests part I (#11188) +* Proposal: e2e tests for regex patterns (#11185) +* bump ginkgo to v2.17.1 (#11186) +* fixes brotli build issue (#11187) +* fix geoip2 configuration docs (#11151) +* Fix typos in OTel doc (#11081) (#11129) +* Chart: Render `controller.ingressClassResource.parameters` natively. (#11126) +* Fix admission controller logging of `admissionTime` and `testedConfigurationSize` (#11114) +* Chart: Align HPA & KEDA conditions. (#11113) +* Chart: Improve IngressClass documentation. (#11111) +* Chart: Add Gacko to maintainers. Again. (#11112) +* Chart: Deploy `PodDisruptionBudget` with KEDA. (#11105) +* Chores: Pick patches from main. (#11103) + +### Dependency updates: + +* Bump google.golang.org/grpc from 1.63.0 to 1.63.2 (#11238) +* Bump google.golang.org/grpc from 1.62.1 to 1.63.0 (#11234) +* Bump github.com/prometheus/common from 0.51.1 to 0.52.2 (#11233) +* Bump golang.org/x/crypto from 0.21.0 to 0.22.0 (#11232) +* Bump github.com/prometheus/client_model in the all group (#11231) +* Bump the all group with 3 updates (#11230) +* Bump the all group with 2 updates (#11190) +* Bump actions/add-to-project from 0.6.1 to 1.0.0 (#11189) +* Bump the all group with 3 updates (#11166) +* Bump github.com/prometheus/common from 0.50.0 to 0.51.1 (#11160) +* Bump the all group with 4 updates (#11140) +* Bump the all group with 1 update (#11136) +* Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /magefiles (#11127) +* Bump google.golang.org/protobuf in /images/custom-error-pages/rootfs (#11128) +* Bump google.golang.org/protobuf in /images/kube-webhook-certgen/rootfs (#11122) + diff --git a/deploy/static/provider/aws/deploy.yaml b/deploy/static/provider/aws/deploy.yaml index 0e8356305..4b24f36c3 100644 --- a/deploy/static/provider/aws/deploy.yaml +++ b/deploy/static/provider/aws/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -548,7 +548,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -574,7 +574,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -585,7 +585,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -601,7 +601,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -640,7 +640,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml b/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml index 5c12ba3b9..4f37dd89b 100644 --- a/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml +++ b/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 spec: containers: - args: @@ -456,7 +456,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -535,7 +535,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -546,7 +546,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -560,7 +560,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -586,7 +586,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -597,7 +597,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -613,7 +613,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -652,7 +652,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/baremetal/deploy.yaml b/deploy/static/provider/baremetal/deploy.yaml index b513fa97f..6e2ab95b7 100644 --- a/deploy/static/provider/baremetal/deploy.yaml +++ b/deploy/static/provider/baremetal/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 spec: containers: - args: @@ -441,7 +441,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -542,7 +542,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -568,7 +568,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -579,7 +579,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -595,7 +595,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -634,7 +634,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/cloud/deploy.yaml b/deploy/static/provider/cloud/deploy.yaml index 147d76d5e..6164992df 100644 --- a/deploy/static/provider/cloud/deploy.yaml +++ b/deploy/static/provider/cloud/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 spec: containers: - args: @@ -443,7 +443,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -519,7 +519,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -530,7 +530,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -544,7 +544,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -597,7 +597,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -636,7 +636,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/do/deploy.yaml b/deploy/static/provider/do/deploy.yaml index 801b6d75c..53fef52bb 100644 --- a/deploy/static/provider/do/deploy.yaml +++ b/deploy/static/provider/do/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -522,7 +522,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -533,7 +533,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -547,7 +547,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -573,7 +573,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -584,7 +584,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -600,7 +600,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/exoscale/deploy.yaml b/deploy/static/provider/exoscale/deploy.yaml index 79d945a53..26c28258a 100644 --- a/deploy/static/provider/exoscale/deploy.yaml +++ b/deploy/static/provider/exoscale/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 spec: containers: - args: @@ -448,7 +448,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -528,7 +528,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -539,7 +539,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -553,7 +553,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -579,7 +579,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -590,7 +590,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -606,7 +606,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -645,7 +645,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/kind/deploy.yaml b/deploy/static/provider/kind/deploy.yaml index 4963253c1..d65e2cf39 100644 --- a/deploy/static/provider/kind/deploy.yaml +++ b/deploy/static/provider/kind/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 spec: containers: - args: @@ -443,7 +443,7 @@ spec: fieldPath: metadata.namespace - name: LD_PRELOAD value: /usr/local/lib/libmimalloc.so - image: registry.k8s.io/ingress-nginx/controller:v1.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -529,7 +529,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -540,7 +540,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -554,7 +554,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -580,7 +580,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -591,7 +591,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -607,7 +607,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -646,7 +646,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/oracle/deploy.yaml b/deploy/static/provider/oracle/deploy.yaml index 080c206a5..fd66689e6 100644 --- a/deploy/static/provider/oracle/deploy.yaml +++ b/deploy/static/provider/oracle/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -548,7 +548,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -574,7 +574,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -585,7 +585,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -601,7 +601,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 name: nginx spec: controller: k8s.io/ingress-nginx @@ -640,7 +640,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/deploy/static/provider/scw/deploy.yaml b/deploy/static/provider/scw/deploy.yaml index d98955d80..fbd7a330e 100644 --- a/deploy/static/provider/scw/deploy.yaml +++ b/deploy/static/provider/scw/deploy.yaml @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission roleRef: apiGroup: rbac.authorization.k8s.io @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0@sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c + image: registry.k8s.io/ingress-nginx/controller:v1.10.1@sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -522,7 +522,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create namespace: ingress-nginx spec: @@ -533,7 +533,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-create spec: containers: @@ -547,7 +547,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: create securityContext: @@ -573,7 +573,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch namespace: ingress-nginx spec: @@ -584,7 +584,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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission-patch spec: containers: @@ -600,7 +600,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.0@sha256:44d1d0e9f19c63f58b380c5fddaca7cf22c7cee564adeff365225a5df5ef3334 + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1@sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366 imagePullPolicy: IfNotPresent name: patch securityContext: @@ -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.10.0 + app.kubernetes.io/version: 1.10.1 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.10.0 + app.kubernetes.io/version: 1.10.1 name: ingress-nginx-admission webhooks: - admissionReviewVersions: diff --git a/docs/deploy/index.md b/docs/deploy/index.md index 4e6b71235..7232b6ffd 100644 --- a/docs/deploy/index.md +++ b/docs/deploy/index.md @@ -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.10.0/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/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.10.0/deploy/static/provider/aws/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/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.10.0/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template +1. Download the [deploy.yaml](https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template ```console - wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.0/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml + wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml ``` 2. Edit the file and change the VPC CIDR in use for the Kubernetes cluster: @@ -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.10.0/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/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.10.0/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml ``` More information with regard to Azure annotations for ingress controller can be found in the [official AKS documentation](https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip#create-an-ingress-controller). @@ -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.10.0/deploy/static/provider/do/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/do/deploy.yaml ``` - By default the service object of the ingress-nginx-controller for Digital-Ocean, only configures one annotation. Its this one `service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"`. While this makes the service functional, it was reported that the Digital-Ocean LoadBalancer graphs shows `no data`, unless a few other annotations are also configured. Some of these other annotations require values that can not be generic and hence not forced in a out-of-the-box installation. These annotations and a discussion on them is well documented in [this issue](https://github.com/kubernetes/ingress-nginx/issues/8965). Please refer to the issue to add annotations, with values specific to user, to get graphs of the DO-LB populated with data. @@ -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.10.0/deploy/static/provider/scw/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/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.10.0/deploy/static/provider/cloud/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/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.10.0/deploy/static/provider/baremetal/deploy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/baremetal/deploy.yaml ``` For more information about bare metal deployments (and how to use port 80 instead of a random port in the 30000-32767 range), diff --git a/docs/e2e-tests.md b/docs/e2e-tests.md index b836fff6e..66664291b 100644 --- a/docs/e2e-tests.md +++ b/docs/e2e-tests.md @@ -295,6 +295,10 @@ Do not try to edit it manually. - [should choose the correct location](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_mixed.go#L39) ### [[Ingress] [PathType] prefix checks](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L28) - [should return 404 when prefix /aaa does not match request /aaaccc](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L35) +- [should test prefix path using simple regex pattern for /id/{int}](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L72) +- [should test prefix path using regex pattern for /id/{int} ignoring non-digits characters at end of string](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L113) +- [should test prefix path using fixed path size regex pattern /id/{int}{3}](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L142) +- [should correctly route multi-segment path patterns](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/pathtype_prefix.go#L177) ### [[Ingress] definition without host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L31) - [should set ingress details variables for ingresses without a host](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L34) - [should set ingress details variables for ingresses with host without IngressRuleValue, only Backend](https://github.com/kubernetes/ingress-nginx/tree/main//test/e2e/ingress/without_host.go#L55) From 0088c6c7c7a133c8c9a48e64a3270813130eaab5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 10:44:56 -0700 Subject: [PATCH 114/184] Bump github.com/prometheus/common from 0.52.3 to 0.53.0 (#11290) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.52.3 to 0.53.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](https://github.com/prometheus/common/compare/v0.52.3...v0.53.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c4c445a60..741d6c0eb 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.52.3 + github.com/prometheus/common v0.53.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index 65d5ec9b8..f96723aa4 100644 --- a/go.sum +++ b/go.sum @@ -323,8 +323,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.52.3 h1:5f8uj6ZwHSscOGNdIQg6OiZv/ybiK2CO2q2drVZAQSA= -github.com/prometheus/common v0.52.3/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= +github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 77c28237f0faf4016780d64cb2e444a277125907 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 11:55:14 -0700 Subject: [PATCH 115/184] Bump k8s.io/component-base from 0.29.3 to 0.30.0 (#11291) Bumps [k8s.io/component-base](https://github.com/kubernetes/component-base) from 0.29.3 to 0.30.0. - [Commits](https://github.com/kubernetes/component-base/compare/v0.29.3...v0.30.0) --- updated-dependencies: - dependency-name: k8s.io/component-base dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 +++++++----- go.sum | 26 ++++++++++++++------------ 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index 741d6c0eb..fc75ec322 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,7 @@ module k8s.io/ingress-nginx go 1.21 +toolchain go1.22.2 require ( dario.cat/mergo v1.0.0 @@ -31,14 +32,14 @@ require ( google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 - k8s.io/api v0.29.3 + k8s.io/api v0.30.0 k8s.io/apiextensions-apiserver v0.29.3 - k8s.io/apimachinery v0.29.3 + k8s.io/apimachinery v0.30.0 k8s.io/apiserver v0.29.3 k8s.io/cli-runtime v0.29.3 - k8s.io/client-go v0.29.3 + k8s.io/client-go v0.30.0 k8s.io/code-generator v0.29.3 - k8s.io/component-base v0.29.3 + k8s.io/component-base v0.30.0 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 sigs.k8s.io/controller-runtime v0.17.3 @@ -122,7 +123,8 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/gengo v0.0.0-20240226174109-00c4be8627da // indirect - k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b // indirect + k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kustomize/api v0.16.0 // indirect diff --git a/go.sum b/go.sum index f96723aa4..b99859431 100644 --- a/go.sum +++ b/go.sum @@ -292,8 +292,8 @@ github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8 github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= 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.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= +github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= @@ -740,29 +740,31 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw= -k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80= +k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= +k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= k8s.io/apiextensions-apiserver v0.29.3 h1:9HF+EtZaVpFjStakF4yVufnXGPRppWFEQ87qnO91YeI= k8s.io/apiextensions-apiserver v0.29.3/go.mod h1:po0XiY5scnpJfFizNGo6puNU6Fq6D70UJY2Cb2KwAVc= -k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= -k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= +k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= k8s.io/apiserver v0.29.3 h1:xR7ELlJ/BZSr2n4CnD3lfA4gzFivh0wwfNfz9L0WZcE= k8s.io/apiserver v0.29.3/go.mod h1:hrvXlwfRulbMbBgmWRQlFru2b/JySDpmzvQwwk4GUOs= k8s.io/cli-runtime v0.29.3 h1:r68rephmmytoywkw2MyJ+CxjpasJDQY7AGc3XY2iv1k= k8s.io/cli-runtime v0.29.3/go.mod h1:aqVUsk86/RhaGJwDhHXH0jcdqBrgdF3bZWk4Z9D4mkM= -k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg= -k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0= +k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= +k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= k8s.io/code-generator v0.29.3 h1:m7E25/t9R9NvejspO2zBdyu+/Gl0Z5m7dCRc680KS14= k8s.io/code-generator v0.29.3/go.mod h1:x47ofBhN4gxYFcxeKA1PYXeaPreAGaDN85Y/lNUsPoM= -k8s.io/component-base v0.29.3 h1:Oq9/nddUxlnrCuuR2K/jp6aflVvc0uDvxMzAWxnGzAo= -k8s.io/component-base v0.29.3/go.mod h1:Yuj33XXjuOk2BAaHsIGHhCKZQAgYKhqIxIjIr2UXYio= +k8s.io/component-base v0.30.0 h1:cj6bp38g0ainlfYtaOQuRELh5KSYjhKxM+io7AUIk4o= +k8s.io/component-base v0.30.0/go.mod h1:V9x/0ePFNaKeKYA3bOvIbrNoluTSG+fSJKjLdjOoeXQ= k8s.io/gengo v0.0.0-20240226174109-00c4be8627da h1:uH7pylUCo++9PSvrUA34sbk4Y6PHw/bgEFa80pejI+I= k8s.io/gengo v0.0.0-20240226174109-00c4be8627da/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b h1:1dzw/KqgSPod72SUp2tuTOmK33TlY2fHlrVU2M9VrOM= -k8s.io/kube-openapi v0.0.0-20240224005224-582cce78233b/go.mod h1:Pa1PvrP7ACSkuX6I7KYomY6cmMA0Tx86waBhDUgoKPw= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 h1:SAElp8THCfmBdM+4lmWX5gebiSSkEr7PAYDVF91qpfg= From b3152c48417ec0d8a428b794ed2a715f035cf6de Mon Sep 17 00:00:00 2001 From: James Strong Date: Wed, 24 Apr 2024 09:48:42 -0400 Subject: [PATCH 116/184] Release Helm Chart on branch update Signed-off-by: James Strong --- .github/workflows/helm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index e6383c682..e88fd8678 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -65,6 +65,7 @@ jobs: steps: - name: Checkout master uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + ref: ${{ github.ref_name }} with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 From b330f96482df33a837120b6151ee248abadad6bb Mon Sep 17 00:00:00 2001 From: James Strong Date: Wed, 24 Apr 2024 10:21:27 -0400 Subject: [PATCH 117/184] fix ref error Signed-off-by: James Strong --- .github/workflows/helm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index e88fd8678..34af63189 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -65,10 +65,10 @@ jobs: steps: - name: Checkout master uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - ref: ${{ github.ref_name }} with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 + ref: ${{ github.ref_name }} - name: Setup shell: bash From 9b4b91435d65085ade86f7995b26aff51177a62e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 12:01:23 -0700 Subject: [PATCH 118/184] Bump the all group with 4 updates (#11327) Bumps the all group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact), [actions/download-artifact](https://github.com/actions/download-artifact) and [github/codeql-action](https://github.com/github/codeql-action). Updates `actions/checkout` from 4.1.3 to 4.1.4 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/1d96c772d19495a3b5c517cd2bc0cb401ea0529f...0ad4b8fadaa221de15dcec353f45205ec38ea70b) Updates `actions/upload-artifact` from 4.3.2 to 4.3.3 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/1746f4ab65b179e0ea60a494b83293b640dd5bba...65462800fd760344b1a7b4382951275a0abb4808) Updates `actions/download-artifact` from 4.1.5 to 4.1.7 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/8caf195ad4b1dee92908e23f56eeb0696f1dd42d...65a9edc5881444af0b9093a5e628f2fe47ea3b2e) Updates `github/codeql-action` from 3.25.1 to 3.25.3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/c7f9125735019aa87cfc361530512d50ea439c71...d39d31e687223d841ef683f52467bd88e9b21c14) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 14 +++++++------- .github/workflows/depreview.yaml | 2 +- .github/workflows/docs.yaml | 4 ++-- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/helm.yaml | 4 ++-- .github/workflows/images.yaml | 8 ++++---- .github/workflows/perftest.yaml | 2 +- .github/workflows/plugin.yaml | 2 +- .github/workflows/scorecards.yml | 6 +++--- .github/workflows/vulnerability-scans.yaml | 6 +++--- .github/workflows/zz-tmpl-images.yaml | 6 +++--- .github/workflows/zz-tmpl-k8s-e2e.yaml | 6 +++--- 12 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a3d0e3187..afc2f7d38 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -77,7 +77,7 @@ jobs: (needs.changes.outputs.go == 'true') steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -105,7 +105,7 @@ jobs: PLATFORMS: linux/amd64 steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Get go version id: golangversion @@ -163,7 +163,7 @@ jobs: | gzip > docker.tar.gz - name: cache - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: docker.tar.gz path: docker.tar.gz @@ -179,7 +179,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 @@ -239,7 +239,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Setup Go uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 @@ -248,7 +248,7 @@ jobs: check-latest: true - name: cache - uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 + uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: name: docker.tar.gz diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index bfe5ba55b..c9881c2a3 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -9,6 +9,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: 'Dependency Review' uses: actions/dependency-review-action@5bbc3ba658137598168acb2ab73b21c432dd411b # v4.2.5 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 740b76f79..76b5818f4 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Deploy uses: ./.github/actions/mkdocs diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 02ebcaa38..2b709ccfd 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 34af63189..1da3972b0 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Run Artifact Hub lint run: | @@ -64,7 +64,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 3e9cbcbae..a7a2adce0 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -41,7 +41,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -144,7 +144,7 @@ jobs: k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -178,7 +178,7 @@ jobs: nginx: ['1.25.3', '1.21.6'] steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: image build run: | cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build @@ -195,7 +195,7 @@ jobs: PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx diff --git a/.github/workflows/perftest.yaml b/.github/workflows/perftest.yaml index 87c828380..f2999ee97 100644 --- a/.github/workflows/perftest.yaml +++ b/.github/workflows/perftest.yaml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Install K6 run: | diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index def284a39..1b8c8f19b 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index e4a404ef8..c98b2d180 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -27,7 +27,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 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@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: SARIF file path: results.sarif @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 + uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index e0c1d838b..44e8954ed 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -22,7 +22,7 @@ jobs: versions: ${{ steps.version.outputs.TAGS }} steps: - name: Checkout code - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: fetch-depth: 0 @@ -52,7 +52,7 @@ jobs: versions: ${{ fromJSON(needs.version.outputs.versions) }} steps: - name: Checkout code - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - shell: bash id: test @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 + uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index 819a88cd4..4ab9a4efb 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -48,7 +48,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Build run: | @@ -67,7 +67,7 @@ jobs: PLATFORMS: ${{ inputs.platforms-publish }} steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Login to GitHub Container Registry uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index ab2ec536a..9ca47112b 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -20,10 +20,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: cache - uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5 + uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: name: docker.tar.gz @@ -50,7 +50,7 @@ jobs: make kind-e2e-test - name: Upload e2e junit-reports ${{ inputs.variation }} - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 if: success() || failure() with: name: e2e-test-reports-${{ inputs.k8s-version }}${{ inputs.variation }} From 030893148be3a2ea655b9fc014ca24c7756d233d Mon Sep 17 00:00:00 2001 From: Jintao Zhang Date: Sun, 5 May 2024 20:06:59 +0800 Subject: [PATCH 119/184] chore(deps): group update k8s.io packages to v0.30.0 (#11344) * chore(deps): group update k8s.io packages to v0.30.0 Signed-off-by: Jintao Zhang * upgraded github.com/ncabatoff/process-exporter v0.7.10 => v0.7.11 Signed-off-by: Jintao Zhang * downgrade github.com/prometheus/procfs to v0.13.0 Signed-off-by: Jintao Zhang --------- Signed-off-by: Jintao Zhang --- go.mod | 60 +-- go.sum | 1333 ++++++++++++++++++++++++++++++++++++++++++++++++--- go.work | 2 +- go.work.sum | 550 ++++++++++++++------- 4 files changed, 1683 insertions(+), 262 deletions(-) diff --git a/go.mod b/go.mod index fc75ec322..4b40b93bc 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,7 @@ module k8s.io/ingress-nginx -go 1.21 +go 1.22.0 + toolchain go1.22.2 require ( @@ -14,8 +15,8 @@ require ( github.com/mitchellh/hashstructure/v2 v2.0.2 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.17.1 + github.com/ncabatoff/process-exporter v0.7.11 + github.com/onsi/ginkgo/v2 v2.17.2 github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.0 @@ -27,18 +28,18 @@ require ( github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.22.0 - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e + golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f google.golang.org/grpc v1.63.2 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 k8s.io/api v0.30.0 - k8s.io/apiextensions-apiserver v0.29.3 + k8s.io/apiextensions-apiserver v0.30.0 k8s.io/apimachinery v0.30.0 - k8s.io/apiserver v0.29.3 - k8s.io/cli-runtime v0.29.3 + k8s.io/apiserver v0.30.0 + k8s.io/cli-runtime v0.30.0 k8s.io/client-go v0.30.0 - k8s.io/code-generator v0.29.3 + k8s.io/code-generator v0.30.0 k8s.io/component-base v0.30.0 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 @@ -51,21 +52,21 @@ require ( github.com/BurntSushi/toml v1.3.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // 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.11.3 // indirect + github.com/emicklei/go-restful/v3 v3.12.0 // indirect github.com/evanphx/json-patch v5.9.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.9.0 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect github.com/go-errors/errors v1.5.1 // indirect github.com/go-logr/logr v1.4.1 // indirect - github.com/go-openapi/jsonpointer v0.20.2 // indirect - github.com/go-openapi/jsonreference v0.20.4 // indirect - github.com/go-openapi/swag v0.22.9 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -75,7 +76,7 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20240225044709-fd706174c886 // indirect + github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect @@ -98,34 +99,33 @@ require ( github.com/opencontainers/runtime-spec v1.2.0 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/xlab/treeprint v1.2.0 // indirect github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect github.com/yudai/pp v2.0.1+incompatible // indirect go.starlark.net v0.0.0-20240123142251-f86470692795 // indirect - golang.org/x/mod v0.15.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect - golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.19.0 // indirect + go.uber.org/zap v1.27.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.24.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.20.0 // indirect golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.18.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/protobuf v1.33.0 // indirect + golang.org/x/tools v0.20.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.9.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 gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/gengo v0.0.0-20240226174109-00c4be8627da // indirect - k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20240102154912-e7106e64919e // indirect + k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313 // indirect + k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect + k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kustomize/api v0.16.0 // indirect sigs.k8s.io/kustomize/kyaml v0.16.0 // indirect diff --git a/go.sum b/go.sum index b99859431..13e4ebd2d 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -13,37 +14,617 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +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/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= +github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= +github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/armon/go-proxyproto v0.1.0 h1:TWWcSsjco7o2itn6r25/5AqKBiWmsiuzsUDLT/MTl7k= github.com/armon/go-proxyproto v0.1.0/go.mod h1:Xj90dce2VKbHzRAeiVQAMBtj4M5oidoXJ8lmgyW21mw= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -52,15 +633,34 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= 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/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +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-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +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-20211001041855-01bcc9b48dfe/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-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -72,20 +672,35 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG 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= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/channels v1.1.0 h1:F1taHcn7/F0i8DYqKXJnyhJcVpp2kgFcNePxXtnyu4k= github.com/eapache/channels v1.1.0/go.mod h1:jMm2qB5Ubtg9zLd+inMZd2/NUvXgzmWXsDaLyQIGfH0= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/emicklei/go-restful/v3 v3.11.3 h1:yagOQz/38xJmcNeZJtrUcKjkHRltIaIFXKWeG1SkWGE= -github.com/emicklei/go-restful/v3 v3.11.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= +github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +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.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= @@ -93,39 +708,55 @@ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyT github.com/fullsailor/pkcs7 v0.0.0-20160414161337-2585af45975b/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q= -github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs= -github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= -github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= -github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= -github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -138,6 +769,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= 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.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -153,9 +786,13 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +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/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU= github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 h1:k4Tw0nt6lwro3Uin8eqoET7MDA4JnT8YgbCjc/g5E3k= github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= @@ -163,6 +800,7 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= 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.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -172,18 +810,24 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/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.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 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 v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -191,21 +835,58 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20240225044709-fd706174c886 h1:JSJUTZTQT1Gzb2ROdAKOY3HwzBYcclS2GgumhMfHqjw= -github.com/google/pprof v0.0.0-20240225044709-fd706174c886/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -222,13 +903,19 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 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= @@ -241,14 +928,23 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= @@ -279,8 +975,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW github.com/ncabatoff/fakescraper v0.0.0-20201102132415-4b37ba603d65/go.mod h1:Tx6UMSMyIsjLG/VU/F6xA1+0XI+/f9o1dGJnf1l+bPg= github.com/ncabatoff/go-seq v0.0.0-20180805175032-b08ef85ed833 h1:t4WWQ9I797y7QUgeEjeXnVb+oYuEDQc6gLvrZJTYo94= github.com/ncabatoff/go-seq v0.0.0-20180805175032-b08ef85ed833/go.mod h1:0CznHmXSjMEqs5Tezj/w2emQoM41wzYM9KpDKUHPYag= -github.com/ncabatoff/process-exporter v0.7.10 h1:+Ere7+3se6QqP54gg7aBRagWcL8bq3u5zNi/GRSWeKQ= -github.com/ncabatoff/process-exporter v0.7.10/go.mod h1:DHZRZjqxw9LCOpLlX0DjBuyn6d5plh41Jv6Tmttj7Ek= +github.com/ncabatoff/process-exporter v0.7.11 h1:BEKcgOZCa0h4jvBzTUTX0oPyEW+Zhy4JL6KKDnySEfg= +github.com/ncabatoff/process-exporter v0.7.11/go.mod h1:A2ThOqSI56jai50qiZ7EOJsWGWM6n1ties0wSJxvRlo= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -288,57 +984,88 @@ 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.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= -github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= +github.com/onsi/ginkgo/v2 v2.17.2 h1:7eMhcy3GimbsA3hEnVKdw/PQM9XN9krpKVXsZdph0/g= +github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= 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.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= -github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= 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/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.3/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= -github.com/prometheus/exporter-toolkit v0.7.0/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= +github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= 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.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= 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/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -346,12 +1073,18 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/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/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.1.3/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -361,9 +1094,15 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/urfave/cli v1.17.1-0.20160602030128-01a33823596e/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/xhit/go-str2duration v1.2.0/go.mod h1:3cPSlfZlUHVlneIVfePFWcJZsuwf+P1v2SRTV4cUmp4= +github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yudai/gojsondiff v1.0.0 h1:27cbfqXLVEJ1o8I6v3y9lg8Ydm53EKqHXAOMxEGlCOA= @@ -376,47 +1115,85 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 h1:rzHvkiukOVYcf840FqAsHqBMhfLofvQIxWtczkGRklU= github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30/go.mod h1:/Hzu8ych2oXCs1iNI+MeASyFzWTncQ6nlu/wgqbqC2A= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +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.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.starlark.net v0.0.0-20240123142251-f86470692795 h1:LmbG8Pq7KDGkglKVn8VpZOZj6vb9b8nKEGcg9l03epM= go.starlark.net v0.0.0-20240123142251-f86470692795/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= 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= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/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.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/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= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f h1:99ci1mjWVBWwJiEKYY6jWa4d2nTQVIEhZIptnrVb1XY= +golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -427,6 +1204,8 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -435,9 +1214,17 @@ 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.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +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/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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= @@ -469,19 +1256,82 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= 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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 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= @@ -492,9 +1342,18 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -516,6 +1375,7 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -530,23 +1390,90 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/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-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -554,18 +1481,33 @@ 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.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 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= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -578,6 +1520,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -598,7 +1541,6 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -606,17 +1548,46 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= 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= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= 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= @@ -633,14 +1604,58 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= +google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -664,14 +1679,129 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 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/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= +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-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +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-20240429193739-8cf5692501f6 h1:DujSIu+2tC9Ht0aPNA7jgj23Iq8Ewi5sgkQ++wdvonE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= 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= @@ -684,8 +1814,38 @@ 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.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +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.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab h1:tg8hvIl5RmFBuXlcJMuL0h4Psh1gx5Q5xEMwzBZIzWA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab/go.mod h1:liVNnGuZDITxuksuZ+BBvdy7FcJfeNk+efF9qgqNUmc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -700,8 +1860,16 @@ 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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +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.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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= @@ -724,6 +1892,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -740,36 +1909,69 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= -k8s.io/apiextensions-apiserver v0.29.3 h1:9HF+EtZaVpFjStakF4yVufnXGPRppWFEQ87qnO91YeI= -k8s.io/apiextensions-apiserver v0.29.3/go.mod h1:po0XiY5scnpJfFizNGo6puNU6Fq6D70UJY2Cb2KwAVc= +k8s.io/apiextensions-apiserver v0.30.0 h1:jcZFKMqnICJfRxTgnC4E+Hpcq8UEhT8B2lhBcQ+6uAs= +k8s.io/apiextensions-apiserver v0.30.0/go.mod h1:N9ogQFGcrbWqAY9p2mUAL5mGxsLqwgtUce127VtRX5Y= k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/apiserver v0.29.3 h1:xR7ELlJ/BZSr2n4CnD3lfA4gzFivh0wwfNfz9L0WZcE= -k8s.io/apiserver v0.29.3/go.mod h1:hrvXlwfRulbMbBgmWRQlFru2b/JySDpmzvQwwk4GUOs= -k8s.io/cli-runtime v0.29.3 h1:r68rephmmytoywkw2MyJ+CxjpasJDQY7AGc3XY2iv1k= -k8s.io/cli-runtime v0.29.3/go.mod h1:aqVUsk86/RhaGJwDhHXH0jcdqBrgdF3bZWk4Z9D4mkM= +k8s.io/apiserver v0.30.0 h1:QCec+U72tMQ+9tR6A0sMBB5Vh6ImCEkoKkTDRABWq6M= +k8s.io/apiserver v0.30.0/go.mod h1:smOIBq8t0MbKZi7O7SyIpjPsiKJ8qa+llcFCluKyqiY= +k8s.io/cli-runtime v0.30.0 h1:0vn6/XhOvn1RJ2KJOC6IRR2CGqrpT6QQF4+8pYpWQ48= +k8s.io/cli-runtime v0.30.0/go.mod h1:vATpDMATVTMA79sZ0YUCzlMelf6rUjoBzlp+RnoM+cg= k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= -k8s.io/code-generator v0.29.3 h1:m7E25/t9R9NvejspO2zBdyu+/Gl0Z5m7dCRc680KS14= -k8s.io/code-generator v0.29.3/go.mod h1:x47ofBhN4gxYFcxeKA1PYXeaPreAGaDN85Y/lNUsPoM= +k8s.io/code-generator v0.30.0 h1:3VUVqHvWFSVSm9kqL/G6kD4ZwNdHF6J/jPyo3Jgjy3k= +k8s.io/code-generator v0.30.0/go.mod h1:mBMZhfRR4IunJUh2+7LVmdcWwpouCH5+LNPkZ3t/v7Q= k8s.io/component-base v0.30.0 h1:cj6bp38g0ainlfYtaOQuRELh5KSYjhKxM+io7AUIk4o= k8s.io/component-base v0.30.0/go.mod h1:V9x/0ePFNaKeKYA3bOvIbrNoluTSG+fSJKjLdjOoeXQ= -k8s.io/gengo v0.0.0-20240226174109-00c4be8627da h1:uH7pylUCo++9PSvrUA34sbk4Y6PHw/bgEFa80pejI+I= -k8s.io/gengo v0.0.0-20240226174109-00c4be8627da/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo= -k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313 h1:bKcdZJOPICVmIIuaM9+MXmapE94dn5AYv5ODs1jA43o= +k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= -k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 h1:SAElp8THCfmBdM+4lmWX5gebiSSkEr7PAYDVF91qpfg= pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732/go.mod h1:lpvCfhqEHNJSSpG5R5A2EgsVzG8RTt4RfPoQuRAcDmg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk= @@ -784,6 +1986,5 @@ sigs.k8s.io/mdtoc v1.1.0 h1:q3YtqYzmC2e0hgLXRIOm7/QLuPux1CX3ZHCwlbABxZo= sigs.k8s.io/mdtoc v1.1.0/go.mod h1:QZLVEdHH2iNIR4uHAZyvFRtjloHgVItk8lo/mzCtq3w= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/go.work b/go.work index 463239b63..c963e3c0e 100644 --- a/go.work +++ b/go.work @@ -1,4 +1,4 @@ -go 1.21 +go 1.22.0 use ( . diff --git a/go.work.sum b/go.work.sum index 4ce702139..51c6a3e66 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,739 +1,936 @@ -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go v0.110.2 h1:sdFPBr6xG9/wkBbfhmUz/JmZC7X6LavQgcrVINrKiVA= cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go/accessapproval v1.6.0 h1:x0cEHro/JFPd7eS4BlEWNTMecIj2HdXjOVB5BtvwER0= cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc= cloud.google.com/go/accessapproval v1.7.5/go.mod h1:g88i1ok5dvQ9XJsxpUInWWvUBrIZhyPDPbk4T01OoJ0= +cloud.google.com/go/accesscontextmanager v1.7.0 h1:MG60JgnEoawHJrbWw0jGdv6HLNSf6gQvYRiXpuzqgEA= cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M= cloud.google.com/go/accesscontextmanager v1.8.5/go.mod h1:TInEhcZ7V9jptGNqN3EzZ5XMhT6ijWxTGjzyETwmL0Q= +cloud.google.com/go/aiplatform v1.37.0 h1:zTw+suCVchgZyO+k847wjzdVjWmrAuehxdvcZvJwfGg= cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= cloud.google.com/go/aiplatform v1.52.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= cloud.google.com/go/aiplatform v1.58.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= cloud.google.com/go/aiplatform v1.60.0/go.mod h1:eTlGuHOahHprZw3Hio5VKmtThIOak5/qy6pzdsqcQnM= +cloud.google.com/go/analytics v0.19.0 h1:LqAo3tAh2FU9+w/r7vc3hBjU23Kv7GhO/PDIW7kIYgM= cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= cloud.google.com/go/analytics v0.22.0/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= cloud.google.com/go/analytics v0.23.0/go.mod h1:YPd7Bvik3WS95KBok2gPXDqQPHy08TsCQG6CdUCb+u0= +cloud.google.com/go/apigateway v1.5.0 h1:ZI9mVO7x3E9RK/BURm2p1aw9YTBSCQe3klmyP1WxWEg= cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY= cloud.google.com/go/apigateway v1.6.5/go.mod h1:6wCwvYRckRQogyDDltpANi3zsCDl6kWi0b4Je+w2UiI= +cloud.google.com/go/apigeeconnect v1.5.0 h1:sWOmgDyAsi1AZ48XRHcATC0tsi9SkPT7DA/+VCfkaeA= cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0= cloud.google.com/go/apigeeconnect v1.6.5/go.mod h1:MEKm3AiT7s11PqTfKE3KZluZA9O91FNysvd3E6SJ6Ow= +cloud.google.com/go/apigeeregistry v0.6.0 h1:E43RdhhCxdlV+I161gUY2rI4eOaMzHTA5kNkvRsFXvc= cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8= cloud.google.com/go/apigeeregistry v0.8.3/go.mod h1:aInOWnqF4yMQx8kTjDqHNXjZGh/mxeNlAf52YqtASUs= +cloud.google.com/go/apikeys v0.6.0 h1:B9CdHFZTFjVti89tmyXXrO+7vSNo2jvZuHG8zD5trdQ= +cloud.google.com/go/appengine v1.7.1 h1:aBGDKmRIaRRoWJ2tAoN0oVSHoWLhtO9aj/NvUyP4aYs= cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg= cloud.google.com/go/appengine v1.8.5/go.mod h1:uHBgNoGLTS5di7BvU25NFDuKa82v0qQLjyMJLuPQrVo= +cloud.google.com/go/area120 v0.7.1 h1:ugckkFh4XkHJMPhTIx0CyvdoBxmOpMe8rNs4Ok8GAag= cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M= cloud.google.com/go/area120 v0.8.5/go.mod h1:BcoFCbDLZjsfe4EkCnEq1LKvHSK0Ew/zk5UFu6GMyA0= +cloud.google.com/go/artifactregistry v1.13.0 h1:o1Q80vqEB6Qp8WLEH3b8FBLNUCrGQ4k5RFj0sn/sgO8= cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE= cloud.google.com/go/artifactregistry v1.14.7/go.mod h1:0AUKhzWQzfmeTvT4SjfI4zjot72EMfrkvL9g9aRjnnM= +cloud.google.com/go/asset v1.13.0 h1:YAsssO08BqZ6mncbb6FPlj9h6ACS7bJQUOlzciSfbNk= cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= cloud.google.com/go/asset v1.17.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= cloud.google.com/go/asset v1.17.2/go.mod h1:SVbzde67ehddSoKf5uebOD1sYw8Ab/jD/9EIeWg99q4= +cloud.google.com/go/assuredworkloads v1.10.0 h1:VLGnVFta+N4WM+ASHbhc14ZOItOabDLH1MSoDv+Xuag= cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= cloud.google.com/go/assuredworkloads v1.11.5/go.mod h1:FKJ3g3ZvkL2D7qtqIGnDufFkHxwIpNM9vtmhvt+6wqk= +cloud.google.com/go/automl v1.12.0 h1:50VugllC+U4IGl3tDNcZaWvApHBTrn/TvyHDJ0wM+Uw= cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8= cloud.google.com/go/automl v1.13.5/go.mod h1:MDw3vLem3yh+SvmSgeYUmUKqyls6NzSumDm9OJ3xJ1Y= -cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/baremetalsolution v0.5.0 h1:2AipdYXL0VxMboelTTw8c1UJ7gYu35LZYUbuRv9Q28s= cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g= cloud.google.com/go/baremetalsolution v1.2.4/go.mod h1:BHCmxgpevw9IEryE99HbYEfxXkAEA3hkMJbYYsHtIuY= -cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/batch v0.7.0 h1:YbMt0E6BtqeD5FvSv1d56jbVsWEzlGm55lYte+M6Mzs= cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= cloud.google.com/go/batch v1.6.3/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= cloud.google.com/go/batch v1.7.0/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= cloud.google.com/go/batch v1.8.0/go.mod h1:k8V7f6VE2Suc0zUM4WtoibNrA6D3dqBpB+++e3vSGYc= +cloud.google.com/go/beyondcorp v0.5.0 h1:UkY2BTZkEUAVrgqnSdOJ4p3y9ZRBPEe1LkjgC8Bj/Pc= cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo= cloud.google.com/go/beyondcorp v1.0.4/go.mod h1:Gx8/Rk2MxrvWfn4WIhHIG1NV7IBfg14pTKv1+EArVcc= +cloud.google.com/go/bigquery v1.50.0 h1:RscMV6LbnAmhAzD893Lv9nXXy2WCaJmbxYPWDLbGqNQ= cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= cloud.google.com/go/bigquery v1.58.0/go.mod h1:0eh4mWNY0KrBTjUzLjoYImapGORq9gEPT7MWjCy9lik= cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= +cloud.google.com/go/billing v1.13.0 h1:JYj28UYF5w6VBAh0gQYlgHJ/OD1oA+JgW29YZQU+UHM= cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= cloud.google.com/go/billing v1.17.4/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= cloud.google.com/go/billing v1.18.0/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= cloud.google.com/go/billing v1.18.2/go.mod h1:PPIwVsOOQ7xzbADCwNe8nvK776QpfrOAUkvKjCUcpSE= +cloud.google.com/go/binaryauthorization v1.5.0 h1:d3pMDBCCNivxt5a4eaV7FwL7cSH0H7RrEnFrTb1QKWs= cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= cloud.google.com/go/binaryauthorization v1.7.3/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= cloud.google.com/go/binaryauthorization v1.8.0/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= cloud.google.com/go/binaryauthorization v1.8.1/go.mod h1:1HVRyBerREA/nhI7yLang4Zn7vfNVA3okoAR9qYQJAQ= +cloud.google.com/go/certificatemanager v1.6.0 h1:5C5UWeSt8Jkgp7OWn2rCkLmYurar/vIWIoSQ2+LaTOc= cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE= cloud.google.com/go/certificatemanager v1.7.5/go.mod h1:uX+v7kWqy0Y3NG/ZhNvffh0kuqkKZIXdvlZRO7z0VtM= +cloud.google.com/go/channel v1.12.0 h1:GpcQY5UJKeOekYgsX3QXbzzAc/kRGtBq43fTmyKe6Uw= cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= cloud.google.com/go/channel v1.17.4/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= cloud.google.com/go/channel v1.17.5/go.mod h1:FlpaOSINDAXgEext0KMaBq/vwpLMkkPAw9b2mApQeHc= +cloud.google.com/go/cloudbuild v1.9.0 h1:GHQCjV4WlPPVU/j3Rlpc8vNIDwThhd1U9qSY/NPZdko= cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= cloud.google.com/go/cloudbuild v1.14.3/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= cloud.google.com/go/cloudbuild v1.15.0/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= cloud.google.com/go/cloudbuild v1.15.1/go.mod h1:gIofXZSu+XD2Uy+qkOrGKEx45zd7s28u/k8f99qKals= +cloud.google.com/go/clouddms v1.5.0 h1:E7v4TpDGUyEm1C/4KIrpVSOCTm0P6vWdHT0I4mostRA= cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc= cloud.google.com/go/clouddms v1.7.4/go.mod h1:RdrVqoFG9RWI5AvZ81SxJ/xvxPdtcRhFotwdE79DieY= +cloud.google.com/go/cloudtasks v1.10.0 h1:uK5k6abf4yligFgYFnG0ni8msai/dSv6mDmiBulU0hU= cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0= cloud.google.com/go/cloudtasks v1.12.6/go.mod h1:b7c7fe4+TJsFZfDyzO51F7cjq7HLUlRi/KZQLQjDsaY= -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 v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/contactcenterinsights v1.6.0 h1:jXIpfcH/VYSE1SYcPzO0n1VVb+sAamiLOgCw45JbOQk= cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= cloud.google.com/go/contactcenterinsights v1.11.3/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= cloud.google.com/go/contactcenterinsights v1.12.1/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= cloud.google.com/go/contactcenterinsights v1.13.0/go.mod h1:ieq5d5EtHsu8vhe2y3amtZ+BE+AQwX5qAy7cpo0POsI= +cloud.google.com/go/container v1.15.0 h1:NKlY/wCDapfVZlbVVaeuu2UZZED5Dy1z4Zx1KhEzm8c= cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= cloud.google.com/go/container v1.27.1/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= cloud.google.com/go/container v1.29.0/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= cloud.google.com/go/container v1.31.0/go.mod h1:7yABn5s3Iv3lmw7oMmyGbeV6tQj86njcTijkkGuvdZA= +cloud.google.com/go/containeranalysis v0.9.0 h1:EQ4FFxNaEAg8PqQCO7bVQfWz9NVwZCUKaM1b3ycfx3U= cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U= cloud.google.com/go/containeranalysis v0.11.4/go.mod h1:cVZT7rXYBS9NG1rhQbWL9pWbXCKHWJPYraE8/FTSYPE= +cloud.google.com/go/datacatalog v1.13.0 h1:4H5IJiyUE0X6ShQBqgFFZvGGcrwGVndTwUSLP4c52gw= cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= cloud.google.com/go/datacatalog v1.18.3/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= cloud.google.com/go/datacatalog v1.19.2/go.mod h1:2YbODwmhpLM4lOFe3PuEhHK9EyTzQJ5AXgIy7EDKTEE= cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= +cloud.google.com/go/dataflow v0.8.0 h1:eYyD9o/8Nm6EttsKZaEGD84xC17bNgSKCu0ZxwqUbpg= cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w= cloud.google.com/go/dataflow v0.9.5/go.mod h1:udl6oi8pfUHnL0z6UN9Lf9chGqzDMVqcYTcZ1aPnCZQ= +cloud.google.com/go/dataform v0.7.0 h1:Dyk+fufup1FR6cbHjFpMuP4SfPiF3LI3JtoIIALoq48= cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs= cloud.google.com/go/dataform v0.9.2/go.mod h1:S8cQUwPNWXo7m/g3DhWHsLBoufRNn9EgFrMgne2j7cI= +cloud.google.com/go/datafusion v1.6.0 h1:sZjRnS3TWkGsu1LjYPFD/fHeMLZNXDK6PDHi2s2s/bk= cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM= cloud.google.com/go/datafusion v1.7.5/go.mod h1:bYH53Oa5UiqahfbNK9YuYKteeD4RbQSNMx7JF7peGHc= +cloud.google.com/go/datalabeling v0.7.0 h1:ch4qA2yvddGRUrlfwrNJCr79qLqhS9QBwofPHfFlDIk= cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8= cloud.google.com/go/datalabeling v0.8.5/go.mod h1:IABB2lxQnkdUbMnQaOl2prCOfms20mcPxDBm36lps+s= +cloud.google.com/go/dataplex v1.6.0 h1:RvoZ5T7gySwm1CHzAw7yY1QwwqaGswunmqEssPxU/AM= cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= cloud.google.com/go/dataplex v1.11.1/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= cloud.google.com/go/dataplex v1.14.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= cloud.google.com/go/dataplex v1.14.2/go.mod h1:0oGOSFlEKef1cQeAHXy4GZPB/Ife0fz/PxBf+ZymA2U= -cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataproc v1.12.0 h1:W47qHL3W4BPkAIbk4SWmIERwsWBaNnWm0P2sdx3YgGU= cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= cloud.google.com/go/dataproc/v2 v2.2.3/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= cloud.google.com/go/dataproc/v2 v2.3.0/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= cloud.google.com/go/dataproc/v2 v2.4.0/go.mod h1:3B1Ht2aRB8VZIteGxQS/iNSJGzt9+CA0WGnDVMEm7Z4= +cloud.google.com/go/dataqna v0.7.0 h1:yFzi/YU4YAdjyo7pXkBE2FeHbgz5OQQBVDdbErEHmVQ= cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c= cloud.google.com/go/dataqna v0.8.5/go.mod h1:vgihg1mz6n7pb5q2YJF7KlXve6tCglInd6XO0JGOlWM= +cloud.google.com/go/datastore v1.11.0 h1:iF6I/HaLs3Ado8uRKMvZRvF/ZLkWaWE9i8AiHzbC774= cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastream v1.7.0 h1:BBCBTnWMDwwEzQQmipUXxATa7Cm7CA/gKjKcR2w35T0= cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA= cloud.google.com/go/datastream v1.10.4/go.mod h1:7kRxPdxZxhPg3MFeCSulmAJnil8NJGGvSNdn4p1sRZo= +cloud.google.com/go/deploy v1.8.0 h1:otshdKEbmsi1ELYeCKNYppwV0UH5xD05drSdBm7ouTk= cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= cloud.google.com/go/deploy v1.14.2/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= cloud.google.com/go/deploy v1.17.0/go.mod h1:XBr42U5jIr64t92gcpOXxNrqL2PStQCXHuKK5GRUuYo= cloud.google.com/go/deploy v1.17.1/go.mod h1:SXQyfsXrk0fBmgBHRzBjQbZhMfKZ3hMQBw5ym7MN/50= +cloud.google.com/go/dialogflow v1.32.0 h1:uVlKKzp6G/VtSW0E7IH1Y5o0H48/UOCmqksG2riYCwQ= cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= cloud.google.com/go/dialogflow v1.48.1/go.mod h1:C1sjs2/g9cEwjCltkKeYp3FFpz8BOzNondEaAlCpt+A= cloud.google.com/go/dialogflow v1.49.0/go.mod h1:dhVrXKETtdPlpPhE7+2/k4Z8FRNUp6kMV3EW3oz/fe0= +cloud.google.com/go/dlp v1.9.0 h1:1JoJqezlgu6NWCroBxr4rOZnwNFILXr4cB9dMaSKO4A= cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI= cloud.google.com/go/dlp v1.11.2/go.mod h1:9Czi+8Y/FegpWzgSfkRlyz+jwW6Te9Rv26P3UfU/h/w= +cloud.google.com/go/documentai v1.18.0 h1:KM3Xh0QQyyEdC8Gs2vhZfU+rt6OCPF0dwVwxKgLmWfI= cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= cloud.google.com/go/documentai v1.23.5/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= cloud.google.com/go/documentai v1.23.7/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= cloud.google.com/go/documentai v1.25.0/go.mod h1:ftLnzw5VcXkLItp6pw1mFic91tMRyfv6hHEY5br4KzY= +cloud.google.com/go/domains v0.8.0 h1:2ti/o9tlWL4N+wIuWUNH+LbfgpwxPr8J1sv9RHA4bYQ= cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY= cloud.google.com/go/domains v0.9.5/go.mod h1:dBzlxgepazdFhvG7u23XMhmMKBjrkoUNaw0A8AQB55Y= +cloud.google.com/go/edgecontainer v1.0.0 h1:O0YVE5v+O0Q/ODXYsQHmHb+sYM8KNjGZw2pjX2Ws41c= cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE= cloud.google.com/go/edgecontainer v1.1.5/go.mod h1:rgcjrba3DEDEQAidT4yuzaKWTbkTI5zAMu3yy6ZWS0M= -cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= +cloud.google.com/go/essentialcontacts v1.5.0 h1:gIzEhCoOT7bi+6QZqZIzX1Erj4SswMPIteNvYVlu+pM= cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= cloud.google.com/go/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM= cloud.google.com/go/essentialcontacts v1.6.6/go.mod h1:XbqHJGaiH0v2UvtuucfOzFXN+rpL/aU5BCZLn4DYl1Q= +cloud.google.com/go/eventarc v1.11.0 h1:fsJmNeqvqtk74FsaVDU6cH79lyZNCYP8Rrv7EhaB/PU= cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg= cloud.google.com/go/eventarc v1.13.4/go.mod h1:zV5sFVoAa9orc/52Q+OuYUG9xL2IIZTbbuTHC6JSY8s= +cloud.google.com/go/filestore v1.6.0 h1:ckTEXN5towyTMu4q0uQ1Mde/JwTHur0gXs8oaIZnKfw= cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= cloud.google.com/go/filestore v1.8.0/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= cloud.google.com/go/filestore v1.8.1/go.mod h1:MbN9KcaM47DRTIuLfQhJEsjaocVebNtNQhSLhKCF5GM= +cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= +cloud.google.com/go/functions v1.13.0 h1:pPDqtsXG2g9HeOQLoquLbmvmb82Y4Ezdo1GXuotFoWg= cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I= cloud.google.com/go/functions v1.16.0/go.mod h1:nbNpfAG7SG7Duw/o1iZ6ohvL7mc6MapWQVpqtM29n8k= -cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gaming v1.9.0 h1:7vEhFnZmd931Mo7sZ6pJy7uQPDxF7m7v8xtBheG08tc= +cloud.google.com/go/gkebackup v0.4.0 h1:za3QZvw6ujR0uyqkhomKKKNoXDyqYGPJies3voUK8DA= cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI= cloud.google.com/go/gkebackup v1.3.5/go.mod h1:KJ77KkNN7Wm1LdMopOelV6OodM01pMuK2/5Zt1t4Tvc= +cloud.google.com/go/gkeconnect v0.7.0 h1:gXYKciHS/Lgq0GJ5Kc9SzPA35NGc3yqu6SkjonpEr2Q= cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw= cloud.google.com/go/gkeconnect v0.8.5/go.mod h1:LC/rS7+CuJ5fgIbXv8tCD/mdfnlAadTaUufgOkmijuk= +cloud.google.com/go/gkehub v0.12.0 h1:TqCSPsEBQ6oZSJgEYZ3XT8x2gUadbvfwI32YB0kuHCs= cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc= cloud.google.com/go/gkehub v0.14.5/go.mod h1:6bzqxM+a+vEH/h8W8ec4OJl4r36laxTs3A/fMNHJ0wA= +cloud.google.com/go/gkemulticloud v0.5.0 h1:8I84Q4vl02rJRsFiinBxl7WCozfdLlUVBQuSrqr9Wtk= cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= cloud.google.com/go/gkemulticloud v1.1.0/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= cloud.google.com/go/gkemulticloud v1.1.1/go.mod h1:C+a4vcHlWeEIf45IB5FFR5XGjTeYhF83+AYIpTy4i2Q= +cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= +cloud.google.com/go/gsuiteaddons v1.5.0 h1:1mvhXqJzV0Vg5Fa95QwckljODJJfDFXV4pn+iL50zzA= cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE= cloud.google.com/go/gsuiteaddons v1.6.5/go.mod h1:Lo4P2IvO8uZ9W+RaC6s1JVxo42vgy+TX5a6hfBZ0ubs= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/iap v1.7.1 h1:PxVHFuMxmSZyfntKXHXhd8bo82WJ+LcATenq7HLdVnU= cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw= cloud.google.com/go/iap v1.9.4/go.mod h1:vO4mSq0xNf/Pu6E5paORLASBwEmphXEjgCFg7aeNu1w= +cloud.google.com/go/ids v1.3.0 h1:fodnCDtOXuMmS8LTC2y3h8t24U8F3eKWfhi+3LY6Qf0= cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI= cloud.google.com/go/ids v1.4.5/go.mod h1:p0ZnyzjMWxww6d2DvMGnFwCsSxDJM666Iir1bK1UuBo= +cloud.google.com/go/iot v1.6.0 h1:39W5BFSarRNZfVG0eXI5LYux+OVQT8GkgpHCnrZL2vM= cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk= cloud.google.com/go/iot v1.7.5/go.mod h1:nq3/sqTz3HGaWJi1xNiX7F41ThOzpud67vwk0YsSsqs= +cloud.google.com/go/kms v1.10.1 h1:7hm1bRqGCA1GBRQUrp831TwJ9TWhP+tvLuP497CQS2g= cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/language v1.9.0 h1:7Ulo2mDk9huBoBi8zCE3ONOoBrL6UXfAI71CLQ9GEIM= cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc= cloud.google.com/go/language v1.12.3/go.mod h1:evFX9wECX6mksEva8RbRnr/4wi/vKGYnAJrTRXU8+f8= +cloud.google.com/go/lifesciences v0.8.0 h1:uWrMjWTsGjLZpCTWEAzYvyXj+7fhiZST45u9AgasasI= cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA= cloud.google.com/go/lifesciences v0.9.5/go.mod h1:OdBm0n7C0Osh5yZB7j9BXyrMnTRGBJIZonUMxo5CzPw= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= +cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= 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/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= +cloud.google.com/go/managedidentities v1.5.0 h1:ZRQ4k21/jAhrHBVKl/AY7SjgzeJwG1iZa+mJ82P+VNg= cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM= cloud.google.com/go/managedidentities v1.6.5/go.mod h1:fkFI2PwwyRQbjLxlm5bQ8SjtObFMW3ChBGNqaMcgZjI= -cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/maps v0.7.0 h1:mv9YaczD4oZBZkM5XJl6fXQ984IkJNHPwkc8MUsdkBo= cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= cloud.google.com/go/maps v1.6.1/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= cloud.google.com/go/maps v1.6.3/go.mod h1:VGAn809ADswi1ASofL5lveOHPnE6Rk/SFTTBx1yuOLw= cloud.google.com/go/maps v1.6.4/go.mod h1:rhjqRy8NWmDJ53saCfsXQ0LKwBHfi6OSh5wkq6BaMhI= +cloud.google.com/go/mediatranslation v0.7.0 h1:anPxH+/WWt8Yc3EdoEJhPMBRF7EhIdz426A+tuoA0OU= cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4= cloud.google.com/go/mediatranslation v0.8.5/go.mod h1:y7kTHYIPCIfgyLbKncgqouXJtLsU+26hZhHEEy80fSs= +cloud.google.com/go/memcache v1.9.0 h1:8/VEmWCpnETCrBwS3z4MhT+tIdKgR1Z4Tr2tvYH32rg= cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0= cloud.google.com/go/memcache v1.10.5/go.mod h1:/FcblbNd0FdMsx4natdj+2GWzTq+cjZvMa1I+9QsuMA= +cloud.google.com/go/metastore v1.10.0 h1:QCFhZVe2289KDBQ7WxaHV2rAmPrmRAdLC6gbjUd3HPo= cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE= cloud.google.com/go/metastore v1.13.4/go.mod h1:FMv9bvPInEfX9Ac1cVcRXp8EBBQnBcqH6gz3KvJ9BAE= +cloud.google.com/go/monitoring v1.13.0 h1:2qsrgXGVoRXpP7otZ14eE1I568zAa92sJSDPyOJvwjM= cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= cloud.google.com/go/monitoring v1.17.0/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= cloud.google.com/go/monitoring v1.18.0/go.mod h1:c92vVBCeq/OB4Ioyo+NbN2U7tlg5ZH41PZcdvfc+Lcg= +cloud.google.com/go/networkconnectivity v1.11.0 h1:ZD6b4Pk1jEtp/cx9nx0ZYcL3BKqDa+KixNDZ6Bjs1B8= cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek= cloud.google.com/go/networkconnectivity v1.14.4/go.mod h1:PU12q++/IMnDJAB+3r+tJtuCXCfwfN+C6Niyj6ji1Po= +cloud.google.com/go/networkmanagement v1.6.0 h1:8KWEUNGcpSX9WwZXq7FtciuNGPdPdPN/ruDm769yAEM= cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU= cloud.google.com/go/networkmanagement v1.9.4/go.mod h1:daWJAl0KTFytFL7ar33I6R/oNBH8eEOX/rBNHrC/8TA= +cloud.google.com/go/networksecurity v0.8.0 h1:sOc42Ig1K2LiKlzG71GUVloeSJ0J3mffEBYmvu+P0eo= cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w= cloud.google.com/go/networksecurity v0.9.5/go.mod h1:KNkjH/RsylSGyyZ8wXpue8xpCEK+bTtvof8SBfIhMG8= +cloud.google.com/go/notebooks v1.8.0 h1:Kg2K3K7CbSXYJHZ1aGQpf1xi5x2GUvQWf2sFVuiZh8M= cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70= cloud.google.com/go/notebooks v1.11.3/go.mod h1:0wQyI2dQC3AZyQqWnRsp+yA+kY4gC7ZIVP4Qg3AQcgo= +cloud.google.com/go/optimization v1.3.1 h1:dj8O4VOJRB4CUwZXdmwNViH1OtI0WtWL867/lnYH248= cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY= cloud.google.com/go/optimization v1.6.3/go.mod h1:8ve3svp3W6NFcAEFr4SfJxrldzhUl4VMUJmhrqVKtYA= +cloud.google.com/go/orchestration v1.6.0 h1:Vw+CEXo8M/FZ1rb4EjcLv0gJqqw89b7+g+C/EmniTb8= cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI= cloud.google.com/go/orchestration v1.8.5/go.mod h1:C1J7HesE96Ba8/hZ71ISTV2UAat0bwN+pi85ky38Yq8= +cloud.google.com/go/orgpolicy v1.10.0 h1:XDriMWug7sd0kYT1QKofRpRHzjad0bK8Q8uA9q+XrU4= cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= cloud.google.com/go/orgpolicy v1.12.0/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= cloud.google.com/go/orgpolicy v1.12.1/go.mod h1:aibX78RDl5pcK3jA8ysDQCFkVxLj3aOQqrbBaUL2V5I= +cloud.google.com/go/osconfig v1.11.0 h1:PkSQx4OHit5xz2bNyr11KGcaFccL5oqglFPdTboyqwQ= cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA= cloud.google.com/go/osconfig v1.12.5/go.mod h1:D9QFdxzfjgw3h/+ZaAb5NypM8bhOMqBzgmbhzWViiW8= +cloud.google.com/go/oslogin v1.9.0 h1:whP7vhpmc+ufZa90eVpkfbgzJRK/Xomjz+XCD4aGwWw= cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY= cloud.google.com/go/oslogin v1.13.0/go.mod h1:xPJqLwpTZ90LSE5IL1/svko+6c5avZLluiyylMb/sRA= cloud.google.com/go/oslogin v1.13.1/go.mod h1:vS8Sr/jR7QvPWpCjNqy6LYZr5Zs1e8ZGW/KPn9gmhws= +cloud.google.com/go/phishingprotection v0.7.0 h1:l6tDkT7qAEV49MNEJkEJTB6vOO/onbSOcNtAT09HPuA= cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE= cloud.google.com/go/phishingprotection v0.8.5/go.mod h1:g1smd68F7mF1hgQPuYn3z8HDbNre8L6Z0b7XMYFmX7I= +cloud.google.com/go/policytroubleshooter v1.6.0 h1:yKAGC4p9O61ttZUswaq9GAn1SZnEzTd0vUYXD7ZBT7Y= cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0= cloud.google.com/go/policytroubleshooter v1.10.3/go.mod h1:+ZqG3agHT7WPb4EBIRqUv4OyIwRTZvsVDHZ8GlZaoxk= +cloud.google.com/go/privatecatalog v0.8.0 h1:EPEJ1DpEGXLDnmc7mnCAqFmkwUJbIsaLAiLHVOkkwtc= cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0= cloud.google.com/go/privatecatalog v0.9.5/go.mod h1:fVWeBOVe7uj2n3kWRGlUQqR/pOd450J9yZoOECcQqJk= +cloud.google.com/go/pubsub v1.30.0 h1:vCge8m7aUKBJYOgrZp7EsNDf6QMd2CAlXZqWTn3yq6s= cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsub v1.34.0/go.mod h1:alj4l4rBg+N3YTFDDC+/YyFTs6JAjam2QfYsddcAW4c= cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= +cloud.google.com/go/pubsublite v1.7.0 h1:cb9fsrtpINtETHiJ3ECeaVzrfIVhcGjhhJEjybHXHao= cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= +cloud.google.com/go/recaptchaenterprise v1.3.1 h1:u6EznTGzIdsyOsvm+Xkw0aSuKFXQlyjGE9a4exk6iNQ= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0 h1:6iOCujSNJ0YS7oNymI64hXsjGq60T4FK1zdLugxbzvU= cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= cloud.google.com/go/recaptchaenterprise/v2 v2.8.3/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= cloud.google.com/go/recaptchaenterprise/v2 v2.9.0/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= cloud.google.com/go/recaptchaenterprise/v2 v2.9.2/go.mod h1:trwwGkfhCmp05Ll5MSJPXY7yvnO0p4v3orGANAFHAuU= +cloud.google.com/go/recommendationengine v0.7.0 h1:VibRFCwWXrFebEWKHfZAt2kta6pS7Tlimsnms0fjv7k= cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU= cloud.google.com/go/recommendationengine v0.8.5/go.mod h1:A38rIXHGFvoPvmy6pZLozr0g59NRNREz4cx7F58HAsQ= +cloud.google.com/go/recommender v1.9.0 h1:ZnFRY5R6zOVk2IDS1Jbv5Bw+DExCI5rFumsTnMXiu/A= cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= cloud.google.com/go/recommender v1.11.3/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= cloud.google.com/go/recommender v1.12.0/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= cloud.google.com/go/recommender v1.12.1/go.mod h1:gf95SInWNND5aPas3yjwl0I572dtudMhMIG4ni8nr+0= +cloud.google.com/go/redis v1.11.0 h1:JoAd3SkeDt3rLFAAxEvw6wV4t+8y4ZzfZcZmddqphQ8= cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs= cloud.google.com/go/redis v1.14.2/go.mod h1:g0Lu7RRRz46ENdFKQ2EcQZBAJ2PtJHJLuiiRuEXwyQw= +cloud.google.com/go/resourcemanager v1.7.0 h1:NRM0p+RJkaQF9Ee9JMnUV9BQ2QBIOq/v8M+Pbv/wmCs= cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0= cloud.google.com/go/resourcemanager v1.9.5/go.mod h1:hep6KjelHA+ToEjOfO3garMKi/CLYwTqeAw7YiEI9x8= +cloud.google.com/go/resourcesettings v1.5.0 h1:8Dua37kQt27CCWHm4h/Q1XqCF6ByD7Ouu49xg95qJzI= cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI= cloud.google.com/go/resourcesettings v1.6.5/go.mod h1:WBOIWZraXZOGAgoR4ukNj0o0HiSMO62H9RpFi9WjP9I= +cloud.google.com/go/retail v1.12.0 h1:1Dda2OpFNzIb4qWgFZjYlpP7sxX3aLeypKG6A3H4Yys= cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg= cloud.google.com/go/retail v1.16.0/go.mod h1:LW7tllVveZo4ReWt68VnldZFWJRzsh9np+01J9dYWzE= -cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/run v0.9.0 h1:ydJQo+k+MShYnBfhaRHSZYeD/SQKZzZLAROyfpeD9zw= cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4= cloud.google.com/go/run v1.3.4/go.mod h1:FGieuZvQ3tj1e9GnzXqrMABSuir38AJg5xhiYq+SF3o= +cloud.google.com/go/scheduler v1.9.0 h1:NpQAHtx3sulByTLe2dMwWmah8PWgeoieFPpJpArwFV0= cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= cloud.google.com/go/scheduler v1.10.4/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= cloud.google.com/go/scheduler v1.10.5/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= cloud.google.com/go/scheduler v1.10.6/go.mod h1:pe2pNCtJ+R01E06XCDOJs1XvAMbv28ZsQEbqknxGOuE= +cloud.google.com/go/secretmanager v1.10.0 h1:pu03bha7ukxF8otyPKTFdDz+rr9sE3YauS5PliDXK60= cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w= cloud.google.com/go/secretmanager v1.11.5/go.mod h1:eAGv+DaCHkeVyQi0BeXgAHOU0RdrMeZIASKc+S7VqH4= +cloud.google.com/go/security v1.13.0 h1:PYvDxopRQBfYAXKAuDpFCKBvDOWPWzp9k/H5nB3ud3o= cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4= cloud.google.com/go/security v1.15.5/go.mod h1:KS6X2eG3ynWjqcIX976fuToN5juVkF6Ra6c7MPnldtc= +cloud.google.com/go/securitycenter v1.19.0 h1:AF3c2s3awNTMoBtMX3oCUoOMmGlYxGOeuXSYHNBkf14= cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= cloud.google.com/go/securitycenter v1.24.2/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= cloud.google.com/go/securitycenter v1.24.3/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= cloud.google.com/go/securitycenter v1.24.4/go.mod h1:PSccin+o1EMYKcFQzz9HMMnZ2r9+7jbc+LvPjXhpwcU= +cloud.google.com/go/servicecontrol v1.11.1 h1:d0uV7Qegtfaa7Z2ClDzr9HJmnbJW7jn0WhZ7wOX6hLE= +cloud.google.com/go/servicedirectory v1.9.0 h1:SJwk0XX2e26o25ObYUORXx6torSFiYgsGkWSkZgkoSU= cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw= cloud.google.com/go/servicedirectory v1.11.4/go.mod h1:Bz2T9t+/Ehg6x+Y7Ycq5xiShYLD96NfEsWNHyitj1qM= +cloud.google.com/go/servicemanagement v1.8.0 h1:fopAQI/IAzlxnVeiKn/8WiV6zKndjFkvi+gzu+NjywY= +cloud.google.com/go/serviceusage v1.6.0 h1:rXyq+0+RSIm3HFypctp7WoXxIA563rn206CfMWdqXX4= +cloud.google.com/go/shell v1.6.0 h1:wT0Uw7ib7+AgZST9eCDygwTJn4+bHMDtZo5fh7kGWDU= cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM= cloud.google.com/go/shell v1.7.5/go.mod h1:hL2++7F47/IfpfTO53KYf1EC+F56k3ThfNEXd4zcuiE= +cloud.google.com/go/spanner v1.45.0 h1:7VdjZ8zj4sHbDw55atp5dfY6kn1j9sam9DRNpPQhqR4= cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0= cloud.google.com/go/spanner v1.55.0/go.mod h1:HXEznMUVhC+PC+HDyo9YFG2Ajj5BQDkcbqB9Z2Ffxi0= cloud.google.com/go/spanner v1.56.0/go.mod h1:DndqtUKQAt3VLuV2Le+9Y3WTnq5cNKrnLb/Piqcj+h0= cloud.google.com/go/spanner v1.57.0/go.mod h1:aXQ5QDdhPRIqVhYmnkAdwPYvj/DRN0FguclhEWw+jOo= +cloud.google.com/go/speech v1.15.0 h1:JEVoWGNnTF128kNty7T4aG4eqv2z86yiMJPT9Zjp+iw= cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= cloud.google.com/go/speech v1.21.0/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= cloud.google.com/go/speech v1.21.1/go.mod h1:E5GHZXYQlkqWQwY5xRSLHw2ci5NMQNG52FfMU1aZrIA= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.29.0 h1:6weCgzRvMg7lzuUurI4697AqIRPU1SvzHhynwpW31jI= cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cloud.google.com/go/storagetransfer v1.8.0 h1:5T+PM+3ECU3EY2y9Brv0Sf3oka8pKmsCfpQ07+91G9o= cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc= cloud.google.com/go/storagetransfer v1.10.4/go.mod h1:vef30rZKu5HSEf/x1tK3WfWrL0XVoUQN/EPDRGPzjZs= +cloud.google.com/go/talent v1.5.0 h1:nI9sVZPjMKiO2q3Uu0KhTDVov3Xrlpt63fghP9XjyEM= cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI= cloud.google.com/go/talent v1.6.6/go.mod h1:y/WQDKrhVz12WagoarpAIyKKMeKGKHWPoReZ0g8tseQ= +cloud.google.com/go/texttospeech v1.6.0 h1:H4g1ULStsbVtalbZGktyzXzw6jP26RjVGYx9RaYjBzc= cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74= cloud.google.com/go/texttospeech v1.7.5/go.mod h1:tzpCuNWPwrNJnEa4Pu5taALuZL4QRRLcb+K9pbhXT6M= +cloud.google.com/go/tpu v1.5.0 h1:/34T6CbSi+kTv5E19Q9zbU/ix8IviInZpzwz3rsFE+A= cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y= cloud.google.com/go/tpu v1.6.5/go.mod h1:P9DFOEBIBhuEcZhXi+wPoVy/cji+0ICFi4TtTkMHSSs= +cloud.google.com/go/trace v1.9.0 h1:olxC0QHC59zgJVALtgqfD9tGk0lfeCP5/AGXL3Px/no= cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY= cloud.google.com/go/trace v1.10.5/go.mod h1:9hjCV1nGBCtXbAE4YK7OqJ8pmPYSxPA0I67JwRd5s3M= +cloud.google.com/go/translate v1.7.0 h1:GvLP4oQ4uPdChBmBaUSa/SaZxCdyWELtlAaKzpHsXdA= cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= cloud.google.com/go/translate v1.10.0/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= cloud.google.com/go/translate v1.10.1/go.mod h1:adGZcQNom/3ogU65N9UXHOnnSvjPwA/jKQUMnsYXOyk= +cloud.google.com/go/video v1.15.0 h1:upIbnGI0ZgACm58HPjAeBMleW3sl5cT84AbYQ8PWOgM= cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU= cloud.google.com/go/video v1.20.4/go.mod h1:LyUVjyW+Bwj7dh3UJnUGZfyqjEto9DnrvTe1f/+QrW0= +cloud.google.com/go/videointelligence v1.10.0 h1:Uh5BdoET8XXqXX2uXIahGb+wTKbLkGH7s4GXR58RrG8= cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8= cloud.google.com/go/videointelligence v1.11.5/go.mod h1:/PkeQjpRponmOerPeJxNPuxvi12HlW7Em0lJO14FC3I= +cloud.google.com/go/vision v1.2.0 h1:/CsSTkbmO9HC8iQpxbK8ATms3OQaX3YQUeTMGCxlaK4= +cloud.google.com/go/vision/v2 v2.7.0 h1:8C8RXUJoflCI4yVdqhTy9tRyygSHmp60aP363z23HKg= cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM= cloud.google.com/go/vision/v2 v2.8.0/go.mod h1:ocqDiA2j97pvgogdyhoxiQp2ZkDCyr0HWpicywGGRhU= +cloud.google.com/go/vmmigration v1.6.0 h1:Azs5WKtfOC8pxvkyrDvt7J0/4DYBch0cVbuFfCCFt5k= cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70= cloud.google.com/go/vmmigration v1.7.5/go.mod h1:pkvO6huVnVWzkFioxSghZxIGcsstDvYiVCxQ9ZH3eYI= +cloud.google.com/go/vmwareengine v0.3.0 h1:b0NBu7S294l0gmtrT0nOJneMYgZapr5x9tVWvgDoVEM= cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4= cloud.google.com/go/vmwareengine v1.1.1/go.mod h1:nMpdsIVkUrSaX8UvmnBhzVzG7PPvNYc5BszcvIVudYs= +cloud.google.com/go/vpcaccess v1.6.0 h1:FOe6CuiQD3BhHJWt7E8QlbBcaIzVRddupwJlp7eqmn4= cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk= cloud.google.com/go/vpcaccess v1.7.5/go.mod h1:slc5ZRvvjP78c2dnL7m4l4R9GwL3wDLcpIWz6P/ziig= +cloud.google.com/go/webrisk v1.8.0 h1:IY+L2+UwxcVm2zayMAtBhZleecdIFLiC+QJMzgb0kT0= cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0= cloud.google.com/go/webrisk v1.9.5/go.mod h1:aako0Fzep1Q714cPEM5E+mtYX8/jsfegAuS8aivxy3U= +cloud.google.com/go/websecurityscanner v1.5.0 h1:AHC1xmaNMOZtNqxI9Rmm87IJEyPaRkOxeI0gpAacXGk= cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o= cloud.google.com/go/websecurityscanner v1.6.5/go.mod h1:QR+DWaxAz2pWooylsBF854/Ijvuoa3FCyS1zBa1rAVQ= +cloud.google.com/go/workflows v1.10.0 h1:FfGp9w0cYnaKZJhUOMqCOJCYT/WlvYBfTQhFWV3sRKI= cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= cloud.google.com/go/workflows v1.12.4/go.mod h1:yQ7HUqOkdJK4duVtMeBCAOPiN1ZF1E9pAMX51vpwB/w= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= +gioui.org v0.0.0-20210308172011-57750fc8a0a6 h1:K72hopUosKG3ntOPNG4OzzbuhxGuVf06fa2la1/H/Ho= +git.sr.ht/~sbinet/gg v0.3.1 h1:LNhjNn8DerC8f9DHLz6lS0YYul/b602DUxDgGkd/Aik= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= -github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9 h1:7kQgkwGRoLzC9K0oyXdJo7nve/bynv/KwUsxbiTlzAM= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19 h1:iXUgAaqDcIUGbRoy2TdeofRG/j1zpGRSEmNK05T+bi8= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= +github.com/alecthomas/kingpin/v2 v2.4.0 h1:f48lwail6p8zpO1bC4TxtqACaGqHYA22qkHjHpqDjYY= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= +github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18= github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI= +github.com/apache/arrow/go/v11 v11.0.0 h1:hqauxvFQxww+0mEU/2XHG6LT7eZternCZq+A5Yly2uM= +github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= 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/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89 h1:aPflPkRFkVwbW6dmcVqfgwp1i+UWGFH6VgR1Jim5Ygc= github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/chromedp v0.9.2 h1:dKtNz4kApb06KuSXoTQIyUC2TrA0fhGDwNZf3bcgfKw= github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= +github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic= github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= +github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= +github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/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/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= +github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= +github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= +github.com/envoyproxy/go-control-plane v0.12.0 h1:4X+VP1GHd1Mhj6IB5mMeGbLCleqxjletLK6K0rbxyZI= github.com/envoyproxy/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= +github.com/fxamacker/cbor/v2 v2.6.0 h1:sU6J2usfADwWlYDAFhZBQ6TnLFBHxgesMrQfQgk1tWA= +github.com/fxamacker/cbor/v2 v2.6.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/getsentry/sentry-go v0.21.0 h1:c9l5F1nPF30JIppulk4veau90PK6Smu3abgVtVQWon4= github.com/getsentry/sentry-go v0.21.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-fonts/dejavu v0.1.0 h1:JSajPXURYqpr+Cu8U9bt8K+XcACIHWqWrvWCKyeFmVQ= +github.com/go-fonts/latin-modern v0.2.0 h1:5/Tv1Ek/QCr20C6ZOz15vw3g7GELYL98KWr8Hgo+3vk= +github.com/go-fonts/liberation v0.2.0 h1:jAkAWJP4S+OsrPLZM4/eC9iW7CtHy+HBXrEwZXWo5VM= +github.com/go-fonts/stix v0.1.0 h1:UlZlgrvvmT/58o573ot7NFw0vZasZ5I6bcIft/oMdgg= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= +github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 h1:6zl3BbBhdnMkpSj2YY30qV3gDcVBGtFgVsV3+/i+mKQ= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.22.5/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= github.com/go-openapi/swag v0.22.6/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmridBTsDy8A0= +github.com/go-pdf/fpdf v0.6.0 h1:MlgtGIfsdMEEQJr2le6b/HNr1ZlQwxyWr77r2aj2U/8= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= +github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.2.1 h1:F2aeBZrm2NDsc7vbovKrWSogd4wvfAxg0FQ89/iqOTk= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -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/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/cel-go v0.17.7/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/cel-go v0.17.8 h1:j9m730pMZt1Fc4oKhCLUHfjj6527LuhYcYw0Rl8gqto= +github.com/google/cel-go v0.17.8/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY= +github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= 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/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= 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/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465 h1:KwWnWVWCNtNq/ewIX7HIKnELmEx2nDP42yskD/pi7QE= +github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= +github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= +github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= +github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M= github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k= +github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80 h1:6Yzfa6GP0rIo/kULo2bwGEkFvCePZ3qHDDTC3/J9Swo= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/lyft/protoc-gen-star v0.6.1 h1:erE0rdztuaDq3bpGifD95wfoPrSZc95nGA6tbiNYh6M= +github.com/lyft/protoc-gen-star/v2 v2.0.1 h1:keaAo8hRuAT0O3DfJ/wM3rufbAjGeJ1lAtWZHDjKGB0= github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/mattn/go-sqlite3 v1.14.14 h1:qZgc/Rwetq+MtyE18WhzjokPD93dNqLGNT3QJuLvBGw= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= +github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/mrunalp/fileutils v0.5.1 h1:F+S7ZlNKnrwHfSwdlgNSkKo67ReVf8o9fel6C3dkm/Q= github.com/mrunalp/fileutils v0.5.1/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/ncabatoff/fakescraper v0.0.0-20201102132415-4b37ba603d65 h1:Og+dVkxEQNvRGU2vUKeOwYT2UJ+pEaDMWB6tIQnIh6A= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= +github.com/onsi/gomega v1.33.0/go.mod h1:+925n5YtiFsLzzafLUHzVMBpvvRAzrydIBiSIxjX3wY= +github.com/opencontainers/selinux v1.10.0 h1:rAiKF8hTcgLI3w0DHm6i0ylVVcOrlgR1kK99DRLDhyU= github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde h1:x0TT0RDC7UhAVbbWWBzr41ElhJx5tXPWkIHA2HWPRuw= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/phpdave11/gofpdf v1.4.2 h1:KPKiIbfwbvC/wOncwhrpRdXVj2CZTCFlw4wnoyjtHfQ= +github.com/phpdave11/gofpdi v1.0.13 h1:o61duiW8M9sMlkVXWlvP92sZJtGKENvW3VExs6dZukQ= +github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= +github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245 h1:K1Xf3bKttbF+koVGaX5xngRIZ5bVjbmPnaxE/dR08uY= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= +github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= -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.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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df h1:OviZH7qLw/7ZovXvuNyL3XQl8UFofeikI1NW1Gypu7k= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xhit/go-str2duration v1.2.0 h1:BcV5u025cITWxEQKGWr1URRzrcXtu7uk8+luz3Yuhwc= +github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k= go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI= +go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0= go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U= +go.etcd.io/etcd/client/v2 v2.305.10 h1:MrmRktzv/XF8CvtQt+P6wLUlURaNpSDJHFZhe//2QE4= go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA= +go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao= go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc= +go.etcd.io/etcd/pkg/v3 v3.5.10 h1:WPR8K0e9kWl1gAhB5A7gEa5ZBTNkT9NdNWrR8Qpo1CM= go.etcd.io/etcd/pkg/v3 v3.5.10/go.mod h1:TKTuCKKcF1zxmfKWDkfz5qqYaE3JncKKZPFf8c1nFUs= +go.etcd.io/etcd/raft/v3 v3.5.10 h1:cgNAYe7xrsrn/5kXMSaH8kM/Ky8mAdMqGOxyYwpP0LA= go.etcd.io/etcd/raft/v3 v3.5.10/go.mod h1:odD6kr8XQXTy9oQnyMPBOr0TVe+gT0neQhElQ6jbGRc= +go.etcd.io/etcd/server/v3 v3.5.10 h1:4NOGyOwD5sUZ22PiWYKmfxqoeh72z6EhYjNosKGLmZg= go.etcd.io/etcd/server/v3 v3.5.10/go.mod h1:gBplPHfs6YI0L+RpGkTQO7buDbHv5HJGG/Bst0/zIPo= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 h1:ZOLJc06r4CB42laIXg/7udr0pbZyuAihN10A/XuiQRY= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0/go.mod h1:5z+/ZWJQKXa9YT34fQNx5K8Hd1EoIhvtUygUQPqEOgQ= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 h1:KfYpVmrjI7JuToy5k8XV3nkapjWx48k4E4JOtVstzQI= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 h1:3d+S281UTjM+AbF31XSOYn1qXn3BgIdWl8HNEpx08Jk= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/dl v0.0.0-20190829154251-82a15e2f2ead h1:jeP6FgaSLNTMP+Yri3qjlACywQLye+huGLmNGhBzm6k= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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/image v0.0.0-20220302094943-723b81ca9867 h1:TcHcE0vrmgzNH1v3ppjcMGbhG5+9fMuvOmUYwNEF4q4= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -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/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= -golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/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.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240208230135-b75ee8823808/go.mod h1:KG1lNk5ZFNssSZLrpVb4sMXKMpGwGXOxSG3rnu2gZQQ= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -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/telemetry v0.0.0-20240228155512-f48c80bd79b2 h1:IRJeR9r1pYWsHKTRe/IInb7lYvbBVIqOgsX/u0mbOWY= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 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.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= +gonum.org/v1/plot v0.10.1 h1:dnifSs43YJuNMDzB7v8wV64O4ABBHReuAVAoBxqBqS4= +google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= @@ -752,7 +949,6 @@ google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJ google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -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-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= @@ -765,11 +961,11 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac/go. google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:PVreiBMirk8ypES6aw9d4p6iiBNSIfZEBqr3UGoAi2E= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc h1:g3hIDl0jRNd9PPTs2uBzYuaD5mQuwOkZY0vSc0LR32o= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231212172506-995d672761c0/go.mod h1:guYXGPwC6jwxgWKW5Y405fKWOFNwlvUlUnzyp9i0uqo= -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-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= @@ -781,12 +977,6 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014/go.mod h1:SaPjaZGWb0lPqs6Ittu0spdfrOArqji4ZdeP5IC/9N4= google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -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.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= @@ -794,19 +984,49 @@ google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= -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= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= +gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= gopkg.in/evanphx/json-patch.v5 v5.6.0 h1:BMT6KIwBD9CaU91PJCZIe46bDmBWa9ynTQgJIOpfQBk= gopkg.in/evanphx/json-patch.v5 v5.6.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= +gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +honnef.co/go/tools v0.1.3 h1:qTakTkI6ni6LFD5sBwwsdSO+AQqbSIxOauHTTQKZ/7o= +k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks= k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kms v0.29.3/go.mod h1:TBGbJKpRUMk59neTMDMddjIDL+D4HuFUbpuiuzmOPg0= +k8s.io/kms v0.30.0 h1:ZlnD/ei5lpvUlPw6eLfVvH7d8i9qZ6HwUQgydNVks8g= +k8s.io/kms v0.30.0/go.mod h1:GrMurD0qk3G4yNgGcsCEmepqf9KyyIrTXYR2lyUOJC4= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= +modernc.org/cc/v3 v3.36.3 h1:uISP3F66UlixxWEcKuIWERa4TwrZENHSL8tWxZz8bHg= +modernc.org/ccgo/v3 v3.16.9 h1:AXquSwg7GuMk11pIdw7fmO1Y/ybgazVkMhsZWCV0mHM= +modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= +modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= +modernc.org/libc v1.17.1 h1:Q8/Cpi36V/QBfuQaFVeisEBs3WqoGAJprZzmf7TfEYI= +modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= +modernc.org/memory v1.2.1 h1:dkRh86wgmq/bJu2cAS2oqBCz/KsMZU7TUM4CibQ7eBs= +modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= +modernc.org/sqlite v1.18.1 h1:ko32eKt3jf7eqIkCgPAeHMBXw3riNSLhl2f3loEF7o8= +modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= +modernc.org/tcl v1.13.1 h1:npxzTwFTZYM8ghWicVIX1cRWzj7Nd8i6AqqX2p+IYao= +modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= +modernc.org/z v1.5.1 h1:RTNHdsrOpeoSeOF4FbzTo8gBYByaJ5xT7NgZ9ZqRiJM= +rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= +rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= +rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= +rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0/go.mod h1:VHVDI/KrK4fjnV61bE2g3sA7tiETLn8sooImelsCx3Y= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 h1:/U5vjBbQn3RChhv7P11uhYvCSm5G2GaIi5AIGBS6r4c= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0/go.mod h1:z7+wmGM2dfIiLRfrC6jb5kV2Mq/sK1ZP303cxzkV5Y4= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= From f6bdba29ad8fb6459c053a9d8999d4a3a43bb951 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 13:47:52 -0700 Subject: [PATCH 120/184] Bump golangci/golangci-lint-action from 4.0.0 to 5.0.0 (#11328) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/3cfe3a4abbb849e10058ce4af15d205b6da42804...82d40c283aeb1f2b6595839195e95c2d6a49081b) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/golangci-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 2b709ccfd..33a91b081 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -28,6 +28,6 @@ jobs: check-latest: true - name: golangci-lint - uses: golangci/golangci-lint-action@3cfe3a4abbb849e10058ce4af15d205b6da42804 # v4.0.0 + uses: golangci/golangci-lint-action@82d40c283aeb1f2b6595839195e95c2d6a49081b # v5.0.0 with: version: v1.56 From c5a54a150e2300deadfcde7ce26c80d8f2fb125b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 May 2024 13:50:16 -0700 Subject: [PATCH 121/184] Bump sigs.k8s.io/controller-runtime from 0.17.3 to 0.18.1 (#11345) Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.17.3 to 0.18.1. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.17.3...v0.18.1) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4b40b93bc..cec60ef9c 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( k8s.io/component-base v0.30.0 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 - sigs.k8s.io/controller-runtime v0.17.3 + sigs.k8s.io/controller-runtime v0.18.1 sigs.k8s.io/mdtoc v1.1.0 ) diff --git a/go.sum b/go.sum index 13e4ebd2d..1ad706885 100644 --- a/go.sum +++ b/go.sum @@ -1974,8 +1974,8 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.17.3 h1:65QmN7r3FWgTxDMz9fvGnO1kbf2nu+acg9p2R9oYYYk= -sigs.k8s.io/controller-runtime v0.17.3/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= +sigs.k8s.io/controller-runtime v0.18.1 h1:RpWbigmuiylbxOCLy0tGnq1cU1qWPwNIQzoJk+QeJx4= +sigs.k8s.io/controller-runtime v0.18.1/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g= From cfe0daace1a1625f692caec3077c488d224e8cc4 Mon Sep 17 00:00:00 2001 From: Ricardo Katz Date: Sun, 5 May 2024 23:06:28 -0300 Subject: [PATCH 122/184] Bump Kubernetes version on images (#11346) --- build/dev-env.sh | 2 +- images/test-runner/Makefile | 16 ++++++++-------- images/test-runner/TAG | 2 +- test/e2e/run-chart-test.sh | 2 +- test/e2e/run-kind-e2e.sh | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/build/dev-env.sh b/build/dev-env.sh index 93ed3de40..699c98030 100755 --- a/build/dev-env.sh +++ b/build/dev-env.sh @@ -64,7 +64,7 @@ echo "[dev-env] building image" make build image docker tag "${REGISTRY}/controller:${TAG}" "${DEV_IMAGE}" -export K8S_VERSION=${K8S_VERSION:-v1.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f} +export K8S_VERSION=${K8S_VERSION:-v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245} KIND_CLUSTER_NAME="ingress-nginx-dev" diff --git a/images/test-runner/Makefile b/images/test-runner/Makefile index ac0757ab2..d82427140 100644 --- a/images/test-runner/Makefile +++ b/images/test-runner/Makefile @@ -49,8 +49,8 @@ image: --push \ --build-arg BASE_IMAGE=${NGINX_BASE_IMAGE} \ --build-arg GOLANG_VERSION=${GO_VERSION} \ - --build-arg ETCD_VERSION=3.4.3-0 \ - --build-arg K8S_RELEASE=v1.26.0 \ + --build-arg ETCD_VERSION=3.5.13-0 \ + --build-arg K8S_RELEASE=v1.29.2 \ --build-arg RESTY_CLI_VERSION=0.27 \ --build-arg RESTY_CLI_SHA=e5f4f3128af49ba5c4d039d0554e5ae91bbe05866f60eccfa96d3653274bff90 \ --build-arg LUAROCKS_VERSION=3.8.0 \ @@ -58,8 +58,8 @@ image: --build-arg CHART_TESTING_VERSION=3.8.0 \ --build-arg YAML_LINT_VERSION=1.33.0 \ --build-arg YAMALE_VERSION=4.0.4 \ - --build-arg HELM_VERSION=3.11.2 \ - --build-arg GINKGO_VERSION=2.17.1 \ + --build-arg HELM_VERSION=3.14.4 \ + --build-arg GINKGO_VERSION=2.17.2 \ --build-arg GOLINT_VERSION=latest \ -t ${IMAGE}:${TAG} rootfs @@ -70,8 +70,8 @@ build: ensure-buildx --pull \ --build-arg BASE_IMAGE=${NGINX_BASE_IMAGE} \ --build-arg GOLANG_VERSION=${GO_VERSION} \ - --build-arg ETCD_VERSION=3.4.3-0 \ - --build-arg K8S_RELEASE=v1.26.0 \ + --build-arg ETCD_VERSION=3.5.13-0 \ + --build-arg K8S_RELEASE=v1.29.2 \ --build-arg RESTY_CLI_VERSION=0.27 \ --build-arg RESTY_CLI_SHA=e5f4f3128af49ba5c4d039d0554e5ae91bbe05866f60eccfa96d3653274bff90 \ --build-arg LUAROCKS_VERSION=3.8.0 \ @@ -79,8 +79,8 @@ build: ensure-buildx --build-arg CHART_TESTING_VERSION=3.8.0 \ --build-arg YAML_LINT_VERSION=1.33.0 \ --build-arg YAMALE_VERSION=4.0.4 \ - --build-arg HELM_VERSION=3.11.2 \ - --build-arg GINKGO_VERSION=2.17.1 \ + --build-arg HELM_VERSION=3.14.4 \ + --build-arg GINKGO_VERSION=2.17.2 \ --build-arg GOLINT_VERSION=latest \ -t ${IMAGE}:${TAG} rootfs diff --git a/images/test-runner/TAG b/images/test-runner/TAG index 90ab6e946..8ce995b80 100644 --- a/images/test-runner/TAG +++ b/images/test-runner/TAG @@ -1 +1 @@ -v0.0.2 \ No newline at end of file +v0.0.3 \ No newline at end of file diff --git a/test/e2e/run-chart-test.sh b/test/e2e/run-chart-test.sh index a453bd1b4..dadb5195d 100755 --- a/test/e2e/run-chart-test.sh +++ b/test/e2e/run-chart-test.sh @@ -62,7 +62,7 @@ export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/kind-config-$KIND_CLUSTER_NAME}" if [ "${SKIP_CLUSTER_CREATION:-false}" = "false" ]; then echo "[dev-env] creating Kubernetes cluster with kind" - export K8S_VERSION=${K8S_VERSION:-v1.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f} + export K8S_VERSION=${K8S_VERSION:-v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245} kind create cluster \ --verbosity=${KIND_LOG_LEVEL} \ diff --git a/test/e2e/run-kind-e2e.sh b/test/e2e/run-kind-e2e.sh index 891e5dbae..128964393 100755 --- a/test/e2e/run-kind-e2e.sh +++ b/test/e2e/run-kind-e2e.sh @@ -64,7 +64,7 @@ echo "Running e2e with nginx base image ${NGINX_BASE_IMAGE}" if [ "${SKIP_CLUSTER_CREATION}" = "false" ]; then echo "[dev-env] creating Kubernetes cluster with kind" - export K8S_VERSION=${K8S_VERSION:-v1.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f} + export K8S_VERSION=${K8S_VERSION:-v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245} # delete the cluster if it exists if kind get clusters | grep "${KIND_CLUSTER_NAME}"; then From 689b993a3ce9d92143ff891bf38b9da72a499c13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 05:41:20 -0700 Subject: [PATCH 123/184] Bump the all group with 3 updates (#11348) Bumps the all group with 3 updates: [actions/setup-go](https://github.com/actions/setup-go), [actions/dependency-review-action](https://github.com/actions/dependency-review-action) and [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action). Updates `actions/setup-go` from 5.0.0 to 5.0.1 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/0c52d547c9bc32b1aa3301fd7a9cb496313a4491...cdcb36043654635271a94b9a6d1392de5bb323a7) Updates `actions/dependency-review-action` from 4.2.5 to 4.3.2 - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/5bbc3ba658137598168acb2ab73b21c432dd411b...0c155c5e8556a497adf53f2c18edabf945ed8e70) Updates `golangci/golangci-lint-action` from 5.0.0 to 5.3.0 - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/82d40c283aeb1f2b6595839195e95c2d6a49081b...38e1018663fa5173f3968ea0777460d3de38f256) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 6 +++--- .github/workflows/depreview.yaml | 2 +- .github/workflows/golangci-lint.yml | 4 ++-- .github/workflows/images.yaml | 2 +- .github/workflows/plugin.yaml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index afc2f7d38..cafb5ad95 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -84,7 +84,7 @@ jobs: - name: Set up Go id: go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: go-version: ${{ env.GOLANG_VERSION }} check-latest: true @@ -114,7 +114,7 @@ jobs: - name: Set up Go id: go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: go-version: ${{ steps.golangversion.outputs.version }} check-latest: true @@ -242,7 +242,7 @@ jobs: uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: Setup Go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: go-version: ${{ needs.build.outputs.golangversion }} check-latest: true diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index c9881c2a3..ffe249546 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -11,4 +11,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - name: 'Dependency Review' - uses: actions/dependency-review-action@5bbc3ba658137598168acb2ab73b21c432dd411b # v4.2.5 + uses: actions/dependency-review-action@0c155c5e8556a497adf53f2c18edabf945ed8e70 # v4.3.2 diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 33a91b081..ff04ab3da 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -22,12 +22,12 @@ jobs: - name: Set up Go id: go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: go-version: ${{ env.GOLANG_VERSION }} check-latest: true - name: golangci-lint - uses: golangci/golangci-lint-action@82d40c283aeb1f2b6595839195e95c2d6a49081b # v5.0.0 + uses: golangci/golangci-lint-action@38e1018663fa5173f3968ea0777460d3de38f256 # v5.3.0 with: version: v1.56 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index a7a2adce0..4123a5efa 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -151,7 +151,7 @@ jobs: - name: Set up Go id: go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: go-version: ${{ env.GOLANG_VERSION }} check-latest: true diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index 1b8c8f19b..56992f34d 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -20,7 +20,7 @@ jobs: run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV - name: Set up Go - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 with: go-version: ${{ env.GOLANG_VERSION }} check-latest: true From 4e11074323c311cf16a479ffe22be5beb4c7fec9 Mon Sep 17 00:00:00 2001 From: Rafael da Fonseca Date: Tue, 14 May 2024 22:45:25 +0100 Subject: [PATCH 124/184] Allow configuring nginx worker reload behaviour, to prevent multiple concurrent worker reloads which can lead to high resource usage and OOMKill (#10884) * feat: allow configuring nginx worker reload behaviour, to prevent multiple concurrent worker reloads Signed-off-by: Rafael da Fonseca * appease linter, remove unnecessary log line Signed-off-by: Rafael da Fonseca * Flip to using a positive behaviour flag instead of negative Signed-off-by: Rafael da Fonseca * Update helm-docs Signed-off-by: Rafael da Fonseca * Avoid calling GetBackendConfiguration() twice, use clearer name for helm chart option Signed-off-by: Rafael da Fonseca * Fix helm-docs ordering Signed-off-by: Rafael da Fonseca --------- Signed-off-by: Rafael da Fonseca --- charts/ingress-nginx/README.md | 1 + .../templates/controller-configmap.yaml | 1 + charts/ingress-nginx/values.yaml | 2 + .../nginx-configuration/configmap.md | 1 + internal/ingress/controller/config/config.go | 8 ++++ internal/ingress/controller/nginx.go | 47 +++++++++++++++++-- .../ingress/controller/template/configmap.go | 12 +++++ 7 files changed, 69 insertions(+), 3 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 1c166e05e..8ea6bae85 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -301,6 +301,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.enableAnnotationValidations | bool | `false` | | | controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. # ref: https://github.com/microsoft/mimalloc # | | controller.enableTopologyAwareRouting | bool | `false` | This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" Defaults to false | +| controller.enableWorkerSerialReloads | bool | `false` | This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued | | controller.existingPsp | string | `""` | Use an existing PSP instead of creating one | | controller.extraArgs | object | `{}` | Additional command line arguments to pass to Ingress-Nginx Controller E.g. to specify the default SSL certificate you can use | | controller.extraContainers | list | `[]` | Additional containers to be added to the controller pod. See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example. | diff --git a/charts/ingress-nginx/templates/controller-configmap.yaml b/charts/ingress-nginx/templates/controller-configmap.yaml index 22080d115..50ae824a8 100644 --- a/charts/ingress-nginx/templates/controller-configmap.yaml +++ b/charts/ingress-nginx/templates/controller-configmap.yaml @@ -14,6 +14,7 @@ metadata: namespace: {{ include "ingress-nginx.namespace" . }} data: allow-snippet-annotations: "{{ .Values.controller.allowSnippetAnnotations }}" + enable-serial-reloads: "{{ .Values.controller.enableWorkerSerialReloads }}" {{- if .Values.controller.addHeaders }} add-headers: {{ include "ingress-nginx.namespace" . }}/{{ include "ingress-nginx.fullname" . }}-custom-add-headers {{- end }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 85990614b..2a361614c 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -93,6 +93,8 @@ controller: # when users add those annotations. # Global snippets in ConfigMap are still respected allowSnippetAnnotations: false + # -- This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued + enableWorkerSerialReloads: 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 diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 52c54c4fe..13f82a17d 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -114,6 +114,7 @@ The following table shows a configuration option's name, type, and the default v |[worker-processes](#worker-processes)| string | `` || |[worker-cpu-affinity](#worker-cpu-affinity)| string | "" || |[worker-shutdown-timeout](#worker-shutdown-timeout)| string | "240s" || +|[enable-serial-reloads](#enable-serial-reloads)|bool|"false"|| |[load-balance](#load-balance)| string | "round_robin" || |[variables-hash-bucket-size](#variables-hash-bucket-size)| int | 128 || |[variables-hash-max-size](#variables-hash-max-size)| int | 2048 || diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 47f2120f1..6349d6006 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -477,6 +477,13 @@ type Configuration struct { // http://nginx.org/en/docs/ngx_core_module.html#worker_processes WorkerProcesses string `json:"worker-processes,omitempty"` + // Defines whether multiple concurrent reloads of worker processes should occur. + // Set this to false to prevent more than n x 2 workers to exist at any time, to avoid potential OOM situations and high CPU load + // With this setting on false, configuration changes in the queue will be re-queued with an exponential backoff, until the number of worker process is the expected value. + // By default new worker processes are spawned every time there's a change that cannot be applied dynamically with no upper limit to the number of running workers + // http://nginx.org/en/docs/ngx_core_module.html#worker_processes + WorkerSerialReloads bool `json:"enable-serial-reloads,omitempty"` + // Defines a timeout for a graceful shutdown of worker processes // http://nginx.org/en/docs/ngx_core_module.html#worker_shutdown_timeout WorkerShutdownTimeout string `json:"worker-shutdown-timeout,omitempty"` @@ -851,6 +858,7 @@ func NewDefault() Configuration { UseGeoIP2: false, GeoIP2AutoReloadMinutes: 0, WorkerProcesses: strconv.Itoa(runtime.NumCPU()), + WorkerSerialReloads: false, WorkerShutdownTimeout: "240s", VariablesHashBucketSize: 256, VariablesHashMaxSize: 2048, diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index b81734154..f74b3245e 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -35,6 +35,7 @@ import ( "syscall" "text/template" "time" + "unicode" proxyproto "github.com/armon/go-proxyproto" "github.com/eapache/channels" @@ -87,9 +88,10 @@ func NewNGINXController(config *Configuration, mc metric.Collector) *NGINXContro n := &NGINXController{ isIPV6Enabled: ing_net.IsIPv6Enabled(), - resolver: h, - cfg: config, - syncRateLimiter: flowcontrol.NewTokenBucketRateLimiter(config.SyncRateLimit, 1), + resolver: h, + cfg: config, + syncRateLimiter: flowcontrol.NewTokenBucketRateLimiter(config.SyncRateLimit, 1), + workersReloading: false, recorder: eventBroadcaster.NewRecorder(scheme.Scheme, apiv1.EventSource{ Component: "nginx-ingress-controller", @@ -229,6 +231,8 @@ type NGINXController struct { syncRateLimiter flowcontrol.RateLimiter + workersReloading bool + // stopLock is used to enforce that only a single call to Stop send at // a given time. We allow stopping through an HTTP endpoint and // allowing concurrent stoppers leads to stack traces. @@ -676,6 +680,11 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { cfg := n.store.GetBackendConfiguration() cfg.Resolver = n.resolver + workerSerialReloads := cfg.WorkerSerialReloads + if workerSerialReloads && n.workersReloading { + return errors.New("worker reload already in progress, requeuing reload") + } + content, err := n.generateTemplate(cfg, ingressCfg) if err != nil { return err @@ -738,9 +747,41 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { return fmt.Errorf("%v\n%v", err, string(o)) } + // Reload status checking runs in a separate goroutine to avoid blocking the sync queue + if workerSerialReloads { + go n.awaitWorkersReload() + } + return nil } +// awaitWorkersReload checks if the number of workers has returned to the expected count +func (n *NGINXController) awaitWorkersReload() { + n.workersReloading = true + defer func() { n.workersReloading = false }() + + expectedWorkers := n.store.GetBackendConfiguration().WorkerProcesses + var numWorkers string + klog.V(3).Infof("waiting for worker count to be equal to %s", expectedWorkers) + for numWorkers != expectedWorkers { + time.Sleep(time.Second) + o, err := exec.Command("/bin/sh", "-c", "pgrep worker | wc -l").Output() + if err != nil { + klog.ErrorS(err, numWorkers) + return + } + // cleanup any non-printable chars from shell output + numWorkers = strings.Map(func(r rune) rune { + if unicode.IsPrint(r) { + return r + } + return -1 + }, string(o)) + + klog.V(3).Infof("Currently running nginx worker processes: %s, expected %s", numWorkers, expectedWorkers) + } +} + // nginxHashBucketSize computes the correct NGINX hash_bucket_size for a hash // with the given longest key. func nginxHashBucketSize(longestString int) int { diff --git a/internal/ingress/controller/template/configmap.go b/internal/ingress/controller/template/configmap.go index f78dbad03..1a7f15f1c 100644 --- a/internal/ingress/controller/template/configmap.go +++ b/internal/ingress/controller/template/configmap.go @@ -69,6 +69,7 @@ const ( luaSharedDictsKey = "lua-shared-dicts" plugins = "plugins" debugConnections = "debug-connections" + workerSerialReloads = "enable-serial-reloads" ) var ( @@ -404,6 +405,17 @@ func ReadConfig(src map[string]string) config.Configuration { delete(conf, workerProcesses) } + if val, ok := conf[workerSerialReloads]; ok { + boolVal, err := strconv.ParseBool(val) + if err != nil { + to.WorkerSerialReloads = false + klog.Warningf("failed to parse enable-serial-reloads setting, valid values are true or false, found %s", val) + } else { + to.WorkerSerialReloads = boolVal + } + delete(conf, workerSerialReloads) + } + if val, ok := conf[plugins]; ok { to.Plugins = splitAndTrimSpace(val, ",") delete(conf, plugins) From 20d9a609b57934fe2d939ec4b34e2b8634a6d73f Mon Sep 17 00:00:00 2001 From: Lucas Andrade Flores Date: Wed, 15 May 2024 22:23:21 +0200 Subject: [PATCH 125/184] Docs: Remove opentracing and zipkin from docs (#11361) --- .../nginx-configuration/annotations.md | 20 -- .../nginx-configuration/configmap.md | 42 --- .../third-party-addons/opentracing.md | 263 ------------------ 3 files changed, 325 deletions(-) delete mode 100644 docs/user-guide/third-party-addons/opentracing.md diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index 2230f80f7..cf4902c1e 100755 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -124,8 +124,6 @@ You can add these Kubernetes annotations to specific Ingress objects to customiz |[nginx.ingress.kubernetes.io/ssl-prefer-server-ciphers](#ssl-ciphers)|"true" or "false"| |[nginx.ingress.kubernetes.io/connection-proxy-header](#connection-proxy-header)|string| |[nginx.ingress.kubernetes.io/enable-access-log](#enable-access-log)|"true" or "false"| -|[nginx.ingress.kubernetes.io/enable-opentracing](#enable-opentracing)|"true" or "false"| -|[nginx.ingress.kubernetes.io/opentracing-trust-incoming-span](#opentracing-trust-incoming-span)|"true" or "false"| |[nginx.ingress.kubernetes.io/enable-opentelemetry](#enable-opentelemetry)|"true" or "false"| |[nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span](#opentelemetry-trust-incoming-spans)|"true" or "false"| |[nginx.ingress.kubernetes.io/use-regex](#use-regex)|bool| @@ -830,24 +828,6 @@ Note that rewrite logs are sent to the error_log file at the notice level. To en nginx.ingress.kubernetes.io/enable-rewrite-log: "true" ``` -### Enable Opentracing - -Opentracing can be enabled or disabled globally through the ConfigMap but this will sometimes need to be overridden -to enable it or disable it for a specific ingress (e.g. to turn off tracing of external health check endpoints) - -```yaml -nginx.ingress.kubernetes.io/enable-opentracing: "true" -``` - -### Opentracing Trust Incoming Span - -The option to trust incoming trace spans can be enabled or disabled globally through the ConfigMap but this will -sometimes need to be overridden to enable it or disable it for a specific ingress (e.g. only enable on a private endpoint) - -```yaml -nginx.ingress.kubernetes.io/opentracing-trust-incoming-span: "true" -``` - ### Enable Opentelemetry Opentelemetry can be enabled or disabled globally through the ConfigMap but this will sometimes need to be overridden diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 13f82a17d..3127f73a4 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -135,13 +135,6 @@ The following table shows a configuration option's name, type, and the default v |[compute-full-forwarded-for](#compute-full-forwarded-for)| bool | "false" || |[proxy-add-original-uri-header](#proxy-add-original-uri-header)| bool | "false" || |[generate-request-id](#generate-request-id)| bool | "true" || -|[enable-opentracing](#enable-opentracing)| bool | "false" || -|[opentracing-operation-name](#opentracing-operation-name)| string | "" || -|[opentracing-location-operation-name](#opentracing-location-operation-name)| string | "" || -|[zipkin-collector-host](#zipkin-collector-host)| string | "" || -|[zipkin-collector-port](#zipkin-collector-port)| int | 9411 || -|[zipkin-service-name](#zipkin-service-name)| string | "nginx" || -|[zipkin-sample-rate](#zipkin-sample-rate)| float | 1.0 || |[jaeger-collector-host](#jaeger-collector-host)| string | "" || |[jaeger-collector-port](#jaeger-collector-port)| int | 6831 || |[jaeger-endpoint](#jaeger-endpoint)| string | "" || @@ -945,41 +938,6 @@ Adds an X-Original-Uri header with the original request URI to the backend reque Ensures that X-Request-ID is defaulted to a random value, if no X-Request-ID is present in the request -## enable-opentracing - -Enables the nginx Opentracing extension. _**default:**_ is disabled - -_References:_ -[https://github.com/opentracing-contrib/nginx-opentracing](https://github.com/opentracing-contrib/nginx-opentracing) - -## opentracing-operation-name - -Specifies a custom name for the server span. _**default:**_ is empty - -For example, set to "HTTP $request_method $uri". - -## opentracing-location-operation-name - -Specifies a custom name for the location span. _**default:**_ is empty - -For example, set to "HTTP $request_method $uri". - -## zipkin-collector-host - -Specifies the host to use when uploading traces. It must be a valid URL. - -## zipkin-collector-port - -Specifies the port to use when uploading traces. _**default:**_ 9411 - -## zipkin-service-name - -Specifies the service name to use for any traces created. _**default:**_ nginx - -## zipkin-sample-rate - -Specifies sample rate for any traces created. _**default:**_ 1.0 - ## jaeger-collector-host Specifies the host to use when uploading traces. It must be a valid URL. diff --git a/docs/user-guide/third-party-addons/opentracing.md b/docs/user-guide/third-party-addons/opentracing.md deleted file mode 100644 index f5ec59faf..000000000 --- a/docs/user-guide/third-party-addons/opentracing.md +++ /dev/null @@ -1,263 +0,0 @@ -# OpenTracing - -Enables requests served by NGINX for distributed tracing via The OpenTracing Project. - -Using the third party module [opentracing-contrib/nginx-opentracing](https://github.com/opentracing-contrib/nginx-opentracing) the Ingress-Nginx Controller can configure NGINX to enable [OpenTracing](http://opentracing.io) instrumentation. -By default this feature is disabled. - -## Usage - -To enable the instrumentation we must enable OpenTracing in the configuration ConfigMap: -``` -data: - enable-opentracing: "true" -``` - -To enable or disable instrumentation for a single Ingress, use -the `enable-opentracing` annotation: -``` -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/enable-opentracing: "true" -``` - -We must also set the host to use when uploading traces: - -``` -zipkin-collector-host: zipkin.default.svc.cluster.local -jaeger-collector-host: jaeger-agent.default.svc.cluster.local -datadog-collector-host: datadog-agent.default.svc.cluster.local -``` -NOTE: While the option is called `jaeger-collector-host`, you will need to point this to a `jaeger-agent`, and not the `jaeger-collector` component. -Alternatively, you can set `jaeger-endpoint` and specify the full endpoint for uploading traces. This will use TCP and should be used for a collector rather than an agent. - -Next you will need to deploy a distributed tracing system which uses OpenTracing. -[Zipkin](https://github.com/openzipkin/zipkin) and -[Jaeger](https://github.com/jaegertracing/jaeger) and -[Datadog](https://github.com/DataDog/dd-opentracing-cpp) -have been tested. - -Other optional configuration options: -``` -# specifies the name to use for the server span -opentracing-operation-name - -# specifies specifies the name to use for the location span -opentracing-location-operation-name - -# sets whether or not to trust incoming tracing spans -opentracing-trust-incoming-span - -# specifies the port to use when uploading traces, Default: 9411 -zipkin-collector-port - -# specifies the service name to use for any traces created, Default: nginx -zipkin-service-name - -# specifies sample rate for any traces created, Default: 1.0 -zipkin-sample-rate - -# specifies the port to use when uploading traces, Default: 6831 -jaeger-collector-port - -# specifies the endpoint to use when uploading traces to a collector instead of an agent -jaeger-endpoint - -# specifies the service name to use for any traces created, Default: nginx -jaeger-service-name - -# specifies the traceparent/tracestate propagation format -jaeger-propagation-format - -# specifies the sampler to be used when sampling traces. -# The available samplers are: const, probabilistic, ratelimiting, remote, Default: const -jaeger-sampler-type - -# specifies the argument to be passed to the sampler constructor, Default: 1 -jaeger-sampler-param - -# Specifies the custom remote sampler host to be passed to the sampler constructor. Must be a valid URL. -# Default: http://127.0.0.1 -jaeger-sampler-host - -# Specifies the custom remote sampler port to be passed to the sampler constructor. Must be a number. Default: 5778 -jaeger-sampler-port - -# Specifies the header name used for passing trace context. Must be a string. Default: uber-trace-id -jaeger-trace-context-header-name - -# Specifies the header name used for force sampling. Must be a string. Default: jaeger-debug-id -jaeger-debug-header - -# Specifies the header name used to submit baggage if there is no root span. Must be a string. Default: jaeger-baggage -jaeger-baggage-header - -# Specifies the header prefix used to propagate baggage. Must be a string. Default: uberctx- -jaeger-tracer-baggage-header-prefix - -# specifies the port to use when uploading traces, Default 8126 -datadog-collector-port - -# specifies the service name to use for any traces created, Default: nginx -datadog-service-name - -# specifies the environment this trace belongs to, Default: prod -datadog-environment - -# specifies the operation name to use for any traces collected, Default: nginx.handle -datadog-operation-name-override - -# Specifies to use client-side sampling for distributed priority sampling and ignore sample rate, Default: true -datadog-priority-sampling - -# specifies sample rate for any traces created, Default: 1.0 -datadog-sample-rate -``` - -All these options (including host) allow environment variables, such as `$HOSTNAME` or `$HOST_IP`. In the case of Jaeger, if you have a Jaeger agent running on each machine in your cluster, you can use something like `$HOST_IP` (which can be 'mounted' with the `status.hostIP` fieldpath, as described [here](https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/#capabilities-of-the-downward-api)) to make sure traces will be sent to the local agent. - - -Note that you can also set whether to trust incoming spans (global default is true) per-location using annotations like the following: -``` -kind: Ingress -metadata: - annotations: - nginx.ingress.kubernetes.io/opentracing-trust-incoming-span: "true" -``` - -## Examples - -The following examples show how to deploy and test different distributed tracing systems. These example can be performed using Minikube. - -### Zipkin - -In the [rnburn/zipkin-date-server](https://github.com/rnburn/zipkin-date-server) -GitHub repository is an example of a dockerized date service. To install the example and Zipkin collector run: - -``` -kubectl create -f https://raw.githubusercontent.com/rnburn/zipkin-date-server/master/kubernetes/zipkin.yaml -kubectl create -f https://raw.githubusercontent.com/rnburn/zipkin-date-server/master/kubernetes/deployment.yaml -``` - -Also we need to configure the Ingress-NGINX controller ConfigMap with the required values: - -``` -$ echo ' -apiVersion: v1 -kind: ConfigMap -data: - enable-opentracing: "true" - zipkin-collector-host: zipkin.default.svc.cluster.local -metadata: - name: ingress-nginx-controller - namespace: kube-system -' | kubectl replace -f - -``` - -In the Zipkin interface we can see the details: -![zipkin screenshot](../../images/zipkin-demo.png "zipkin collector screenshot") - -### Jaeger - -1. Enable Ingress addon in Minikube: - ``` - $ minikube addons enable ingress - ``` - -2. Add Minikube IP to /etc/hosts: - ``` - $ echo "$(minikube ip) example.com" | sudo tee -a /etc/hosts - ``` - -3. Apply a basic Service and Ingress Resource: - ``` - # Create Echoheaders Deployment - $ kubectl run echoheaders --image=registry.k8s.io/echoserver:1.4 --replicas=1 --port=8080 - - # Expose as a Cluster-IP - $ kubectl expose deployment echoheaders --port=80 --target-port=8080 --name=echoheaders-x - - # Apply the Ingress Resource - $ echo ' - apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - name: echo-ingress - spec: - ingressClassName: nginx - rules: - - host: example.com - http: - paths: - - path: /echo - pathType: Prefix - backend: - service: - name: echoheaders-x - port: - number: 80 - ' | kubectl apply -f - - ``` - -4. Enable OpenTracing and set the jaeger-collector-host: - ``` - $ echo ' - apiVersion: v1 - kind: ConfigMap - data: - enable-opentracing: "true" - jaeger-collector-host: jaeger-agent.default.svc.cluster.local - metadata: - name: ingress-nginx-controller - namespace: kube-system - ' | kubectl replace -f - - ``` - -5. Apply the Jaeger All-In-One Template: - ``` - $ kubectl apply -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml - ``` - -6. Make a few requests to the Service: - ``` - $ curl example.com/echo -d "meow" - - CLIENT VALUES: - client_address=172.17.0.5 - command=POST - real path=/echo - query=nil - request_version=1.1 - request_uri=http://example.com:8080/echo - - SERVER VALUES: - server_version=nginx: 1.10.0 - lua: 10001 - - HEADERS RECEIVED: - accept=*/* - connection=close - content-length=4 - content-type=application/x-www-form-urlencoded - host=example.com - user-agent=curl/7.54.0 - x-forwarded-for=192.168.99.1 - x-forwarded-host=example.com - x-forwarded-port=80 - x-forwarded-proto=http - x-original-uri=/echo - x-real-ip=192.168.99.1 - x-scheme=http - BODY: - meow - ``` - -7. View the Jaeger UI: - ``` - $ minikube service jaeger-query --url - - http://192.168.99.100:30183 - ``` - - In the Jaeger interface we can see the details: - ![jaeger screenshot](../../images/jaeger-demo.png "jaeger collector screenshot") From 95efaf3e394cbe7fa280d754261a861e5e4f67aa Mon Sep 17 00:00:00 2001 From: Carlos Parada Date: Wed, 22 May 2024 14:08:30 +0100 Subject: [PATCH 126/184] Accept user defined annotations in IngressClass (#11362) --- charts/ingress-nginx/README.md | 3 ++- .../ingress-nginx/templates/controller-ingressclass.yaml | 7 +++++-- charts/ingress-nginx/values.yaml | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 8ea6bae85..8171d4e1d 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -332,8 +332,9 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.image.tag | string | `"v1.10.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 | object | `{"aliases":[],"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | +| controller.ingressClassResource | object | `{"aliases":[],"annotations":{},"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | | controller.ingressClassResource.aliases | list | `[]` | Aliases of this IngressClass. Creates copies with identical settings but the respective alias as name. Useful for development environments with only one Ingress Controller but production-like Ingress resources. `default` gets enabled on the original IngressClass only. | +| controller.ingressClassResource.annotations | object | `{}` | Annotations to be added to the IngressClass resource. | | controller.ingressClassResource.controllerValue | string | `"k8s.io/ingress-nginx"` | Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value. This value is also being set as the `--controller-class` argument of this Ingress Controller. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class | | controller.ingressClassResource.default | bool | `false` | If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation. Ingress creation gets rejected if there are multiple default IngressClasses. Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class | | controller.ingressClassResource.enabled | bool | `true` | Create the IngressClass or not | diff --git a/charts/ingress-nginx/templates/controller-ingressclass.yaml b/charts/ingress-nginx/templates/controller-ingressclass.yaml index e439e0adb..18cace48c 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass.yaml @@ -9,10 +9,13 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ .Values.controller.ingressClassResource.name }} - {{- if .Values.controller.ingressClassResource.default }} annotations: + {{- if .Values.controller.ingressClassResource.default }} ingressclass.kubernetes.io/is-default-class: "true" - {{- end }} + {{- end }} + {{- if .Values.controller.ingressClassResource.annotations }} + {{- toYaml .Values.controller.ingressClassResource.annotations | nindent 4 }} + {{- end }} spec: controller: {{ .Values.controller.ingressClassResource.controllerValue }} {{- with .Values.controller.ingressClassResource.parameters }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 2a361614c..37aa0f73b 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -127,6 +127,8 @@ controller: # Ingress creation gets rejected if there are multiple default IngressClasses. # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class default: false + # -- Annotations to be added to the IngressClass resource. + annotations: {} # -- Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value. # This value is also being set as the `--controller-class` argument of this Ingress Controller. # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class From 8737642126b8f8148a0f0be23d9466f97ba158e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 05:10:14 -0700 Subject: [PATCH 127/184] Bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 (#11355) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5.3.0 to 6.0.1. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/38e1018663fa5173f3968ea0777460d3de38f256...a4f60bb28d35aeee14e6880718e0c85ff1882e64) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/golangci-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index ff04ab3da..91fbbe088 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -28,6 +28,6 @@ jobs: check-latest: true - name: golangci-lint - uses: golangci/golangci-lint-action@38e1018663fa5173f3968ea0777460d3de38f256 # v5.3.0 + uses: golangci/golangci-lint-action@a4f60bb28d35aeee14e6880718e0c85ff1882e64 # v6.0.1 with: version: v1.56 From b540a1f7c52cfb904813863f55ff6cac6a77cdf0 Mon Sep 17 00:00:00 2001 From: k8s-infra-cherrypick-robot <90416843+k8s-infra-cherrypick-robot@users.noreply.github.com> Date: Thu, 23 May 2024 10:02:35 -0700 Subject: [PATCH 128/184] add workflow to helm release and update ct for branch (#11378) Signed-off-by: James Strong Co-authored-by: James Strong --- .github/workflows/helm.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 1da3972b0..f6ef5a680 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -5,6 +5,8 @@ on: branches: - main - release-* + + workflow_dispatch: permissions: contents: read @@ -39,7 +41,7 @@ jobs: uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 - name: Run chart-testing (lint) - run: ct lint --config ./.ct.yaml + run: ct lint --config --target-branch ${{ github.ref_name }} ./.ct.yaml - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter From 3b1908e20693c57a97b55d8a563da284a5dbf36c Mon Sep 17 00:00:00 2001 From: k8s-infra-cherrypick-robot <90416843+k8s-infra-cherrypick-robot@users.noreply.github.com> Date: Thu, 23 May 2024 10:13:59 -0700 Subject: [PATCH 129/184] sfix position of options (#11379) Co-authored-by: James Strong --- .github/workflows/helm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index f6ef5a680..24674e3f2 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -41,7 +41,7 @@ jobs: uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 - name: Run chart-testing (lint) - run: ct lint --config --target-branch ${{ github.ref_name }} ./.ct.yaml + run: ct lint --target-branch ${{ github.ref_name }} --config ./.ct.yaml - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter From d0e9934789d5f07699788d5fa1f3819ebc0a8919 Mon Sep 17 00:00:00 2001 From: Anddd7 Date: Mon, 27 May 2024 00:37:11 +0800 Subject: [PATCH 130/184] feat: Add grpc timeouts annotations (#11258) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ feat: add grpc timeouts with proxy settings if backend is grpc * 📝 docs: Documentation only changes * 🐛 fix: uppercase for protocol * 📝 docs: grpc timeouts example * 📝 docs: add links and default values for proxy timeout * 🧪 test: add e2e test for timeout * 🐛 fix: upgrade to 1.0.6 to fix nil pointer * 🐛 fix: lint * 🧪 test: trigger ci --- docs/examples/grpc/README.md | 6 +- .../nginx-configuration/annotations.md | 6 + .../nginx-configuration/configmap.md | 6 + go.mod | 1 + go.sum | 2 + rootfs/etc/nginx/template/nginx.tmpl | 7 ++ test/e2e/annotations/grpc.go | 94 ++++++++++++++- test/e2e/framework/grpc_delay.go | 109 ++++++++++++++++++ 8 files changed, 224 insertions(+), 7 deletions(-) create mode 100644 test/e2e/framework/grpc_delay.go diff --git a/docs/examples/grpc/README.md b/docs/examples/grpc/README.md index 508b23fb8..23126c345 100644 --- a/docs/examples/grpc/README.md +++ b/docs/examples/grpc/README.md @@ -166,11 +166,9 @@ This example demonstrates how to route traffic to a gRPC service through the Ing ### Notes on using response/request streams +> `grpc_read_timeout` and `grpc_send_timeout` will be set as `proxy_read_timeout` and `proxy_send_timeout` when you set backend protocol to `GRPC` or `GRPCS`. + 1. If your server only does response streaming and you expect a stream to be open longer than 60 seconds, you will have to change the `grpc_read_timeout` to accommodate this. 2. If your service only does request streaming and you expect a stream to be open longer than 60 seconds, you have to change the `grpc_send_timeout` and the `client_body_timeout`. 3. If you do both response and request streaming with an open stream longer than 60 seconds, you have to change all three timeouts: `grpc_read_timeout`, `grpc_send_timeout` and `client_body_timeout`. - -Values for the timeouts must be specified as e.g. `"1200s"`. - -> On the most recent versions of ingress-nginx, changing these timeouts requires using the `nginx.ingress.kubernetes.io/server-snippet` annotation. There are plans for future releases to allow using the Kubernetes annotations to define each timeout separately. diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index cf4902c1e..0ea54a29f 100755 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -698,6 +698,12 @@ In some scenarios is required to have different values. To allow this we provide - `nginx.ingress.kubernetes.io/proxy-next-upstream-tries` - `nginx.ingress.kubernetes.io/proxy-request-buffering` +If you indicate [Backend Protocol](#backend-protocol) as `GRPC` or `GRPCS`, the following grpc values will be set and inherited from proxy timeouts: + +- [`grpc_connect_timeout=5s`](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_connect_timeout), from `nginx.ingress.kubernetes.io/proxy-connect-timeout` +- [`grpc_send_timeout=60s`](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_send_timeout), from `nginx.ingress.kubernetes.io/proxy-send-timeout` +- [`grpc_read_timeout=60s`](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_read_timeout), from `nginx.ingress.kubernetes.io/proxy-read-timeout` + Note: All timeout values are unitless and in seconds e.g. `nginx.ingress.kubernetes.io/proxy-read-timeout: "120"` sets a valid 120 seconds proxy read timeout. ### Proxy redirect diff --git a/docs/user-guide/nginx-configuration/configmap.md b/docs/user-guide/nginx-configuration/configmap.md index 3127f73a4..48ab316cb 100644 --- a/docs/user-guide/nginx-configuration/configmap.md +++ b/docs/user-guide/nginx-configuration/configmap.md @@ -1101,14 +1101,20 @@ See NGINX [client_max_body_size](https://nginx.org/en/docs/http/ngx_http_core_mo Sets the timeout for [establishing a connection with a proxied server](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout). It should be noted that this timeout cannot usually exceed 75 seconds. +It will also set the [grpc_connect_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_connect_timeout) for gRPC connections. + ## proxy-read-timeout Sets the timeout in seconds for [reading a response from the proxied server](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout). The timeout is set only between two successive read operations, not for the transmission of the whole response. +It will also set the [grpc_read_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_read_timeout) for gRPC connections. + ## proxy-send-timeout Sets the timeout in seconds for [transmitting a request to the proxied server](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout). The timeout is set only between two successive write operations, not for the transmission of the whole request. +It will also set the [grpc_send_timeout](https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_send_timeout) for gRPC connections. + ## proxy-buffers-number Sets the number of the buffer used for [reading the first part of the response](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers) received from the proxied server. This part usually contains a small response header. diff --git a/go.mod b/go.mod index cec60ef9c..75782885a 100644 --- a/go.mod +++ b/go.mod @@ -48,6 +48,7 @@ require ( ) require ( + github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/BurntSushi/toml v1.3.2 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/go.sum b/go.sum index 1ad706885..d62944e1f 100644 --- a/go.sum +++ b/go.sum @@ -597,6 +597,8 @@ cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcP dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c h1:uhBf0CHXi7nCFZXxHV7l1cBcYFEEVRK4FYxvm1l9lKg= +github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c/go.mod h1:vYWKbnXd2KAZHUECLPzSE0Er3FgiEmOdPtxwSIRihck= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= diff --git a/rootfs/etc/nginx/template/nginx.tmpl b/rootfs/etc/nginx/template/nginx.tmpl index 4c0da2eb9..93a04e3e6 100644 --- a/rootfs/etc/nginx/template/nginx.tmpl +++ b/rootfs/etc/nginx/template/nginx.tmpl @@ -1481,6 +1481,13 @@ stream { proxy_next_upstream_timeout {{ $location.Proxy.NextUpstreamTimeout }}; proxy_next_upstream_tries {{ $location.Proxy.NextUpstreamTries }}; + {{ if or (eq $location.BackendProtocol "GRPC") (eq $location.BackendProtocol "GRPCS") }} + # Grpc settings + grpc_connect_timeout {{ $location.Proxy.ConnectTimeout }}s; + grpc_send_timeout {{ $location.Proxy.SendTimeout }}s; + grpc_read_timeout {{ $location.Proxy.ReadTimeout }}s; + {{ end }} + {{/* Add any additional configuration defined */}} {{ $location.ConfigurationSnippet }} diff --git a/test/e2e/annotations/grpc.go b/test/e2e/annotations/grpc.go index b3be82c2a..60696e139 100644 --- a/test/e2e/annotations/grpc.go +++ b/test/e2e/annotations/grpc.go @@ -22,11 +22,13 @@ import ( "fmt" "strings" + delaypb "github.com/Anddd7/pb/grpcbin" pb "github.com/moul/pb/grpcbin/go-grpc" "github.com/onsi/ginkgo/v2" "github.com/stretchr/testify/assert" "google.golang.org/grpc" "google.golang.org/grpc/credentials" + "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/metadata" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -35,7 +37,10 @@ import ( "k8s.io/ingress-nginx/test/e2e/framework" ) -const echoHost = "echo" +const ( + echoHost = "echo" + host = "grpc" +) var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { f := framework.NewDefaultFramework("grpc", framework.WithHTTPBunEnabled()) @@ -43,8 +48,6 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { ginkgo.It("should use grpc_pass in the configuration file", func() { f.NewGRPCFortuneTellerDeployment() - host := "grpc" - annotations := map[string]string{ "nginx.ingress.kubernetes.io/backend-protocol": "GRPC", } @@ -259,4 +262,89 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { metadata := res.GetMetadata() assert.Equal(ginkgo.GinkgoT(), metadata["content-type"].Values[0], "application/grpc") }) + + ginkgo.It("should return OK when request not exceed timeout", func() { + f.NewGRPCBinDelayDeployment() + + proxyTimeout := "10" + ingressName := "grpcbin-delay" + + annotations := make(map[string]string) + annotations["nginx.ingress.kubernetes.io/backend-protocol"] = "GRPC" + annotations["nginx.ingress.kubernetes.io/proxy-connect-timeout"] = proxyTimeout + annotations["nginx.ingress.kubernetes.io/proxy-send-timeout"] = proxyTimeout + annotations["nginx.ingress.kubernetes.io/proxy-read-timeout"] = proxyTimeout + + ing := framework.NewSingleIngress(host, "/", host, f.Namespace, ingressName, 50051, annotations) + + f.EnsureIngress(ing) + + f.WaitForNginxServer(host, + func(server string) bool { + return strings.Contains(server, fmt.Sprintf("grpc_connect_timeout %ss;", proxyTimeout)) && + strings.Contains(server, fmt.Sprintf("grpc_send_timeout %ss;", proxyTimeout)) && + strings.Contains(server, fmt.Sprintf("grpc_read_timeout %ss;", proxyTimeout)) + }) + + conn, err := grpc.Dial( + f.GetNginxIP()+":80", + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithAuthority(host), + ) + assert.Nil(ginkgo.GinkgoT(), err, "error creating a connection") + defer conn.Close() + + client := delaypb.NewGrpcbinServiceClient(conn) + + res, err := client.Unary(context.Background(), &delaypb.UnaryRequest{ + Data: "hello", + }) + assert.Nil(ginkgo.GinkgoT(), err) + + metadata := res.GetResponseAttributes().RequestHeaders + assert.Equal(ginkgo.GinkgoT(), metadata["content-type"], "application/grpc") + assert.Equal(ginkgo.GinkgoT(), metadata[":authority"], host) + }) + + ginkgo.It("should return Error when request exceed timeout", func() { + f.NewGRPCBinDelayDeployment() + + proxyTimeout := "10" + ingressName := "grpcbin-delay" + + annotations := make(map[string]string) + annotations["nginx.ingress.kubernetes.io/backend-protocol"] = "GRPC" + annotations["nginx.ingress.kubernetes.io/proxy-connect-timeout"] = proxyTimeout + annotations["nginx.ingress.kubernetes.io/proxy-send-timeout"] = proxyTimeout + annotations["nginx.ingress.kubernetes.io/proxy-read-timeout"] = proxyTimeout + + ing := framework.NewSingleIngress(host, "/", host, f.Namespace, ingressName, 50051, annotations) + + f.EnsureIngress(ing) + + f.WaitForNginxServer(host, + func(server string) bool { + return strings.Contains(server, fmt.Sprintf("grpc_connect_timeout %ss;", proxyTimeout)) && + strings.Contains(server, fmt.Sprintf("grpc_send_timeout %ss;", proxyTimeout)) && + strings.Contains(server, fmt.Sprintf("grpc_read_timeout %ss;", proxyTimeout)) + }) + + conn, err := grpc.Dial( + f.GetNginxIP()+":80", + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithAuthority(host), + ) + assert.Nil(ginkgo.GinkgoT(), err, "error creating a connection") + defer conn.Close() + + client := delaypb.NewGrpcbinServiceClient(conn) + + _, err = client.Unary(context.Background(), &delaypb.UnaryRequest{ + Data: "hello", + RequestAttributes: &delaypb.RequestAttributes{ + Delay: 15, + }, + }) + assert.Error(ginkgo.GinkgoT(), err) + }) }) diff --git a/test/e2e/framework/grpc_delay.go b/test/e2e/framework/grpc_delay.go new file mode 100644 index 000000000..58d10b2e9 --- /dev/null +++ b/test/e2e/framework/grpc_delay.go @@ -0,0 +1,109 @@ +/* +Copyright 2024 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 framework + +import ( + "github.com/onsi/ginkgo/v2" + "github.com/stretchr/testify/assert" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/util/intstr" +) + +// NewGRPCBinDelayDeployment creates a new single replica +// deployment of the grpcbin image in a particular namespace +func (f *Framework) NewGRPCBinDelayDeployment() { + f.NewNewGRPCBinDelayDeploymentWithReplicas(1) +} + +// NewNewGRPCBinDelayDeploymentWithReplicas creates a new deployment of the +// grpcbin image in a particular namespace. Number of replicas is configurable +func (f *Framework) NewNewGRPCBinDelayDeploymentWithReplicas(replicas int32) { + name := "grpcbin-delay" + + deployment := &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: f.Namespace, + }, + Spec: appsv1.DeploymentSpec{ + Replicas: NewInt32(replicas), + Selector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app": name, + }, + }, + Template: corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": name, + }, + }, + Spec: corev1.PodSpec{ + TerminationGracePeriodSeconds: NewInt64(0), + Containers: []corev1.Container{ + { + Name: name, + Image: "ghcr.io/anddd7/grpcbin:v1.0.6", + Env: []corev1.EnvVar{}, + Ports: []corev1.ContainerPort{ + { + Name: "grpc", + ContainerPort: 50051, + }, + }, + }, + }, + }, + }, + }, + } + + d := f.EnsureDeployment(deployment) + + err := waitForPodsReady(f.KubeClientSet, DefaultTimeout, int(replicas), f.Namespace, &metav1.ListOptions{ + LabelSelector: fields.SelectorFromSet(fields.Set(d.Spec.Template.ObjectMeta.Labels)).String(), + }) + assert.Nil(ginkgo.GinkgoT(), err, "failed to wait for to become ready") + + service := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: f.Namespace, + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "grpc", + Port: 50051, + TargetPort: intstr.FromInt(50051), + Protocol: "TCP", + }, + }, + Selector: map[string]string{ + "app": name, + }, + }, + } + + f.EnsureService(service) + + err = WaitForEndpoints(f.KubeClientSet, DefaultTimeout, name, f.Namespace, int(replicas)) + assert.Nil(ginkgo.GinkgoT(), err, "waiting for endpoints to become ready") +} From 57490cbcdc46789aa5420da55ae8d3e15089f4a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 05:05:23 -0700 Subject: [PATCH 131/184] Bump golang.org/x/crypto from 0.22.0 to 0.23.0 (#11357) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/crypto/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 75782885a..eaa8d34d3 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 - golang.org/x/crypto v0.22.0 + golang.org/x/crypto v0.23.0 golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f google.golang.org/grpc v1.63.2 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab @@ -113,7 +113,7 @@ require ( golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect - golang.org/x/term v0.19.0 // indirect + golang.org/x/term v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.20.0 // indirect diff --git a/go.sum b/go.sum index d62944e1f..e5e58cf7d 100644 --- a/go.sum +++ b/go.sum @@ -1164,8 +1164,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1476,8 +1476,8 @@ golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= 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= From 4fcc62ab5b4ddaf8e3ec4319e5a5ba54174ab9b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 05:07:38 -0700 Subject: [PATCH 132/184] Bump the all group across 1 directory with 6 updates (#11383) Bumps the all group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `4.1.4` | `4.1.6` | | [dorny/test-reporter](https://github.com/dorny/test-reporter) | `1.9.0` | `1.9.1` | | [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `5.0.0` | `5.1.0` | | [ossf/scorecard-action](https://github.com/ossf/scorecard-action) | `2.3.1` | `2.3.3` | | [github/codeql-action](https://github.com/github/codeql-action) | `3.25.3` | `3.25.6` | | [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) | `0.19.0` | `0.21.0` | Updates `actions/checkout` from 4.1.4 to 4.1.6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/0ad4b8fadaa221de15dcec353f45205ec38ea70b...a5ac7e51b41094c92402da3b24376905380afc29) Updates `dorny/test-reporter` from 1.9.0 to 1.9.1 - [Release notes](https://github.com/dorny/test-reporter/releases) - [Changelog](https://github.com/dorny/test-reporter/blob/main/CHANGELOG.md) - [Commits](https://github.com/dorny/test-reporter/compare/c40d89d5e987cd80f3a32b3c233556e22bdca958...31a54ee7ebcacc03a09ea97a7e5465a47b84aea5) Updates `goreleaser/goreleaser-action` from 5.0.0 to 5.1.0 - [Release notes](https://github.com/goreleaser/goreleaser-action/releases) - [Commits](https://github.com/goreleaser/goreleaser-action/compare/7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8...5742e2a039330cbb23ebf35f046f814d4c6ff811) Updates `ossf/scorecard-action` from 2.3.1 to 2.3.3 - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](https://github.com/ossf/scorecard-action/compare/0864cf19026789058feabb7e87baa5f140aac736...dc50aa9510b46c811795eb24b2f1ba02a914e534) Updates `github/codeql-action` from 3.25.3 to 3.25.6 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/d39d31e687223d841ef683f52467bd88e9b21c14...9fdb3e49720b44c48891d036bb502feb25684276) Updates `aquasecurity/trivy-action` from 0.19.0 to 0.21.0 - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/d710430a6722f083d3b36b8339ff66b32f22ee55...fd25fed6972e341ff0007ddb61f77e88103953c2) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: dorny/test-reporter dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: goreleaser/goreleaser-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: ossf/scorecard-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 10 +++++----- .github/workflows/depreview.yaml | 2 +- .github/workflows/docs.yaml | 4 ++-- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/helm.yaml | 4 ++-- .github/workflows/images.yaml | 8 ++++---- .github/workflows/junit-reports.yaml | 2 +- .github/workflows/perftest.yaml | 2 +- .github/workflows/plugin.yaml | 6 +++--- .github/workflows/scorecards.yml | 6 +++--- .github/workflows/vulnerability-scans.yaml | 8 ++++---- .github/workflows/zz-tmpl-images.yaml | 6 +++--- .github/workflows/zz-tmpl-k8s-e2e.yaml | 2 +- 13 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cafb5ad95..70369418f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -77,7 +77,7 @@ jobs: (needs.changes.outputs.go == 'true') steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -105,7 +105,7 @@ jobs: PLATFORMS: linux/amd64 steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Get go version id: golangversion @@ -179,7 +179,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: fetch-depth: 0 @@ -239,7 +239,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Setup Go uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index ffe249546..fea5a4e4e 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -9,6 +9,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: 'Dependency Review' uses: actions/dependency-review-action@0c155c5e8556a497adf53f2c18edabf945ed8e70 # v4.3.2 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 76b5818f4..0e12a0dc7 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Deploy uses: ./.github/actions/mkdocs diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 91fbbe088..8e6ec5200 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 24674e3f2..f3aa7ced8 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Run Artifact Hub lint run: | @@ -66,7 +66,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 4123a5efa..18c09a570 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -41,7 +41,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -144,7 +144,7 @@ jobs: k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -178,7 +178,7 @@ jobs: nginx: ['1.25.3', '1.21.6'] steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: image build run: | cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build @@ -195,7 +195,7 @@ jobs: PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx diff --git a/.github/workflows/junit-reports.yaml b/.github/workflows/junit-reports.yaml index 0d76abbfb..947b90c25 100644 --- a/.github/workflows/junit-reports.yaml +++ b/.github/workflows/junit-reports.yaml @@ -9,7 +9,7 @@ jobs: report: runs-on: ubuntu-latest steps: - - uses: dorny/test-reporter@c40d89d5e987cd80f3a32b3c233556e22bdca958 # v1.9.0 + - uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 # v1.9.1 with: artifact: /e2e-test-reports-(.*)/ name: JEST Tests $1 # Name of the check run which will be created diff --git a/.github/workflows/perftest.yaml b/.github/workflows/perftest.yaml index f2999ee97..9a544c645 100644 --- a/.github/workflows/perftest.yaml +++ b/.github/workflows/perftest.yaml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Install K6 run: | diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index 56992f34d..137e1dccc 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: fetch-depth: 0 @@ -27,7 +27,7 @@ jobs: - name: Run GoReleaser Snapshot if: ${{ ! startsWith(github.ref, 'refs/tags/') }} - uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0 + uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 with: version: latest args: release --snapshot --clean @@ -36,7 +36,7 @@ jobs: - name: Run GoReleaser if: ${{ startsWith(github.ref, 'refs/tags/') }} - uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 # v5.0.0 + uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 with: version: latest args: release --clean diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index c98b2d180..75e12a95b 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -27,12 +27,12 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 + uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3 with: results_file: results.sarif results_format: sarif @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 44e8954ed..c6f51a372 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -22,7 +22,7 @@ jobs: versions: ${{ steps.version.outputs.TAGS }} steps: - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: fetch-depth: 0 @@ -52,7 +52,7 @@ jobs: versions: ${{ fromJSON(needs.version.outputs.versions) }} steps: - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - shell: bash id: test @@ -60,7 +60,7 @@ jobs: - name: Scan image with AquaSec/Trivy id: scan - uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 # v0.19.0 + uses: aquasecurity/trivy-action@fd25fed6972e341ff0007ddb61f77e88103953c2 # v0.21.0 with: image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }} format: 'sarif' @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index 4ab9a4efb..7d7f7a284 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -48,7 +48,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Build run: | @@ -67,7 +67,7 @@ jobs: PLATFORMS: ${{ inputs.platforms-publish }} steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Login to GitHub Container Registry uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index 9ca47112b..016157aad 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: cache uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 From ba48c6b3c1215133f0a3b8a7e812dffa887206f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 05:10:56 -0700 Subject: [PATCH 133/184] Bump the all group across 1 directory with 3 updates (#11384) Bumps the all group with 3 updates in the / directory: [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang), [k8s.io/component-base](https://github.com/kubernetes/component-base) and [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime). Updates `github.com/prometheus/client_golang` from 1.19.0 to 1.19.1 - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.19.0...v1.19.1) Updates `k8s.io/component-base` from 0.30.0 to 0.30.1 - [Commits](https://github.com/kubernetes/component-base/compare/v0.30.0...v0.30.1) Updates `sigs.k8s.io/controller-runtime` from 0.18.1 to 0.18.3 - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.1...v0.18.3) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: k8s.io/component-base dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 39 ++++++++++++++++++++------------------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index eaa8d34d3..cf17df231 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/onsi/ginkgo/v2 v2.17.2 github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 - github.com/prometheus/client_golang v1.19.0 + github.com/prometheus/client_golang v1.19.1 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.53.0 github.com/spf13/cobra v1.8.0 @@ -33,17 +33,17 @@ require ( google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 - k8s.io/api v0.30.0 - k8s.io/apiextensions-apiserver v0.30.0 - k8s.io/apimachinery v0.30.0 - k8s.io/apiserver v0.30.0 + k8s.io/api v0.30.1 + k8s.io/apiextensions-apiserver v0.30.1 + k8s.io/apimachinery v0.30.1 + k8s.io/apiserver v0.30.1 k8s.io/cli-runtime v0.30.0 - k8s.io/client-go v0.30.0 - k8s.io/code-generator v0.30.0 - k8s.io/component-base v0.30.0 + k8s.io/client-go v0.30.1 + k8s.io/code-generator v0.30.1 + k8s.io/component-base v0.30.1 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 - sigs.k8s.io/controller-runtime v0.18.1 + sigs.k8s.io/controller-runtime v0.18.3 sigs.k8s.io/mdtoc v1.1.0 ) diff --git a/go.sum b/go.sum index e5e58cf7d..eb6fcc026 100644 --- a/go.sum +++ b/go.sum @@ -597,10 +597,10 @@ cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcP dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c h1:uhBf0CHXi7nCFZXxHV7l1cBcYFEEVRK4FYxvm1l9lKg= -github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c/go.mod h1:vYWKbnXd2KAZHUECLPzSE0Er3FgiEmOdPtxwSIRihck= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= +github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c h1:uhBf0CHXi7nCFZXxHV7l1cBcYFEEVRK4FYxvm1l9lKg= +github.com/Anddd7/pb v0.0.0-20240425032658-369b0f6a404c/go.mod h1:vYWKbnXd2KAZHUECLPzSE0Er3FgiEmOdPtxwSIRihck= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -1020,8 +1020,9 @@ github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQg github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1912,22 +1913,22 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= -k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= -k8s.io/apiextensions-apiserver v0.30.0 h1:jcZFKMqnICJfRxTgnC4E+Hpcq8UEhT8B2lhBcQ+6uAs= -k8s.io/apiextensions-apiserver v0.30.0/go.mod h1:N9ogQFGcrbWqAY9p2mUAL5mGxsLqwgtUce127VtRX5Y= -k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= -k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/apiserver v0.30.0 h1:QCec+U72tMQ+9tR6A0sMBB5Vh6ImCEkoKkTDRABWq6M= -k8s.io/apiserver v0.30.0/go.mod h1:smOIBq8t0MbKZi7O7SyIpjPsiKJ8qa+llcFCluKyqiY= +k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY= +k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM= +k8s.io/apiextensions-apiserver v0.30.1 h1:4fAJZ9985BmpJG6PkoxVRpXv9vmPUOVzl614xarePws= +k8s.io/apiextensions-apiserver v0.30.1/go.mod h1:R4GuSrlhgq43oRY9sF2IToFh7PVlF1JjfWdoG3pixk4= +k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= +k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/apiserver v0.30.1 h1:BEWEe8bzS12nMtDKXzCF5Q5ovp6LjjYkSp8qOPk8LZ8= +k8s.io/apiserver v0.30.1/go.mod h1:i87ZnQ+/PGAmSbD/iEKM68bm1D5reX8fO4Ito4B01mo= k8s.io/cli-runtime v0.30.0 h1:0vn6/XhOvn1RJ2KJOC6IRR2CGqrpT6QQF4+8pYpWQ48= k8s.io/cli-runtime v0.30.0/go.mod h1:vATpDMATVTMA79sZ0YUCzlMelf6rUjoBzlp+RnoM+cg= -k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= -k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= -k8s.io/code-generator v0.30.0 h1:3VUVqHvWFSVSm9kqL/G6kD4ZwNdHF6J/jPyo3Jgjy3k= -k8s.io/code-generator v0.30.0/go.mod h1:mBMZhfRR4IunJUh2+7LVmdcWwpouCH5+LNPkZ3t/v7Q= -k8s.io/component-base v0.30.0 h1:cj6bp38g0ainlfYtaOQuRELh5KSYjhKxM+io7AUIk4o= -k8s.io/component-base v0.30.0/go.mod h1:V9x/0ePFNaKeKYA3bOvIbrNoluTSG+fSJKjLdjOoeXQ= +k8s.io/client-go v0.30.1 h1:uC/Ir6A3R46wdkgCV3vbLyNOYyCJ8oZnjtJGKfytl/Q= +k8s.io/client-go v0.30.1/go.mod h1:wrAqLNs2trwiCH/wxxmT/x3hKVH9PuV0GGW0oDoHVqc= +k8s.io/code-generator v0.30.1 h1:ZsG++q5Vt0ScmKCeLhynUuWgcwFGg1Hl1AGfatqPJBI= +k8s.io/code-generator v0.30.1/go.mod h1:hFgxRsvOUg79mbpbVKfjJvRhVz1qLoe40yZDJ/hwRH4= +k8s.io/component-base v0.30.1 h1:bvAtlPh1UrdaZL20D9+sWxsJljMi0QZ3Lmw+kmZAaxQ= +k8s.io/component-base v0.30.1/go.mod h1:e/X9kDiOebwlI41AvBHuWdqFriSRrX50CdwA9TFaHLI= k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313 h1:bKcdZJOPICVmIIuaM9+MXmapE94dn5AYv5ODs1jA43o= k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= @@ -1976,8 +1977,8 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.18.1 h1:RpWbigmuiylbxOCLy0tGnq1cU1qWPwNIQzoJk+QeJx4= -sigs.k8s.io/controller-runtime v0.18.1/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw= +sigs.k8s.io/controller-runtime v0.18.3 h1:B5Wmmo8WMWK7izei+2LlXLVDGzMwAHBNLX68lwtlSR4= +sigs.k8s.io/controller-runtime v0.18.3/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g= From 5639979cb514d5310e069f88b2c8e89a9b5f84f5 Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Wed, 29 May 2024 00:07:30 +0530 Subject: [PATCH 134/184] removed tlsv1 & tlsv1.1 (#11343) --- docs/user-guide/tls.md | 4 +- internal/ingress/annotations/proxyssl/main.go | 4 +- .../ingress/annotations/proxyssl/main_test.go | 4 +- .../ingress/annotations/sslcipher/main.go | 2 +- pkg/apis/ingress/types.go | 2 +- test/data/config.json | 123624 ++++++++------- test/e2e/annotations/proxyssl.go | 8 +- 7 files changed, 63363 insertions(+), 60285 deletions(-) diff --git a/docs/user-guide/tls.md b/docs/user-guide/tls.md index 11338981b..af62cf7e3 100644 --- a/docs/user-guide/tls.md +++ b/docs/user-guide/tls.md @@ -23,7 +23,7 @@ The resulting secret will be of type `kubernetes.io/tls`. ## Host names -Ensure that the relevant [ingress rules specify a matching host name](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls). +Ensure that the relevant [ingress rules specify a matching hostname](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls). ## Default SSL Certificate @@ -145,7 +145,7 @@ metadata: name: nginx-config data: ssl-ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA" - ssl-protocols: "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" + ssl-protocols: "TLSv1.2 TLSv1.3" ``` diff --git a/internal/ingress/annotations/proxyssl/main.go b/internal/ingress/annotations/proxyssl/main.go index 0e854cd21..c40bc85e0 100644 --- a/internal/ingress/annotations/proxyssl/main.go +++ b/internal/ingress/annotations/proxyssl/main.go @@ -32,7 +32,7 @@ import ( const ( defaultProxySSLCiphers = "DEFAULT" - defaultProxySSLProtocols = "TLSv1 TLSv1.1 TLSv1.2" + defaultProxySSLProtocols = "TLSv1.2" defaultProxySSLVerify = "off" defaultProxySSLVerifyDepth = 1 defaultProxySSLServerName = "off" @@ -40,7 +40,7 @@ const ( var ( proxySSLOnOffRegex = regexp.MustCompile(`^(on|off)$`) - proxySSLProtocolRegex = regexp.MustCompile(`^(SSLv2|SSLv3|TLSv1|TLSv1\.1|TLSv1\.2|TLSv1\.3| )*$`) + proxySSLProtocolRegex = regexp.MustCompile(`^(TLSv1\.2|TLSv1\.3| )*$`) proxySSLCiphersRegex = regexp.MustCompile(`^[A-Za-z0-9\+:\_\-!]*$`) ) diff --git a/internal/ingress/annotations/proxyssl/main_test.go b/internal/ingress/annotations/proxyssl/main_test.go index a20c6813d..cfa31f1d1 100644 --- a/internal/ingress/annotations/proxyssl/main_test.go +++ b/internal/ingress/annotations/proxyssl/main_test.go @@ -32,7 +32,7 @@ const ( proxySslCiphers = "HIGH:-SHA" off = "off" sslServerName = "w00t" - defaultProtocol = "SSLv2 TLSv1 TLSv1.2 TLSv1.3" + defaultProtocol = "TLSv1.2 TLSv1.3" ) func buildIngress() *networking.Ingress { @@ -103,7 +103,7 @@ func TestAnnotations(t *testing.T) { data[parser.GetAnnotationWithPrefix(proxySSLSecretAnnotation)] = defaultDemoSecret data[parser.GetAnnotationWithPrefix("proxy-ssl-ciphers")] = proxySslCiphers data[parser.GetAnnotationWithPrefix("proxy-ssl-name")] = "$host" - data[parser.GetAnnotationWithPrefix("proxy-ssl-protocols")] = "TLSv1.3 SSLv2 TLSv1 TLSv1.2" + data[parser.GetAnnotationWithPrefix("proxy-ssl-protocols")] = "TLSv1.3 TLSv1.2" data[parser.GetAnnotationWithPrefix("proxy-ssl-server-name")] = "on" data[parser.GetAnnotationWithPrefix("proxy-ssl-session-reuse")] = off data[parser.GetAnnotationWithPrefix("proxy-ssl-verify")] = "on" diff --git a/internal/ingress/annotations/sslcipher/main.go b/internal/ingress/annotations/sslcipher/main.go index 7a282d0a0..3cfd903bd 100644 --- a/internal/ingress/annotations/sslcipher/main.go +++ b/internal/ingress/annotations/sslcipher/main.go @@ -43,7 +43,7 @@ var sslCipherAnnotations = parser.Annotation{ Scope: parser.AnnotationScopeIngress, Risk: parser.AnnotationRiskLow, Documentation: `The following annotation will set the ssl_prefer_server_ciphers directive at the server level. - This configuration specifies that server ciphers should be preferred over client ciphers when using the SSLv3 and TLS protocols.`, + This configuration specifies that server ciphers should be preferred over client ciphers when using the TLS protocols.`, }, sslCipherAnnotation: { Validator: parser.ValidateRegex(regexValidSSLCipher, true), diff --git a/pkg/apis/ingress/types.go b/pkg/apis/ingress/types.go index 269814d34..36067732e 100644 --- a/pkg/apis/ingress/types.go +++ b/pkg/apis/ingress/types.go @@ -211,7 +211,7 @@ type Server struct { // SSLCiphers returns list of ciphers to be enabled SSLCiphers string `json:"sslCiphers,omitempty"` // SSLPreferServerCiphers indicates that server ciphers should be preferred - // over client ciphers when using the SSLv3 and TLS protocols. + // over client ciphers when using the TLS protocols. SSLPreferServerCiphers string `json:"sslPreferServerCiphers,omitempty"` // AuthTLSError contains the reason why the access to a server should be denied AuthTLSError string `json:"authTLSError,omitempty"` diff --git a/test/data/config.json b/test/data/config.json index d64cfe0d2..df8a9fd3d 100644 --- a/test/data/config.json +++ b/test/data/config.json @@ -1,60275 +1,63353 @@ { - "backlogSize": 32768, - "isIPV6Enabled": true, - "cfg": { - "disable-ipv6": false, - "bind-address-ipv4": ["1.1.1.1", "2.2.2.2"], - "bind-address-ipv6": ["[2001:db8:a0b:12f0::1]", "[3731:54:65fe:2::a7]", "[33:33:33::33::33]"], - "backend": { - "custom-http-errors": [404], - "proxy-buffers-number": "4", - "proxy-buffer-size": "4k", - "proxy-connect-timeout": 5, - "proxy-read-timeout": 60, - "proxy-send-timeout": 60, - "skip-access-log-urls": ["~*health-check", "~*info"], - "ssl-redirect": true, - "upstream-fail-timeout": 0, - "upstream-max-fails": 0, - "upstream-hash-by": "$request_uri", - "whitelist-source-range": null - }, - "bodySize": "1m", - "enableSpdy": false, - "errorLogLevel": "notice", - "gzipTypes": "application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component", - "hsts": true, - "hstsIncludeSubdomains": true, - "hstsMaxAge": "31536000", - "keepAlive": 75, - "mapHashBucketSize": 64, - "maxWorkerConnections": 16384, - "nginxStatusIpv4Whitelist": "127.0.0.1", - "nginxStatusIpv6Whitelist": "::1", - "proxyRealIpCidr": "0.0.0.0/0", - "retryNonIdempotent": false, - "serverNameHashBucketSize": 64, - "serverNameHashMaxSize": 16384, - "sslBufferSize": "4k", - "sslCiphers": "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA", - "sslProtocols": "TLSv1 TLSv1.1 TLSv1.2", - "sslSessionCache": true, - "sslSessionCacheSize": "10m", - "sslSessionTickets": true, - "sslSessionTimeout": "10m", - "useGzip": true, - "useHttp2": true, - "proxyStreamTimeout": "600s", - "workerProcesses": 1, - "limitConnZoneVariable": "$remote_addr" - }, - "customErrors": true, - "defResolver": "", - "healthzURI": "/healthz", - "passthroughBackends": [{ - "namespace": "default-kubernetes-443", - "hostname": "foo-898.bar.com" - }, { - "namespace": "default-echoheaders-x-80", - "hostname": "foo-997.bar.com" - }, { - "namespace": "default-kubernetes-443", - "hostname": "kubernetes.foo-bar.com" - }], - "servers": [{ - "hostname": "_", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/testpath", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": ["1.1.1.1"] - }, - "whitelist": { - "cidr": ["1.1.1.1"] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/", - "isDefBackend": true, - "backend": "upstream-default-backend", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": ["1.1.1.1"] - }, - "whitelist": { - "cidr": ["1.1.1.1"] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "bar.baz.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/foo", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/bar", - "isDefBackend": false, - "backend": "default-echoheaders-y-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/", - "isDefBackend": true, - "backend": "upstream-default-backend", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": null - }, - "whitelist": { - "cidr": null - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "default-backend.sample.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": true, - "backend": "default-echoheaders-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": null - }, - "whitelist": { - "cidr": null - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "external-auth-01.sample.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "https://httpbun.com/basic-auth/user/passwd", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-1.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-10.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-100.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-1000.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-101.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-102.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-103.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-104.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-105.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-106.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-107.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-108.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-109.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-11.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-110.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-111.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-112.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-113.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-114.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-115.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-116.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-117.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-118.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-119.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-12.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-120.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-121.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-122.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-123.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-124.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-125.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-126.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-127.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-128.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-129.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-13.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-130.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-131.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-132.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-133.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-134.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-135.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-136.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-137.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-138.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-139.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-14.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-140.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-141.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-142.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-143.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-144.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-145.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-146.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-147.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-148.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-149.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-15.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-150.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-151.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-152.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-153.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-154.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-155.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-156.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-157.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-158.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-159.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-16.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-160.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-161.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-162.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-163.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-164.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-165.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-166.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-167.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-168.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-169.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-17.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-170.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-171.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-172.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-173.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-174.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-175.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-176.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-177.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-178.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-179.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-18.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-180.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-181.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-182.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-183.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-184.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-185.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-186.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-187.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-188.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-189.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-19.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-190.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-191.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-192.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-193.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-194.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-195.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-196.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-197.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-198.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-199.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-2.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-20.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-200.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-201.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-202.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-203.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-204.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-205.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-206.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-207.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-208.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-209.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-21.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-210.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-211.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-212.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-213.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-214.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-215.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-216.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-217.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-218.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-219.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-22.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-220.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-221.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-222.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-223.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-224.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-225.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-226.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-227.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-228.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-229.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-23.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-230.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-231.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-232.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-233.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-234.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-235.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-236.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-237.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-238.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-239.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-24.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-240.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-241.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-242.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-243.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-244.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-245.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-246.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-247.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-248.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-249.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-25.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-250.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-251.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-252.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-253.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-254.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-255.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-256.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-257.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-258.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-259.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-26.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-260.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-261.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-262.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-263.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-264.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-265.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-266.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-267.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-268.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-269.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-27.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-270.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-271.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-272.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-273.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-274.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-275.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-276.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-277.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-278.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-279.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-28.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-280.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-281.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-282.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-283.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-284.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-285.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-286.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-287.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-288.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-289.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-29.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-290.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-291.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-292.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-293.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-294.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-295.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-296.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-297.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-298.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-299.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-3.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-30.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-300.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-301.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-302.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-303.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-304.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-305.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-306.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-307.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-308.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-309.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-31.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-310.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-311.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-312.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-313.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-314.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-315.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-316.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-317.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-318.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-319.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-32.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-320.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-321.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-322.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-323.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-324.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-325.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-326.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-327.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-328.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-329.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-33.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-330.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-331.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-332.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-333.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-334.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-335.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-336.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-337.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-338.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-339.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-34.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-340.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-341.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-342.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-343.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-344.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-345.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-346.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-347.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-348.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-349.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-35.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-350.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-351.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-352.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-353.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-354.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-355.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-356.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-357.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-358.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-359.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-36.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-360.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-361.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-362.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-363.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-364.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-365.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-366.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-367.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-368.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-369.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-37.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-370.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-371.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-372.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-373.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-374.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-375.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-376.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-377.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-378.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-379.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-38.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-380.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-381.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-382.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-383.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-384.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-385.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-386.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-387.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-388.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-389.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-39.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-390.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-391.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-392.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-393.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-394.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-395.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-396.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-397.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-398.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-399.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-4.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-40.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-400.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-401.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-402.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-403.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-404.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-405.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-406.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-407.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-408.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-409.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-41.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-410.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-411.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-412.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-413.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-414.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-415.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-416.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-417.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-418.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-419.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-42.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-420.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-421.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-422.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-423.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-424.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-425.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-426.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-427.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-428.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-429.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-43.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-430.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-431.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-432.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-433.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-434.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-435.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-436.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-437.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-438.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-439.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-44.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-440.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-441.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-442.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-443.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-444.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-445.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-446.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-447.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-448.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-449.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-45.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-450.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-451.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-452.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-453.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-454.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-455.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-456.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-457.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-458.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-459.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-46.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-460.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-461.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-462.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-463.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-464.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-465.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-466.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-467.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-468.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-469.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-47.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-470.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-471.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-472.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-473.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-474.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-475.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-476.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-477.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-478.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-479.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-48.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-480.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-481.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-482.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-483.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-484.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-485.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-486.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-487.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-488.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-489.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-49.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-490.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-491.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-492.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-493.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-494.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-495.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-496.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-497.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-498.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-499.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-5.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-50.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-500.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-501.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-502.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-503.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-504.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-505.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-506.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-507.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-508.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-509.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-51.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-510.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-511.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-512.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-513.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-514.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-515.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-516.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-517.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-518.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-519.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-52.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-520.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-521.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-522.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-523.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-524.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-525.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-526.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-527.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-528.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-529.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-53.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-530.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-531.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-532.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-533.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-534.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-535.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-536.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-537.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-538.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-539.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-54.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-540.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-541.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-542.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-543.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-544.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-545.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-546.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-547.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-548.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-549.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-55.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-550.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-551.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-552.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-553.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-554.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-555.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-556.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-557.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-558.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-559.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-56.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-560.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-561.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-562.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-563.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-564.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-565.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-566.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-567.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-568.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-569.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-57.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-570.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-571.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-572.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-573.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-574.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-575.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-576.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-577.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-578.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-579.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-58.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-580.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-581.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-582.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-583.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-584.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-585.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-586.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-587.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-588.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-589.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-59.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-590.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-591.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-592.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-593.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-594.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-595.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-596.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-597.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-598.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-599.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-6.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-60.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-600.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-601.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-602.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-603.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-604.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-605.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-606.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-607.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-608.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-609.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-61.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-610.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-611.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-612.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-613.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-614.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-615.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-616.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-617.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-618.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-619.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-62.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-620.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-621.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-622.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-623.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-624.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-625.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-626.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-627.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-628.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-629.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-63.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-630.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-631.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-632.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-633.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-634.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-635.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-636.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-637.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-638.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-639.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-64.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-640.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-641.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-642.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-643.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-644.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-645.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-646.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-647.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-648.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-649.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-65.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-650.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-651.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-652.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-653.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-654.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-655.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-656.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-657.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-658.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-659.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-66.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-660.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-661.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-662.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-663.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-664.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-665.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-666.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-667.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-668.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-669.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-67.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-670.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-671.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-672.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-673.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-674.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-675.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-676.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-677.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-678.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-679.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-68.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-680.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-681.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-682.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-683.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-684.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-685.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-686.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-687.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-688.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-689.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-69.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-690.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-691.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-692.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-693.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-694.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-695.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-696.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-697.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-698.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-699.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-7.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-70.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-700.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-701.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-702.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-703.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-704.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-705.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-706.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-707.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-708.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-709.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-71.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-710.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-711.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-712.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-713.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-714.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-715.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-716.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-717.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-718.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-719.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-72.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-720.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-721.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-722.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-723.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-724.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-725.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-726.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-727.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-728.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-729.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-73.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-730.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-731.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-732.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-733.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-734.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-735.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-736.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-737.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-738.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-739.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-74.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-740.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-741.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-742.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-743.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-744.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-745.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-746.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-747.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-748.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-749.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-75.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-750.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-751.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-752.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-753.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-754.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-755.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-756.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-757.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-758.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-759.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-76.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-760.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-761.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-762.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-763.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-764.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-765.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-766.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-767.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-768.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-769.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-77.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-770.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-771.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-772.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-773.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-774.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-775.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-776.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-777.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-778.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-779.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-78.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-780.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-781.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-782.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-783.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-784.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-785.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-786.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-787.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-788.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-789.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-79.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-790.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-791.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-792.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-793.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-794.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-795.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-796.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-797.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-798.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-799.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-8.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-80.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-800.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-801.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-802.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-803.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-804.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-805.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-806.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-807.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-808.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-809.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-81.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-810.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-811.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-812.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-813.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-814.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-815.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-816.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-817.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-818.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-819.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-82.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-820.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-821.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-822.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-823.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-824.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-825.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-826.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-827.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-828.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-829.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-83.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-830.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-831.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-832.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-833.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-834.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-835.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-836.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-837.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-838.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-839.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-84.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-840.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-841.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-842.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-843.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-844.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-845.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-846.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-847.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-848.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-849.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-85.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-850.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-851.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-852.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-853.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-854.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-855.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-856.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-857.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-858.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-859.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-86.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-860.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-861.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-862.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-863.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-864.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-865.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-866.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-867.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-868.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-869.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-87.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-870.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-871.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-872.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-873.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-874.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-875.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-876.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-877.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-878.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-879.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-88.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-880.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-881.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-882.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-883.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-884.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-885.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-886.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-887.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-888.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-889.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-89.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-890.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-891.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-892.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-893.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-894.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-895.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-896.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-897.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-898.bar.com", - "sslPassthrough": true, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-kubernetes-443", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-899.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-9.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-90.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-900.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-901.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-902.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-903.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-904.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-905.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-906.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-907.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-908.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-909.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-91.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-910.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-911.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-912.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-913.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-914.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-915.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-916.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-917.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-918.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-919.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-92.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-920.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-921.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-922.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-923.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-924.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-925.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-926.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-927.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-928.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-929.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-93.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-930.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-931.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-932.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-933.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-934.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-935.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-936.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-937.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-938.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-939.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-94.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-940.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-941.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-942.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-943.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-944.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-945.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-946.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-947.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-948.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-949.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-95.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-950.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-951.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-952.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-953.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-954.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-955.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-956.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-957.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-958.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-959.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-96.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-960.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-961.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-962.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-963.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-964.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-965.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-966.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-967.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-968.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-969.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-97.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-970.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-971.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-972.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-973.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-974.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-975.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-976.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-977.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-978.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-979.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-98.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-980.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-981.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-982.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-983.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-984.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-985.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-986.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-987.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-988.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-989.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-99.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-990.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-991.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-992.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "default/aledbf-ca-secret", - "certFilename": "/ingress-controller/ssl/default-aledbf-ca-secret.pem", - "keyFilename": "", - "caFilename": "/ingress-controller/ssl/ca-default-aledbf-ca-secret.pem", - "pemSha": "69d055bd017208111377c971ba5ee0987fecee65" - } - }] - }, { - "hostname": "foo-993.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-994.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-995.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-996.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-997.bar.com", - "sslPassthrough": true, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo-998.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "https://httpbun.com/basic-auth/user/passwd", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/foo", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo2.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-xtp-echo-port", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foo3.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-xtp-echo-port", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "foos.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "jenkins.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/jenkins", - "isDefBackend": false, - "backend": "default-jenkins-8080", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "default_jenkins_conn", - "limit": 2, - "burst": 10, - "sharedSize": 5 - }, - "rps": { - "name": "default_jenkins_rps", - "limit": 0, - "burst": 10, - "sharedSize": 5 - } - }, - "redirect": { - "target": "/", - "addBaseUrl": true, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/", - "isDefBackend": true, - "backend": "upstream-default-backend", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": null - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "kubernetes.foo-bar.com", - "sslPassthrough": true, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-kubernetes-443", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "no-root.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/api", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/", - "isDefBackend": true, - "backend": "upstream-default-backend", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": null - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "rewrite.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/something", - "isDefBackend": false, - "backend": "default-echoheaders-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "/", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }, { - "path": "/", - "isDefBackend": true, - "backend": "upstream-default-backend", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": null - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "whitelist.bar.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": true - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }, { - "hostname": "with-root.com", - "sslPassthrough": false, - "sslCertificate": "", - "sslPemChecksum": "", - "locations": [{ - "path": "/", - "isDefBackend": false, - "backend": "default-echoheaders-x-80", - "basicDigestAuth": { - "type": "", - "realm": "", - "file": "", - "secured": false - }, - "externalAuth": { - "url": "", - "method": "", - "sendBody": false - }, - "rateLimit": { - "connections": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - }, - "rps": { - "name": "", - "limit": 0, - "burst": 0, - "sharedSize": 0 - } - }, - "redirect": { - "target": "", - "addBaseUrl": false, - "sslRedirect": false - }, - "denylist": { - "cidr": [] - }, - "whitelist": { - "cidr": [] - }, - "proxy": { - "connectTimeout": 5, - "sendTimeout": 60, - "readTimeout": 60, - "bufferSize": "4k" - }, - "certificateAuth": { - "secret": "", - "certFilename": "", - "keyFilename": "", - "caFilename": "", - "pemSha": "" - } - }] - }], - "sslDHParam": "", - "tcpBackends": [], - "udpBackends": [], - "backends": [{ - "name": "default-echoheaders-80", - "secure": false, - "endpoints": [{ - "address": "10.2.3.2", - "port": "8080", - "maxFails": 0, - "failTimeout": 0 - }, { - "address": "10.2.3.5", - "port": "8080", - "maxFails": 0, - "failTimeout": 0 - }] - }, { - "name": "default-echoheaders-x-80", - "secure": false, - "endpoints": [{ - "address": "10.2.3.4", - "port": "8080", - "maxFails": 0, - "failTimeout": 0 - }] - }, { - "name": "default-echoheaders-xtp-echo-port", - "secure": false, - "endpoints": [{ - "address": "127.0.0.1", - "port": "8181", - "maxFails": 0, - "failTimeout": 0 - }] - }, { - "name": "default-echoheaders-y-80", - "secure": false, - "endpoints": [{ - "address": "10.2.3.4", - "port": "8080", - "maxFails": 0, - "failTimeout": 0 - }] - }, { - "name": "default-jenkins-8080", - "secure": false, - "endpoints": [{ - "address": "127.0.0.1", - "port": "8181", - "maxFails": 0, - "failTimeout": 0 - }] - }, { - "name": "default-kubernetes-443", - "secure": false, - "endpoints": [{ - "address": "172.17.4.99", - "port": "443", - "maxFails": 0, - "failTimeout": 0 - }] - }, { - "name": "upstream-default-backend", - "secure": false, - "endpoints": [{ - "address": "10.2.3.11", - "port": "8080", - "maxFails": 0, - "failTimeout": 0 - }] - }] + "backlogSize": 32768, + "isIPV6Enabled": true, + "cfg": { + "disable-ipv6": false, + "bind-address-ipv4": ["1.1.1.1", "2.2.2.2"], + "bind-address-ipv6": [ + "[2001:db8:a0b:12f0::1]", + "[3731:54:65fe:2::a7]", + "[33:33:33::33::33]" + ], + "backend": { + "custom-http-errors": [404], + "proxy-buffers-number": "4", + "proxy-buffer-size": "4k", + "proxy-connect-timeout": 5, + "proxy-read-timeout": 60, + "proxy-send-timeout": 60, + "skip-access-log-urls": ["~*health-check", "~*info"], + "ssl-redirect": true, + "upstream-fail-timeout": 0, + "upstream-max-fails": 0, + "upstream-hash-by": "$request_uri", + "whitelist-source-range": null + }, + "bodySize": "1m", + "enableSpdy": false, + "errorLogLevel": "notice", + "gzipTypes": "application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/x-component", + "hsts": true, + "hstsIncludeSubdomains": true, + "hstsMaxAge": "31536000", + "keepAlive": 75, + "mapHashBucketSize": 64, + "maxWorkerConnections": 16384, + "nginxStatusIpv4Whitelist": "127.0.0.1", + "nginxStatusIpv6Whitelist": "::1", + "proxyRealIpCidr": "0.0.0.0/0", + "retryNonIdempotent": false, + "serverNameHashBucketSize": 64, + "serverNameHashMaxSize": 16384, + "sslBufferSize": "4k", + "sslCiphers": "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA", + "sslProtocols": "TLSv1.2", + "sslSessionCache": true, + "sslSessionCacheSize": "10m", + "sslSessionTickets": true, + "sslSessionTimeout": "10m", + "useGzip": true, + "useHttp2": true, + "proxyStreamTimeout": "600s", + "workerProcesses": 1, + "limitConnZoneVariable": "$remote_addr" + }, + "customErrors": true, + "defResolver": "", + "healthzURI": "/healthz", + "passthroughBackends": [ + { + "namespace": "default-kubernetes-443", + "hostname": "foo-898.bar.com" + }, + { + "namespace": "default-echoheaders-x-80", + "hostname": "foo-997.bar.com" + }, + { + "namespace": "default-kubernetes-443", + "hostname": "kubernetes.foo-bar.com" + } + ], + "servers": [ + { + "hostname": "_", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/testpath", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": ["1.1.1.1"] + }, + "whitelist": { + "cidr": ["1.1.1.1"] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/", + "isDefBackend": true, + "backend": "upstream-default-backend", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": ["1.1.1.1"] + }, + "whitelist": { + "cidr": ["1.1.1.1"] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "bar.baz.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/foo", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/bar", + "isDefBackend": false, + "backend": "default-echoheaders-y-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/", + "isDefBackend": true, + "backend": "upstream-default-backend", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": null + }, + "whitelist": { + "cidr": null + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "default-backend.sample.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": true, + "backend": "default-echoheaders-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": null + }, + "whitelist": { + "cidr": null + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "external-auth-01.sample.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "https://httpbun.com/basic-auth/user/passwd", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-1.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-10.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-100.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-1000.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-101.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-102.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-103.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-104.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-105.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-106.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-107.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-108.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-109.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-11.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-110.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-111.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-112.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-113.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-114.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-115.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-116.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-117.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-118.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-119.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-12.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-120.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-121.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-122.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-123.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-124.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-125.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-126.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-127.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-128.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-129.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-13.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-130.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-131.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-132.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-133.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-134.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-135.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-136.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-137.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-138.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-139.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-14.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-140.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-141.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-142.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-143.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-144.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-145.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-146.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-147.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-148.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-149.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-15.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-150.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-151.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-152.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-153.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-154.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-155.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-156.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-157.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-158.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-159.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-16.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-160.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-161.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-162.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-163.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-164.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-165.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-166.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-167.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-168.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-169.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-17.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-170.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-171.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-172.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-173.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-174.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-175.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-176.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-177.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-178.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-179.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-18.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-180.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-181.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-182.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-183.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-184.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-185.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-186.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-187.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-188.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-189.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-19.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-190.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-191.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-192.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-193.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-194.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-195.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-196.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-197.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-198.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-199.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-2.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-20.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-200.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-201.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-202.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-203.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-204.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-205.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-206.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-207.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-208.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-209.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-21.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-210.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-211.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-212.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-213.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-214.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-215.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-216.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-217.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-218.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-219.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-22.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-220.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-221.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-222.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-223.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-224.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-225.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-226.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-227.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-228.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-229.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-23.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-230.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-231.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-232.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-233.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-234.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-235.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-236.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-237.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-238.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-239.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-24.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-240.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-241.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-242.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-243.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-244.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-245.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-246.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-247.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-248.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-249.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-25.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-250.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-251.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-252.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-253.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-254.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-255.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-256.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-257.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-258.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-259.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-26.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-260.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-261.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-262.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-263.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-264.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-265.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-266.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-267.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-268.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-269.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-27.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-270.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-271.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-272.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-273.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-274.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-275.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-276.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-277.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-278.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-279.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-28.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-280.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-281.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-282.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-283.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-284.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-285.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-286.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-287.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-288.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-289.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-29.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-290.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-291.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-292.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-293.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-294.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-295.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-296.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-297.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-298.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-299.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-3.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-30.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-300.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-301.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-302.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-303.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-304.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-305.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-306.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-307.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-308.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-309.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-31.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-310.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-311.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-312.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-313.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-314.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-315.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-316.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-317.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-318.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-319.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-32.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-320.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-321.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-322.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-323.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-324.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-325.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-326.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-327.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-328.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-329.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-33.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-330.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-331.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-332.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-333.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-334.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-335.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-336.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-337.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-338.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-339.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-34.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-340.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-341.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-342.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-343.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-344.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-345.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-346.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-347.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-348.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-349.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-35.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-350.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-351.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-352.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-353.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-354.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-355.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-356.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-357.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-358.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-359.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-36.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-360.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-361.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-362.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-363.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-364.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-365.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-366.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-367.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-368.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-369.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-37.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-370.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-371.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-372.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-373.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-374.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-375.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-376.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-377.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-378.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-379.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-38.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-380.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-381.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-382.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-383.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-384.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-385.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-386.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-387.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-388.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-389.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-39.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-390.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-391.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-392.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-393.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-394.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-395.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-396.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-397.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-398.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-399.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-4.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-40.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-400.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-401.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-402.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-403.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-404.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-405.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-406.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-407.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-408.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-409.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-41.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-410.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-411.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-412.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-413.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-414.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-415.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-416.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-417.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-418.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-419.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-42.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-420.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-421.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-422.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-423.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-424.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-425.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-426.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-427.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-428.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-429.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-43.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-430.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-431.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-432.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-433.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-434.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-435.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-436.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-437.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-438.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-439.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-44.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-440.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-441.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-442.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-443.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-444.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-445.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-446.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-447.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-448.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-449.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-45.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-450.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-451.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-452.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-453.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-454.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-455.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-456.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-457.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-458.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-459.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-46.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-460.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-461.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-462.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-463.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-464.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-465.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-466.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-467.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-468.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-469.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-47.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-470.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-471.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-472.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-473.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-474.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-475.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-476.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-477.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-478.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-479.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-48.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-480.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-481.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-482.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-483.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-484.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-485.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-486.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-487.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-488.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-489.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-49.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-490.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-491.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-492.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-493.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-494.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-495.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-496.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-497.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-498.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-499.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-5.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-50.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-500.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-501.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-502.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-503.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-504.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-505.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-506.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-507.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-508.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-509.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-51.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-510.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-511.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-512.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-513.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-514.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-515.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-516.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-517.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-518.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-519.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-52.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-520.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-521.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-522.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-523.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-524.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-525.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-526.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-527.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-528.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-529.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-53.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-530.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-531.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-532.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-533.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-534.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-535.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-536.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-537.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-538.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-539.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-54.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-540.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-541.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-542.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-543.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-544.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-545.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-546.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-547.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-548.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-549.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-55.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-550.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-551.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-552.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-553.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-554.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-555.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-556.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-557.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-558.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-559.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-56.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-560.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-561.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-562.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-563.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-564.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-565.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-566.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-567.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-568.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-569.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-57.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-570.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-571.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-572.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-573.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-574.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-575.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-576.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-577.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-578.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-579.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-58.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-580.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-581.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-582.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-583.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-584.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-585.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-586.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-587.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-588.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-589.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-59.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-590.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-591.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-592.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-593.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-594.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-595.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-596.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-597.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-598.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-599.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-6.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-60.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-600.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-601.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-602.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-603.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-604.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-605.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-606.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-607.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-608.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-609.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-61.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-610.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-611.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-612.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-613.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-614.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-615.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-616.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-617.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-618.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-619.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-62.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-620.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-621.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-622.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-623.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-624.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-625.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-626.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-627.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-628.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-629.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-63.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-630.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-631.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-632.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-633.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-634.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-635.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-636.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-637.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-638.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-639.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-64.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-640.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-641.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-642.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-643.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-644.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-645.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-646.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-647.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-648.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-649.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-65.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-650.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-651.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-652.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-653.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-654.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-655.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-656.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-657.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-658.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-659.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-66.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-660.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-661.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-662.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-663.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-664.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-665.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-666.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-667.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-668.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-669.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-67.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-670.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-671.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-672.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-673.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-674.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-675.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-676.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-677.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-678.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-679.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-68.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-680.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-681.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-682.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-683.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-684.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-685.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-686.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-687.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-688.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-689.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-69.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-690.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-691.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-692.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-693.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-694.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-695.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-696.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-697.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-698.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-699.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-7.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-70.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-700.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-701.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-702.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-703.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-704.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-705.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-706.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-707.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-708.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-709.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-71.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-710.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-711.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-712.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-713.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-714.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-715.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-716.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-717.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-718.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-719.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-72.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-720.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-721.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-722.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-723.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-724.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-725.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-726.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-727.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-728.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-729.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-73.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-730.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-731.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-732.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-733.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-734.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-735.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-736.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-737.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-738.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-739.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-74.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-740.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-741.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-742.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-743.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-744.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-745.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-746.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-747.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-748.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-749.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-75.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-750.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-751.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-752.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-753.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-754.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-755.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-756.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-757.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-758.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-759.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-76.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-760.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-761.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-762.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-763.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-764.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-765.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-766.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-767.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-768.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-769.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-77.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-770.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-771.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-772.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-773.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-774.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-775.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-776.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-777.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-778.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-779.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-78.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-780.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-781.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-782.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-783.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-784.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-785.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-786.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-787.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-788.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-789.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-79.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-790.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-791.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-792.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-793.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-794.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-795.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-796.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-797.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-798.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-799.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-8.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-80.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-800.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-801.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-802.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-803.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-804.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-805.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-806.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-807.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-808.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-809.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-81.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-810.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-811.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-812.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-813.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-814.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-815.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-816.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-817.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-818.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-819.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-82.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-820.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-821.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-822.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-823.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-824.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-825.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-826.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-827.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-828.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-829.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-83.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-830.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-831.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-832.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-833.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-834.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-835.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-836.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-837.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-838.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-839.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-84.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-840.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-841.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-842.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-843.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-844.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-845.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-846.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-847.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-848.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-849.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-85.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-850.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-851.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-852.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-853.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-854.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-855.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-856.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-857.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-858.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-859.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-86.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-860.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-861.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-862.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-863.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-864.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-865.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-866.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-867.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-868.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-869.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-87.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-870.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-871.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-872.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-873.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-874.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-875.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-876.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-877.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-878.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-879.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-88.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-880.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-881.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-882.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-883.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-884.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-885.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-886.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-887.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-888.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-889.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-89.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-890.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-891.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-892.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-893.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-894.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-895.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-896.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-897.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-898.bar.com", + "sslPassthrough": true, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-kubernetes-443", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-899.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-9.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-90.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-900.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-901.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-902.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-903.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-904.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-905.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-906.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-907.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-908.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-909.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-91.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-910.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-911.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-912.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-913.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-914.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-915.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-916.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-917.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-918.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-919.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-92.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-920.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-921.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-922.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-923.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-924.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-925.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-926.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-927.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-928.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-929.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-93.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-930.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-931.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-932.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-933.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-934.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-935.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-936.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-937.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-938.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-939.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-94.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-940.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-941.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-942.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-943.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-944.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-945.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-946.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-947.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-948.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-949.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-95.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-950.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-951.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-952.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-953.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-954.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-955.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-956.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-957.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-958.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-959.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-96.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-960.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-961.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-962.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-963.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-964.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-965.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-966.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-967.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-968.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-969.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-97.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-970.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-971.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-972.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-973.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-974.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-975.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-976.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-977.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-978.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-979.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-98.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-980.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-981.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-982.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-983.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-984.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-985.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-986.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-987.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-988.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-989.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-99.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-990.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-991.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-992.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "default/aledbf-ca-secret", + "certFilename": "/ingress-controller/ssl/default-aledbf-ca-secret.pem", + "keyFilename": "", + "caFilename": "/ingress-controller/ssl/ca-default-aledbf-ca-secret.pem", + "pemSha": "69d055bd017208111377c971ba5ee0987fecee65" + } + } + ] + }, + { + "hostname": "foo-993.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-994.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-995.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-996.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-997.bar.com", + "sslPassthrough": true, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo-998.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "https://httpbun.com/basic-auth/user/passwd", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/foo", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo2.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-xtp-echo-port", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foo3.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-xtp-echo-port", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "foos.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "jenkins.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/jenkins", + "isDefBackend": false, + "backend": "default-jenkins-8080", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "default_jenkins_conn", + "limit": 2, + "burst": 10, + "sharedSize": 5 + }, + "rps": { + "name": "default_jenkins_rps", + "limit": 0, + "burst": 10, + "sharedSize": 5 + } + }, + "redirect": { + "target": "/", + "addBaseUrl": true, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/", + "isDefBackend": true, + "backend": "upstream-default-backend", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": null + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "kubernetes.foo-bar.com", + "sslPassthrough": true, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-kubernetes-443", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "no-root.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/api", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/", + "isDefBackend": true, + "backend": "upstream-default-backend", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": null + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "rewrite.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/something", + "isDefBackend": false, + "backend": "default-echoheaders-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "/", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + }, + { + "path": "/", + "isDefBackend": true, + "backend": "upstream-default-backend", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": null + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "whitelist.bar.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": true + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + }, + { + "hostname": "with-root.com", + "sslPassthrough": false, + "sslCertificate": "", + "sslPemChecksum": "", + "locations": [ + { + "path": "/", + "isDefBackend": false, + "backend": "default-echoheaders-x-80", + "basicDigestAuth": { + "type": "", + "realm": "", + "file": "", + "secured": false + }, + "externalAuth": { + "url": "", + "method": "", + "sendBody": false + }, + "rateLimit": { + "connections": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + }, + "rps": { + "name": "", + "limit": 0, + "burst": 0, + "sharedSize": 0 + } + }, + "redirect": { + "target": "", + "addBaseUrl": false, + "sslRedirect": false + }, + "denylist": { + "cidr": [] + }, + "whitelist": { + "cidr": [] + }, + "proxy": { + "connectTimeout": 5, + "sendTimeout": 60, + "readTimeout": 60, + "bufferSize": "4k" + }, + "certificateAuth": { + "secret": "", + "certFilename": "", + "keyFilename": "", + "caFilename": "", + "pemSha": "" + } + } + ] + } + ], + "sslDHParam": "", + "tcpBackends": [], + "udpBackends": [], + "backends": [ + { + "name": "default-echoheaders-80", + "secure": false, + "endpoints": [ + { + "address": "10.2.3.2", + "port": "8080", + "maxFails": 0, + "failTimeout": 0 + }, + { + "address": "10.2.3.5", + "port": "8080", + "maxFails": 0, + "failTimeout": 0 + } + ] + }, + { + "name": "default-echoheaders-x-80", + "secure": false, + "endpoints": [ + { + "address": "10.2.3.4", + "port": "8080", + "maxFails": 0, + "failTimeout": 0 + } + ] + }, + { + "name": "default-echoheaders-xtp-echo-port", + "secure": false, + "endpoints": [ + { + "address": "127.0.0.1", + "port": "8181", + "maxFails": 0, + "failTimeout": 0 + } + ] + }, + { + "name": "default-echoheaders-y-80", + "secure": false, + "endpoints": [ + { + "address": "10.2.3.4", + "port": "8080", + "maxFails": 0, + "failTimeout": 0 + } + ] + }, + { + "name": "default-jenkins-8080", + "secure": false, + "endpoints": [ + { + "address": "127.0.0.1", + "port": "8181", + "maxFails": 0, + "failTimeout": 0 + } + ] + }, + { + "name": "default-kubernetes-443", + "secure": false, + "endpoints": [ + { + "address": "172.17.4.99", + "port": "443", + "maxFails": 0, + "failTimeout": 0 + } + ] + }, + { + "name": "upstream-default-backend", + "secure": false, + "endpoints": [ + { + "address": "10.2.3.11", + "port": "8080", + "maxFails": 0, + "failTimeout": 0 + } + ] + } + ] } diff --git a/test/e2e/annotations/proxyssl.go b/test/e2e/annotations/proxyssl.go index 989d681c1..898cbed48 100644 --- a/test/e2e/annotations/proxyssl.go +++ b/test/e2e/annotations/proxyssl.go @@ -47,7 +47,7 @@ var _ = framework.DescribeAnnotation("proxy-ssl-*", func() { ing := framework.NewSingleIngressWithTLS(host, "/", host, []string{host}, f.Namespace, framework.EchoService, 80, annotations) f.EnsureIngress(ing) - assertProxySSL(f, host, "", "DEFAULT", "TLSv1 TLSv1.1 TLSv1.2", "off", 1, "") + assertProxySSL(f, host, "", "DEFAULT", "TLSv1.2", "off", 1, "") f.HTTPTestClient(). GET("/"). @@ -77,7 +77,7 @@ var _ = framework.DescribeAnnotation("proxy-ssl-*", func() { ing := framework.NewSingleIngressWithTLS(host, "/", host, []string{host}, f.Namespace, framework.EchoService, 80, annotations) f.EnsureIngress(ing) - assertProxySSL(f, host, "", "DEFAULT", "TLSv1 TLSv1.1 TLSv1.2", "on", 2, "on") + assertProxySSL(f, host, "", "DEFAULT", "TLSv1.2", "on", 2, "on") f.HTTPTestClient(). GET("/"). @@ -105,7 +105,7 @@ var _ = framework.DescribeAnnotation("proxy-ssl-*", func() { ing := framework.NewSingleIngressWithTLS(host, "/", host, []string{host}, f.Namespace, framework.EchoService, 80, annotations) f.EnsureIngress(ing) - assertProxySSL(f, host, "", "HIGH:!AES", "TLSv1 TLSv1.1 TLSv1.2", "off", 1, "") + assertProxySSL(f, host, "", "HIGH:!AES", "TLSv1.2", "off", 1, "") f.HTTPTestClient(). GET("/"). @@ -171,7 +171,7 @@ var _ = framework.DescribeAnnotation("proxy-ssl-*", func() { wlValue := "true" f.UpdateNginxConfigMapData(wlKey, wlValue) - assertProxySSL(f, host, secretName, "DEFAULT", "TLSv1 TLSv1.1 TLSv1.2", "on", 1, "on") + assertProxySSL(f, host, secretName, "DEFAULT", "TLSv1.2", "on", 1, "on") f.WaitForNginxCustomConfiguration("## start server proxyssl.com", "location ", func(server string) bool { return (!strings.Contains(server, "proxy_ssl_trusted_certificate") && From 8f4f15f8e38ee8b4e53819f34034f2b423609283 Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Wed, 29 May 2024 13:11:45 +0530 Subject: [PATCH 135/184] added multiplecontrollers-howto to faq (#11389) --- docs/faq.md | 60 +++++++++++++++++++++++++++- docs/user-guide/k8s-122-migration.md | 51 ----------------------- 2 files changed, 59 insertions(+), 52 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index a210c221b..bd1d26718 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,6 +1,64 @@ # FAQ +## How can I easily install multiple instances of the ingress-nginx controller in the same cluster? + +You can install them in different namespaces. + +- Create a new namespace + + ``` + kubectl create namespace ingress-nginx-2 + ``` + +- Use Helm to install the additional instance of the ingress controller +- Ensure you have Helm working (refer to the [Helm documentation](https://helm.sh/docs/)) +- We have to assume that you have the helm repo for the ingress-nginx controller already added to your Helm config. + But, if you have not added the helm repo then you can do this to add the repo to your helm config; + + ``` + helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx + ``` + +- Make sure you have updated the helm repo data; + + ``` + helm repo update + ``` + +- Now, install an additional instance of the ingress-nginx controller like this: + + ``` + helm install ingress-nginx-2 ingress-nginx/ingress-nginx \ + --namespace ingress-nginx-2 \ + --set controller.ingressClassResource.name=nginx-two \ + --set controller.ingressClass=nginx-two \ + --set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \ + --set controller.ingressClassResource.enabled=true \ + --set controller.ingressClassByName=true + ``` + +If you need to install yet another instance, then repeat the procedure to create a new namespace, +change the values such as names & namespaces (for example from "-2" to "-3"), or anything else that meets your needs. + +Note that `controller.ingressClassResource.name` and `controller.ingressClass` have to be set correctly. +The first is to create the IngressClass object and the other is to modify the deployment of the actual ingress controller pod. + +### I can't use multiple namespaces, what should I do? + +If you need to install all instances in the same namespace, then you need to specify a different **election id**, like this: + +``` +helm install ingress-nginx-2 ingress-nginx/ingress-nginx \ +--namespace kube-system \ +--set controller.electionID=nginx-two-leader \ +--set controller.ingressClassResource.name=nginx-two \ +--set controller.ingressClass=nginx-two \ +--set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \ +--set controller.ingressClassResource.enabled=true \ +--set controller.ingressClassByName=true +``` + ## Retaining Client IPAddress Please read [Retain Client IPAddress Guide here](./user-guide/retaining-client-ipaddress.md). @@ -11,7 +69,7 @@ If you are using Ingress objects in your cluster (running Kubernetes older than version 1.22), and you plan to upgrade your Kubernetes version to K8S 1.22 or above, then please read [the migration guide here](./user-guide/k8s-122-migration.md). -## Validation Of __`path`__ +## Validation Of **`path`** - For improving security and also following desired standards on Kubernetes API spec, the next release, scheduled for v1.8.0, will include a new & optional diff --git a/docs/user-guide/k8s-122-migration.md b/docs/user-guide/k8s-122-migration.md index 9a1ca081d..0880f020e 100644 --- a/docs/user-guide/k8s-122-migration.md +++ b/docs/user-guide/k8s-122-migration.md @@ -192,54 +192,3 @@ Bear in mind that if you start Ingress-Nginx B with the command line argument `- It is highly likely that you will also see the name of the ingress resource in the same error message. This error message has been observed on use the deprecated annotation (`kubernetes.io/ingress.class`) in an Ingress resource manifest. It is recommended to use the `.spec.ingressClassName` field of the Ingress resource, to specify the name of the IngressClass of the Ingress you are defining. - -## How can I easily install multiple instances of the ingress-nginx controller in the same cluster? - -You can install them in different namespaces. - -- Create a new namespace - ``` - kubectl create namespace ingress-nginx-2 - ``` -- Use Helm to install the additional instance of the ingress controller -- Ensure you have Helm working (refer to the [Helm documentation](https://helm.sh/docs/)) -- We have to assume that you have the helm repo for the ingress-nginx controller already added to your Helm config. - But, if you have not added the helm repo then you can do this to add the repo to your helm config; - ``` - helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx - ``` -- Make sure you have updated the helm repo data; - ``` - helm repo update - ``` -- Now, install an additional instance of the ingress-nginx controller like this: - ``` - helm install ingress-nginx-2 ingress-nginx/ingress-nginx \ - --namespace ingress-nginx-2 \ - --set controller.ingressClassResource.name=nginx-two \ - --set controller.ingressClass=nginx-two \ - --set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \ - --set controller.ingressClassResource.enabled=true \ - --set controller.ingressClassByName=true - ``` - -If you need to install yet another instance, then repeat the procedure to create a new namespace, -change the values such as names & namespaces (for example from "-2" to "-3"), or anything else that meets your needs. - -Note that `controller.ingressClassResource.name` and `controller.ingressClass` have to be set correctly. -The first is to create the IngressClass object and the other is to modify the deployment of the actual ingress controller pod. - -### I can't use multiple namespaces, what should I do? - -If you need to install all instances in the same namespace, then you need to specify a different **election id**, like this: - -``` -helm install ingress-nginx-2 ingress-nginx/ingress-nginx \ ---namespace kube-system \ ---set controller.electionID=nginx-two-leader \ ---set controller.ingressClassResource.name=nginx-two \ ---set controller.ingressClass=nginx-two \ ---set controller.ingressClassResource.controllerValue="example.com/ingress-nginx-2" \ ---set controller.ingressClassResource.enabled=true \ ---set controller.ingressClassByName=true -``` From 5fea717bdbf8dd7417b8e3743cca41319dc31bb3 Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Wed, 29 May 2024 13:54:22 +0530 Subject: [PATCH 136/184] added info for aws helm install (#11390) --- docs/deploy/index.md | 125 ++++++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 54 deletions(-) diff --git a/docs/deploy/index.md b/docs/deploy/index.md index 7232b6ffd..70bd48f4f 100644 --- a/docs/deploy/index.md +++ b/docs/deploy/index.md @@ -6,10 +6,10 @@ There are multiple ways to install the Ingress-Nginx Controller: - with `kubectl apply`, using YAML manifests; - with specific addons (e.g. for [minikube](#minikube) or [MicroK8s](#microk8s)). -On most Kubernetes clusters, the ingress controller will work without requiring any extra configuration. If you want to -get started as fast as possible, you can check the [quick start](#quick-start) instructions. However, in many -environments, you can improve the performance or get better logs by enabling extra features. We recommend that you -check the [environment-specific instructions](#environment-specific-instructions) for details about optimizing the +On most Kubernetes clusters, the ingress controller will work without requiring any extra configuration. If you want to +get started as fast as possible, you can check the [quick start](#quick-start) instructions. However, in many +environments, you can improve the performance or get better logs by enabling extra features. We recommend that you +check the [environment-specific instructions](#environment-specific-instructions) for details about optimizing the ingress controller for your particular environment or cloud provider. ## Contents @@ -72,7 +72,7 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont ``` !!! info - The YAML manifest in the command above was generated with `helm template`, so you will end up with almost the same + The YAML manifest in the command above was generated with `helm template`, so you will end up with almost the same resources as if you had used Helm to install the controller. !!! attention @@ -83,6 +83,7 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont ### Firewall configuration To check which ports are used by your installation of ingress-nginx, look at the output of `kubectl -n ingress-nginx get pod -o yaml`. In general, you need: + - Port 8443 open between all hosts on which the kubernetes nodes are running. This is used for the ingress-nginx [admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/). - Port 80 (for HTTP) and/or 443 (for HTTPS) open to the public on the kubernetes nodes to which the DNS of your apps are pointing. @@ -94,7 +95,7 @@ A few pods should start in the `ingress-nginx` namespace: kubectl get pods --namespace=ingress-nginx ``` -After a while, they should all be running. The following command will wait for the ingress controller pod to be up, +After a while, they should all be running. The following command will wait for the ingress controller pod to be up, running, and ready: ```console @@ -104,7 +105,6 @@ kubectl wait --namespace ingress-nginx \ --timeout=120s ``` - ### Local testing Let's create a simple web server and the associated service: @@ -135,6 +135,7 @@ kubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller [This issue](https://github.com/kubernetes/ingress-nginx/issues/10014#issuecomment-1567791549described) shows a typical DNS problem and its solution. At this point, you can access your deployment using curl ; + ```console curl --resolve demo.localdev.me:8080:127.0.0.1 http://demo.localdev.me:8080 ``` @@ -143,7 +144,7 @@ You should see a HTML response containing text like **"It works!"**. ### Online testing -If your Kubernetes cluster is a "real" cluster that supports services of type `LoadBalancer`, it will have allocated an +If your Kubernetes cluster is a "real" cluster that supports services of type `LoadBalancer`, it will have allocated an external IP address or FQDN to the ingress controller. You can see that IP address or FQDN with the following command: @@ -152,10 +153,10 @@ You can see that IP address or FQDN with the following command: kubectl get service ingress-nginx-controller --namespace=ingress-nginx ``` -It will be the `EXTERNAL-IP` field. If that field shows ``, this means that your Kubernetes cluster wasn't +It will be the `EXTERNAL-IP` field. If that field shows ``, this means that your Kubernetes cluster wasn't able to provision the load balancer (generally, this is because it doesn't support services of type `LoadBalancer`). -Once you have the external IP address (or FQDN), set up a DNS record pointing to it. Then you can create an ingress +Once you have the external IP address (or FQDN), set up a DNS record pointing to it. Then you can create an ingress resource. The following example assumes that you have set up a DNS record for `www.demo.io`: ```console @@ -164,13 +165,13 @@ kubectl create ingress demo --class=nginx \ ``` Alternatively, the above command can be rewritten as follows for the ```--rule``` command and below. + ```console kubectl create ingress demo --class=nginx \ --rule www.demo.io/=demo:80 ``` - -You should then be able to see the "It works!" page when you connect to http://www.demo.io/. Congratulations, +You should then be able to see the "It works!" page when you connect to . Congratulations, you are serving a public website hosted on a Kubernetes cluster! 🎉 ## Environment-specific instructions @@ -202,19 +203,19 @@ Kubernetes is available in Docker Desktop: - Mac, from [version 18.06.0-ce](https://docs.docker.com/docker-for-mac/release-notes/#stable-releases-of-2018) - Windows, from [version 18.06.0-ce](https://docs.docker.com/docker-for-windows/release-notes/#docker-community-edition-18060-ce-win70-2018-07-25) -First, make sure that Kubernetes is enabled in the Docker settings. The command `kubectl get nodes` should show a +First, make sure that Kubernetes is enabled in the Docker settings. The command `kubectl get nodes` should show a single node called `docker-desktop`. The ingress controller can be installed on Docker Desktop using the default [quick start](#quick-start) instructions. -On most systems, if you don't have any other service of type `LoadBalancer` bound to port 80, the ingress controller -will be assigned the `EXTERNAL-IP` of `localhost`, which means that it will be reachable on localhost:80. If that -doesn't work, you might have to fall back to the `kubectl port-forward` method described in the +On most systems, if you don't have any other service of type `LoadBalancer` bound to port 80, the ingress controller +will be assigned the `EXTERNAL-IP` of `localhost`, which means that it will be reachable on localhost:80. If that +doesn't work, you might have to fall back to the `kubectl port-forward` method described in the [local testing section](#local-testing). #### Rancher Desktop -Rancher Desktop provides Kubernetes and Container Management on the desktop. Kubernetes is enabled by default in Rancher Desktop. +Rancher Desktop provides Kubernetes and Container Management on the desktop. Kubernetes is enabled by default in Rancher Desktop. Rancher Desktop uses K3s under the hood, which in turn uses Traefik as the default ingress controller for the Kubernetes cluster. To use Ingress-Nginx Controller in place of the default Traefik, disable Traefik from Preference > Kubernetes menu. @@ -222,18 +223,18 @@ Once traefik is disabled, the Ingress-Nginx Controller can be installed on Ranch ### Cloud deployments -If the load balancers of your cloud provider do active healthchecks on their backends (most do), you can change the -`externalTrafficPolicy` of the ingress controller Service to `Local` (instead of the default `Cluster`) to save an -extra hop in some cases. If you're installing with Helm, this can be done by adding +If the load balancers of your cloud provider do active healthchecks on their backends (most do), you can change the +`externalTrafficPolicy` of the ingress controller Service to `Local` (instead of the default `Cluster`) to save an +extra hop in some cases. If you're installing with Helm, this can be done by adding `--set controller.service.externalTrafficPolicy=Local` to the `helm install` or `helm upgrade` command. -Furthermore, if the load balancers of your cloud provider support the PROXY protocol, you can enable it, and it will -let the ingress controller see the real IP address of the clients. Otherwise, it will generally see the IP address of -the upstream load balancer. This must be done both in the ingress controller -(with e.g. `--set controller.config.use-proxy-protocol=true`) and in the cloud provider's load balancer configuration +Furthermore, if the load balancers of your cloud provider support the PROXY protocol, you can enable it, and it will +let the ingress controller see the real IP address of the clients. Otherwise, it will generally see the IP address of +the upstream load balancer. This must be done both in the ingress controller +(with e.g. `--set controller.config.use-proxy-protocol=true`) and in the cloud provider's load balancer configuration to function correctly. -In the following sections, we provide YAML manifests that enable these options when possible, using the specific +In the following sections, we provide YAML manifests that enable these options when possible, using the specific options of various cloud providers. #### AWS @@ -242,10 +243,22 @@ In AWS, we use a Network load balancer (NLB) to expose the Ingress-Nginx Control !!! info The provided templates illustrate the setup for legacy in-tree service load balancer for AWS NLB. - AWS provides the documentation on how to use - [Network load balancing on Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html) + AWS provides the documentation on how to use + [Network load balancing on Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html) with [AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller). +!!! helm install on AWS + There have been too many attempts at using helm to install the controller on AWS recently. + The ingress-nginx-controller helm-chart is generic and not aimed at installing on AWS on any other infra provider. + There are annotations and configurations that are applicable only to AWS. + Please run `helm template` and compare with the static yaml manifests you see below. + A user is expected to use annotations for + (a) internal/external + (b) type - nlb + (c) sqcurity-groups + (d) and other such requirements + during their ``helm install`` process. + ##### Network Load Balancer (NLB) ```console @@ -254,7 +267,7 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont ##### TLS termination in AWS Load Balancer (NLB) -By default, TLS is terminated in the ingress controller. But it is also possible to terminate TLS in the Load Balancer. +By default, TLS is terminated in the ingress controller. But it is also possible to terminate TLS in the Load Balancer. This section explains how to do that on AWS using an NLB. 1. Download the [deploy.yaml](https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/aws/nlb-with-tls-termination/deploy.yaml) template @@ -264,32 +277,35 @@ This section explains how to do that on AWS using an NLB. ``` 2. Edit the file and change the VPC CIDR in use for the Kubernetes cluster: + ``` proxy-real-ip-cidr: XXX.XXX.XXX/XX ``` 3. Change the AWS Certificate Manager (ACM) ID as well: + ``` arn:aws:acm:us-west-2:XXXXXXXX:certificate/XXXXXX-XXXXXXX-XXXXXXX-XXXXXXXX ``` 4. Deploy the manifest: + ```console kubectl apply -f deploy.yaml ``` ##### NLB Idle Timeouts -Idle timeout value for TCP flows is 350 seconds and +Idle timeout value for TCP flows is 350 seconds and [cannot be modified](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout). -For this reason, you need to ensure the -[keepalive_timeout](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout) +For this reason, you need to ensure the +[keepalive_timeout](https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout) value is configured less than 350 seconds to work as expected. By default, NGINX `keepalive_timeout` is set to `75s`. -More information with regard to timeouts can be found in the +More information with regard to timeouts can be found in the [official AWS documentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout) #### GCE-GKE @@ -304,15 +320,14 @@ kubectl create clusterrolebinding cluster-admin-binding \ Then, the ingress controller can be installed like this: - ```console kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml ``` !!! warning - For private clusters, you will need to either add a firewall rule that allows master nodes access to - port `8443/tcp` on worker nodes, or change the existing rule that allows access to port `80/tcp`, `443/tcp` and - `10254/tcp` to also allow access to port `8443/tcp`. More information can be found in the + For private clusters, you will need to either add a firewall rule that allows master nodes access to + port `8443/tcp` on worker nodes, or change the existing rule that allows access to port `80/tcp`, `443/tcp` and + `10254/tcp` to also allow access to port `8443/tcp`. More information can be found in the [Official GCP Documentation](https://cloud.google.com/load-balancing/docs/tcp/setting-up-tcp#config-hc-firewall). See the [GKE documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules) @@ -333,8 +348,8 @@ More information with regard to Azure annotations for ingress controller can be ```console kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/do/deploy.yaml ``` -- By default the service object of the ingress-nginx-controller for Digital-Ocean, only configures one annotation. Its this one `service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"`. While this makes the service functional, it was reported that the Digital-Ocean LoadBalancer graphs shows `no data`, unless a few other annotations are also configured. Some of these other annotations require values that can not be generic and hence not forced in a out-of-the-box installation. These annotations and a discussion on them is well documented in [this issue](https://github.com/kubernetes/ingress-nginx/issues/8965). Please refer to the issue to add annotations, with values specific to user, to get graphs of the DO-LB populated with data. +- By default the service object of the ingress-nginx-controller for Digital-Ocean, only configures one annotation. Its this one `service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"`. While this makes the service functional, it was reported that the Digital-Ocean LoadBalancer graphs shows `no data`, unless a few other annotations are also configured. Some of these other annotations require values that can not be generic and hence not forced in a out-of-the-box installation. These annotations and a discussion on them is well documented in [this issue](https://github.com/kubernetes/ingress-nginx/issues/8965). Please refer to the issue to add annotations, with values specific to user, to get graphs of the DO-LB populated with data. #### Scaleway @@ -348,7 +363,7 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/exoscale/deploy.yaml ``` -The full list of annotations supported by Exoscale is available in the Exoscale Cloud Controller Manager +The full list of annotations supported by Exoscale is available in the Exoscale Cloud Controller Manager [documentation](https://github.com/exoscale/exoscale-cloud-controller-manager/blob/master/docs/service-loadbalancer.md). #### Oracle Cloud Infrastructure @@ -357,8 +372,8 @@ The full list of annotations supported by Exoscale is available in the Exoscale kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml ``` -A -[complete list of available annotations for Oracle Cloud Infrastructure](https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md) +A +[complete list of available annotations for Oracle Cloud Infrastructure](https://github.com/oracle/oci-cloud-controller-manager/blob/master/docs/load-balancer-annotations.md) can be found in the [OCI Cloud Controller Manager](https://github.com/oracle/oci-cloud-controller-manager) documentation. #### OVHcloud @@ -373,11 +388,11 @@ You can find the [complete tutorial](https://docs.ovh.com/gb/en/kubernetes/insta ### Bare metal clusters -This section is applicable to Kubernetes clusters deployed on bare metal servers, as well as "raw" VMs where Kubernetes +This section is applicable to Kubernetes clusters deployed on bare metal servers, as well as "raw" VMs where Kubernetes was installed manually, using generic Linux distros (like CentOS, Ubuntu...) -For quick testing, you can use a -[NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport). +For quick testing, you can use a +[NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport). This should work on almost every cluster, but it will typically use a port in the range 30000-32767. ```console @@ -401,20 +416,20 @@ kubectl exec $POD_NAME -n $POD_NAMESPACE -- /nginx-ingress-controller --version ### Scope -By default, the controller watches Ingress objects from all namespaces. If you want to change this behavior, -use the flag `--watch-namespace` or check the Helm chart value `controller.scope` to limit the controller to a single +By default, the controller watches Ingress objects from all namespaces. If you want to change this behavior, +use the flag `--watch-namespace` or check the Helm chart value `controller.scope` to limit the controller to a single namespace. -See also -[“How to easily install multiple instances of the Ingress NGINX controller in the same cluster”](https://kubernetes.github.io/ingress-nginx/#how-to-easily-install-multiple-instances-of-the-ingress-nginx-controller-in-the-same-cluster) +See also +[“How to easily install multiple instances of the Ingress NGINX controller in the same cluster”](https://kubernetes.github.io/ingress-nginx/#how-to-easily-install-multiple-instances-of-the-ingress-nginx-controller-in-the-same-cluster) for more details. ### Webhook network access !!! warning The controller uses an [admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/) - to validate Ingress definitions. Make sure that you don't have - [Network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/) + to validate Ingress definitions. Make sure that you don't have + [Network policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/) or additional firewalls preventing connections from the API server to the `ingress-nginx-controller-admission` service. ### Certificate generation @@ -435,22 +450,24 @@ You can wait until it is ready to run the next command: ### Running on Kubernetes versions older than 1.19 -Ingress resources evolved over time. They started with `apiVersion: extensions/v1beta1`, +Ingress resources evolved over time. They started with `apiVersion: extensions/v1beta1`, then moved to `apiVersion: networking.k8s.io/v1beta1` and more recently to `apiVersion: networking.k8s.io/v1`. Here is how these Ingress versions are supported in Kubernetes: + - before Kubernetes 1.19, only `v1beta1` Ingress resources are supported - from Kubernetes 1.19 to 1.21, both `v1beta1` and `v1` Ingress resources are supported - in Kubernetes 1.22 and above, only `v1` Ingress resources are supported And here is how these Ingress versions are supported in Ingress-Nginx Controller: + - before version 1.0, only `v1beta1` Ingress resources are supported - in version 1.0 and above, only `v1` Ingress resources are -As a result, if you're running Kubernetes 1.19 or later, you should be able to use the latest version of the NGINX -Ingress Controller; but if you're using an old version of Kubernetes (1.18 or earlier) you will have to use version 0.X +As a result, if you're running Kubernetes 1.19 or later, you should be able to use the latest version of the NGINX +Ingress Controller; but if you're using an old version of Kubernetes (1.18 or earlier) you will have to use version 0.X of the Ingress-Nginx Controller (e.g. version 0.49). -The Helm chart of the Ingress-Nginx Controller switched to version 1 in version 4 of the chart. In other words, if -you're running Kubernetes 1.19 or earlier, you should use version 3.X of the chart (this can be done by adding +The Helm chart of the Ingress-Nginx Controller switched to version 1 in version 4 of the chart. In other words, if +you're running Kubernetes 1.19 or earlier, you should use version 3.X of the chart (this can be done by adding `--version='<4'` to the `helm install` command ). From f22d5b90e870d09b0bf0f8acde11e09dba681d1f Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Wed, 29 May 2024 17:34:03 +0530 Subject: [PATCH 137/184] edited helm-install tips (#11393) --- docs/deploy/index.md | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/docs/deploy/index.md b/docs/deploy/index.md index 70bd48f4f..1cc01ba54 100644 --- a/docs/deploy/index.md +++ b/docs/deploy/index.md @@ -65,6 +65,32 @@ It will install the controller in the `ingress-nginx` namespace, creating that n helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx ``` +!!! helm install on AWS/GCP/Azure/Other providers + There have been too many attempts at using helm to install the controller on the cloud infra like AWS/GCP/Azure/Other. + The ingress-nginx-controller helm-chart is a generic install out of the box. + The default set of helm values are not configured for installing on any infra provider. + The annotations that are applicable to the cloud provider must be customized by the users. + Link to AWS LB Constroller https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/service/annotations/ + Examples of some annotations needed for the service resource of --type LoadBalancer on AWS are below + + annotations: + service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing" + service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp + service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true" + service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip" + service.beta.kubernetes.io/aws-load-balancer-type: nlb + service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules: "true" + service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "true" + service.beta.kubernetes.io/aws-load-balancer-security-groups: "sg-something1 sg-something2" + service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: "somebucket" + service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix: "ingress-nginx" + service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "5" + + + + + + **If you don't have Helm** or if you prefer to use a YAML manifest, you can run the following command instead: ```console @@ -247,17 +273,6 @@ In AWS, we use a Network load balancer (NLB) to expose the Ingress-Nginx Control [Network load balancing on Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html) with [AWS Load Balancer Controller](https://github.com/kubernetes-sigs/aws-load-balancer-controller). -!!! helm install on AWS - There have been too many attempts at using helm to install the controller on AWS recently. - The ingress-nginx-controller helm-chart is generic and not aimed at installing on AWS on any other infra provider. - There are annotations and configurations that are applicable only to AWS. - Please run `helm template` and compare with the static yaml manifests you see below. - A user is expected to use annotations for - (a) internal/external - (b) type - nlb - (c) sqcurity-groups - (d) and other such requirements - during their ``helm install`` process. ##### Network Load Balancer (NLB) From 1d3493018086ef6a1643686781a5d11707beed6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Tarot?= Date: Wed, 29 May 2024 18:56:32 +0200 Subject: [PATCH 138/184] Fix helm install on cloud provider admonition block (#11394) * Fix helm install on cloud provider admonition block * Add missing admonition type. * Format link to AWS LB controller. * Add nested YAML code block for annotations example * Add a couple of line breaks for breathing and structure * Fix admonition block title * Another try * Should be nice now --- docs/deploy/index.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/docs/deploy/index.md b/docs/deploy/index.md index 1cc01ba54..d8cc6f875 100644 --- a/docs/deploy/index.md +++ b/docs/deploy/index.md @@ -65,14 +65,11 @@ It will install the controller in the `ingress-nginx` namespace, creating that n helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx ``` -!!! helm install on AWS/GCP/Azure/Other providers - There have been too many attempts at using helm to install the controller on the cloud infra like AWS/GCP/Azure/Other. - The ingress-nginx-controller helm-chart is a generic install out of the box. - The default set of helm values are not configured for installing on any infra provider. - The annotations that are applicable to the cloud provider must be customized by the users. - Link to AWS LB Constroller https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/service/annotations/ - Examples of some annotations needed for the service resource of --type LoadBalancer on AWS are below - +!!! attention "Helm install on AWS/GCP/Azure/Other providers" + The *ingress-nginx-controller helm-chart is a generic install out of the box*. The default set of helm values is **not** configured for installation on any infra provider. The annotations that are applicable to the cloud provider must be customized by the users.
+ See [AWS LB Constroller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/service/annotations/).
+ Examples of some annotations needed for the service resource of `--type LoadBalancer` on AWS are below: + ```yaml annotations: service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing" service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp @@ -85,11 +82,7 @@ helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: "somebucket" service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix: "ingress-nginx" service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "5" - - - - - + ``` **If you don't have Helm** or if you prefer to use a YAML manifest, you can run the following command instead: From 57d96128b10f8d24308f7055d8f5ed9b79903ffc Mon Sep 17 00:00:00 2001 From: Andrea Scarpino Date: Thu, 30 May 2024 09:39:08 +0000 Subject: [PATCH 139/184] Rename variable to fix typo (#11395) --- internal/ingress/controller/config/config.go | 6 +++--- internal/ingress/controller/template/template.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/ingress/controller/config/config.go b/internal/ingress/controller/config/config.go index 6349d6006..5e0ca2296 100644 --- a/internal/ingress/controller/config/config.go +++ b/internal/ingress/controller/config/config.go @@ -744,9 +744,9 @@ type Configuration struct { // simultaneous connections. GlobalRateLimitMemcachedPoolSize int `json:"global-rate-limit-memcached-pool-size"` - // GlobalRateLimitStatucCode determines the HTTP status code to return + // GlobalRateLimitStatusCode determines the HTTP status code to return // when limit is exceeding during global rate limiting. - GlobalRateLimitStatucCode int `json:"global-rate-limit-status-code"` + GlobalRateLimitStatusCode int `json:"global-rate-limit-status-code"` // DebugConnections Enables debugging log for selected client connections // http://nginx.org/en/docs/ngx_core_module.html#debug_connection @@ -927,7 +927,7 @@ func NewDefault() Configuration { GlobalRateLimitMemcachedConnectTimeout: 50, GlobalRateLimitMemcachedMaxIdleTimeout: 10000, GlobalRateLimitMemcachedPoolSize: 50, - GlobalRateLimitStatucCode: 429, + GlobalRateLimitStatusCode: 429, DebugConnections: []string{}, StrictValidatePathType: false, // TODO: This will be true in future releases GRPCBufferSizeKb: 0, diff --git a/internal/ingress/controller/template/template.go b/internal/ingress/controller/template/template.go index 7cd6a0604..c70406cf0 100644 --- a/internal/ingress/controller/template/template.go +++ b/internal/ingress/controller/template/template.go @@ -413,7 +413,7 @@ func configForLua(input interface{}) string { all.Cfg.GlobalRateLimitMemcachedConnectTimeout, all.Cfg.GlobalRateLimitMemcachedMaxIdleTimeout, all.Cfg.GlobalRateLimitMemcachedPoolSize, - all.Cfg.GlobalRateLimitStatucCode, + all.Cfg.GlobalRateLimitStatusCode, ) } From a02f5d2c40a4b53279741e47ba0da8e0ea921566 Mon Sep 17 00:00:00 2001 From: Roberto Devesa <15369573+Roberdvs@users.noreply.github.com> Date: Sun, 2 Jun 2024 10:26:37 +0200 Subject: [PATCH 140/184] Adapt dashboards for Grafana 11 compatibility (#11399) --- deploy/grafana/dashboards/README.md | 4 +- deploy/grafana/dashboards/nginx.json | 2646 ++++++++++------- .../request-handling-performance.json | 1193 ++++---- 3 files changed, 2157 insertions(+), 1686 deletions(-) diff --git a/deploy/grafana/dashboards/README.md b/deploy/grafana/dashboards/README.md index e16180c3b..fc1e35406 100644 --- a/deploy/grafana/dashboards/README.md +++ b/deploy/grafana/dashboards/README.md @@ -19,7 +19,7 @@ This folder contains two dashboards that you can import. ### Requirements -- **Grafana v5.2.0** (or newer) +- **Grafana v10.4.3** (or newer) ## 2. Request Handling Performance @@ -36,4 +36,4 @@ This folder contains two dashboards that you can import. ### Requirements -- **Grafana v6.6.0** (or newer) +- **Grafana v10.4.3** (or newer) diff --git a/deploy/grafana/dashboards/nginx.json b/deploy/grafana/dashboards/nginx.json index 864d1dace..5ebc4ae6c 100644 --- a/deploy/grafana/dashboards/nginx.json +++ b/deploy/grafana/dashboards/nginx.json @@ -9,31 +9,53 @@ "pluginName": "Prometheus" } ], + "__elements": {}, "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "5.2.1" + "version": "10.4.3" + }, + { + "type": "panel", + "id": "heatmap", + "name": "Heatmap", + "version": "" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", - "version": "5.0.0" + "version": "1.0.0" }, { "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "5.0.0" + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" } ], "annotations": { "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -41,7 +63,10 @@ "type": "dashboard" }, { - "datasource": "${DS_PROMETHEUS}", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "enable": true, "expr": "sum(changes(nginx_ingress_controller_config_last_reload_successful_timestamp_seconds{instance!=\"unknown\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[30s])) by (controller_class)", "hide": false, @@ -58,72 +83,75 @@ ] }, "editable": true, - "gnetId": null, + "fiscalYearStartMonth": 0, "graphTooltip": 0, - "iteration": 1534359654832, + "id": null, "links": [], "panels": [ { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_PROMETHEUS}", - "format": "ops", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "gridPos": { - "h": 3, - "w": 6, - "x": 0, - "y": 0 + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] }, "id": 20, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m])), 0.001)", "format": "time_series", "intervalFactor": 1, @@ -131,37 +159,47 @@ "step": 4 } ], - "thresholds": "", "title": "Controller Request Volume", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_PROMETHEUS}", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -170,42 +208,30 @@ "y": 0 }, "id": 82, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "sum(avg_over_time(nginx_ingress_controller_nginx_process_connections{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",state=\"active\"}[2m]))", "format": "time_series", "instant": false, @@ -214,37 +240,51 @@ "step": 4 } ], - "thresholds": "", "title": "Controller Connections", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_PROMETHEUS}", - "format": "percentunit", - "gauge": { - "maxValue": 100, - "minValue": 80, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": false + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 95 + }, + { + "color": "rgba(50, 172, 45, 0.97)", + "value": 99 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -253,42 +293,30 @@ "y": 0 }, "id": 21, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",status!~\"[4-5].*\"}[2m])) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\"}[2m]))", "format": "time_series", "intervalFactor": 1, @@ -296,38 +324,48 @@ "step": 4 } ], - "thresholds": "95, 99, 99.5", "title": "Controller Success Rate (non-4|5xx responses)", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_PROMETHEUS}", - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "decimals": 0, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -336,42 +374,30 @@ "y": 0 }, "id": 81, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "sum" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "avg(irate(nginx_ingress_controller_success{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[1m])) * 60", "format": "time_series", "instant": false, @@ -380,38 +406,48 @@ "step": 4 } ], - "thresholds": "", "title": "Config Reloads", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "total" + "type": "stat" }, { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_PROMETHEUS}", - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "rgb(31, 120, 193)", + "mode": "fixed" + }, + "decimals": 0, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] }, "gridPos": { "h": 3, @@ -420,42 +456,30 @@ "y": 0 }, "id": 83, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "tableColumn": "", + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "count(nginx_ingress_controller_config_last_reload_successful{controller_pod=~\"$controller\",controller_namespace=~\"$namespace\"} == 0)", "format": "time_series", "instant": true, @@ -464,72 +488,119 @@ "step": 4 } ], - "thresholds": "", "title": "Last Config Failed", - "transparent": false, - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" + "type": "stat" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "editable": true, - "error": false, - "fill": 1, - "grid": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [ + { + "matcher": { + "id": "byValue", + "options": { + "op": "gte", + "reducer": "allIsZero", + "value": 0 + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": true, + "tooltip": true, + "viz": false + } + } + ] + } + ] + }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 3 }, - "height": "200px", "id": 86, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "hideZero": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sideWidth": 300, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "connected", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "10.4.3", "repeatDirection": "h", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "round(sum(irate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress), 0.001)", "format": "time_series", "hide": false, @@ -542,706 +613,23 @@ "step": 10 } ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, "title": "Ingress Request Volume", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "reqps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "type": "timeseries" }, { - "aliasColors": { - "max - istio-proxy": "#890f02", - "max - master": "#bf1b00", - "max - prometheus": "#bf1b00" + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "editable": false, - "error": false, - "fill": 0, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 3 - }, - "id": 87, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": true, - "hideZero": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "sideWidth": 300, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "connected", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", - "format": "time_series", - "instant": false, - "interval": "10s", - "intervalFactor": 1, - "legendFormat": "{{ ingress }}", - "metric": "container_memory_usage:sort_desc", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Ingress Success Rate (non-4|5xx responses)", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 1, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percentunit", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 6, - "w": 8, - "x": 0, - "y": 10 - }, - "height": "200px", - "id": 32, - "isNew": true, - "legend": { - "alignAsTable": false, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "sideWidth": 200, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "connected", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum (irate (nginx_ingress_controller_request_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", - "format": "time_series", - "instant": false, - "interval": "10s", - "intervalFactor": 1, - "legendFormat": "Received", - "metric": "network", - "refId": "A", - "step": 10 - }, - { - "expr": "- sum (irate (nginx_ingress_controller_response_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", - "format": "time_series", - "hide": false, - "interval": "10s", - "intervalFactor": 1, - "legendFormat": "Sent", - "metric": "network", - "refId": "B", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Network I/O pressure", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": { - "max - istio-proxy": "#890f02", - "max - master": "#bf1b00", - "max - prometheus": "#bf1b00" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 2, - "editable": false, - "error": false, - "fill": 0, - "grid": {}, - "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 10 - }, - "id": 77, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "sideWidth": 200, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "connected", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}) ", - "format": "time_series", - "instant": false, - "interval": "10s", - "intervalFactor": 1, - "legendFormat": "nginx", - "metric": "container_memory_usage:sort_desc", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Average Memory Usage", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": { - "max - istio-proxy": "#890f02", - "max - master": "#bf1b00" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "decimals": 3, - "editable": false, - "error": false, - "fill": 0, - "grid": {}, - "gridPos": { - "h": 6, - "w": 8, - "x": 16, - "y": 10 - }, - "height": "", - "id": 79, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": false, - "min": false, - "rightSide": false, - "show": false, - "sort": null, - "sortDesc": null, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "connected", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "avg (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m])) ", - "format": "time_series", - "interval": "10s", - "intervalFactor": 1, - "legendFormat": "nginx", - "metric": "container_cpu", - "refId": "A", - "step": 10 - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Average CPU Usage", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "cores", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "columns": [], - "datasource": "${DS_PROMETHEUS}", - "description": "This data is real time, independent of dashboard time range", - "fontSize": "100%", - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 16 - }, - "hideTimeOverride": false, - "id": 75, - "links": [], - "pageSize": 7, - "repeat": null, - "repeatDirection": "h", - "scroll": true, - "showHeader": true, - "sort": { - "col": 1, - "desc": true - }, - "styles": [ - { - "alias": "Ingress", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "ingress", - "preserveFormat": false, - "sanitize": false, - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "Requests", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "Value #A", - "thresholds": [ - "" - ], - "type": "number", - "unit": "ops" - }, - { - "alias": "Errors", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "Value #B", - "thresholds": [], - "type": "number", - "unit": "ops" - }, - { - "alias": "P50 Latency", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "link": false, - "pattern": "Value #C", - "thresholds": [], - "type": "number", - "unit": "dtdurations" - }, - { - "alias": "P90 Latency", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Value #D", - "thresholds": [], - "type": "number", - "unit": "dtdurations" - }, - { - "alias": "P99 Latency", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Value #E", - "thresholds": [], - "type": "number", - "unit": "dtdurations" - }, - { - "alias": "IN", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "Value #F", - "thresholds": [ - "" - ], - "type": "number", - "unit": "Bps" - }, - { - "alias": "", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "Time", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "OUT", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "Value #G", - "thresholds": [], - "type": "number", - "unit": "Bps" - } - ], - "targets": [ - { - "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", - "format": "table", - "hide": false, - "instant": true, - "intervalFactor": 1, - "legendFormat": "{{ ingress }}", - "refId": "C" - }, - { - "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", - "format": "table", - "hide": false, - "instant": true, - "intervalFactor": 1, - "legendFormat": "{{ ingress }}", - "refId": "D" - }, - { - "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", - "format": "table", - "hide": false, - "instant": true, - "intervalFactor": 1, - "legendFormat": "{{ destination_service }}", - "refId": "E" - }, - { - "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{ ingress }}", - "refId": "F" - }, - { - "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", - "format": "table", - "instant": true, - "intervalFactor": 1, - "legendFormat": "{{ ingress }}", - "refId": "G" - } - ], - "timeFrom": null, - "title": "Ingress Percentile Response Times and Transfer Rates", - "transform": "table", - "transparent": false, - "type": "table" - }, - { - "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1253,6 +641,842 @@ "tooltip": false, "viz": false }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "max - istio-proxy" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#890f02", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max - master" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#bf1b00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max - prometheus" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#bf1b00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byValue", + "options": { + "op": "gte", + "reducer": "allIsNull", + "value": 0 + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": true, + "tooltip": true, + "viz": false + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 3 + }, + "id": 87, + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "asc" + } + }, + "pluginVersion": "10.4.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\",status!~\"[4-5].*\"}[2m])) by (ingress) / sum(rate(nginx_ingress_controller_requests{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",namespace=~\"$namespace\",exported_namespace=~\"$exported_namespace\",ingress=~\"$ingress\"}[2m])) by (ingress)", + "format": "time_series", + "instant": false, + "interval": "10s", + "intervalFactor": 1, + "legendFormat": "{{ ingress }}", + "metric": "container_memory_usage:sort_desc", + "refId": "A", + "step": 10 + } + ], + "title": "Ingress Success Rate (non-4|5xx responses)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 10 + }, + "id": 32, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": false, + "width": 200 + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.4.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "sum (irate (nginx_ingress_controller_request_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", + "format": "time_series", + "instant": false, + "interval": "10s", + "intervalFactor": 1, + "legendFormat": "Received", + "metric": "network", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "- sum (irate (nginx_ingress_controller_response_size_sum{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m]))", + "format": "time_series", + "hide": false, + "interval": "10s", + "intervalFactor": 1, + "legendFormat": "Sent", + "metric": "network", + "refId": "B", + "step": 10 + } + ], + "title": "Network I/O pressure", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "max - istio-proxy" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#890f02", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max - master" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#bf1b00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max - prometheus" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#bf1b00", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 10 + }, + "id": 77, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": false, + "width": 200 + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "10.4.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "avg(nginx_ingress_controller_nginx_process_resident_memory_bytes{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}) ", + "format": "time_series", + "instant": false, + "interval": "10s", + "intervalFactor": 1, + "legendFormat": "nginx", + "metric": "container_memory_usage:sort_desc", + "refId": "A", + "step": 10 + } + ], + "title": "Average Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "cores", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "line+area" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "transparent", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 10 + }, + "id": 79, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "10.4.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "avg (rate (nginx_ingress_controller_nginx_process_cpu_seconds_total{controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\"}[2m])) ", + "format": "time_series", + "interval": "10s", + "intervalFactor": 1, + "legendFormat": "nginx", + "metric": "container_cpu", + "refId": "A", + "step": 10 + } + ], + "title": "Average CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "This data is real time, independent of dashboard time range", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "ingress" + }, + "properties": [ + { + "id": "displayName", + "value": "Ingress" + }, + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value #A" + }, + "properties": [ + { + "id": "displayName", + "value": "P50 Latency" + }, + { + "id": "unit", + "value": "dtdurations" + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value #B" + }, + "properties": [ + { + "id": "displayName", + "value": "P90 Latency" + }, + { + "id": "unit", + "value": "dtdurations" + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value #C" + }, + "properties": [ + { + "id": "displayName", + "value": "P99 Latency" + }, + { + "id": "unit", + "value": "dtdurations" + }, + { + "id": "custom.align" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value #D" + }, + "properties": [ + { + "id": "displayName", + "value": "IN" + }, + { + "id": "unit", + "value": "Bps" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)" + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Time" + }, + "properties": [ + { + "id": "unit", + "value": "short" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + }, + { + "id": "custom.hidden", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value #E" + }, + "properties": [ + { + "id": "displayName", + "value": "OUT" + }, + { + "id": "unit", + "value": "Bps" + }, + { + "id": "decimals", + "value": 2 + }, + { + "id": "custom.align" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 16 + }, + "hideTimeOverride": false, + "id": 75, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "10.4.3", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "histogram_quantile(0.50, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", + "format": "table", + "hide": false, + "instant": true, + "intervalFactor": 1, + "legendFormat": "{{ ingress }}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", + "format": "table", + "hide": false, + "instant": true, + "intervalFactor": 1, + "legendFormat": "{{ ingress }}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le, ingress))", + "format": "table", + "hide": false, + "instant": true, + "intervalFactor": 1, + "legendFormat": "{{ destination_service }}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "sum(irate(nginx_ingress_controller_request_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ ingress }}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "expr": "sum(irate(nginx_ingress_controller_response_size_sum{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (ingress)", + "format": "table", + "instant": true, + "intervalFactor": 1, + "legendFormat": "{{ ingress }}", + "refId": "E" + } + ], + "title": "Ingress Percentile Response Times and Transfer Rates", + "transformations": [ + { + "id": "merge", + "options": { + "reducers": [] + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1295,12 +1519,12 @@ }, "hideTimeOverride": false, "id": 91, - "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1311,6 +1535,10 @@ "repeatDirection": "h", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "exemplar": true, "expr": "histogram_quantile(0.80, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", @@ -1322,6 +1550,10 @@ "refId": "C" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "exemplar": true, "expr": "histogram_quantile(0.90, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", "format": "time_series", @@ -1333,6 +1565,10 @@ "refId": "D" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "editorMode": "code", "exemplar": true, "expr": "histogram_quantile(0.99, sum(rate(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le))", @@ -1358,8 +1594,26 @@ "mode": "spectrum" }, "dataFormat": "tsbuckets", - "datasource": "${DS_PROMETHEUS}", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "scaleDistribution": { + "type": "linear" + } + } + }, + "overrides": [] + }, "gridPos": { "h": 7, "w": 12, @@ -1373,9 +1627,52 @@ "legend": { "show": true }, + "options": { + "calculate": false, + "calculation": {}, + "cellGap": 2, + "cellValues": {}, + "color": { + "exponent": 0.5, + "fill": "#b4ff00", + "mode": "scheme", + "reverse": false, + "scale": "exponential", + "scheme": "Warm", + "steps": 128 + }, + "exemplars": { + "color": "rgba(255,0,255,0.7)" + }, + "filterValues": { + "le": 1e-9 + }, + "legend": { + "show": true + }, + "rowsFrame": { + "layout": "auto" + }, + "showValue": "never", + "tooltip": { + "mode": "single", + "showColorScale": false, + "yHistogram": true + }, + "yAxis": { + "axisPlacement": "left", + "reverse": false, + "unit": "s" + } + }, + "pluginVersion": "10.4.3", "reverseYBuckets": false, "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "exemplar": true, "expr": "sum(increase(nginx_ingress_controller_request_duration_seconds_bucket{ingress!=\"\",controller_pod=~\"$controller\",controller_class=~\"$controller_class\",controller_namespace=~\"$namespace\",ingress=~\"$ingress\",exported_namespace=~\"$exported_namespace\"}[2m])) by (le)", "format": "heatmap", @@ -1401,72 +1698,124 @@ "yBucketBound": "auto" }, { - "columns": [ - { - "text": "Current", - "value": "current" - } - ], - "datasource": "${DS_PROMETHEUS}", - "fontSize": "100%", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, + "decimals": 2, + "displayName": "", + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Last *" + }, + "properties": [ + { + "id": "displayName", + "value": "TTL" + }, + { + "id": "unit", + "value": "s" + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-background" + } + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 0 + }, + { + "color": "rgba(50, 172, 45, 0.97)", + "value": 691200 + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Field" + }, + "properties": [ + { + "id": "displayName", + "value": "Host" + } + ] + } + ] + }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 31 }, - "height": "1024", "id": 85, - "links": [], - "pageSize": 7, - "scroll": true, - "showHeader": true, - "sort": { - "col": 1, - "desc": false + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "enablePagination": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true }, - "styles": [ - { - "alias": "Time", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "date" - }, - { - "alias": "TTL", - "colorMode": "cell", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 0, - "pattern": "Current", - "thresholds": [ - "0", - "691200" - ], - "type": "number", - "unit": "s" - }, - { - "alias": "", - "colorMode": null, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "decimals": 2, - "pattern": "/.*/", - "thresholds": [], - "type": "number", - "unit": "short" - } - ], + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "avg(nginx_ingress_controller_ssl_expire_time_seconds{kubernetes_pod_name=~\"$controller\",namespace=~\"$namespace\",ingress=~\"$ingress\"}) by (host) - time()", "format": "time_series", "intervalFactor": 1, @@ -1477,35 +1826,55 @@ } ], "title": "Ingress Certificate Expiry", - "transform": "timeseries_aggregations", + "transformations": [ + { + "id": "reduce", + "options": { + "includeTimeField": false, + "labelsToFields": false, + "reducers": [ + "lastNotNull" + ] + } + } + ], "type": "table" } ], "refresh": "5s", - "schemaVersion": 16, - "style": "dark", + "schemaVersion": 39, "tags": [ "nginx" ], "templating": { "list": [ { + "current": { + "selected": false, + "text": "Prometheus", + "value": "${DS_PROMETHEUS}" + }, "hide": 0, + "includeAll": false, "label": "datasource", + "multi": false, "name": "DS_PROMETHEUS", "options": [], "query": "prometheus", + "queryValue": "", "refresh": 1, "regex": "", + "skipUrlSync": false, "type": "datasource" }, { "allValue": ".*", - "current": { - "text": "All", - "value": "$__all" + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "datasource": "${DS_PROMETHEUS}", + "definition": "", "hide": 0, "includeAll": true, "label": "Namespace", @@ -1515,20 +1884,21 @@ "query": "label_values(nginx_ingress_controller_config_hash, controller_namespace)", "refresh": 1, "regex": "", + "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".*", - "current": { - "text": "All", - "value": "$__all" + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "datasource": "${DS_PROMETHEUS}", + "definition": "", "hide": 0, "includeAll": true, "label": "Controller Class", @@ -1538,20 +1908,21 @@ "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\"}, controller_class) ", "refresh": 1, "regex": "", + "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".*", - "current": { - "text": "All", - "value": "$__all" + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "datasource": "${DS_PROMETHEUS}", + "definition": "", "hide": 0, "includeAll": true, "label": "Controller", @@ -1561,21 +1932,21 @@ "query": "label_values(nginx_ingress_controller_config_hash{namespace=~\"$namespace\",controller_class=~\"$controller_class\"}, controller_pod) ", "refresh": 1, "regex": "", + "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".*", - "current": { - "tags": [], - "text": "All", - "value": "$__all" + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "datasource": "${DS_PROMETHEUS}", + "definition": "", "hide": 0, "includeAll": true, "label": "Ingress Namespace", @@ -1585,21 +1956,21 @@ "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\"}, exported_namespace) ", "refresh": 1, "regex": "", + "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": ".*", - "current": { - "tags": [], - "text": "All", - "value": "$__all" + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" }, - "datasource": "${DS_PROMETHEUS}", + "definition": "", "hide": 0, "includeAll": true, "label": "Ingress", @@ -1609,9 +1980,9 @@ "query": "label_values(nginx_ingress_controller_requests{namespace=~\"$namespace\",controller_class=~\"$controller_class\",controller_pod=~\"$controller\",exported_namespace=~\"$exported_namespace\"}, ingress) ", "refresh": 1, "regex": "", + "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", - "tags": [], "tagsQuery": "", "type": "query", "useTags": false @@ -1650,5 +2021,6 @@ "timezone": "browser", "title": "NGINX Ingress controller", "uid": "nginx", - "version": 1 -} + "version": 1, + "weekStart": "" +} \ No newline at end of file diff --git a/deploy/grafana/dashboards/request-handling-performance.json b/deploy/grafana/dashboards/request-handling-performance.json index 1422336ae..61db983a6 100644 --- a/deploy/grafana/dashboards/request-handling-performance.json +++ b/deploy/grafana/dashboards/request-handling-performance.json @@ -9,32 +9,35 @@ "pluginName": "Prometheus" } ], - "__elements": [], + "__elements": {}, "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", - "version": "8.3.4" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph (old)", - "version": "" + "version": "10.4.3" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "1.0.0" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" } ], "annotations": { "list": [ { "builtIn": 1, - "datasource": "-- Grafana --", + "datasource": { + "type": "datasource", + "uid": "grafana" + }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", @@ -55,160 +58,214 @@ "gnetId": 9614, "graphTooltip": 1, "id": null, - "iteration": 1646929474557, "links": [], "liveNow": false, "panels": [ { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Total time for NGINX and upstream servers to process a request and send a response", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 0 }, - "hiddenSeries": false, "id": 91, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n 0.5,\n sum by (le)(\n rate(\n nginx_ingress_controller_request_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "interval": "", "legendFormat": ".5", "refId": "D" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n 0.95,\n sum by (le)(\n rate(\n nginx_ingress_controller_request_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "interval": "", "legendFormat": ".95", "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n 0.99,\n sum by (le)(\n rate(\n nginx_ingress_controller_request_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "interval": "", "legendFormat": ".99", "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Request Latency Percentiles", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "The time spent on receiving the response from the upstream server", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, - "hiddenSeries": false, "id": 94, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n 0.5,\n sum by (le)(\n rate(\n nginx_ingress_controller_response_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "instant": false, "interval": "", @@ -217,100 +274,116 @@ "refId": "D" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n 0.95,\n sum by (le)(\n rate(\n nginx_ingress_controller_response_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "interval": "", "legendFormat": ".95", "refId": "B" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n 0.99,\n sum by (le)(\n rate(\n nginx_ingress_controller_response_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "interval": "", "legendFormat": ".99", "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Upstream Response Latency Percentiles", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 8 }, - "hiddenSeries": false, "id": 93, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": " sum by (method, host, path)(\n rate(\n nginx_ingress_controller_request_duration_seconds_count{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n", "interval": "", "intervalFactor": 1, @@ -318,89 +391,97 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Request Rate by Method and Path", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "reqps", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "For each path observed, its median upstream response time", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 8 }, - "hiddenSeries": false, "id": 98, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "histogram_quantile(\n .5,\n sum by (le, method, host, path)(\n rate(\n nginx_ingress_controller_response_duration_seconds_bucket{\n ingress =~ \"$ingress\"\n }[5m]\n )\n )\n)", "interval": "", "intervalFactor": 1, @@ -408,89 +489,97 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Median Upstream Response Time by Method and Path", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Percentage of 4xx and 5xx responses among all responses.", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 16 }, - "hiddenSeries": false, "id": 100, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null as zero", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "sum by (method, host, path) (rate(nginx_ingress_controller_request_duration_seconds_count{\n ingress =~ \"$ingress\",\n status =~ \"[4-5].*\"\n}[5m])) / sum by (method, host, path) (rate(nginx_ingress_controller_request_duration_seconds_count{\n ingress =~ \"$ingress\",\n}[5m]))", "interval": "", "intervalFactor": 1, @@ -498,89 +587,97 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Response Error Rate by Method and Path", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percentunit", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "For each path observed, the sum of upstream request time", "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 16 }, - "hiddenSeries": false, "id": 102, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "sum by (method, host, path) (rate(nginx_ingress_controller_response_duration_seconds_sum{ingress =~ \"$ingress\"}[5m]))", "interval": "", "intervalFactor": 1, @@ -588,88 +685,96 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Upstream Response Time by Method and Path", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 24 }, - "hiddenSeries": false, "id": 101, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": " sum (\n rate(\n nginx_ingress_controller_request_duration_seconds_count{\n ingress =~ \"$ingress\",\n status =~\"[4-5].*\",\n }[5m]\n )\n ) by(method, host, path, status)\n", "interval": "", "intervalFactor": 1, @@ -677,88 +782,96 @@ "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Response Error Rate by Method and Path", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "reqps", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 24 }, - "hiddenSeries": false, "id": 99, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "sum (\n rate (\n nginx_ingress_controller_response_size_sum {\n ingress =~ \"$ingress\",\n }[5m]\n )\n) by (method, host, path) / sum (\n rate(\n nginx_ingress_controller_response_size_count {\n ingress =~ \"$ingress\",\n }[5m]\n )\n) by (method, host, path)\n", "hide": false, "instant": false, @@ -768,92 +881,105 @@ "refId": "D" }, { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": " sum (rate(nginx_ingress_controller_response_size_bucket{\n ingress =~ \"$ingress\",\n }[5m])) by (le)\n", "hide": true, "legendFormat": "{{le}}", "refId": "A" } ], - "thresholds": [], - "timeRegions": [], "title": "Average Response Size by Method and Path", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { - "links": [] + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" }, "overrides": [] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 32 }, - "hiddenSeries": false, "id": 96, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", "options": { - "alertThreshold": true + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } }, - "percentage": false, - "pluginVersion": "8.3.4", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "10.4.3", "targets": [ { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, "expr": "sum (\n rate(\n nginx_ingress_controller_ingress_upstream_latency_seconds_sum {\n ingress =~ \"$ingress\",\n }[5m]\n)) / sum (\n rate(\n nginx_ingress_controller_ingress_upstream_latency_seconds_count {\n ingress =~ \"$ingress\",\n }[5m]\n )\n)\n", "hide": false, "instant": false, @@ -863,40 +989,12 @@ "refId": "B" } ], - "thresholds": [], - "timeRegions": [], "title": "Upstream Service Latency", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } + "type": "timeseries" } ], "refresh": "30s", - "schemaVersion": 34, - "style": "dark", + "schemaVersion": 39, "tags": [ "nginx" ], @@ -906,7 +1004,7 @@ "current": { "selected": false, "text": "Prometheus", - "value": "Prometheus" + "value": "${DS_PROMETHEUS}" }, "hide": 0, "includeAll": false, @@ -924,6 +1022,7 @@ "allValue": ".*", "current": {}, "datasource": { + "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(nginx_ingress_controller_requests, ingress) ", From 987039c0146cd1a90b10dc0fb5b2489ab6015b2c Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Mon, 3 Jun 2024 09:32:19 +0200 Subject: [PATCH 141/184] Chart: Remove `controller.enableWorkerSerialReloads`. (#11400) --- charts/ingress-nginx/README.md | 1 - charts/ingress-nginx/templates/controller-configmap.yaml | 1 - charts/ingress-nginx/values.yaml | 2 -- 3 files changed, 4 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 8171d4e1d..be8376935 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -301,7 +301,6 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.enableAnnotationValidations | bool | `false` | | | controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. # ref: https://github.com/microsoft/mimalloc # | | controller.enableTopologyAwareRouting | bool | `false` | This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" Defaults to false | -| controller.enableWorkerSerialReloads | bool | `false` | This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued | | controller.existingPsp | string | `""` | Use an existing PSP instead of creating one | | controller.extraArgs | object | `{}` | Additional command line arguments to pass to Ingress-Nginx Controller E.g. to specify the default SSL certificate you can use | | controller.extraContainers | list | `[]` | Additional containers to be added to the controller pod. See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example. | diff --git a/charts/ingress-nginx/templates/controller-configmap.yaml b/charts/ingress-nginx/templates/controller-configmap.yaml index 50ae824a8..22080d115 100644 --- a/charts/ingress-nginx/templates/controller-configmap.yaml +++ b/charts/ingress-nginx/templates/controller-configmap.yaml @@ -14,7 +14,6 @@ metadata: namespace: {{ include "ingress-nginx.namespace" . }} data: allow-snippet-annotations: "{{ .Values.controller.allowSnippetAnnotations }}" - enable-serial-reloads: "{{ .Values.controller.enableWorkerSerialReloads }}" {{- if .Values.controller.addHeaders }} add-headers: {{ include "ingress-nginx.namespace" . }}/{{ include "ingress-nginx.fullname" . }}-custom-add-headers {{- end }} diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 37aa0f73b..8db58ff2a 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -93,8 +93,6 @@ controller: # when users add those annotations. # Global snippets in ConfigMap are still respected allowSnippetAnnotations: false - # -- This configuration defines if NGINX workers should reload serially instead of concurrently when multiple changes that require reloads are queued - enableWorkerSerialReloads: 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 From 82c4d78a2f11790caec7a753da50c520cd892ba1 Mon Sep 17 00:00:00 2001 From: k8s-infra-cherrypick-robot <90416843+k8s-infra-cherrypick-robot@users.noreply.github.com> Date: Mon, 3 Jun 2024 00:34:38 -0700 Subject: [PATCH 142/184] Merge pull request #11277 from strongjz/chart-1.10.1 (#11415) release chart 4.10.1 Co-authored-by: James Strong --- charts/ingress-nginx/Chart.yaml | 18 ++++++++++-------- charts/ingress-nginx/README.md | 8 ++++---- .../changelog/helm-chart-4.10.1.md | 11 +++++++++++ charts/ingress-nginx/values.yaml | 6 +++--- 4 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 charts/ingress-nginx/changelog/helm-chart-4.10.1.md diff --git a/charts/ingress-nginx/Chart.yaml b/charts/ingress-nginx/Chart.yaml index f9bb890f8..70344515e 100644 --- a/charts/ingress-nginx/Chart.yaml +++ b/charts/ingress-nginx/Chart.yaml @@ -1,9 +1,11 @@ annotations: artifacthub.io/changes: |- - - "Update Ingress-Nginx version controller-v1.10.0" + - "update post submit helm ci and clean up (#11221)" + - "refactor helm ci tests part I (#11188)" + - "Update Ingress-Nginx version controller-v1.10.1" artifacthub.io/prerelease: "false" apiVersion: v2 -appVersion: 1.10.0 +appVersion: 1.10.1 description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer home: https://github.com/kubernetes/ingress-nginx @@ -13,11 +15,11 @@ keywords: - nginx kubeVersion: '>=1.21.0-0' maintainers: - - name: Gacko - - name: rikatz - - name: strongjz - - name: tao12345666333 +- name: Gacko +- name: rikatz +- name: strongjz +- name: tao12345666333 name: ingress-nginx sources: - - https://github.com/kubernetes/ingress-nginx -version: 4.10.0 +- https://github.com/kubernetes/ingress-nginx +version: 4.10.1 diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index be8376935..2141ef44c 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -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 -![Version: 4.10.0](https://img.shields.io/badge/Version-4.10.0-informational?style=flat-square) ![AppVersion: 1.10.0](https://img.shields.io/badge/AppVersion-1.10.0-informational?style=flat-square) +![Version: 4.10.1](https://img.shields.io/badge/Version-4.10.1-informational?style=flat-square) ![AppVersion: 1.10.1](https://img.shields.io/badge/AppVersion-1.10.1-informational?style=flat-square) To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources. @@ -319,8 +319,8 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.hostname | object | `{}` | Optionally customize the pod hostname. | | controller.image.allowPrivilegeEscalation | bool | `false` | | | controller.image.chroot | bool | `false` | | -| controller.image.digest | string | `"sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c"` | | -| controller.image.digestChroot | string | `"sha256:7eb46ff733429e0e46892903c7394aff149ac6d284d92b3946f3baf7ff26a096"` | | +| controller.image.digest | string | `"sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e"` | | +| controller.image.digestChroot | string | `"sha256:c155954116b397163c88afcb3252462771bd7867017e8a17623e83601bab7ac7"` | | | controller.image.image | string | `"ingress-nginx/controller"` | | | controller.image.pullPolicy | string | `"IfNotPresent"` | | | controller.image.readOnlyRootFilesystem | bool | `false` | | @@ -328,7 +328,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.image.runAsNonRoot | bool | `true` | | | controller.image.runAsUser | int | `101` | | | controller.image.seccompProfile.type | string | `"RuntimeDefault"` | | -| controller.image.tag | string | `"v1.10.0"` | | +| controller.image.tag | string | `"v1.10.1"` | | | controller.ingressClass | string | `"nginx"` | For backwards compatibility with ingress.class annotation, use ingressClass. Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation | | controller.ingressClassByName | bool | `false` | Process IngressClass per name (additionally as per spec.controller). | | controller.ingressClassResource | object | `{"aliases":[],"annotations":{},"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | diff --git a/charts/ingress-nginx/changelog/helm-chart-4.10.1.md b/charts/ingress-nginx/changelog/helm-chart-4.10.1.md new file mode 100644 index 000000000..3a28de00c --- /dev/null +++ b/charts/ingress-nginx/changelog/helm-chart-4.10.1.md @@ -0,0 +1,11 @@ +# Changelog + +This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org). + +### 4.10.1 + +* - "update post submit helm ci and clean up (#11221)" +* - "refactor helm ci tests part I (#11188)" +* - "Update Ingress-Nginx version controller-v1.10.1" + +**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.10.0...helm-chart-4.10.1 diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 8db58ff2a..0fd0ccc7b 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -26,9 +26,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.10.0" - digest: sha256:42b3f0e5d0846876b1791cd3afeb5f1cbbe4259d6f35651dcc1b5c980925379c - digestChroot: sha256:7eb46ff733429e0e46892903c7394aff149ac6d284d92b3946f3baf7ff26a096 + tag: "v1.10.1" + digest: sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e + digestChroot: sha256:c155954116b397163c88afcb3252462771bd7867017e8a17623e83601bab7ac7 pullPolicy: IfNotPresent runAsNonRoot: true # www-data -> uid 101 From 0c17748c4412b5f6ac8532586ed41accb0471c74 Mon Sep 17 00:00:00 2001 From: Reddysekhar Gaduputi Date: Mon, 3 Jun 2024 14:47:23 +0530 Subject: [PATCH 143/184] Chart: Make admission webhook patch job RBAC configurable. (#11376) * Add an option to skip rbac resources creation in helm chart for admission-webhooks (#11375) Signed-off-by: Reddysekhar Gaduputi * Add an option to skip rbac resources creation in helm chart update README (#11375) Signed-off-by: Reddysekhar Gaduputi * Add an option to skip serviceAccount resources creation in helm chart for admission-webhooks (#11375) Signed-off-by: Reddysekhar Gaduputi * Add helm chart tests for admission-webhooks (#11375) Signed-off-by: Reddysekhar Gaduputi * Chart make admission webhook patch job RBAC configurable (#11375) Signed-off-by: Reddysekhar Gaduputi * Update charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrole_test.yaml Co-authored-by: Marco Ebert * Update charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrolebinding_test.yaml Co-authored-by: Marco Ebert * Update charts/ingress-nginx/tests/admission-webhooks/job-patch/role_test.yaml Co-authored-by: Marco Ebert * Update charts/ingress-nginx/tests/admission-webhooks/job-patch/rolebinding_test.yaml Co-authored-by: Marco Ebert * Update charts/ingress-nginx/tests/admission-webhooks/job-patch/serviceaccount_test.yaml Co-authored-by: Marco Ebert --------- Signed-off-by: Reddysekhar Gaduputi Co-authored-by: Marco Ebert --- charts/ingress-nginx/README.md | 6 +++ charts/ingress-nginx/templates/_helpers.tpl | 11 +++++ .../job-patch/clusterrole.yaml | 2 +- .../job-patch/clusterrolebinding.yaml | 4 +- .../job-patch/job-createSecret.yaml | 2 +- .../job-patch/job-patchWebhook.yaml | 2 +- .../admission-webhooks/job-patch/role.yaml | 2 +- .../job-patch/rolebinding.yaml | 4 +- .../job-patch/serviceaccount.yaml | 5 +- .../job-patch/clusterrole_test.yaml | 11 +++++ .../job-patch/clusterrolebinding_test.yaml | 11 +++++ .../job-patch/role_test.yaml | 11 +++++ .../job-patch/rolebinding_test.yaml | 11 +++++ .../job-patch/serviceaccount_test.yaml | 47 +++++++++++++++++++ charts/ingress-nginx/values.yaml | 12 +++++ 15 files changed, 131 insertions(+), 10 deletions(-) create mode 100644 charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrole_test.yaml create mode 100644 charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrolebinding_test.yaml create mode 100644 charts/ingress-nginx/tests/admission-webhooks/job-patch/role_test.yaml create mode 100644 charts/ingress-nginx/tests/admission-webhooks/job-patch/rolebinding_test.yaml create mode 100644 charts/ingress-nginx/tests/admission-webhooks/job-patch/serviceaccount_test.yaml diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index 2141ef44c..d73a50114 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -263,7 +263,13 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.admissionWebhooks.patch.nodeSelector."kubernetes.io/os" | string | `"linux"` | | | controller.admissionWebhooks.patch.podAnnotations | object | `{}` | | | controller.admissionWebhooks.patch.priorityClassName | string | `""` | Provide a priority class name to the webhook patching job # | +| controller.admissionWebhooks.patch.rbac | object | `{"create":true}` | Admission webhook patch job RBAC | +| controller.admissionWebhooks.patch.rbac.create | bool | `true` | Create RBAC or not | | controller.admissionWebhooks.patch.securityContext | object | `{}` | Security context for secret creation & webhook patch pods | +| controller.admissionWebhooks.patch.serviceAccount | object | `{"automountServiceAccountToken":true,"create":true,"name":""}` | Admission webhook patch job service account | +| controller.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken | bool | `true` | Auto-mount service account token or not | +| controller.admissionWebhooks.patch.serviceAccount.create | bool | `true` | Create a service account or not | +| controller.admissionWebhooks.patch.serviceAccount.name | string | `""` | Custom service account name | | controller.admissionWebhooks.patch.tolerations | list | `[]` | | | controller.admissionWebhooks.patchWebhookJob.name | string | `"patch"` | | | controller.admissionWebhooks.patchWebhookJob.resources | object | `{}` | | diff --git a/charts/ingress-nginx/templates/_helpers.tpl b/charts/ingress-nginx/templates/_helpers.tpl index 9ac2dc569..0c6a3e207 100644 --- a/charts/ingress-nginx/templates/_helpers.tpl +++ b/charts/ingress-nginx/templates/_helpers.tpl @@ -167,6 +167,17 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- printf "%s-%s" (include "ingress-nginx.fullname" .) .Values.controller.admissionWebhooks.name | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{/* +Create the name of the admission webhook patch job service account to use +*/}} +{{- define "ingress-nginx.admissionWebhooks.patch.serviceAccountName" -}} +{{- if .Values.controller.admissionWebhooks.patch.serviceAccount.create -}} + {{ default (include "ingress-nginx.admissionWebhooks.fullname" .) .Values.controller.admissionWebhooks.patch.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.controller.admissionWebhooks.patch.serviceAccount.name }} +{{- end -}} +{{- end -}} + {{/* Create a default fully qualified admission webhook secret creation job name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml index 8271dc404..a21848201 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled (not .Values.controller.admissionWebhooks.certManager.enabled) -}} +{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.controller.admissionWebhooks.patch.rbac.create (not .Values.controller.admissionWebhooks.certManager.enabled) -}} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml index 3fe842d1f..b89388433 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled (not .Values.controller.admissionWebhooks.certManager.enabled) -}} +{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.controller.admissionWebhooks.patch.rbac.create (not .Values.controller.admissionWebhooks.certManager.enabled) -}} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -18,6 +18,6 @@ roleRef: name: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} + name: {{ include "ingress-nginx.admissionWebhooks.patch.serviceAccountName" . }} namespace: {{ include "ingress-nginx.namespace" . }} {{- end }} diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml index 0a21f856a..176616467 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml @@ -66,7 +66,7 @@ spec: resources: {{ toYaml .Values.controller.admissionWebhooks.createSecretJob.resources | nindent 12 }} {{- end }} restartPolicy: OnFailure - serviceAccountName: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} + serviceAccountName: {{ include "ingress-nginx.admissionWebhooks.patch.serviceAccountName" . }} {{- if .Values.controller.admissionWebhooks.patch.nodeSelector }} nodeSelector: {{ toYaml .Values.controller.admissionWebhooks.patch.nodeSelector | nindent 8 }} {{- end }} diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml index ce9985aa5..f7d44a24d 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml @@ -68,7 +68,7 @@ spec: resources: {{ toYaml .Values.controller.admissionWebhooks.patchWebhookJob.resources | nindent 12 }} {{- end }} restartPolicy: OnFailure - serviceAccountName: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} + serviceAccountName: {{ include "ingress-nginx.admissionWebhooks.patch.serviceAccountName" . }} {{- if .Values.controller.admissionWebhooks.patch.nodeSelector }} nodeSelector: {{ toYaml .Values.controller.admissionWebhooks.patch.nodeSelector | nindent 8 }} {{- end }} diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/role.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/role.yaml index 5b05d9b00..c4b23aa08 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/role.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/role.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled (not .Values.controller.admissionWebhooks.certManager.enabled) -}} +{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.controller.admissionWebhooks.patch.rbac.create (not .Values.controller.admissionWebhooks.certManager.enabled) -}} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml index 48a175566..425e8d821 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled (not .Values.controller.admissionWebhooks.certManager.enabled) -}} +{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.controller.admissionWebhooks.patch.rbac.create (not .Values.controller.admissionWebhooks.certManager.enabled) -}} apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: @@ -19,6 +19,6 @@ roleRef: name: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} subjects: - kind: ServiceAccount - name: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} + name: {{ include "ingress-nginx.admissionWebhooks.patch.serviceAccountName" . }} namespace: {{ include "ingress-nginx.namespace" . }} {{- end }} diff --git a/charts/ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml b/charts/ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml index 91bbf22bb..52f94dcce 100644 --- a/charts/ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml +++ b/charts/ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml @@ -1,8 +1,8 @@ -{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled (not .Values.controller.admissionWebhooks.certManager.enabled) -}} +{{- if and .Values.controller.admissionWebhooks.enabled .Values.controller.admissionWebhooks.patch.enabled .Values.controller.admissionWebhooks.patch.serviceAccount.create (not .Values.controller.admissionWebhooks.certManager.enabled) -}} apiVersion: v1 kind: ServiceAccount metadata: - name: {{ include "ingress-nginx.admissionWebhooks.fullname" . }} + name: {{ include "ingress-nginx.admissionWebhooks.patch.serviceAccountName" . }} namespace: {{ include "ingress-nginx.namespace" . }} annotations: "helm.sh/hook": pre-install,pre-upgrade,post-install,post-upgrade @@ -13,4 +13,5 @@ metadata: {{- with .Values.controller.admissionWebhooks.patch.labels }} {{- toYaml . | nindent 4 }} {{- end }} +automountServiceAccountToken: {{ .Values.controller.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken }} {{- end }} diff --git a/charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrole_test.yaml b/charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrole_test.yaml new file mode 100644 index 000000000..d7a8b8852 --- /dev/null +++ b/charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrole_test.yaml @@ -0,0 +1,11 @@ +suite: Admission Webhooks > Patch Job > ClusterRole +templates: + - admission-webhooks/job-patch/clusterrole.yaml + +tests: + - it: should not create a ClusterRole if `controller.admissionWebhooks.patch.rbac.create` is false + set: + controller.admissionWebhooks.patch.rbac.create: false + asserts: + - hasDocuments: + count: 0 diff --git a/charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrolebinding_test.yaml b/charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrolebinding_test.yaml new file mode 100644 index 000000000..d7c3266d2 --- /dev/null +++ b/charts/ingress-nginx/tests/admission-webhooks/job-patch/clusterrolebinding_test.yaml @@ -0,0 +1,11 @@ +suite: Admission Webhooks > Patch Job > ClusterRoleBinding +templates: + - admission-webhooks/job-patch/clusterrolebinding.yaml + +tests: + - it: should not create a ClusterRoleBinding if `controller.admissionWebhooks.patch.rbac.create` is false + set: + controller.admissionWebhooks.patch.rbac.create: false + asserts: + - hasDocuments: + count: 0 diff --git a/charts/ingress-nginx/tests/admission-webhooks/job-patch/role_test.yaml b/charts/ingress-nginx/tests/admission-webhooks/job-patch/role_test.yaml new file mode 100644 index 000000000..a236f3d7b --- /dev/null +++ b/charts/ingress-nginx/tests/admission-webhooks/job-patch/role_test.yaml @@ -0,0 +1,11 @@ +suite: Admission Webhooks > Patch Job > Role +templates: + - admission-webhooks/job-patch/role.yaml + +tests: + - it: should not create a Role if `controller.admissionWebhooks.patch.rbac.create` is false + set: + controller.admissionWebhooks.patch.rbac.create: false + asserts: + - hasDocuments: + count: 0 diff --git a/charts/ingress-nginx/tests/admission-webhooks/job-patch/rolebinding_test.yaml b/charts/ingress-nginx/tests/admission-webhooks/job-patch/rolebinding_test.yaml new file mode 100644 index 000000000..74abaa163 --- /dev/null +++ b/charts/ingress-nginx/tests/admission-webhooks/job-patch/rolebinding_test.yaml @@ -0,0 +1,11 @@ +suite: Admission Webhooks > Patch Job > RoleBinding +templates: + - admission-webhooks/job-patch/rolebinding.yaml + +tests: + - it: should not create a RoleBinding if `controller.admissionWebhooks.patch.rbac.create` is false + set: + controller.admissionWebhooks.patch.rbac.create: false + asserts: + - hasDocuments: + count: 0 diff --git a/charts/ingress-nginx/tests/admission-webhooks/job-patch/serviceaccount_test.yaml b/charts/ingress-nginx/tests/admission-webhooks/job-patch/serviceaccount_test.yaml new file mode 100644 index 000000000..7c30d1e66 --- /dev/null +++ b/charts/ingress-nginx/tests/admission-webhooks/job-patch/serviceaccount_test.yaml @@ -0,0 +1,47 @@ +suite: Admission Webhooks > Patch Job > ServiceAccount +templates: + - admission-webhooks/job-patch/serviceaccount.yaml + +tests: + - it: should not create a ServiceAccount if `controller.admissionWebhooks.patch.serviceAccount.create` is false + set: + controller.admissionWebhooks.patch.serviceAccount.create: false + asserts: + - hasDocuments: + count: 0 + + - it: should create a ServiceAccount if `controller.admissionWebhooks.patch.serviceAccount.create` is true + set: + controller.admissionWebhooks.patch.serviceAccount.create: true + asserts: + - hasDocuments: + count: 1 + - isKind: + of: ServiceAccount + - equal: + path: metadata.name + value: ingress-nginx-admission + + - it: should create a ServiceAccount with specified name if `controller.admissionWebhooks.patch.serviceAccount.name` is set + set: + controller.admissionWebhooks.patch.serviceAccount.name: ingress-nginx-admission-test-sa + asserts: + - hasDocuments: + count: 1 + - isKind: + of: ServiceAccount + - equal: + path: metadata.name + value: ingress-nginx-admission-test-sa + + - it: should create a ServiceAccount with token auto-mounting disabled if `controller.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken` is false + set: + controller.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken: false + asserts: + - hasDocuments: + count: 1 + - isKind: + of: ServiceAccount + - equal: + path: automountServiceAccountToken + value: false diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index 0fd0ccc7b..f09edbe74 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -822,6 +822,18 @@ controller: labels: {} # -- Security context for secret creation & webhook patch pods securityContext: {} + # -- Admission webhook patch job RBAC + rbac: + # -- Create RBAC or not + create: true + # -- Admission webhook patch job service account + serviceAccount: + # -- Create a service account or not + create: true + # -- Custom service account name + name: "" + # -- Auto-mount service account token or not + automountServiceAccountToken: true # Use certmanager to generate webhook certs certManager: enabled: false From 90ef45852ca4bf0db53c508c098ff265f2f9fb03 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Mon, 3 Jun 2024 12:12:58 +0200 Subject: [PATCH 144/184] Chart: Fix `IngressClass` annotations. (#11416) --- .../controller-ingressclass-aliases.yaml | 3 +++ .../templates/controller-ingressclass.yaml | 4 +++- .../controller-ingressclass-aliases_test.yaml | 18 ++++++++++++++++++ .../tests/controller-ingressclass_test.yaml | 16 ++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml b/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml index b4b20690e..ffe22310c 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass-aliases.yaml @@ -11,6 +11,9 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ . }} + {{- if $.Values.controller.ingressClassResource.annotations }} + annotations: {{ toYaml $.Values.controller.ingressClassResource.annotations | nindent 4 }} + {{- end }} spec: controller: {{ $.Values.controller.ingressClassResource.controllerValue }} {{- with $.Values.controller.ingressClassResource.parameters }} diff --git a/charts/ingress-nginx/templates/controller-ingressclass.yaml b/charts/ingress-nginx/templates/controller-ingressclass.yaml index 18cace48c..98479a529 100644 --- a/charts/ingress-nginx/templates/controller-ingressclass.yaml +++ b/charts/ingress-nginx/templates/controller-ingressclass.yaml @@ -9,13 +9,15 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} name: {{ .Values.controller.ingressClassResource.name }} + {{- if or .Values.controller.ingressClassResource.default .Values.controller.ingressClassResource.annotations }} annotations: {{- if .Values.controller.ingressClassResource.default }} ingressclass.kubernetes.io/is-default-class: "true" {{- end }} {{- if .Values.controller.ingressClassResource.annotations }} - {{- toYaml .Values.controller.ingressClassResource.annotations | nindent 4 }} + {{- toYaml .Values.controller.ingressClassResource.annotations | nindent 4 }} {{- end }} + {{- end }} spec: controller: {{ .Values.controller.ingressClassResource.controllerValue }} {{- with .Values.controller.ingressClassResource.parameters }} diff --git a/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml b/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml index ef0780d9c..9a4a576b7 100644 --- a/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml +++ b/charts/ingress-nginx/tests/controller-ingressclass-aliases_test.yaml @@ -37,6 +37,24 @@ tests: - notExists: path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"] + - it: should create an IngressClass alias with annotations if `controller.ingressClassResource.annotations` is set + set: + controller.ingressClassResource.aliases: + - nginx-alias + controller.ingressClassResource.annotations: + my-fancy-annotation: has-a-value + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx-alias + - equal: + path: metadata.annotations.my-fancy-annotation + value: has-a-value + - it: should create an IngressClass alias with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" set: controller.ingressClassResource.aliases: diff --git a/charts/ingress-nginx/tests/controller-ingressclass_test.yaml b/charts/ingress-nginx/tests/controller-ingressclass_test.yaml index f766f922e..b3384af32 100644 --- a/charts/ingress-nginx/tests/controller-ingressclass_test.yaml +++ b/charts/ingress-nginx/tests/controller-ingressclass_test.yaml @@ -40,6 +40,22 @@ tests: path: metadata.annotations["ingressclass.kubernetes.io/is-default-class"] value: "true" + - it: should create an IngressClass with annotations if `controller.ingressClassResource.annotations` is set + set: + controller.ingressClassResource.annotations: + my-fancy-annotation: has-a-value + asserts: + - hasDocuments: + count: 1 + - isKind: + of: IngressClass + - equal: + path: metadata.name + value: nginx + - equal: + path: metadata.annotations.my-fancy-annotation + value: has-a-value + - it: should create an IngressClass with controller "k8s.io/ingress-nginx-internal" if `controller.ingressClassResource.controllerValue` is "k8s.io/ingress-nginx-internal" set: controller.ingressClassResource.controllerValue: k8s.io/ingress-nginx-internal From 1ed04abc1d848f79582f7a3981cd6095f4ff8cbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 05:07:02 -0700 Subject: [PATCH 145/184] Bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#11417) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.63.2...v1.64.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cf17df231..55375a635 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 golang.org/x/crypto v0.23.0 golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f - google.golang.org/grpc v1.63.2 + google.golang.org/grpc v1.64.0 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 diff --git a/go.sum b/go.sum index eb6fcc026..04e7769ed 100644 --- a/go.sum +++ b/go.sum @@ -1846,8 +1846,8 @@ google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab h1:tg8hvIl5RmFBuXlcJMuL0h4Psh1gx5Q5xEMwzBZIzWA= google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab/go.mod h1:liVNnGuZDITxuksuZ+BBvdy7FcJfeNk+efF9qgqNUmc= From 285cc433da959f46ec89e473057b93054ecc4e08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 05:10:38 -0700 Subject: [PATCH 146/184] Bump github.com/onsi/ginkgo/v2 from 2.17.2 to 2.19.0 (#11418) Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.17.2 to 2.19.0. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.17.2...v2.19.0) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 55375a635..86a32fc6b 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,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.11 - github.com/onsi/ginkgo/v2 v2.17.2 + github.com/onsi/ginkgo/v2 v2.19.0 github.com/opencontainers/runc v1.1.12 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.1 @@ -109,14 +109,14 @@ require ( go.starlark.net v0.0.0-20240123142251-f86470692795 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/term v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.20.0 // indirect + golang.org/x/tools v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6 // indirect google.golang.org/protobuf v1.34.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.9.0 // indirect diff --git a/go.sum b/go.sum index 04e7769ed..e723adabe 100644 --- a/go.sum +++ b/go.sum @@ -986,8 +986,8 @@ 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.17.2 h1:7eMhcy3GimbsA3hEnVKdw/PQM9XN9krpKVXsZdph0/g= -github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= 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.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= @@ -1298,8 +1298,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= 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= @@ -1571,8 +1571,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= -golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= From c8722b225d06bdeb8385114886549e021c453edd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 05:13:07 -0700 Subject: [PATCH 147/184] Bump the all group with 2 updates (#11419) Bumps the all group with 2 updates: [docker/login-action](https://github.com/docker/login-action) and [github/codeql-action](https://github.com/github/codeql-action). Updates `docker/login-action` from 3.1.0 to 3.2.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) Updates `github/codeql-action` from 3.25.6 to 3.25.7 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/9fdb3e49720b44c48891d036bb502feb25684276...f079b8493333aace61c81488f8bd40919487bd9f) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/images.yaml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 2 +- .github/workflows/zz-tmpl-images.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index 18c09a570..cd63a376e 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -205,7 +205,7 @@ jobs: version: latest platforms: ${{ env.PLATFORMS }} - name: Login to GitHub Container Registry - uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 + uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 75e12a95b..0cec67927 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index c6f51a372..314f39ac8 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index 7d7f7a284..17425a468 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -70,7 +70,7 @@ jobs: uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: Login to GitHub Container Registry - uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 + uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From ac9e40a8cf85ec5bf436537110696cfaaa93fe5f Mon Sep 17 00:00:00 2001 From: James Strong Date: Thu, 6 Jun 2024 07:23:55 -0400 Subject: [PATCH 148/184] update golang to 1.22.4 (#11427) Signed-off-by: James Strong --- GOLANG_VERSION | 2 +- go.mod | 2 +- go.work.sum | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/GOLANG_VERSION b/GOLANG_VERSION index 8864ad297..be02b337a 100644 --- a/GOLANG_VERSION +++ b/GOLANG_VERSION @@ -1 +1 @@ -1.22.2 \ No newline at end of file +1.22.4 \ No newline at end of file diff --git a/go.mod b/go.mod index 86a32fc6b..def9b0876 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module k8s.io/ingress-nginx go 1.22.0 -toolchain go1.22.2 +toolchain go1.22.4 require ( dario.cat/mergo v1.0.0 diff --git a/go.work.sum b/go.work.sum index 51c6a3e66..0fd4fc8e2 100644 --- a/go.work.sum +++ b/go.work.sum @@ -779,6 +779,7 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/ncabatoff/fakescraper v0.0.0-20201102132415-4b37ba603d65 h1:Og+dVkxEQNvRGU2vUKeOwYT2UJ+pEaDMWB6tIQnIh6A= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/onsi/gomega v1.33.0/go.mod h1:+925n5YtiFsLzzafLUHzVMBpvvRAzrydIBiSIxjX3wY= @@ -796,7 +797,6 @@ github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= github.com/prometheus/exporter-toolkit v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -903,6 +903,7 @@ golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= @@ -921,6 +922,7 @@ golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= From d49833be1d538e2083bd34d097832695eccb15c7 Mon Sep 17 00:00:00 2001 From: Vadim Bauer Date: Sun, 9 Jun 2024 17:29:50 +0200 Subject: [PATCH 149/184] Update index.md (#11437) add section about how to setup the proxy protocol for scaleway --- docs/deploy/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/deploy/index.md b/docs/deploy/index.md index d8cc6f875..c70b932c9 100644 --- a/docs/deploy/index.md +++ b/docs/deploy/index.md @@ -364,6 +364,8 @@ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/cont ```console kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/scw/deploy.yaml ``` +Refer to the [dedicated tutorial](https://www.scaleway.com/en/docs/tutorials/proxy-protocol-v2-load-balancer/#configuring-proxy-protocol-for-ingress-nginx) in the Scaleway documentation for configuring the proxy protocol for ingress-nginx with the Scaleway load balancer. + #### Exoscale From ec296594c788659b8c1427dba0956cef71768efa Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Mon, 10 Jun 2024 04:23:14 +0530 Subject: [PATCH 150/184] fix for docs issue 11432 (#11433) --- docs/user-guide/nginx-configuration/annotations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/nginx-configuration/annotations.md b/docs/user-guide/nginx-configuration/annotations.md index 0ea54a29f..47ebd30e3 100755 --- a/docs/user-guide/nginx-configuration/annotations.md +++ b/docs/user-guide/nginx-configuration/annotations.md @@ -958,7 +958,7 @@ Enables a request to be mirrored to a mirror backend. Responses by mirror backen The mirror backend can be set by applying: ```yaml -nginx.ingress.kubernetes.io/mirror-target: https://test.env.com/$request_uri +nginx.ingress.kubernetes.io/mirror-target: https://test.env.com$request_uri ``` By default the request-body is sent to the mirror backend, but can be turned off by applying: @@ -970,7 +970,7 @@ nginx.ingress.kubernetes.io/mirror-request-body: "off" Also by default header Host for mirrored requests will be set the same as a host part of uri in the "mirror-target" annotation. You can override it by "mirror-host" annotation: ```yaml -nginx.ingress.kubernetes.io/mirror-target: https://1.2.3.4/$request_uri +nginx.ingress.kubernetes.io/mirror-target: https://1.2.3.4$request_uri nginx.ingress.kubernetes.io/mirror-host: "test.env.com" ``` From 0cf19948646bf14d7ef19a4c7e0b0598f32e8041 Mon Sep 17 00:00:00 2001 From: James Strong Date: Sun, 9 Jun 2024 20:17:59 -0400 Subject: [PATCH 151/184] upgrade to alpine 3.20 (#11428) Signed-off-by: James Strong --- images/cfssl/rootfs/Dockerfile | 2 +- images/nginx-1.25/rootfs/Dockerfile | 4 ++-- images/nginx/rootfs/Dockerfile | 4 ++-- images/opentelemetry/rootfs/Dockerfile | 2 +- rootfs/Dockerfile-chroot | 2 +- test/e2e-image/Dockerfile | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/images/cfssl/rootfs/Dockerfile b/images/cfssl/rootfs/Dockerfile index 2afc43c7a..c23f66d49 100644 --- a/images/cfssl/rootfs/Dockerfile +++ b/images/cfssl/rootfs/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.19.1 +FROM alpine:3.20.0 RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories RUN apk update \ diff --git a/images/nginx-1.25/rootfs/Dockerfile b/images/nginx-1.25/rootfs/Dockerfile index 8327d99f2..13dcec33d 100644 --- a/images/nginx-1.25/rootfs/Dockerfile +++ b/images/nginx-1.25/rootfs/Dockerfile @@ -11,7 +11,7 @@ # 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. -FROM alpine:3.19.1 as builder +FROM alpine:3.20.0 as builder COPY . / @@ -21,7 +21,7 @@ RUN apk update \ && /build.sh # Use a multi-stage build -FROM alpine:3.19.1 +FROM alpine:3.20.0 ENV PATH=$PATH:/usr/local/luajit/bin:/usr/local/nginx/sbin:/usr/local/nginx/bin diff --git a/images/nginx/rootfs/Dockerfile b/images/nginx/rootfs/Dockerfile index 3dd841c6c..f3d61017e 100644 --- a/images/nginx/rootfs/Dockerfile +++ b/images/nginx/rootfs/Dockerfile @@ -11,7 +11,7 @@ # 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. -FROM alpine:3.19.1 as builder +FROM alpine:3.20.0 as builder COPY . / @@ -21,7 +21,7 @@ RUN apk update \ && /build.sh # Use a multi-stage build -FROM alpine:3.19.1 +FROM alpine:3.20.0 ENV PATH=$PATH:/usr/local/luajit/bin:/usr/local/nginx/sbin:/usr/local/nginx/bin diff --git a/images/opentelemetry/rootfs/Dockerfile b/images/opentelemetry/rootfs/Dockerfile index bb88ec760..eb951e5c4 100644 --- a/images/opentelemetry/rootfs/Dockerfile +++ b/images/opentelemetry/rootfs/Dockerfile @@ -13,7 +13,7 @@ # limitations under the License. -FROM alpine:3.19.1 as base +FROM alpine:3.20.0 as base RUN mkdir -p /opt/third_party/install COPY . /opt/third_party/ diff --git a/rootfs/Dockerfile-chroot b/rootfs/Dockerfile-chroot index 98f078261..c06db2252 100644 --- a/rootfs/Dockerfile-chroot +++ b/rootfs/Dockerfile-chroot @@ -23,7 +23,7 @@ RUN apk update \ && apk upgrade \ && /chroot.sh -FROM alpine:3.19.1 +FROM alpine:3.20.0 ARG TARGETARCH ARG VERSION diff --git a/test/e2e-image/Dockerfile b/test/e2e-image/Dockerfile index 6c1fbefc6..0130ca09b 100644 --- a/test/e2e-image/Dockerfile +++ b/test/e2e-image/Dockerfile @@ -1,7 +1,7 @@ ARG E2E_BASE_IMAGE FROM ${E2E_BASE_IMAGE} AS BASE -FROM alpine:3.19.1 +FROM alpine:3.20.0 RUN apk update \ && apk upgrade && apk add -U --no-cache \ From a68b1cf4786f68fe2d514227f7b27de9cc71fce3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 06:11:23 -0700 Subject: [PATCH 152/184] Bump github.com/prometheus/common from 0.53.0 to 0.54.0 (#11441) Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.53.0 to 0.54.0. - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.53.0...v0.54.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index def9b0876..c58b9032b 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.1 github.com/prometheus/client_model v0.6.1 - github.com/prometheus/common v0.53.0 + github.com/prometheus/common v0.54.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index e723adabe..7da5996db 100644 --- a/go.sum +++ b/go.sum @@ -1044,8 +1044,8 @@ github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/common v0.52.3/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/exporter-toolkit v0.11.0/go.mod h1:BVnENhnNecpwoTLiABx7mrPB/OLRIgN74qlQbV+FK1Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 61c1afa57133bfe62802b3a55ca6293c684ce92e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 07:06:13 -0700 Subject: [PATCH 153/184] Bump goreleaser/goreleaser-action from 5.1.0 to 6.0.0 (#11444) Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 5.1.0 to 6.0.0. - [Release notes](https://github.com/goreleaser/goreleaser-action/releases) - [Commits](https://github.com/goreleaser/goreleaser-action/compare/5742e2a039330cbb23ebf35f046f814d4c6ff811...286f3b13b1b49da4ac219696163fb8c1c93e1200) --- updated-dependencies: - dependency-name: goreleaser/goreleaser-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/plugin.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index 137e1dccc..8274a6a99 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -27,7 +27,7 @@ jobs: - name: Run GoReleaser Snapshot if: ${{ ! startsWith(github.ref, 'refs/tags/') }} - uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 + uses: goreleaser/goreleaser-action@286f3b13b1b49da4ac219696163fb8c1c93e1200 # v6.0.0 with: version: latest args: release --snapshot --clean @@ -36,7 +36,7 @@ jobs: - name: Run GoReleaser if: ${{ startsWith(github.ref, 'refs/tags/') }} - uses: goreleaser/goreleaser-action@5742e2a039330cbb23ebf35f046f814d4c6ff811 # v5.1.0 + uses: goreleaser/goreleaser-action@286f3b13b1b49da4ac219696163fb8c1c93e1200 # v6.0.0 with: version: latest args: release --clean From 38e7582109e2d2c9668365fefbf034ef8b696315 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 07:10:56 -0700 Subject: [PATCH 154/184] Bump sigs.k8s.io/controller-runtime in the all group (#11440) Bumps the all group with 1 update: [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime). Updates `sigs.k8s.io/controller-runtime` from 0.18.3 to 0.18.4 - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.18.3...v0.18.4) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c58b9032b..4ef8611cd 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( k8s.io/component-base v0.30.1 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 - sigs.k8s.io/controller-runtime v0.18.3 + sigs.k8s.io/controller-runtime v0.18.4 sigs.k8s.io/mdtoc v1.1.0 ) diff --git a/go.sum b/go.sum index 7da5996db..205f07a7f 100644 --- a/go.sum +++ b/go.sum @@ -1977,8 +1977,8 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.18.3 h1:B5Wmmo8WMWK7izei+2LlXLVDGzMwAHBNLX68lwtlSR4= -sigs.k8s.io/controller-runtime v0.18.3/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= +sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw= +sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g= From 71d423851e133aec3c431f191aefb359d1b1e683 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 07:14:19 -0700 Subject: [PATCH 155/184] Bump the all group with 3 updates (#11443) Bumps the all group with 3 updates: [actions/dependency-review-action](https://github.com/actions/dependency-review-action), [github/codeql-action](https://github.com/github/codeql-action) and [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action). Updates `actions/dependency-review-action` from 4.3.2 to 4.3.3 - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/0c155c5e8556a497adf53f2c18edabf945ed8e70...72eb03d02c7872a771aacd928f3123ac62ad6d3a) Updates `github/codeql-action` from 3.25.7 to 3.25.8 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/f079b8493333aace61c81488f8bd40919487bd9f...2e230e8fe0ad3a14a340ad0815ddb96d599d2aff) Updates `aquasecurity/trivy-action` from 0.21.0 to 0.22.0 - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/fd25fed6972e341ff0007ddb61f77e88103953c2...595be6a0f6560a0a8fc419ddf630567fc623531d) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/depreview.yaml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/vulnerability-scans.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index fea5a4e4e..2aacbd6cc 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -11,4 +11,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: 'Dependency Review' - uses: actions/dependency-review-action@0c155c5e8556a497adf53f2c18edabf945ed8e70 # v4.3.2 + uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 0cec67927..89ee0b55b 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 314f39ac8..19a66053f 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -60,7 +60,7 @@ jobs: - name: Scan image with AquaSec/Trivy id: scan - uses: aquasecurity/trivy-action@fd25fed6972e341ff0007ddb61f77e88103953c2 # v0.21.0 + uses: aquasecurity/trivy-action@595be6a0f6560a0a8fc419ddf630567fc623531d # v0.22.0 with: image-ref: registry.k8s.io/ingress-nginx/controller:${{ matrix.versions }} format: 'sarif' @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7 + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository From 4038211261e464a36296dee9d31c1868198236f5 Mon Sep 17 00:00:00 2001 From: Ali Afsharzadeh Date: Mon, 10 Jun 2024 17:54:35 +0330 Subject: [PATCH 156/184] Remove unnecessary space character (#11434) --- rootfs/nginx-chroot-wrapper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/nginx-chroot-wrapper.sh b/rootfs/nginx-chroot-wrapper.sh index f7318142f..0c8bdf3b7 100755 --- a/rootfs/nginx-chroot-wrapper.sh +++ b/rootfs/nginx-chroot-wrapper.sh @@ -15,4 +15,4 @@ # limitations under the License. cat /etc/resolv.conf > /chroot/etc/resolv.conf -unshare -S 101 -R /chroot nginx "$@" +unshare -S 101 -R /chroot nginx "$@" From 8ca27e7ee902ec6b77c7cfb1749254cdbab36c24 Mon Sep 17 00:00:00 2001 From: Long Wu Yuan Date: Wed, 12 Jun 2024 13:08:56 +0530 Subject: [PATCH 157/184] fixed fastcgi userguide (#11454) --- docs/user-guide/fcgi-services.md | 112 ++++++++++++++++++++++++++++--- 1 file changed, 101 insertions(+), 11 deletions(-) diff --git a/docs/user-guide/fcgi-services.md b/docs/user-guide/fcgi-services.md index db4d9428b..836e9fbaa 100644 --- a/docs/user-guide/fcgi-services.md +++ b/docs/user-guide/fcgi-services.md @@ -1,5 +1,3 @@ - - # Exposing FastCGI Servers > **FastCGI** is a [binary protocol](https://en.wikipedia.org/wiki/Binary_protocol "Binary protocol") for interfacing interactive programs with a [web server](https://en.wikipedia.org/wiki/Web_server "Web server"). [...] (It's) aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time. @@ -8,10 +6,15 @@ The _ingress-nginx_ ingress controller can be used to directly expose [FastCGI](https://en.wikipedia.org/wiki/FastCGI) servers. Enabling FastCGI in your Ingress only requires setting the _backend-protocol_ annotation to `FCGI`, and with a couple more annotations you can customize the way _ingress-nginx_ handles the communication with your FastCGI _server_. +For most practical use-cases, php applications are a good example. PHP is not HTML so a FastCGI server like php-fpm processes a index.php script for the response to a request. See a working example below. -## Example Objects to Expose a FastCGI Pod +This [post in a FactCGI feature issue](https://github.com/kubernetes/ingress-nginx/issues/8207#issuecomment-2161405468) describes a test for the FastCGI feature. The same test is described below here. -The _Pod_ example object below exposes port `9000`, which is the conventional FastCGI port. +## Example Objects to expose a FastCGI server pod + +### The FasctCGI server pod + +The _Pod_ object example below exposes port `9000`, which is the conventional FastCGI port. ```yaml apiVersion: v1 @@ -23,12 +26,40 @@ labels: spec: containers: - name: example-app - image: example-app:1.0 + image: php:fpm-alpine ports: - containerPort: 9000 name: fastcgi ``` +- For this example to work, a HTML response should be received from the FastCGI server being exposed +- A HTTP request to the FastCGI server pod should be sent +- The response should be generated by a php script as that is what we are demonstrating here + +The image we are using here `php:fpm-alpine` does not ship with a ready to use php script inside it. So we need to provide the image with a simple php-script for this example to work. + +- Use `kubectl exec` to get into the example-app pod +- You will land at the path `/var/www/html` +- Create a simple php script there at the path /var/www/html called index.php +- Make the index.php file look like this + +``` + + + + PHP Test + + + FastCGI Test Worked!

'; ?> + + +``` + +- Save and exit from the shell in the pod +- If you delete the pod, then you will have to recreate the file as this method is not persistent + +### The FastCGI service + The _Service_ object example below matches port `9000` from the _Pod_ object above. ```yaml @@ -45,21 +76,41 @@ spec: name: fastcgi ``` -And the _Ingress_ and _ConfigMap_ objects below demonstrates the supported _FastCGI_ specific annotations (NGINX actually has 50 FastCGI directives, all of which have not been exposed in the ingress yet), and matches the service `example-service`, and the port named `fastcgi` from above. The _ConfigMap_ **must** be created first for the _Ingress Controller_ to be able to find it when the _Ingress_ object is created, otherwise you will need to restart the _Ingress Controller_ pods. +### The configMap object and the ingress object + +The _Ingress_ and _ConfigMap_ objects below demonstrate the supported _FastCGI_ specific annotations. + +!!! Important + NGINX actually has 50 [FastCGI directives](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#directives) + All of the nginx directives have not been exposed in the ingress yet + +### The ConfigMap object + +This configMap object is required to set the parameters of [FastCGI directives](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#directives) + +!!! Attention + - The _ConfigMap_ **must** be created before creating the ingress object + +- The _Ingress Controller_ needs to find the configMap when the _Ingress_ object with the FastCGI annotations is created +- So create the configMap before the ingress +- If the configMap is created after the ingress is created, then you will need to restart the _Ingress Controller_ pods. ```yaml -# The ConfigMap MUST be created first for the ingress controller to be able to -# find it when the Ingress object is created. - apiVersion: v1 kind: ConfigMap metadata: name: example-cm data: - SCRIPT_FILENAME: "/example/index.php" + SCRIPT_FILENAME: "/var/www/html/index.php" ---- +``` +### The ingress object + +- Do not create the ingress shown below until you have created the configMap seen above. +- You can see that this ingress matches the service `example-service`, and the port named `fastcgi` from above. + +``` apiVersion: networking.k8s.io/v1 kind: Ingress metadata: @@ -83,6 +134,44 @@ spec: name: fastcgi ``` +## Send a request to the exposed FastCGI server + +You will have to look at the external-ip of the ingress or you have to send the HTTP request to the ClusterIP address of the ingress-nginx controller pod. + +``` +% curl 172.19.0.2 -H "Host: app.example.com" -vik +* Trying 172.19.0.2:80... +* Connected to 172.19.0.2 (172.19.0.2) port 80 +> GET / HTTP/1.1 +> Host: app.example.com +> User-Agent: curl/8.6.0 +> Accept: */* +> +< HTTP/1.1 200 OK +HTTP/1.1 200 OK +< Date: Wed, 12 Jun 2024 07:11:59 GMT +Date: Wed, 12 Jun 2024 07:11:59 GMT +< Content-Type: text/html; charset=UTF-8 +Content-Type: text/html; charset=UTF-8 +< Transfer-Encoding: chunked +Transfer-Encoding: chunked +< Connection: keep-alive +Connection: keep-alive +< X-Powered-By: PHP/8.3.8 +X-Powered-By: PHP/8.3.8 + +< + + + + PHP Test + + +

FastCGI Test Worked

+ + +``` + ## FastCGI Ingress Annotations To enable FastCGI, the `nginx.ingress.kubernetes.io/backend-protocol` annotation needs to be set to `FCGI`, which overrides the default `HTTP` value. @@ -114,6 +203,7 @@ data: SCRIPT_FILENAME: "/example/index.php" HTTP_PROXY: "" ``` + Using the _namespace/_ prefix is also supported, for example: > `nginx.ingress.kubernetes.io/fastcgi-params-configmap: "example-namespace/example-configmap"` From af9e5246ad09a304ef68d11f1467185dbd12fe72 Mon Sep 17 00:00:00 2001 From: TheRealNoob Date: Fri, 14 Jun 2024 02:13:44 -0700 Subject: [PATCH 158/184] Chart: Make pod affinity templatable. (#11453) * [helm] template pod affinity * update README * Apply suggestions from code review Co-authored-by: Marco Ebert * revert Chart.yaml version bump * add unittests * add docs defaultBackend.affinity * add README section to values * fix README syntax * Apply suggestions from code review Co-authored-by: Marco Ebert * Update charts/ingress-nginx/values.yaml Co-authored-by: Marco Ebert * update formatting of unittests + add README examples * fix affinity labels on default-backend * Apply suggestions from code review Co-authored-by: Marco Ebert * remove double quotes on string --------- Co-authored-by: Marco Ebert --- charts/ingress-nginx/README.md | 2 +- .../templates/controller-daemonset.yaml | 2 +- .../templates/controller-deployment.yaml | 2 +- .../templates/default-backend-deployment.yaml | 2 +- .../tests/controller-daemonset_test.yaml | 43 +++++++++++++++ .../tests/controller-deployment_test.yaml | 42 +++++++++++++++ .../default-backend-deployment_test.yaml | 43 +++++++++++++++ charts/ingress-nginx/values.yaml | 52 +++++++++++++++++-- 8 files changed, 179 insertions(+), 9 deletions(-) diff --git a/charts/ingress-nginx/README.md b/charts/ingress-nginx/README.md index d73a50114..e35da750a 100644 --- a/charts/ingress-nginx/README.md +++ b/charts/ingress-nginx/README.md @@ -485,7 +485,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.udp.configMapNamespace | string | `""` | Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE) | | controller.updateStrategy | object | `{}` | The update strategy to apply to the Deployment or DaemonSet # | | controller.watchIngressWithoutClass | bool | `false` | Process Ingress objects without ingressClass annotation/ingressClassName field Overrides value for --watch-ingress-without-class flag of the controller binary Defaults to false | -| defaultBackend.affinity | object | `{}` | | +| defaultBackend.affinity | object | `{}` | Affinity and anti-affinity rules for server scheduling to nodes # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity | | defaultBackend.autoscaling.annotations | object | `{}` | | | defaultBackend.autoscaling.enabled | bool | `false` | | | defaultBackend.autoscaling.maxReplicas | int | `2` | | diff --git a/charts/ingress-nginx/templates/controller-daemonset.yaml b/charts/ingress-nginx/templates/controller-daemonset.yaml index 718e20c52..509d7a4c4 100644 --- a/charts/ingress-nginx/templates/controller-daemonset.yaml +++ b/charts/ingress-nginx/templates/controller-daemonset.yaml @@ -203,7 +203,7 @@ spec: tolerations: {{ toYaml .Values.controller.tolerations | nindent 8 }} {{- end }} {{- if .Values.controller.affinity }} - affinity: {{ toYaml .Values.controller.affinity | nindent 8 }} + affinity: {{ tpl (toYaml .Values.controller.affinity) $ | nindent 8 }} {{- end }} {{- if .Values.controller.topologySpreadConstraints }} topologySpreadConstraints: {{ tpl (toYaml .Values.controller.topologySpreadConstraints) $ | nindent 8 }} diff --git a/charts/ingress-nginx/templates/controller-deployment.yaml b/charts/ingress-nginx/templates/controller-deployment.yaml index 879802779..77ea0052f 100644 --- a/charts/ingress-nginx/templates/controller-deployment.yaml +++ b/charts/ingress-nginx/templates/controller-deployment.yaml @@ -206,7 +206,7 @@ spec: tolerations: {{ toYaml .Values.controller.tolerations | nindent 8 }} {{- end }} {{- if .Values.controller.affinity }} - affinity: {{ toYaml .Values.controller.affinity | nindent 8 }} + affinity: {{ tpl (toYaml .Values.controller.affinity) $ | nindent 8 }} {{- end }} {{- if .Values.controller.topologySpreadConstraints }} topologySpreadConstraints: {{ tpl (toYaml .Values.controller.topologySpreadConstraints) $ | nindent 8 }} diff --git a/charts/ingress-nginx/templates/default-backend-deployment.yaml b/charts/ingress-nginx/templates/default-backend-deployment.yaml index 6834dba07..c6ccdd5c9 100644 --- a/charts/ingress-nginx/templates/default-backend-deployment.yaml +++ b/charts/ingress-nginx/templates/default-backend-deployment.yaml @@ -107,7 +107,7 @@ spec: tolerations: {{ toYaml .Values.defaultBackend.tolerations | nindent 8 }} {{- end }} {{- if .Values.defaultBackend.affinity }} - affinity: {{ toYaml .Values.defaultBackend.affinity | nindent 8 }} + affinity: {{ tpl (toYaml .Values.defaultBackend.affinity) $ | nindent 8 }} {{- end }} {{- if .Values.defaultBackend.topologySpreadConstraints }} topologySpreadConstraints: {{ tpl (toYaml .Values.defaultBackend.topologySpreadConstraints) $ | nindent 8 }} diff --git a/charts/ingress-nginx/tests/controller-daemonset_test.yaml b/charts/ingress-nginx/tests/controller-daemonset_test.yaml index 29359fd9e..6ee794af9 100644 --- a/charts/ingress-nginx/tests/controller-daemonset_test.yaml +++ b/charts/ingress-nginx/tests/controller-daemonset_test.yaml @@ -95,3 +95,46 @@ tests: topologyKey: kubernetes.io/hostname maxSkew: 1 whenUnsatisfiable: ScheduleAnyway + + - it: should create a DaemonSet with affinity if `controller.affinity` is set + set: + controller.kind: DaemonSet + controller.affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - '{{ include "ingress-nginx.name" . }}' + - key: app.kubernetes.io/instance + operator: In + values: + - '{{ .Release.Name }}' + - key: app.kubernetes.io/component + operator: In + values: + - controller + topologyKey: kubernetes.io/hostname + asserts: + - equal: + path: spec.template.spec.affinity + value: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - ingress-nginx + - key: app.kubernetes.io/instance + operator: In + values: + - RELEASE-NAME + - key: app.kubernetes.io/component + operator: In + values: + - controller + topologyKey: kubernetes.io/hostname diff --git a/charts/ingress-nginx/tests/controller-deployment_test.yaml b/charts/ingress-nginx/tests/controller-deployment_test.yaml index d0330db90..82b97a0f7 100644 --- a/charts/ingress-nginx/tests/controller-deployment_test.yaml +++ b/charts/ingress-nginx/tests/controller-deployment_test.yaml @@ -118,3 +118,45 @@ tests: topologyKey: kubernetes.io/hostname maxSkew: 1 whenUnsatisfiable: ScheduleAnyway + + - it: should create a Deployment with affinity if `controller.affinity` is set + set: + controller.affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - '{{ include "ingress-nginx.name" . }}' + - key: app.kubernetes.io/instance + operator: In + values: + - '{{ .Release.Name }}' + - key: app.kubernetes.io/component + operator: In + values: + - controller + topologyKey: kubernetes.io/hostname + asserts: + - equal: + path: spec.template.spec.affinity + value: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - ingress-nginx + - key: app.kubernetes.io/instance + operator: In + values: + - RELEASE-NAME + - key: app.kubernetes.io/component + operator: In + values: + - controller + topologyKey: kubernetes.io/hostname diff --git a/charts/ingress-nginx/tests/default-backend-deployment_test.yaml b/charts/ingress-nginx/tests/default-backend-deployment_test.yaml index e6fd0c541..e237fe7e3 100644 --- a/charts/ingress-nginx/tests/default-backend-deployment_test.yaml +++ b/charts/ingress-nginx/tests/default-backend-deployment_test.yaml @@ -92,3 +92,46 @@ tests: topologyKey: kubernetes.io/hostname maxSkew: 1 whenUnsatisfiable: ScheduleAnyway + + - it: should create a Deployment with affinity if `defaultBackend.affinity` is set + set: + defaultBackend.enabled: true + defaultBackend.affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - '{{ include "ingress-nginx.name" . }}' + - key: app.kubernetes.io/instance + operator: In + values: + - '{{ .Release.Name }}' + - key: app.kubernetes.io/component + operator: In + values: + - default-backend + topologyKey: kubernetes.io/hostname + asserts: + - equal: + path: spec.template.spec.affinity + value: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - ingress-nginx + - key: app.kubernetes.io/instance + operator: In + values: + - RELEASE-NAME + - key: app.kubernetes.io/component + operator: In + values: + - default-backend + topologyKey: kubernetes.io/hostname diff --git a/charts/ingress-nginx/values.yaml b/charts/ingress-nginx/values.yaml index f09edbe74..c662cd2bb 100644 --- a/charts/ingress-nginx/values.yaml +++ b/charts/ingress-nginx/values.yaml @@ -260,11 +260,11 @@ controller: # - key: app.kubernetes.io/name # operator: In # values: - # - ingress-nginx + # - '{{ include "ingress-nginx.name" . }}' # - key: app.kubernetes.io/instance # operator: In # values: - # - ingress-nginx + # - '{{ .Release.Name }}' # - key: app.kubernetes.io/component # operator: In # values: @@ -279,16 +279,16 @@ controller: # - key: app.kubernetes.io/name # operator: In # values: - # - ingress-nginx + # - '{{ include "ingress-nginx.name" . }}' # - key: app.kubernetes.io/instance # operator: In # values: - # - ingress-nginx + # - '{{ .Release.Name }}' # - key: app.kubernetes.io/component # operator: In # values: # - controller - # topologyKey: "kubernetes.io/hostname" + # topologyKey: kubernetes.io/hostname # -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in. ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ @@ -1011,7 +1011,49 @@ defaultBackend: # value: "value" # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)" + # -- Affinity and anti-affinity rules for server scheduling to nodes + ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity affinity: {} + # # An example of preferred pod anti-affinity, weight is in the range 1-100 + # podAntiAffinity: + # preferredDuringSchedulingIgnoredDuringExecution: + # - weight: 100 + # podAffinityTerm: + # labelSelector: + # matchExpressions: + # - key: app.kubernetes.io/name + # operator: In + # values: + # - '{{ include "ingress-nginx.name" . }}' + # - key: app.kubernetes.io/instance + # operator: In + # values: + # - '{{ .Release.Name }}' + # - key: app.kubernetes.io/component + # operator: In + # values: + # - default-backend + # topologyKey: kubernetes.io/hostname + + # # An example of required pod anti-affinity + # podAntiAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # - labelSelector: + # matchExpressions: + # - key: app.kubernetes.io/name + # operator: In + # values: + # - '{{ include "ingress-nginx.name" . }}' + # - key: app.kubernetes.io/instance + # operator: In + # values: + # - '{{ .Release.Name }}' + # - key: app.kubernetes.io/component + # operator: In + # values: + # - default-backend + # topologyKey: kubernetes.io/hostname + # -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in. # Ref.: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ topologySpreadConstraints: [] From 68b59db3e932db354287547c8137fe1d696d3013 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Fri, 14 Jun 2024 19:38:06 +0200 Subject: [PATCH 159/184] Owners: Promote Gacko to admin. (#11463) --- OWNERS_ALIASES | 1 + 1 file changed, 1 insertion(+) diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index fa10804ce..1b5bb134b 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -7,6 +7,7 @@ aliases: - thockin ingress-nginx-admins: + - Gacko - rikatz - strongjz From 0718c89203df192e797ca38271073770a3cd4312 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Sat, 15 Jun 2024 10:05:28 +0200 Subject: [PATCH 160/184] Tests: Replace deprecated `grpc.Dial` by `grpc.NewClient`. (#11462) --- test/e2e/annotations/grpc.go | 10 +++++----- test/e2e/settings/grpc.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/e2e/annotations/grpc.go b/test/e2e/annotations/grpc.go index 60696e139..530d16729 100644 --- a/test/e2e/annotations/grpc.go +++ b/test/e2e/annotations/grpc.go @@ -107,7 +107,7 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { }) //nolint:goconst //string interpolation - conn, err := grpc.Dial(f.GetNginxIP()+":443", + conn, err := grpc.NewClient(f.GetNginxIP()+":443", grpc.WithTransportCredentials( credentials.NewTLS(&tls.Config{ ServerName: echoHost, @@ -168,7 +168,7 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { return strings.Contains(server, "grpc_pass grpc://upstream_balancer;") }) - conn, err := grpc.Dial(f.GetNginxIP()+":443", + conn, err := grpc.NewClient(f.GetNginxIP()+":443", grpc.WithTransportCredentials( credentials.NewTLS(&tls.Config{ ServerName: echoHost, @@ -242,7 +242,7 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { return strings.Contains(server, "grpc_pass grpcs://upstream_balancer;") }) - conn, err := grpc.Dial(f.GetNginxIP()+":443", + conn, err := grpc.NewClient(f.GetNginxIP()+":443", grpc.WithTransportCredentials( credentials.NewTLS(&tls.Config{ ServerName: echoHost, @@ -286,7 +286,7 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { strings.Contains(server, fmt.Sprintf("grpc_read_timeout %ss;", proxyTimeout)) }) - conn, err := grpc.Dial( + conn, err := grpc.NewClient( f.GetNginxIP()+":80", grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithAuthority(host), @@ -329,7 +329,7 @@ var _ = framework.DescribeAnnotation("backend-protocol - GRPC", func() { strings.Contains(server, fmt.Sprintf("grpc_read_timeout %ss;", proxyTimeout)) }) - conn, err := grpc.Dial( + conn, err := grpc.NewClient( f.GetNginxIP()+":80", grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithAuthority(host), diff --git a/test/e2e/settings/grpc.go b/test/e2e/settings/grpc.go index fa5f35b24..ae3175034 100644 --- a/test/e2e/settings/grpc.go +++ b/test/e2e/settings/grpc.go @@ -86,7 +86,7 @@ var _ = framework.DescribeSetting("GRPC", func() { return strings.Contains(server, "grpc_pass grpc://upstream_balancer;") }) - conn, err := grpc.Dial(f.GetNginxIP()+":443", + conn, err := grpc.NewClient(f.GetNginxIP()+":443", grpc.WithTransportCredentials( credentials.NewTLS(&tls.Config{ ServerName: echoHost, From 9ca96df6af0ca1897416a26d27f8ca5386ef5027 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Sat, 15 Jun 2024 10:29:28 +0200 Subject: [PATCH 161/184] CI: Bump forgotten Ginkgo versions. (#11467) --- build/run-in-docker.sh | 2 +- go.work.sum | 4 +++ images/kube-webhook-certgen/rootfs/go.mod | 14 ++++----- images/kube-webhook-certgen/rootfs/go.sum | 35 ++++++++++++----------- images/test-runner/Makefile | 4 +-- magefiles/go.sum | 7 +++++ test/e2e/run-chart-test.sh | 2 +- test/e2e/run-kind-e2e.sh | 2 +- 8 files changed, 40 insertions(+), 30 deletions(-) diff --git a/build/run-in-docker.sh b/build/run-in-docker.sh index 5d4e82a09..8af3c81b6 100755 --- a/build/run-in-docker.sh +++ b/build/run-in-docker.sh @@ -82,7 +82,7 @@ if [[ "$DOCKER_IN_DOCKER_ENABLED" == "true" ]]; then echo "..reached DIND check TRUE block, inside run-in-docker.sh" echo "FLAGS=$FLAGS" #go env - go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 + go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.19.0 find / -type f -name ginkgo 2>/dev/null which ginkgo /bin/bash -c "${FLAGS}" diff --git a/go.work.sum b/go.work.sum index 0fd4fc8e2..e047983dd 100644 --- a/go.work.sum +++ b/go.work.sum @@ -125,6 +125,7 @@ cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3X cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= +cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/contactcenterinsights v1.6.0 h1:jXIpfcH/VYSE1SYcPzO0n1VVb+sAamiLOgCw45JbOQk= @@ -605,6 +606,7 @@ github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= +github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50/go.mod h1:5e1+Vvlzido69INQaVO6d87Qn543Xr6nooe9Kz7oBFM= github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= @@ -965,6 +967,7 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go. google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:PVreiBMirk8ypES6aw9d4p6iiBNSIfZEBqr3UGoAi2E= google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc h1:g3hIDl0jRNd9PPTs2uBzYuaD5mQuwOkZY0vSc0LR32o= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231212172506-995d672761c0/go.mod h1:guYXGPwC6jwxgWKW5Y405fKWOFNwlvUlUnzyp9i0uqo= @@ -1005,6 +1008,7 @@ k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kms v0.29.3/go.mod h1:TBGbJKpRUMk59neTMDMddjIDL+D4HuFUbpuiuzmOPg0= k8s.io/kms v0.30.0 h1:ZlnD/ei5lpvUlPw6eLfVvH7d8i9qZ6HwUQgydNVks8g= k8s.io/kms v0.30.0/go.mod h1:GrMurD0qk3G4yNgGcsCEmepqf9KyyIrTXYR2lyUOJC4= +k8s.io/kms v0.30.1/go.mod h1:GrMurD0qk3G4yNgGcsCEmepqf9KyyIrTXYR2lyUOJC4= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= diff --git a/images/kube-webhook-certgen/rootfs/go.mod b/images/kube-webhook-certgen/rootfs/go.mod index 94da139a2..9c7f96e1b 100644 --- a/images/kube-webhook-certgen/rootfs/go.mod +++ b/images/kube-webhook-certgen/rootfs/go.mod @@ -24,7 +24,6 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20240225044709-fd706174c886 // indirect github.com/google/uuid v1.6.0 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -34,18 +33,17 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/ginkgo/v2 v2.17.1 // indirect - github.com/onsi/gomega v1.30.0 // indirect + github.com/onsi/ginkgo/v2 v2.19.0 // indirect + github.com/onsi/gomega v1.33.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.9.0 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.18.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/images/kube-webhook-certgen/rootfs/go.sum b/images/kube-webhook-certgen/rootfs/go.sum index 613ff3e2e..57b4a450b 100644 --- a/images/kube-webhook-certgen/rootfs/go.sum +++ b/images/kube-webhook-certgen/rootfs/go.sum @@ -15,7 +15,8 @@ github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHa github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -31,8 +32,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 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/pprof v0.0.0-20240225044709-fd706174c886 h1:JSJUTZTQT1Gzb2ROdAKOY3HwzBYcclS2GgumhMfHqjw= -github.com/google/pprof v0.0.0-20240225044709-fd706174c886/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= @@ -60,10 +61,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onrik/logrus v0.11.0 h1:pu+BCaWL36t0yQaj/2UHK2erf88dwssAKOT51mxPUVs= github.com/onrik/logrus v0.11.0/go.mod h1:fO2vlZwIdti6PidD3gV5YKt9Lq5ptpnP293RAe1ITwk= -github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= -github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -104,8 +105,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -120,18 +121,18 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 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.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -139,8 +140,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= diff --git a/images/test-runner/Makefile b/images/test-runner/Makefile index d82427140..7e30d432f 100644 --- a/images/test-runner/Makefile +++ b/images/test-runner/Makefile @@ -59,7 +59,7 @@ image: --build-arg YAML_LINT_VERSION=1.33.0 \ --build-arg YAMALE_VERSION=4.0.4 \ --build-arg HELM_VERSION=3.14.4 \ - --build-arg GINKGO_VERSION=2.17.2 \ + --build-arg GINKGO_VERSION=2.19.0 \ --build-arg GOLINT_VERSION=latest \ -t ${IMAGE}:${TAG} rootfs @@ -80,7 +80,7 @@ build: ensure-buildx --build-arg YAML_LINT_VERSION=1.33.0 \ --build-arg YAMALE_VERSION=4.0.4 \ --build-arg HELM_VERSION=3.14.4 \ - --build-arg GINKGO_VERSION=2.17.2 \ + --build-arg GINKGO_VERSION=2.19.0 \ --build-arg GOLINT_VERSION=latest \ -t ${IMAGE}:${TAG} rootfs diff --git a/magefiles/go.sum b/magefiles/go.sum index 5f402c490..16bc8460f 100644 --- a/magefiles/go.sum +++ b/magefiles/go.sum @@ -31,6 +31,7 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -79,6 +80,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ 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.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 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= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -88,6 +90,7 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -98,7 +101,9 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -117,6 +122,7 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc 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.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -163,5 +169,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C 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.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= 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= diff --git a/test/e2e/run-chart-test.sh b/test/e2e/run-chart-test.sh index dadb5195d..4b5c6eae0 100755 --- a/test/e2e/run-chart-test.sh +++ b/test/e2e/run-chart-test.sh @@ -78,7 +78,7 @@ fi if [ "${SKIP_IMAGE_CREATION:-false}" = "false" ]; then if ! command -v ginkgo &> /dev/null; then - go install github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.19.0 fi echo "[dev-env] building image" make -C ${DIR}/../../ clean-image build image diff --git a/test/e2e/run-kind-e2e.sh b/test/e2e/run-kind-e2e.sh index 128964393..640632a1b 100755 --- a/test/e2e/run-kind-e2e.sh +++ b/test/e2e/run-kind-e2e.sh @@ -96,7 +96,7 @@ fi if [ "${SKIP_E2E_IMAGE_CREATION}" = "false" ]; then if ! command -v ginkgo &> /dev/null; then - go install github.com/onsi/ginkgo/v2/ginkgo@v2.17.1 + go install github.com/onsi/ginkgo/v2/ginkgo@v2.19.0 fi echo "[dev-env] .. done building controller images" From 471bc34f5d50cc4e2979639f12f946944ec0fade Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Jun 2024 09:41:28 -0700 Subject: [PATCH 162/184] Bump golang.org/x/crypto from 0.23.0 to 0.24.0 (#11442) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.23.0 to 0.24.0. - [Commits](https://github.com/golang/crypto/compare/v0.23.0...v0.24.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 4ef8611cd..2627556f8 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/yudai/gojsondiff v1.0.0 github.com/zakjan/cert-chain-resolver v0.0.0-20221221105603-fcedb00c5b30 - golang.org/x/crypto v0.23.0 + golang.org/x/crypto v0.24.0 golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f google.golang.org/grpc v1.64.0 google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab @@ -112,11 +112,11 @@ require ( golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/term v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.21.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6 // indirect google.golang.org/protobuf v1.34.0 // indirect gopkg.in/evanphx/json-patch.v5 v5.9.0 // indirect diff --git a/go.sum b/go.sum index 205f07a7f..09594f63b 100644 --- a/go.sum +++ b/go.sum @@ -1165,8 +1165,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1459,8 +1459,8 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1477,8 +1477,8 @@ golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= 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= @@ -1497,8 +1497,8 @@ golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= 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= @@ -1571,8 +1571,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= From f1026b484905de9966c250b6fd3e46961aecf1fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 04:09:29 -0700 Subject: [PATCH 163/184] Bump the all group with 2 updates (#11476) Bumps the all group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [github/codeql-action](https://github.com/github/codeql-action). Updates `actions/checkout` from 4.1.6 to 4.1.7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/a5ac7e51b41094c92402da3b24376905380afc29...692973e3d937129bcbf40652eb9f2f61becf3332) Updates `github/codeql-action` from 3.25.8 to 3.25.10 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/2e230e8fe0ad3a14a340ad0815ddb96d599d2aff...23acc5c183826b7a8a97bce3cecc52db901f8251) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yaml | 10 +++++----- .github/workflows/depreview.yaml | 2 +- .github/workflows/docs.yaml | 4 ++-- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/helm.yaml | 4 ++-- .github/workflows/images.yaml | 8 ++++---- .github/workflows/perftest.yaml | 2 +- .github/workflows/plugin.yaml | 2 +- .github/workflows/scorecards.yml | 4 ++-- .github/workflows/vulnerability-scans.yaml | 6 +++--- .github/workflows/zz-tmpl-images.yaml | 6 +++--- .github/workflows/zz-tmpl-k8s-e2e.yaml | 2 +- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 70369418f..a2e036f72 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -77,7 +77,7 @@ jobs: (needs.changes.outputs.go == 'true') steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -105,7 +105,7 @@ jobs: PLATFORMS: linux/amd64 steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Get go version id: golangversion @@ -179,7 +179,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 @@ -239,7 +239,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Go uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml index 2aacbd6cc..572121886 100644 --- a/.github/workflows/depreview.yaml +++ b/.github/workflows/depreview.yaml @@ -9,6 +9,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: 'Dependency Review' uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 0e12a0dc7..c1434c7b7 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter @@ -47,7 +47,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Deploy uses: ./.github/actions/mkdocs diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 8e6ec5200..9d91c68fb 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index f3aa7ced8..f7a68af1a 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Run Artifact Hub lint run: | @@ -66,7 +66,7 @@ jobs: steps: - name: Checkout master - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: # Fetch entire history. Required for chart-releaser; see https://github.com/helm/chart-releaser-action/issues/13#issuecomment-602063896 fetch-depth: 0 diff --git a/.github/workflows/images.yaml b/.github/workflows/images.yaml index cd63a376e..4aed94772 100644 --- a/.github/workflows/images.yaml +++ b/.github/workflows/images.yaml @@ -41,7 +41,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -144,7 +144,7 @@ jobs: k8s: [v1.26.14, v1.27.11, v1.28.7, v1.29.2] steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Get go version run: echo "GOLANG_VERSION=$(cat GOLANG_VERSION)" >> $GITHUB_ENV @@ -178,7 +178,7 @@ jobs: nginx: ['1.25.3', '1.21.6'] steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: image build run: | cd images/opentelemetry && make NGINX_VERSION=${{ matrix.nginx }} build @@ -195,7 +195,7 @@ jobs: PLATFORMS: linux/amd64,linux/arm,linux/arm64,linux/s390x steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx diff --git a/.github/workflows/perftest.yaml b/.github/workflows/perftest.yaml index 9a544c645..2e1e01a3e 100644 --- a/.github/workflows/perftest.yaml +++ b/.github/workflows/perftest.yaml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Install K6 run: | diff --git a/.github/workflows/plugin.yaml b/.github/workflows/plugin.yaml index 8274a6a99..3adccc5eb 100644 --- a/.github/workflows/plugin.yaml +++ b/.github/workflows/plugin.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 89ee0b55b..1a40697e7 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -27,7 +27,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: persist-credentials: false @@ -59,6 +59,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 + uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 with: sarif_file: results.sarif diff --git a/.github/workflows/vulnerability-scans.yaml b/.github/workflows/vulnerability-scans.yaml index 19a66053f..f7ceab6c0 100644 --- a/.github/workflows/vulnerability-scans.yaml +++ b/.github/workflows/vulnerability-scans.yaml @@ -22,7 +22,7 @@ jobs: versions: ${{ steps.version.outputs.TAGS }} steps: - name: Checkout code - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 @@ -52,7 +52,7 @@ jobs: versions: ${{ fromJSON(needs.version.outputs.versions) }} steps: - name: Checkout code - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - shell: bash id: test @@ -75,7 +75,7 @@ jobs: # This step checks out a copy of your repository. - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 + uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10 with: token: ${{ github.token }} # Path to SARIF file relative to the root of the repository diff --git a/.github/workflows/zz-tmpl-images.yaml b/.github/workflows/zz-tmpl-images.yaml index 17425a468..1ed1bbcdc 100644 --- a/.github/workflows/zz-tmpl-images.yaml +++ b/.github/workflows/zz-tmpl-images.yaml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -48,7 +48,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Build run: | @@ -67,7 +67,7 @@ jobs: PLATFORMS: ${{ inputs.platforms-publish }} steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Login to GitHub Container Registry uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0 diff --git a/.github/workflows/zz-tmpl-k8s-e2e.yaml b/.github/workflows/zz-tmpl-k8s-e2e.yaml index 016157aad..fda6f1937 100644 --- a/.github/workflows/zz-tmpl-k8s-e2e.yaml +++ b/.github/workflows/zz-tmpl-k8s-e2e.yaml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: cache uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 From 6bb19ea698c8a83939b77797c1748a48a3915704 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 04:19:52 -0700 Subject: [PATCH 164/184] Bump the all group with 3 updates (#11474) Bumps the all group with 3 updates: [github.com/opencontainers/runc](https://github.com/opencontainers/runc), [github.com/spf13/cobra](https://github.com/spf13/cobra) and [k8s.io/component-base](https://github.com/kubernetes/component-base). Updates `github.com/opencontainers/runc` from 1.1.12 to 1.1.13 - [Release notes](https://github.com/opencontainers/runc/releases) - [Changelog](https://github.com/opencontainers/runc/blob/main/CHANGELOG.md) - [Commits](https://github.com/opencontainers/runc/compare/v1.1.12...v1.1.13) Updates `github.com/spf13/cobra` from 1.8.0 to 1.8.1 - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.8.0...v1.8.1) Updates `k8s.io/component-base` from 0.30.1 to 0.30.2 - [Commits](https://github.com/kubernetes/component-base/compare/v0.30.1...v0.30.2) --- updated-dependencies: - dependency-name: github.com/opencontainers/runc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: k8s.io/component-base dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index 2627556f8..873c0aeaa 100644 --- a/go.mod +++ b/go.mod @@ -17,12 +17,12 @@ require ( github.com/moul/pb v0.0.0-20220425114252-bca18df4138c github.com/ncabatoff/process-exporter v0.7.11 github.com/onsi/ginkgo/v2 v2.19.0 - github.com/opencontainers/runc v1.1.12 + github.com/opencontainers/runc v1.1.13 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.19.1 github.com/prometheus/client_model v0.6.1 github.com/prometheus/common v0.54.0 - github.com/spf13/cobra v1.8.0 + github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/yudai/gojsondiff v1.0.0 @@ -33,14 +33,14 @@ require ( google.golang.org/grpc/examples v0.0.0-20240223204917-5ccf176a08ab gopkg.in/go-playground/pool.v3 v3.1.1 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 - k8s.io/api v0.30.1 + k8s.io/api v0.30.2 k8s.io/apiextensions-apiserver v0.30.1 - k8s.io/apimachinery v0.30.1 + k8s.io/apimachinery v0.30.2 k8s.io/apiserver v0.30.1 k8s.io/cli-runtime v0.30.0 - k8s.io/client-go v0.30.1 + k8s.io/client-go v0.30.2 k8s.io/code-generator v0.30.1 - k8s.io/component-base v0.30.1 + k8s.io/component-base v0.30.2 k8s.io/klog/v2 v2.120.1 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 sigs.k8s.io/controller-runtime v0.18.4 diff --git a/go.sum b/go.sum index 09594f63b..88c066494 100644 --- a/go.sum +++ b/go.sum @@ -665,7 +665,7 @@ github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= @@ -992,8 +992,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= -github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= +github.com/opencontainers/runc v1.1.13 h1:98S2srgG9vw0zWcDpFMn5TRrh8kLxa/5OFUstuUhmRs= +github.com/opencontainers/runc v1.1.13/go.mod h1:R016aXacfp/gwQBYw2FDGa9m+n6atbLWrYY8hNMT/sA= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= @@ -1080,8 +1080,8 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -1913,22 +1913,22 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= -k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY= -k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM= +k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI= +k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI= k8s.io/apiextensions-apiserver v0.30.1 h1:4fAJZ9985BmpJG6PkoxVRpXv9vmPUOVzl614xarePws= k8s.io/apiextensions-apiserver v0.30.1/go.mod h1:R4GuSrlhgq43oRY9sF2IToFh7PVlF1JjfWdoG3pixk4= -k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= -k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= +k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= k8s.io/apiserver v0.30.1 h1:BEWEe8bzS12nMtDKXzCF5Q5ovp6LjjYkSp8qOPk8LZ8= k8s.io/apiserver v0.30.1/go.mod h1:i87ZnQ+/PGAmSbD/iEKM68bm1D5reX8fO4Ito4B01mo= k8s.io/cli-runtime v0.30.0 h1:0vn6/XhOvn1RJ2KJOC6IRR2CGqrpT6QQF4+8pYpWQ48= k8s.io/cli-runtime v0.30.0/go.mod h1:vATpDMATVTMA79sZ0YUCzlMelf6rUjoBzlp+RnoM+cg= -k8s.io/client-go v0.30.1 h1:uC/Ir6A3R46wdkgCV3vbLyNOYyCJ8oZnjtJGKfytl/Q= -k8s.io/client-go v0.30.1/go.mod h1:wrAqLNs2trwiCH/wxxmT/x3hKVH9PuV0GGW0oDoHVqc= +k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50= +k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs= k8s.io/code-generator v0.30.1 h1:ZsG++q5Vt0ScmKCeLhynUuWgcwFGg1Hl1AGfatqPJBI= k8s.io/code-generator v0.30.1/go.mod h1:hFgxRsvOUg79mbpbVKfjJvRhVz1qLoe40yZDJ/hwRH4= -k8s.io/component-base v0.30.1 h1:bvAtlPh1UrdaZL20D9+sWxsJljMi0QZ3Lmw+kmZAaxQ= -k8s.io/component-base v0.30.1/go.mod h1:e/X9kDiOebwlI41AvBHuWdqFriSRrX50CdwA9TFaHLI= +k8s.io/component-base v0.30.2 h1:pqGBczYoW1sno8q9ObExUqrYSKhtE5rW3y6gX88GZII= +k8s.io/component-base v0.30.2/go.mod h1:yQLkQDrkK8J6NtP+MGJOws+/PPeEXNpwFixsUI7h/OE= k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313 h1:bKcdZJOPICVmIIuaM9+MXmapE94dn5AYv5ODs1jA43o= k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= From 5ac6f775037b06596dca9a6dff4281655085b933 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 05:21:08 -0700 Subject: [PATCH 165/184] Bump k8s.io/klog/v2 from 2.120.1 to 2.130.0 (#11475) Bumps [k8s.io/klog/v2](https://github.com/kubernetes/klog) from 2.120.1 to 2.130.0. - [Release notes](https://github.com/kubernetes/klog/releases) - [Changelog](https://github.com/kubernetes/klog/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes/klog/compare/v2.120.1...v2.130.0) --- updated-dependencies: - dependency-name: k8s.io/klog/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 873c0aeaa..01ed7658a 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( k8s.io/client-go v0.30.2 k8s.io/code-generator v0.30.1 k8s.io/component-base v0.30.2 - k8s.io/klog/v2 v2.120.1 + k8s.io/klog/v2 v2.130.0 pault.ag/go/sniff v0.0.0-20200207005214-cf7e4d167732 sigs.k8s.io/controller-runtime v0.18.4 sigs.k8s.io/mdtoc v1.1.0 diff --git a/go.sum b/go.sum index 88c066494..77c0417d3 100644 --- a/go.sum +++ b/go.sum @@ -1931,8 +1931,8 @@ k8s.io/component-base v0.30.2 h1:pqGBczYoW1sno8q9ObExUqrYSKhtE5rW3y6gX88GZII= k8s.io/component-base v0.30.2/go.mod h1:yQLkQDrkK8J6NtP+MGJOws+/PPeEXNpwFixsUI7h/OE= k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313 h1:bKcdZJOPICVmIIuaM9+MXmapE94dn5AYv5ODs1jA43o= k8s.io/gengo/v2 v2.0.0-20240404160639-a0386bf69313/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.130.0 h1:5nB3+3HpqKqXJIXNtJdtxcDCfaa9KL8StJgMzGJkUkM= +k8s.io/klog/v2 v2.130.0/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= From e084ad0a5eefe7ccfa80a0f4eac69f923efd0374 Mon Sep 17 00:00:00 2001 From: Marco Ebert Date: Mon, 17 Jun 2024 14:25:38 +0200 Subject: [PATCH 166/184] Chores: Align security contacts & chart maintainers to actual owners. (#11465) --- .github/ISSUE_TEMPLATE/cve_report.md | 3 ++- SECURITY_CONTACTS | 2 +- charts/ingress-nginx/Chart.yaml | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/cve_report.md b/.github/ISSUE_TEMPLATE/cve_report.md index 11789d479..79781fa66 100644 --- a/.github/ISSUE_TEMPLATE/cve_report.md +++ b/.github/ISSUE_TEMPLATE/cve_report.md @@ -4,8 +4,9 @@ about: CVE reporting for ingress-nginx title: '' labels: kind/bug assignees: - - strongjz + - Gacko - rikatz + - strongjz ---