From 3df4f9d3d8a1085c38de50eb14353aac9e676483 Mon Sep 17 00:00:00 2001 From: John Murret Date: Tue, 13 Aug 2024 20:18:55 +0000 Subject: [PATCH] backport of commit e75b8148ab5da114fa950e3512b42c2b67b1590b --- .github/workflows/backport-assistant.yml | 2 +- ...t-1.19.x.yaml => nightly-test-1.14.x.yaml} | 18 +- .github/workflows/nightly-test-1.15.x.yaml | 9 - ...t-1.18.x.yaml => nightly-test-1.16.x.yaml} | 27 +- .github/workflows/nightly-test-1.17.x.yaml | 9 - .../nightly-test-integ-peering_commontopo.yml | 12 +- .../nightly-test-integrations-1.15.x.yml | 62 +-- ...l => nightly-test-integrations-1.16.x.yml} | 151 +----- .../nightly-test-integrations-1.17.x.yml | 62 +-- .../nightly-test-integrations-1.18.x.yml | 463 ------------------ .../workflows/nightly-test-integrations.yml | 56 +-- .github/workflows/test-integrations.yml | 2 +- .release/versions.hcl | 5 +- CHANGELOG.md | 102 ---- go.mod | 2 +- go.sum | 12 - test-integ/go.mod | 4 +- test-integ/go.sum | 16 - test/integration/consul-container/go.mod | 4 +- test/integration/consul-container/go.sum | 14 - version/VERSION | 2 +- website/content/api-docs/acl/auth-methods.mdx | 17 +- .../content/api-docs/acl/binding-rules.mdx | 14 +- website/content/api-docs/acl/policies.mdx | 12 +- website/content/api-docs/acl/roles.mdx | 12 - .../api-docs/acl/templated-policies.mdx | 2 - website/content/api-docs/acl/tokens.mdx | 12 - website/content/api-docs/agent/index.mdx | 2 - website/content/api-docs/agent/service.mdx | 4 - website/content/api-docs/catalog.mdx | 4 - website/content/api-docs/config.mdx | 8 - .../content/api-docs/connect/intentions.mdx | 12 - .../content/api-docs/exported-services.mdx | 3 +- website/content/api-docs/kv.mdx | 6 - website/content/api-docs/namespaces.mdx | 27 +- website/content/api-docs/peering.mdx | 16 +- .../commands/acl/auth-method/create.mdx | 2 +- .../commands/acl/auth-method/delete.mdx | 2 +- .../content/commands/acl/auth-method/list.mdx | 2 +- .../content/commands/acl/auth-method/read.mdx | 2 +- .../commands/acl/auth-method/update.mdx | 2 +- .../commands/acl/binding-rule/create.mdx | 2 +- .../commands/acl/binding-rule/delete.mdx | 2 +- .../commands/acl/binding-rule/list.mdx | 2 +- .../commands/acl/binding-rule/read.mdx | 2 +- .../commands/acl/binding-rule/update.mdx | 2 +- .../content/commands/acl/policy/create.mdx | 2 +- .../content/commands/acl/policy/delete.mdx | 2 +- website/content/commands/acl/policy/list.mdx | 2 +- website/content/commands/acl/policy/read.mdx | 2 +- .../content/commands/acl/policy/update.mdx | 2 +- website/content/commands/acl/role/create.mdx | 2 +- website/content/commands/acl/role/delete.mdx | 2 +- website/content/commands/acl/role/list.mdx | 2 +- website/content/commands/acl/role/read.mdx | 2 +- website/content/commands/acl/role/update.mdx | 2 +- .../commands/acl/templated-policy/preview.mdx | 2 +- website/content/commands/acl/token/clone.mdx | 2 +- website/content/commands/acl/token/create.mdx | 2 +- website/content/commands/acl/token/delete.mdx | 2 +- website/content/commands/acl/token/list.mdx | 2 +- website/content/commands/acl/token/read.mdx | 2 +- website/content/commands/acl/token/update.mdx | 2 +- website/content/commands/catalog/nodes.mdx | 2 +- website/content/commands/catalog/services.mdx | 2 +- website/content/commands/config/delete.mdx | 2 +- website/content/commands/config/list.mdx | 2 +- website/content/commands/config/read.mdx | 2 +- website/content/commands/config/write.mdx | 2 +- website/content/commands/connect/envoy.mdx | 2 +- .../commands/connect/redirect-traffic.mdx | 2 +- website/content/commands/intention/check.mdx | 2 +- website/content/commands/intention/create.mdx | 2 +- website/content/commands/intention/delete.mdx | 2 +- website/content/commands/intention/get.mdx | 2 +- website/content/commands/intention/match.mdx | 2 +- website/content/commands/kv/delete.mdx | 2 +- website/content/commands/kv/export.mdx | 2 +- website/content/commands/kv/get.mdx | 2 +- website/content/commands/kv/import.mdx | 2 +- website/content/commands/kv/put.mdx | 2 +- website/content/commands/members.mdx | 2 +- website/content/commands/namespace/create.mdx | 2 +- website/content/commands/namespace/delete.mdx | 2 +- website/content/commands/namespace/list.mdx | 2 +- website/content/commands/namespace/read.mdx | 2 +- website/content/commands/namespace/update.mdx | 2 +- website/content/commands/namespace/write.mdx | 2 +- website/content/commands/peering/delete.mdx | 2 +- .../content/commands/peering/establish.mdx | 2 +- .../commands/peering/exported-services.mdx | 2 +- .../commands/peering/generate-token.mdx | 2 +- website/content/commands/peering/list.mdx | 2 +- website/content/commands/peering/read.mdx | 2 +- .../content/commands/services/deregister.mdx | 2 +- website/content/commands/services/export.mdx | 2 +- .../commands/services/exported-services.mdx | 2 +- .../content/commands/services/register.mdx | 2 +- .../improving-consul-resilience.mdx | 2 +- .../secure-traffic/verify-jwts-k8s.mdx | 184 +------ .../secure-traffic/verify-jwts-vms.mdx | 153 +----- .../docs/release-notes/consul-k8s/v1_2_x.mdx | 8 - .../docs/release-notes/consul-k8s/v1_3_x.mdx | 2 - .../docs/release-notes/consul-k8s/v1_4_x.mdx | 7 - .../docs/release-notes/consul/v1_19_x.mdx | 2 +- .../docs/security/security-models/core.mdx | 16 +- .../docs/security/security-models/index.mdx | 6 +- .../docs/security/security-models/nia.mdx | 16 +- .../discovery/dns-forwarding/enable.mdx | 420 ---------------- .../discovery/dns-forwarding/index.mdx | 186 ------- .../docs/services/discovery/dns-overview.mdx | 6 - .../cli-http-api-partition-options.mdx | 1 - .../http-api-body-options-partition.mdx | 2 - .../http-api-query-parms-partition.mdx | 1 - .../partials/http_api_partition_options.mdx | 1 + website/data/docs-nav-data.json | 13 - .../architecture/cluster-peering-diagram.png | Bin 30403 -> 0 bytes .../consul-singleDC-redundancyzones.png | Bin 54779 -> 0 bytes ...consul-dns-conditional-forwarding-dark.png | Bin 111870 -> 0 bytes .../img/consul-dns-conditional-forwarding.png | Bin 111976 -> 0 bytes .../public/img/consul-dns-forwarding-dark.png | Bin 99418 -> 0 bytes website/public/img/consul-dns-forwarding.png | Bin 98393 -> 0 bytes 122 files changed, 245 insertions(+), 2090 deletions(-) rename .github/workflows/{nightly-test-1.19.x.yaml => nightly-test-1.14.x.yaml} (96%) rename .github/workflows/{nightly-test-1.18.x.yaml => nightly-test-1.16.x.yaml} (93%) rename .github/workflows/{nightly-test-integrations-1.19.x.yml => nightly-test-integrations-1.16.x.yml} (70%) delete mode 100644 .github/workflows/nightly-test-integrations-1.18.x.yml delete mode 100644 website/content/docs/services/discovery/dns-forwarding/enable.mdx delete mode 100644 website/content/docs/services/discovery/dns-forwarding/index.mdx delete mode 100644 website/content/partials/cli-http-api-partition-options.mdx delete mode 100644 website/content/partials/http-api-body-options-partition.mdx delete mode 100644 website/content/partials/http-api-query-parms-partition.mdx create mode 100644 website/content/partials/http_api_partition_options.mdx delete mode 100644 website/public/img/architecture/cluster-peering-diagram.png delete mode 100644 website/public/img/architecture/consul-singleDC-redundancyzones.png delete mode 100644 website/public/img/consul-dns-conditional-forwarding-dark.png delete mode 100644 website/public/img/consul-dns-conditional-forwarding.png delete mode 100644 website/public/img/consul-dns-forwarding-dark.png delete mode 100644 website/public/img/consul-dns-forwarding.png diff --git a/.github/workflows/backport-assistant.yml b/.github/workflows/backport-assistant.yml index d004f220bf8e8..24c0a66da59dd 100644 --- a/.github/workflows/backport-assistant.yml +++ b/.github/workflows/backport-assistant.yml @@ -19,7 +19,7 @@ jobs: backport: if: github.event.pull_request.merged runs-on: ubuntu-latest - container: hashicorpdev/backport-assistant:0.4.4 + container: hashicorpdev/backport-assistant:0.4.1 steps: - name: Run Backport Assistant for release branches run: | diff --git a/.github/workflows/nightly-test-1.19.x.yaml b/.github/workflows/nightly-test-1.14.x.yaml similarity index 96% rename from .github/workflows/nightly-test-1.19.x.yaml rename to .github/workflows/nightly-test-1.14.x.yaml index 2f5398596b2f5..8e85e175c27f4 100644 --- a/.github/workflows/nightly-test-1.19.x.yaml +++ b/.github/workflows/nightly-test-1.14.x.yaml @@ -1,7 +1,7 @@ # Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: MPL-2.0 -name: Nightly Frontend Test 1.19.x +name: Nightly Frontend Test 1.14.x on: schedule: - cron: '0 4 * * *' @@ -9,8 +9,8 @@ on: env: EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition - BRANCH: "release/1.19.x" - BRANCH_NAME: "release-1.19.x" # Used for naming artifacts + BRANCH: "release/1.14.x" + BRANCH_NAME: "release-1.14.x" # Used for naming artifacts GOPRIVATE: github.com/hashicorp # Required for enterprise deps jobs: @@ -24,7 +24,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -56,7 +56,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -95,7 +95,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -128,7 +128,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -167,7 +167,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -198,7 +198,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock diff --git a/.github/workflows/nightly-test-1.15.x.yaml b/.github/workflows/nightly-test-1.15.x.yaml index f8dec0f82e340..c25e25ac57b1d 100644 --- a/.github/workflows/nightly-test-1.15.x.yaml +++ b/.github/workflows/nightly-test-1.15.x.yaml @@ -14,15 +14,8 @@ env: GOPRIVATE: github.com/hashicorp # Required for enterprise deps jobs: - check-ent: - runs-on: ubuntu-latest - if: ${{ endsWith(github.repository, '-enterprise') }} - steps: - - run: echo "Building Enterprise" - frontend-test-workspace-node: runs-on: ubuntu-latest - needs: [check-ent] steps: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: @@ -52,7 +45,6 @@ jobs: frontend-build-ce: runs-on: ubuntu-latest - needs: [check-ent] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 0 @@ -125,7 +117,6 @@ jobs: frontend-build-ent: runs-on: ubuntu-latest - needs: [check-ent] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 1 diff --git a/.github/workflows/nightly-test-1.18.x.yaml b/.github/workflows/nightly-test-1.16.x.yaml similarity index 93% rename from .github/workflows/nightly-test-1.18.x.yaml rename to .github/workflows/nightly-test-1.16.x.yaml index ca627b013932f..6dff72150fa6e 100644 --- a/.github/workflows/nightly-test-1.18.x.yaml +++ b/.github/workflows/nightly-test-1.16.x.yaml @@ -1,7 +1,7 @@ # Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: MPL-2.0 -name: Nightly Frontend Test 1.18.x +name: Nightly Frontend Test 1.16.x on: schedule: - cron: '0 4 * * *' @@ -9,20 +9,13 @@ on: env: EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition - BRANCH: "release/1.18.x" - BRANCH_NAME: "release-1.18.x" # Used for naming artifacts + BRANCH: "release/1.16.x" + BRANCH_NAME: "release-1.16.x" # Used for naming artifacts GOPRIVATE: github.com/hashicorp # Required for enterprise deps jobs: - check-ent: - runs-on: ubuntu-latest - if: ${{ endsWith(github.repository, '-enterprise') }} - steps: - - run: echo "Building Enterprise" - frontend-test-workspace-node: runs-on: ubuntu-latest - needs: [check-ent] steps: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: @@ -31,7 +24,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -52,7 +45,6 @@ jobs: frontend-build-ce: runs-on: ubuntu-latest - needs: [check-ent] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 0 @@ -64,7 +56,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -103,7 +95,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -125,7 +117,6 @@ jobs: frontend-build-ent: runs-on: ubuntu-latest - needs: [check-ent] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 1 @@ -137,7 +128,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -176,7 +167,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock @@ -207,7 +198,7 @@ jobs: # Not necessary to use yarn, but enables caching - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: 18 + node-version: 14 cache: 'yarn' cache-dependency-path: ./ui/yarn.lock diff --git a/.github/workflows/nightly-test-1.17.x.yaml b/.github/workflows/nightly-test-1.17.x.yaml index 10eb3d9e01731..ad6e49684d9e0 100644 --- a/.github/workflows/nightly-test-1.17.x.yaml +++ b/.github/workflows/nightly-test-1.17.x.yaml @@ -14,15 +14,8 @@ env: GOPRIVATE: github.com/hashicorp # Required for enterprise deps jobs: - check-ent: - runs-on: ubuntu-latest - if: ${{ endsWith(github.repository, '-enterprise') }} - steps: - - run: echo "Building Enterprise" - frontend-test-workspace-node: runs-on: ubuntu-latest - needs: [check-ent] steps: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: @@ -52,7 +45,6 @@ jobs: frontend-build-ce: runs-on: ubuntu-latest - needs: [check-ent] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 0 @@ -125,7 +117,6 @@ jobs: frontend-build-ent: runs-on: ubuntu-latest - needs: [check-ent] env: JOBS: 2 CONSUL_NSPACES_ENABLED: 1 diff --git a/.github/workflows/nightly-test-integ-peering_commontopo.yml b/.github/workflows/nightly-test-integ-peering_commontopo.yml index 5c7f5fa23babc..84b8a97c1cc63 100644 --- a/.github/workflows/nightly-test-integ-peering_commontopo.yml +++ b/.github/workflows/nightly-test-integ-peering_commontopo.yml @@ -6,7 +6,7 @@ name: Nightly test integrations - peering_common_topo on: schedule: # Run nightly at 12AM UTC/8PM EST/5PM PST - - cron: '0 0 * * *' + - cron: '* 0 * * *' workflow_dispatch: {} env: @@ -39,20 +39,12 @@ jobs: get-go-version: uses: ./.github/workflows/reusable-get-go-version.yml - with: - ref: ${{ inputs.branch }} - - get-envoy-versions: - uses: ./.github/workflows/reusable-get-envoy-versions.yml - with: - ref: ${{ inputs.branch }} tests: runs-on: ${{ fromJSON(needs.setup.outputs.compute-xl ) }} needs: - setup - get-go-version - - get-envoy-versions permissions: id-token: write # NOTE: this permission is explicitly required for Vault auth. contents: read @@ -70,7 +62,7 @@ jobs: name: '${{matrix.test-case}}' env: - ENVOY_VERSION: ${{ needs.get-envoy-versions.outputs.max-envoy-version }} + ENVOY_VERSION: "1.29.5" steps: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 # NOTE: This step is specifically needed for ENT. It allows us to access the required private HashiCorp repos. diff --git a/.github/workflows/nightly-test-integrations-1.15.x.yml b/.github/workflows/nightly-test-integrations-1.15.x.yml index 8ac92f282f344..c40c63a5ad288 100644 --- a/.github/workflows/nightly-test-integrations-1.15.x.yml +++ b/.github/workflows/nightly-test-integrations-1.15.x.yml @@ -6,7 +6,7 @@ name: Nightly test-integrations 1.15.x on: schedule: # Run nightly at 1AM UTC/9PM EST/6PM PST - - cron: '0 1 * * *' + - cron: '* 1 * * *' workflow_dispatch: {} env: @@ -23,15 +23,8 @@ env: BRANCH_NAME: "release-1.15.x" # Used for naming artifacts jobs: - check-ent: - runs-on: ubuntu-latest - if: ${{ endsWith(github.repository, '-enterprise') }} - steps: - - run: echo "Building Enterprise" - setup: runs-on: ubuntu-latest - needs: [check-ent] name: Setup outputs: compute-small: ${{ steps.runners.outputs.compute-small }} @@ -48,16 +41,7 @@ jobs: run: .github/scripts/get_runner_classes.sh get-go-version: - needs: [check-ent] uses: ./.github/workflows/reusable-get-go-version.yml - with: - ref: release/1.15.x - - get-envoy-versions: - needs: [check-ent] - uses: ./.github/workflows/reusable-get-envoy-versions.yml - with: - ref: release/1.15.x dev-build: needs: @@ -87,34 +71,36 @@ jobs: - name: Generate Envoy Job Matrix id: set-matrix env: - # TEST_SPLITS sets the number of test case splits to use in the matrix. This will be - # further multiplied in envoy-integration tests by the other dimensions in the matrix - # to determine the total number of runners used. - TEST_SPLITS: 4 + # this is further going to multiplied in envoy-integration tests by the + # other dimensions in the matrix. Currently TOTAL_RUNNERS would be + # 14 based on these values: + # envoy-version: ["1.22.11", "1.23.12", "1.24.12", "1.25.11", "1.26.8", "1.27.5", "1.28.3"] + # xds-target: ["server", "client"] + TOTAL_RUNNERS: 7 JQ_SLICER: '[ inputs ] | [_nwise(length / $runnercount | floor)]' run: | + NUM_RUNNERS=$TOTAL_RUNNERS NUM_DIRS=$(find ./test/integration/connect/envoy -mindepth 1 -maxdepth 1 -type d | wc -l) - if [ "$NUM_DIRS" -lt "$TEST_SPLITS" ]; then - echo "TEST_SPLITS is larger than the number of tests/packages to split." - TEST_SPLITS=$((NUM_DIRS-1)) + if [ "$NUM_DIRS" -lt "$NUM_RUNNERS" ]; then + echo "TOTAL_RUNNERS is larger than the number of tests/packages to split." + NUM_RUNNERS=$((NUM_DIRS-1)) fi - # fix issue where test splitting calculation generates 1 more split than TEST_SPLITS. - TEST_SPLITS=$((TEST_SPLITS-1)) + # fix issue where test splitting calculation generates 1 more split than TOTAL_RUNNERS. + NUM_RUNNERS=$((NUM_RUNNERS-1)) { echo -n "envoy-matrix=" find ./test/integration/connect/envoy -maxdepth 1 -type d -print0 \ | xargs -0 -n 1 basename \ - | jq --raw-input --argjson runnercount "$TEST_SPLITS" "$JQ_SLICER" \ + | jq --raw-input --argjson runnercount "$NUM_RUNNERS" "$JQ_SLICER" \ | jq --compact-output 'map(join("|"))' } >> "$GITHUB_OUTPUT" - + envoy-integration-test: runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} needs: - setup - get-go-version - - get-envoy-versions - generate-envoy-job-matrices - dev-build permissions: @@ -123,7 +109,7 @@ jobs: strategy: fail-fast: false matrix: - envoy-version: ${{ fromJSON(needs.get-envoy-versions.outputs.envoy-versions-json) }} + envoy-version: ["1.22.11", "1.23.12", "1.24.12", "1.25.11", "1.26.8", "1.27.6", "1.28.4"] xds-target: ["server", "client"] test-cases: ${{ fromJSON(needs.generate-envoy-job-matrices.outputs.envoy-matrix) }} env: @@ -202,7 +188,7 @@ jobs: DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" DD_ENV: ci run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - + upgrade-integration-test: runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} needs: @@ -218,17 +204,7 @@ jobs: consul-version: ["1.14", "1.15"] env: CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - # ENVOY_VERSION should be the latest version supported by _all_ Consul versions in the - # matrix.consul-version, since we are testing upgrade from an older Consul version. - # In practice, this should be the highest Envoy version supported by the lowest non-LTS - # Consul version in the matrix (LTS versions receive additional Envoy version support). - # - # This value should be kept current in new nightly test workflows, and updated any time - # a new major Envoy release is added to the set supported by Consul versions in - # matrix.consul-version (i.e. whenever the highest common Envoy version across active - # Consul versions changes). The minor Envoy version does not necessarily need to be - # kept current for the purpose of these tests, but the major (1.N) version should be. - ENVOY_VERSION: "1.24.12" + ENVOY_VERSION: "1.24.6" steps: - name: Checkout code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 @@ -329,7 +305,7 @@ jobs: - envoy-integration-test - upgrade-integration-test runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} - if: ${{ always() && endsWith(github.repository, '-enterprise') }} + if: ${{ always() }} steps: - name: evaluate upstream job results run: | diff --git a/.github/workflows/nightly-test-integrations-1.19.x.yml b/.github/workflows/nightly-test-integrations-1.16.x.yml similarity index 70% rename from .github/workflows/nightly-test-integrations-1.19.x.yml rename to .github/workflows/nightly-test-integrations-1.16.x.yml index 452d174e1ecac..9f7cee671343d 100644 --- a/.github/workflows/nightly-test-integrations-1.19.x.yml +++ b/.github/workflows/nightly-test-integrations-1.16.x.yml @@ -1,12 +1,12 @@ # Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: MPL-2.0 -name: Nightly test-integrations 1.19.x +name: Nightly test-integrations 1.16.x on: schedule: # Run nightly at 1AM UTC/9PM EST/6PM PST - - cron: '0 1 * * *' + - cron: '* 1 * * *' workflow_dispatch: {} env: @@ -19,8 +19,8 @@ env: # strip the hashicorp/ off the front of github.repository for consul CONSUL_LATEST_IMAGE_NAME: ${{ endsWith(github.repository, '-enterprise') && github.repository || 'hashicorp/consul' }} GOPRIVATE: github.com/hashicorp # Required for enterprise deps - BRANCH: "release/1.19.x" - BRANCH_NAME: "release-1.19.x" # Used for naming artifacts + BRANCH: "release/1.16.x" + BRANCH_NAME: "release-1.16.x" # Used for naming artifacts jobs: setup: @@ -42,13 +42,6 @@ jobs: get-go-version: uses: ./.github/workflows/reusable-get-go-version.yml - with: - ref: release/1.19.x - - get-envoy-versions: - uses: ./.github/workflows/reusable-get-envoy-versions.yml - with: - ref: release/1.19.x dev-build: needs: @@ -59,7 +52,7 @@ jobs: runs-on: ${{ needs.setup.outputs.compute-large }} repository-name: ${{ github.repository }} uploaded-binary-name: 'consul-bin' - branch-name: "release/1.17.x" + branch-name: "release/1.16.x" go-version: ${{ needs.get-go-version.outputs.go-version }} secrets: elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} @@ -78,34 +71,36 @@ jobs: - name: Generate Envoy Job Matrix id: set-matrix env: - # TEST_SPLITS sets the number of test case splits to use in the matrix. This will be - # further multiplied in envoy-integration tests by the other dimensions in the matrix - # to determine the total number of runners used. - TEST_SPLITS: 4 + # this is further going to multiplied in envoy-integration tests by the + # other dimensions in the matrix. Currently TOTAL_RUNNERS would be + # multiplied by 8 based on these values: + # envoy-version: ["1.23.12", "1.24.12", "1.25.11", "1.26.8"] + # xds-target: ["server", "client"] + TOTAL_RUNNERS: 8 JQ_SLICER: '[ inputs ] | [_nwise(length / $runnercount | floor)]' run: | + NUM_RUNNERS=$TOTAL_RUNNERS NUM_DIRS=$(find ./test/integration/connect/envoy -mindepth 1 -maxdepth 1 -type d | wc -l) - if [ "$NUM_DIRS" -lt "$TEST_SPLITS" ]; then - echo "TEST_SPLITS is larger than the number of tests/packages to split." - TEST_SPLITS=$((NUM_DIRS-1)) + if [ "$NUM_DIRS" -lt "$NUM_RUNNERS" ]; then + echo "TOTAL_RUNNERS is larger than the number of tests/packages to split." + NUM_RUNNERS=$((NUM_DIRS-1)) fi - # fix issue where test splitting calculation generates 1 more split than TEST_SPLITS. - TEST_SPLITS=$((TEST_SPLITS-1)) + # fix issue where test splitting calculation generates 1 more split than TOTAL_RUNNERS. + NUM_RUNNERS=$((NUM_RUNNERS-1)) { echo -n "envoy-matrix=" find ./test/integration/connect/envoy -maxdepth 1 -type d -print0 \ | xargs -0 -n 1 basename \ - | jq --raw-input --argjson runnercount "$TEST_SPLITS" "$JQ_SLICER" \ + | jq --raw-input --argjson runnercount "$NUM_RUNNERS" "$JQ_SLICER" \ | jq --compact-output 'map(join("|"))' } >> "$GITHUB_OUTPUT" - + envoy-integration-test: runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} needs: - setup - get-go-version - - get-envoy-versions - generate-envoy-job-matrices - dev-build permissions: @@ -114,7 +109,7 @@ jobs: strategy: fail-fast: false matrix: - envoy-version: ${{ fromJSON(needs.get-envoy-versions.outputs.envoy-versions-json) }} + envoy-version: ["1.23.12", "1.24.12", "1.25.11", "1.26.8"] xds-target: ["server", "client"] test-cases: ${{ fromJSON(needs.generate-envoy-job-matrices.outputs.envoy-matrix) }} env: @@ -202,7 +197,6 @@ jobs: needs: - setup - get-go-version - - get-envoy-versions - dev-build permissions: id-token: write # NOTE: this permission is explicitly required for Vault auth. @@ -210,20 +204,10 @@ jobs: strategy: fail-fast: false matrix: - consul-version: ["1.15", "1.17", "1.18", "1.19"] + consul-version: ["1.14", "1.15", "1.16"] env: CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - # ENVOY_VERSION should be the latest version supported by _all_ Consul versions in the - # matrix.consul-version, since we are testing upgrade from an older Consul version. - # In practice, this should be the highest Envoy version supported by the lowest non-LTS - # Consul version in the matrix (LTS versions receive additional Envoy version support). - # - # This value should be kept current in new nightly test workflows, and updated any time - # a new major Envoy release is added to the set supported by Consul versions in - # matrix.consul-version (i.e. whenever the highest common Envoy version across active - # Consul versions changes). The minor Envoy version does not necessarily need to be - # kept current for the purpose of these tests, but the major (1.N) version should be. - ENVOY_VERSION: 1.27.6 + ENVOY_VERSION: "1.24.6" steps: - name: Checkout code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 @@ -334,96 +318,6 @@ jobs: DD_ENV: ci run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - upgrade-integration-test-deployer: - runs-on: ${{ fromJSON(needs.setup.outputs.compute-large ) }} - needs: - - setup - - get-go-version - - dev-build - permissions: - id-token: write # NOTE: this permission is explicitly required for Vault auth. - contents: read - strategy: - fail-fast: false - matrix: - consul-version: ["1.15", "1.17", "1.18"] - env: - CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - ref: ${{ env.BRANCH }} - # NOTE: This step is specifically needed for ENT. It allows us to access the required private HashiCorp repos. - - name: Setup Git - if: ${{ endsWith(github.repository, '-enterprise') }} - run: git config --global url."https://${{ secrets.ELEVATED_GITHUB_TOKEN }}:@github.com".insteadOf "https://github.com" - - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: ${{ needs.get-go-version.outputs.go-version }} - - run: go env - - name: Build image - run: make test-deployer-setup - - name: Upgrade Integration Tests - run: | - mkdir -p "${{ env.TEST_RESULTS_DIR }}" - export NOLOGBUFFER=1 - cd ./test-integ/upgrade - docker run --rm ${{ env.CONSUL_LATEST_IMAGE_NAME }}:local consul version - go run gotest.tools/gotestsum@v${{env.GOTESTSUM_VERSION}} \ - --raw-command \ - --format=standard-verbose \ - --debug \ - --packages="./..." \ - -- \ - go test \ - -tags "${{ env.GOTAGS }}" \ - -timeout=60m \ - -parallel=2 \ - -json \ - ./... \ - --target-image ${{ env.CONSUL_LATEST_IMAGE_NAME }} \ - --target-version local \ - --latest-image docker.mirror.hashicorp.services/${{ env.CONSUL_LATEST_IMAGE_NAME }} \ - --latest-version "${{ env.CONSUL_LATEST_VERSION }}" - env: - # this is needed because of incompatibility between RYUK container and GHA - GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml - GOTESTSUM_FORMAT: standard-verbose - COMPOSE_INTERACTIVE_NO_CLI: 1 - # tput complains if this isn't set to something. - TERM: ansi - # NOTE: ENT specific step as we store secrets in Vault. - - name: Authenticate to Vault - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: vault-auth - run: vault-auth - - # NOTE: ENT specific step as we store secrets in Vault. - - name: Fetch Secrets - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: secrets - uses: hashicorp/vault-action@v3 - with: - url: ${{ steps.vault-auth.outputs.addr }} - caCertificate: ${{ steps.vault-auth.outputs.ca_certificate }} - token: ${{ steps.vault-auth.outputs.token }} - secrets: | - kv/data/github/${{ github.repository }}/datadog apikey | DATADOG_API_KEY; - - - name: prepare datadog-ci - if: ${{ !cancelled() && !endsWith(github.repository, '-enterprise') }} - run: | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" - chmod +x /usr/local/bin/datadog-ci - - - name: upload coverage - # do not run on forks - if: ${{ !cancelled() && github.event.pull_request.head.repo.full_name == github.repository }} - env: - DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" - DD_ENV: ci - run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml test-integrations-success: needs: @@ -432,7 +326,6 @@ jobs: - generate-envoy-job-matrices - envoy-integration-test - upgrade-integration-test - - upgrade-integration-test-deployer runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} if: ${{ always() }} steps: diff --git a/.github/workflows/nightly-test-integrations-1.17.x.yml b/.github/workflows/nightly-test-integrations-1.17.x.yml index df952d8234fae..f0b810150eaf0 100644 --- a/.github/workflows/nightly-test-integrations-1.17.x.yml +++ b/.github/workflows/nightly-test-integrations-1.17.x.yml @@ -6,7 +6,7 @@ name: Nightly test-integrations 1.17.x on: schedule: # Run nightly at 1AM UTC/9PM EST/6PM PST - - cron: '0 1 * * *' + - cron: '* 1 * * *' workflow_dispatch: {} env: @@ -23,15 +23,8 @@ env: BRANCH_NAME: "release-1.17.x" # Used for naming artifacts jobs: - check-ent: - runs-on: ubuntu-latest - if: ${{ endsWith(github.repository, '-enterprise') }} - steps: - - run: echo "Building Enterprise" - setup: runs-on: ubuntu-latest - needs: [check-ent] name: Setup outputs: compute-small: ${{ steps.runners.outputs.compute-small }} @@ -48,16 +41,7 @@ jobs: run: .github/scripts/get_runner_classes.sh get-go-version: - needs: [check-ent] uses: ./.github/workflows/reusable-get-go-version.yml - with: - ref: release/1.17.x - - get-envoy-versions: - needs: [check-ent] - uses: ./.github/workflows/reusable-get-envoy-versions.yml - with: - ref: release/1.17.x dev-build: needs: @@ -87,34 +71,36 @@ jobs: - name: Generate Envoy Job Matrix id: set-matrix env: - # TEST_SPLITS sets the number of test case splits to use in the matrix. This will be - # further multiplied in envoy-integration tests by the other dimensions in the matrix - # to determine the total number of runners used. - TEST_SPLITS: 4 + # this is further going to multiplied in envoy-integration tests by the + # other dimensions in the matrix. Currently TOTAL_RUNNERS would be + # multiplied by 8 based on these values: + # envoy-version: ["1.24.12", "1.25.11", "1.26.8", "1.27.5"] + # xds-target: ["server", "client"] + TOTAL_RUNNERS: 4 JQ_SLICER: '[ inputs ] | [_nwise(length / $runnercount | floor)]' run: | + NUM_RUNNERS=$TOTAL_RUNNERS NUM_DIRS=$(find ./test/integration/connect/envoy -mindepth 1 -maxdepth 1 -type d | wc -l) - if [ "$NUM_DIRS" -lt "$TEST_SPLITS" ]; then - echo "TEST_SPLITS is larger than the number of tests/packages to split." - TEST_SPLITS=$((NUM_DIRS-1)) + if [ "$NUM_DIRS" -lt "$NUM_RUNNERS" ]; then + echo "TOTAL_RUNNERS is larger than the number of tests/packages to split." + NUM_RUNNERS=$((NUM_DIRS-1)) fi - # fix issue where test splitting calculation generates 1 more split than TEST_SPLITS. - TEST_SPLITS=$((TEST_SPLITS-1)) + # fix issue where test splitting calculation generates 1 more split than TOTAL_RUNNERS. + NUM_RUNNERS=$((NUM_RUNNERS-1)) { echo -n "envoy-matrix=" find ./test/integration/connect/envoy -maxdepth 1 -type d -print0 \ | xargs -0 -n 1 basename \ - | jq --raw-input --argjson runnercount "$TEST_SPLITS" "$JQ_SLICER" \ + | jq --raw-input --argjson runnercount "$NUM_RUNNERS" "$JQ_SLICER" \ | jq --compact-output 'map(join("|"))' } >> "$GITHUB_OUTPUT" - + envoy-integration-test: runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} needs: - setup - get-go-version - - get-envoy-versions - generate-envoy-job-matrices - dev-build permissions: @@ -123,7 +109,7 @@ jobs: strategy: fail-fast: false matrix: - envoy-version: ${{ fromJSON(needs.get-envoy-versions.outputs.envoy-versions-json) }} + envoy-version: ["1.24.12", "1.25.11", "1.26.8", "1.27.6"] xds-target: ["server", "client"] test-cases: ${{ fromJSON(needs.generate-envoy-job-matrices.outputs.envoy-matrix) }} env: @@ -205,7 +191,7 @@ jobs: DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" DD_ENV: ci run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - + upgrade-integration-test: runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} needs: @@ -221,17 +207,7 @@ jobs: consul-version: ["1.15", "1.16", "1.17"] env: CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - # ENVOY_VERSION should be the latest version supported by _all_ Consul versions in the - # matrix.consul-version, since we are testing upgrade from an older Consul version. - # In practice, this should be the highest Envoy version supported by the lowest non-LTS - # Consul version in the matrix (LTS versions receive additional Envoy version support). - # - # This value should be kept current in new nightly test workflows, and updated any time - # a new major Envoy release is added to the set supported by Consul versions in - # matrix.consul-version (i.e. whenever the highest common Envoy version across active - # Consul versions changes). The minor Envoy version does not necessarily need to be - # kept current for the purpose of these tests, but the major (1.N) version should be. - ENVOY_VERSION: 1.27.6 + ENVOY_VERSION: "1.24.6" steps: - name: Checkout code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 @@ -442,7 +418,7 @@ jobs: - upgrade-integration-test - upgrade-integration-test-deployer runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} - if: ${{ always() && endsWith(github.repository, '-enterprise') }} + if: ${{ always() }} steps: - name: evaluate upstream job results run: | diff --git a/.github/workflows/nightly-test-integrations-1.18.x.yml b/.github/workflows/nightly-test-integrations-1.18.x.yml deleted file mode 100644 index c432dc1c09c86..0000000000000 --- a/.github/workflows/nightly-test-integrations-1.18.x.yml +++ /dev/null @@ -1,463 +0,0 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 - -name: Nightly test-integrations 1.18.x - -on: - schedule: - # Run nightly at 1AM UTC/9PM EST/6PM PST - - cron: '0 1 * * *' - workflow_dispatch: {} - -env: - TEST_RESULTS_DIR: /tmp/test-results - TEST_RESULTS_ARTIFACT_NAME: test-results - CONSUL_LICENSE: ${{ secrets.CONSUL_LICENSE }} - GOTAGS: ${{ endsWith(github.repository, '-enterprise') && 'consulent' || '' }} - GOTESTSUM_VERSION: "1.11.0" - CONSUL_BINARY_UPLOAD_NAME: consul-bin - # strip the hashicorp/ off the front of github.repository for consul - CONSUL_LATEST_IMAGE_NAME: ${{ endsWith(github.repository, '-enterprise') && github.repository || 'hashicorp/consul' }} - GOPRIVATE: github.com/hashicorp # Required for enterprise deps - BRANCH: "release/1.18.x" - BRANCH_NAME: "release-1.18.x" # Used for naming artifacts - -jobs: - check-ent: - runs-on: ubuntu-latest - if: ${{ endsWith(github.repository, '-enterprise') }} - steps: - - run: echo "Building Enterprise" - - setup: - runs-on: ubuntu-latest - needs: [check-ent] - name: Setup - outputs: - compute-small: ${{ steps.runners.outputs.compute-small }} - compute-medium: ${{ steps.runners.outputs.compute-medium }} - compute-large: ${{ steps.runners.outputs.compute-large }} - compute-xl: ${{ steps.runners.outputs.compute-xl }} - enterprise: ${{ steps.runners.outputs.enterprise }} - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - ref: ${{ env.BRANCH }} - - id: runners - run: .github/scripts/get_runner_classes.sh - - get-go-version: - needs: [check-ent] - uses: ./.github/workflows/reusable-get-go-version.yml - with: - ref: release/1.18.x - - get-envoy-versions: - uses: ./.github/workflows/reusable-get-envoy-versions.yml - with: - ref: release/1.18.x - - dev-build: - needs: - - setup - - get-go-version - uses: ./.github/workflows/reusable-dev-build.yml - with: - runs-on: ${{ needs.setup.outputs.compute-large }} - repository-name: ${{ github.repository }} - uploaded-binary-name: 'consul-bin' - branch-name: "release/1.17.x" - go-version: ${{ needs.get-go-version.outputs.go-version }} - secrets: - elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} - - generate-envoy-job-matrices: - needs: [setup] - runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} - name: Generate Envoy Job Matrices - outputs: - envoy-matrix: ${{ steps.set-matrix.outputs.envoy-matrix }} - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - ref: ${{ env.BRANCH }} - - name: Generate Envoy Job Matrix - id: set-matrix - env: - # TEST_SPLITS sets the number of test case splits to use in the matrix. This will be - # further multiplied in envoy-integration tests by the other dimensions in the matrix - # to determine the total number of runners used. - TEST_SPLITS: 4 - JQ_SLICER: '[ inputs ] | [_nwise(length / $runnercount | floor)]' - run: | - NUM_DIRS=$(find ./test/integration/connect/envoy -mindepth 1 -maxdepth 1 -type d | wc -l) - - if [ "$NUM_DIRS" -lt "$TEST_SPLITS" ]; then - echo "TEST_SPLITS is larger than the number of tests/packages to split." - TEST_SPLITS=$((NUM_DIRS-1)) - fi - # fix issue where test splitting calculation generates 1 more split than TEST_SPLITS. - TEST_SPLITS=$((TEST_SPLITS-1)) - { - echo -n "envoy-matrix=" - find ./test/integration/connect/envoy -maxdepth 1 -type d -print0 \ - | xargs -0 -n 1 basename \ - | jq --raw-input --argjson runnercount "$TEST_SPLITS" "$JQ_SLICER" \ - | jq --compact-output 'map(join("|"))' - } >> "$GITHUB_OUTPUT" - - envoy-integration-test: - runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} - needs: - - setup - - get-go-version - - get-envoy-versions - - generate-envoy-job-matrices - - dev-build - permissions: - id-token: write # NOTE: this permission is explicitly required for Vault auth. - contents: read - strategy: - fail-fast: false - matrix: - envoy-version: ${{ fromJSON(needs.get-envoy-versions.outputs.envoy-versions-json) }} - xds-target: ["server", "client"] - test-cases: ${{ fromJSON(needs.generate-envoy-job-matrices.outputs.envoy-matrix) }} - env: - ENVOY_VERSION: ${{ matrix.envoy-version }} - XDS_TARGET: ${{ matrix.xds-target }} - AWS_LAMBDA_REGION: us-west-2 - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - ref: ${{ env.BRANCH }} - - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: ${{ needs.get-go-version.outputs.go-version }} - - - name: fetch binary - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 - with: - name: '${{ env.CONSUL_BINARY_UPLOAD_NAME }}' - path: ./bin - - name: restore mode+x - run: chmod +x ./bin/consul - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 - - - name: Docker build - run: docker build -t consul:local -f ./build-support/docker/Consul-Dev.dockerfile ./bin - - - name: Envoy Integration Tests - env: - GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml - GOTESTSUM_FORMAT: standard-verbose - COMPOSE_INTERACTIVE_NO_CLI: 1 - LAMBDA_TESTS_ENABLED: "true" - # tput complains if this isn't set to something. - TERM: ansi - run: | - # shellcheck disable=SC2001 - echo "Running $(sed 's,|, ,g' <<< "${{ matrix.test-cases }}" |wc -w) subtests" - # shellcheck disable=SC2001 - sed 's,|,\n,g' <<< "${{ matrix.test-cases }}" - go run gotest.tools/gotestsum@v${{env.GOTESTSUM_VERSION}} \ - --debug \ - --rerun-fails \ - --rerun-fails-report=/tmp/gotestsum-rerun-fails \ - --jsonfile /tmp/jsonfile/go-test.log \ - --packages=./test/integration/connect/envoy \ - -- -timeout=30m -tags integration -run="TestEnvoy/(${{ matrix.test-cases }})" - - # NOTE: ENT specific step as we store secrets in Vault. - - name: Authenticate to Vault - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: vault-auth - run: vault-auth - - # NOTE: ENT specific step as we store secrets in Vault. - - name: Fetch Secrets - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: secrets - uses: hashicorp/vault-action@v3 - with: - url: ${{ steps.vault-auth.outputs.addr }} - caCertificate: ${{ steps.vault-auth.outputs.ca_certificate }} - token: ${{ steps.vault-auth.outputs.token }} - secrets: | - kv/data/github/${{ github.repository }}/datadog apikey | DATADOG_API_KEY; - - - name: prepare datadog-ci - if: ${{ !cancelled() && !endsWith(github.repository, '-enterprise') }} - run: | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" - chmod +x /usr/local/bin/datadog-ci - - - name: upload coverage - # do not run on forks - if: ${{ !cancelled() && github.event.pull_request.head.repo.full_name == github.repository }} - env: - DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" - DD_ENV: ci - run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - - upgrade-integration-test: - runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} - needs: - - setup - - get-go-version - - dev-build - permissions: - id-token: write # NOTE: this permission is explicitly required for Vault auth. - contents: read - strategy: - fail-fast: false - matrix: - consul-version: ["1.15", "1.16", "1.17", "1.18"] - env: - CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - # ENVOY_VERSION should be the latest version supported by _all_ Consul versions in the - # matrix.consul-version, since we are testing upgrade from an older Consul version. - # In practice, this should be the highest Envoy version supported by the lowest non-LTS - # Consul version in the matrix (LTS versions receive additional Envoy version support). - # - # This value should be kept current in new nightly test workflows, and updated any time - # a new major Envoy release is added to the set supported by Consul versions in - # matrix.consul-version (i.e. whenever the highest common Envoy version across active - # Consul versions changes). The minor Envoy version does not necessarily need to be - # kept current for the purpose of these tests, but the major (1.N) version should be. - ENVOY_VERSION: 1.27.6 - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - ref: ${{ env.BRANCH }} - # NOTE: This step is specifically needed for ENT. It allows us to access the required private HashiCorp repos. - - name: Setup Git - if: ${{ endsWith(github.repository, '-enterprise') }} - run: git config --global url."https://${{ secrets.ELEVATED_GITHUB_TOKEN }}:@github.com".insteadOf "https://github.com" - - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: ${{ needs.get-go-version.outputs.go-version }} - - run: go env - - # Get go binary from workspace - - name: fetch binary - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 - with: - name: '${{ env.CONSUL_BINARY_UPLOAD_NAME }}' - path: . - - name: restore mode+x - run: chmod +x consul - - name: Build consul:local image - run: docker build -t ${{ env.CONSUL_LATEST_IMAGE_NAME }}:local -f ./build-support/docker/Consul-Dev.dockerfile . - - name: Build consul-envoy:latest-version image - id: buildConsulEnvoyLatestImage - run: | - if ${{ endsWith(github.repository, '-enterprise') }} == 'true' - then - docker build -t consul-envoy:latest-version --build-arg CONSUL_IMAGE=docker.mirror.hashicorp.services/${{ env.CONSUL_LATEST_IMAGE_NAME }}:${{ env.CONSUL_LATEST_VERSION }}-ent --build-arg ENVOY_VERSION=${{ env.ENVOY_VERSION }} -f ./test/integration/consul-container/assets/Dockerfile-consul-envoy ./test/integration/consul-container/assets - else - docker build -t consul-envoy:latest-version --build-arg CONSUL_IMAGE=docker.mirror.hashicorp.services/${{ env.CONSUL_LATEST_IMAGE_NAME }}:${{ env.CONSUL_LATEST_VERSION }} --build-arg ENVOY_VERSION=${{ env.ENVOY_VERSION }} -f ./test/integration/consul-container/assets/Dockerfile-consul-envoy ./test/integration/consul-container/assets - fi - - name: Build consul-envoy:target-version image - id: buildConsulEnvoyTargetImage - continue-on-error: true - run: docker build -t consul-envoy:target-version --build-arg CONSUL_IMAGE=${{ env.CONSUL_LATEST_IMAGE_NAME }}:local --build-arg ENVOY_VERSION=${{ env.ENVOY_VERSION }} -f ./test/integration/consul-container/assets/Dockerfile-consul-envoy ./test/integration/consul-container/assets - - name: Retry Build consul-envoy:target-version image - if: steps.buildConsulEnvoyTargetImage.outcome == 'failure' - run: docker build -t consul-envoy:target-version --build-arg CONSUL_IMAGE=${{ env.CONSUL_LATEST_IMAGE_NAME }}:local --build-arg ENVOY_VERSION=${{ env.ENVOY_VERSION }} -f ./test/integration/consul-container/assets/Dockerfile-consul-envoy ./test/integration/consul-container/assets - - name: Build sds image - run: docker build -t consul-sds-server ./test/integration/connect/envoy/test-sds-server/ - - name: Configure GH workaround for ipv6 loopback - if: ${{ !endsWith(github.repository, '-enterprise') }} - run: | - cat /etc/hosts && echo "-----------" - sudo sed -i 's/::1 *localhost ip6-localhost ip6-loopback/::1 ip6-localhost ip6-loopback/g' /etc/hosts - cat /etc/hosts - - name: Upgrade Integration Tests - run: | - mkdir -p "${{ env.TEST_RESULTS_DIR }}" - cd ./test/integration/consul-container/test/upgrade - docker run --rm ${{ env.CONSUL_LATEST_IMAGE_NAME }}:local consul version - go run gotest.tools/gotestsum@v${{env.GOTESTSUM_VERSION}} \ - --raw-command \ - --format=github-actions \ - --rerun-fails \ - --packages="./..." \ - -- \ - go test \ - -p=4 \ - -tags "${{ env.GOTAGS }}" \ - -timeout=30m \ - -json \ - ./... \ - --follow-log=false \ - --target-image ${{ env.CONSUL_LATEST_IMAGE_NAME }} \ - --target-version local \ - --latest-image docker.mirror.hashicorp.services/${{ env.CONSUL_LATEST_IMAGE_NAME }} \ - --latest-version "${{ env.CONSUL_LATEST_VERSION }}" - ls -lrt - env: - # this is needed because of incompatibility between RYUK container and GHA - GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml - GOTESTSUM_FORMAT: standard-verbose - COMPOSE_INTERACTIVE_NO_CLI: 1 - # tput complains if this isn't set to something. - TERM: ansi - # NOTE: ENT specific step as we store secrets in Vault. - - name: Authenticate to Vault - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: vault-auth - run: vault-auth - - # NOTE: ENT specific step as we store secrets in Vault. - - name: Fetch Secrets - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: secrets - uses: hashicorp/vault-action@v3 - with: - url: ${{ steps.vault-auth.outputs.addr }} - caCertificate: ${{ steps.vault-auth.outputs.ca_certificate }} - token: ${{ steps.vault-auth.outputs.token }} - secrets: | - kv/data/github/${{ github.repository }}/datadog apikey | DATADOG_API_KEY; - - - name: prepare datadog-ci - if: ${{ !cancelled() && !endsWith(github.repository, '-enterprise') }} - run: | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" - chmod +x /usr/local/bin/datadog-ci - - - name: upload coverage - # do not run on forks - if: ${{ !cancelled() && github.event.pull_request.head.repo.full_name == github.repository }} - env: - DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" - DD_ENV: ci - run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - - upgrade-integration-test-deployer: - runs-on: ${{ fromJSON(needs.setup.outputs.compute-large ) }} - needs: - - setup - - get-go-version - - dev-build - permissions: - id-token: write # NOTE: this permission is explicitly required for Vault auth. - contents: read - strategy: - fail-fast: false - matrix: - consul-version: [ "1.15", "1.16", "1.17"] - env: - CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - steps: - - name: Checkout code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - with: - ref: ${{ env.BRANCH }} - # NOTE: This step is specifically needed for ENT. It allows us to access the required private HashiCorp repos. - - name: Setup Git - if: ${{ endsWith(github.repository, '-enterprise') }} - run: git config --global url."https://${{ secrets.ELEVATED_GITHUB_TOKEN }}:@github.com".insteadOf "https://github.com" - - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: ${{ needs.get-go-version.outputs.go-version }} - - run: go env - - name: Build image - run: make test-deployer-setup - - name: Upgrade Integration Tests - run: | - mkdir -p "${{ env.TEST_RESULTS_DIR }}" - export NOLOGBUFFER=1 - cd ./test-integ/upgrade - docker run --rm ${{ env.CONSUL_LATEST_IMAGE_NAME }}:local consul version - go run gotest.tools/gotestsum@v${{env.GOTESTSUM_VERSION}} \ - --raw-command \ - --format=standard-verbose \ - --debug \ - --packages="./..." \ - -- \ - go test \ - -tags "${{ env.GOTAGS }}" \ - -timeout=60m \ - -parallel=2 \ - -json \ - ./... \ - --target-image ${{ env.CONSUL_LATEST_IMAGE_NAME }} \ - --target-version local \ - --latest-image docker.mirror.hashicorp.services/${{ env.CONSUL_LATEST_IMAGE_NAME }} \ - --latest-version "${{ env.CONSUL_LATEST_VERSION }}" - env: - # this is needed because of incompatibility between RYUK container and GHA - GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml - GOTESTSUM_FORMAT: standard-verbose - COMPOSE_INTERACTIVE_NO_CLI: 1 - # tput complains if this isn't set to something. - TERM: ansi - # NOTE: ENT specific step as we store secrets in Vault. - - name: Authenticate to Vault - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: vault-auth - run: vault-auth - - # NOTE: ENT specific step as we store secrets in Vault. - - name: Fetch Secrets - if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} - id: secrets - uses: hashicorp/vault-action@v3 - with: - url: ${{ steps.vault-auth.outputs.addr }} - caCertificate: ${{ steps.vault-auth.outputs.ca_certificate }} - token: ${{ steps.vault-auth.outputs.token }} - secrets: | - kv/data/github/${{ github.repository }}/datadog apikey | DATADOG_API_KEY; - - - name: prepare datadog-ci - if: ${{ !cancelled() && !endsWith(github.repository, '-enterprise') }} - run: | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" - chmod +x /usr/local/bin/datadog-ci - - - name: upload coverage - # do not run on forks - if: ${{ !cancelled() && github.event.pull_request.head.repo.full_name == github.repository }} - env: - DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" - DD_ENV: ci - run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - - test-integrations-success: - needs: - - setup - - dev-build - - generate-envoy-job-matrices - - envoy-integration-test - - upgrade-integration-test - - upgrade-integration-test-deployer - runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} - if: ${{ always() && endsWith(github.repository, '-enterprise') }} - steps: - - name: evaluate upstream job results - run: | - # exit 1 if failure or cancelled result for any upstream job - if printf '${{ toJSON(needs) }}' | grep -E -i '\"result\": \"(failure|cancelled)\"'; then - printf "Tests failed or workflow cancelled:\n\n${{ toJSON(needs) }}" - exit 1 - fi - - name: Notify Slack - if: ${{ failure() }} - id: slack - uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0 - with: - payload: | - { - "message": "One or more nightly integration tests have failed on branch ${{ env.BRANCH }} for Consul. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" - } - env: - SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_NIGHTLY_INTEG_TEST_SLACK_WEBHOOK }} diff --git a/.github/workflows/nightly-test-integrations.yml b/.github/workflows/nightly-test-integrations.yml index cfaa25303062a..bf914f88935d4 100644 --- a/.github/workflows/nightly-test-integrations.yml +++ b/.github/workflows/nightly-test-integrations.yml @@ -6,7 +6,7 @@ name: Nightly test-integrations on: schedule: # Run nightly at 12AM UTC/8PM EST/5PM PST - - cron: '0 0 * * *' + - cron: '* 0 * * *' workflow_dispatch: {} env: @@ -41,9 +41,6 @@ jobs: get-go-version: uses: ./.github/workflows/reusable-get-go-version.yml - get-envoy-versions: - uses: ./.github/workflows/reusable-get-envoy-versions.yml - dev-build: needs: - setup @@ -58,9 +55,7 @@ jobs: elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} generate-envoy-job-matrices: - needs: - - setup - - get-envoy-versions + needs: [setup] runs-on: ${{ fromJSON(needs.setup.outputs.compute-small) }} name: Generate Envoy Job Matrices outputs: @@ -73,25 +68,28 @@ jobs: - name: Generate Envoy Job Matrix id: set-matrix env: - # TEST_SPLITS sets the number of test case splits to use in the matrix. This will be - # further multiplied in envoy-integration tests by the other dimensions in the matrix - # to determine the total number of runners used. - TEST_SPLITS: 4 + # this is further going to multiplied in envoy-integration tests by the + # other dimensions in the matrix. Currently TOTAL_RUNNERS would be + # multiplied by 8 based on these values: + # envoy-version: ["1.26.8", "1.27.5", "1.28.3", "1.29.4"] + # xds-target: ["server", "client"] + TOTAL_RUNNERS: 8 JQ_SLICER: '[ inputs ] | [_nwise(length / $runnercount | floor)]' run: | + NUM_RUNNERS=$TOTAL_RUNNERS NUM_DIRS=$(find ./test/integration/connect/envoy -mindepth 1 -maxdepth 1 -type d | wc -l) - if [ "$NUM_DIRS" -lt "$TEST_SPLITS" ]; then - echo "TEST_SPLITS is larger than the number of tests/packages to split." - TEST_SPLITS=$((NUM_DIRS-1)) + if [ "$NUM_DIRS" -lt "$NUM_RUNNERS" ]; then + echo "TOTAL_RUNNERS is larger than the number of tests/packages to split." + NUM_RUNNERS=$((NUM_DIRS-1)) fi - # fix issue where test splitting calculation generates 1 more split than TEST_SPLITS. - TEST_SPLITS=$((TEST_SPLITS-1)) + # fix issue where test splitting calculation generates 1 more split than TOTAL_RUNNERS. + NUM_RUNNERS=$((NUM_RUNNERS-1)) { echo -n "envoy-matrix=" find ./test/integration/connect/envoy -maxdepth 1 -type d -print0 \ | xargs -0 -n 1 basename \ - | jq --raw-input --argjson runnercount "$TEST_SPLITS" "$JQ_SLICER" \ + | jq --raw-input --argjson runnercount "$NUM_RUNNERS" "$JQ_SLICER" \ | jq --compact-output 'map(join("|"))' } >> "$GITHUB_OUTPUT" @@ -100,7 +98,6 @@ jobs: needs: - setup - get-go-version - - get-envoy-versions - generate-envoy-job-matrices - dev-build permissions: @@ -109,7 +106,7 @@ jobs: strategy: fail-fast: false matrix: - envoy-version: ${{ fromJSON(needs.get-envoy-versions.outputs.envoy-versions-json) }} + envoy-version: ["1.26.8", "1.27.6", "1.28.4", "1.29.5"] xds-target: ["server", "client"] test-cases: ${{ fromJSON(needs.generate-envoy-job-matrices.outputs.envoy-matrix) }} env: @@ -191,7 +188,7 @@ jobs: DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" DD_ENV: ci run: datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml - + upgrade-integration-test: runs-on: ${{ fromJSON(needs.setup.outputs.compute-large ) }} needs: @@ -204,20 +201,13 @@ jobs: strategy: fail-fast: false matrix: - consul-version: ["1.17", "1.18", "1.19"] + consul-version: [ "1.17", "1.18"] env: CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} - # ENVOY_VERSION should be the latest version supported by _all_ Consul versions in the - # matrix.consul-version, since we are testing upgrade from an older Consul version. - # In practice, this should be the highest Envoy version supported by the lowest non-LTS - # Consul version in the matrix (LTS versions receive additional Envoy version support). - # - # This value should be kept current in new nightly test workflows, and updated any time - # a new major Envoy release is added to the set supported by Consul versions in - # matrix.consul-version (i.e. whenever the highest common Envoy version across active - # Consul versions changes). The minor Envoy version does not necessarily need to be - # kept current for the purpose of these tests, but the major (1.N) version should be. - ENVOY_VERSION: 1.27.6 + # ENVOY_VERSION should be the latest version upported by all + # consul versions in the matrix.consul-version, since we are testing upgrade from + # an older consul version, e.g., 1.27.5 is supported by both 1.16 and 1.17. + ENVOY_VERSION: "1.27.5" steps: - name: Checkout code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 @@ -339,7 +329,7 @@ jobs: strategy: fail-fast: false matrix: - consul-version: [ "1.17", "1.18"] + consul-version: [ "1.16", "1.17"] env: CONSUL_LATEST_VERSION: ${{ matrix.consul-version }} steps: diff --git a/.github/workflows/test-integrations.yml b/.github/workflows/test-integrations.yml index 3d57c90994711..6cad2eb924d38 100644 --- a/.github/workflows/test-integrations.yml +++ b/.github/workflows/test-integrations.yml @@ -512,7 +512,7 @@ jobs: strategy: fail-fast: false env: - DEPLOYER_CONSUL_DATAPLANE_IMAGE: "docker.mirror.hashicorp.services/hashicorppreview/consul-dataplane:1.3-dev" + DEPLOYER_CONSUL_DATAPLANE_IMAGE: "docker.mirror.hashicorp.services/hashicorppreview/consul-dataplane:1.5-dev" steps: - name: Checkout code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 diff --git a/.release/versions.hcl b/.release/versions.hcl index fdc0f2989d27b..abdd7f3342d42 100644 --- a/.release/versions.hcl +++ b/.release/versions.hcl @@ -6,13 +6,12 @@ schema = 1 active_versions { - version "1.19" { - ce_active = true - } version "1.18" { + ce_active = true lts = true } version "1.17" {} + version "1.16" {} version "1.15" { lts = true } diff --git a/CHANGELOG.md b/CHANGELOG.md index acc8bbe298f9f..bd5c2584c9b15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,105 +1,3 @@ -## 1.19.1 (July 11, 2024) - -SECURITY: - -* Upgrade envoy module dependencies to version 1.27.7, 1.28.5 and 1.29.7 or higher to resolve [CVE-2024-39305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39305) [[GH-21524](https://github.com/hashicorp/consul/issues/21524)] -* Upgrade go version to 1.22.5 to address [CVE-2024-24791](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-24791) [[GH-21507](https://github.com/hashicorp/consul/issues/21507)] -* Upgrade go-retryablehttp to address [CVE-2024-6104](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-6104) [[GH-21384](https://github.com/hashicorp/consul/issues/21384)] -* agent: removed reflected cross-site scripting vulnerability [[GH-21342](https://github.com/hashicorp/consul/issues/21342)] -* ui: Pin and namespace sub-module dependencies related to the Consul UI [[GH-21378](https://github.com/hashicorp/consul/issues/21378)] - -IMPROVEMENTS: - -* mesh: update supported envoy version 1.29.5 in addition to 1.28.4, 1.27.6. [[GH-21277](https://github.com/hashicorp/consul/issues/21277)] - -BUG FIXES: - -* core: Fix multiple incorrect type conversion for potential overflows [[GH-21251](https://github.com/hashicorp/consul/issues/21251)] -* core: Fix panic runtime error on AliasCheck [[GH-21339](https://github.com/hashicorp/consul/issues/21339)] -* dns: Fix a regression where DNS SRV questions were returning duplicate hostnames instead of encoded IPs. - This affected Nomad integrations with Consul. [[GH-21361](https://github.com/hashicorp/consul/issues/21361)] -* dns: Fix a regression where DNS tags using the standard lookup syntax, `tag.name.service.consul`, were being disregarded. [[GH-21361](https://github.com/hashicorp/consul/issues/21361)] -* dns: Fixes a spam log message "Failed to parse TTL for prepared query..." - that was always being logged on each prepared query evaluation. [[GH-21381](https://github.com/hashicorp/consul/issues/21381)] -* terminating-gateway: **(Enterprise Only)** Fixed issue where enterprise metadata applied to linked services was the terminating-gateways enterprise metadata and not the linked services enterprise metadata. [[GH-21382](https://github.com/hashicorp/consul/issues/21382)] -* txn: Fix a bug where mismatched Consul server versions could result in undetected data loss for when using newer Transaction verbs. [[GH-21519](https://github.com/hashicorp/consul/issues/21519)] - -## 1.18.3 Enterprise (July 11, 2024) - -**Enterprise LTS**: Consul Enterprise 1.18 is a Long-Term Support (LTS) release. - -SECURITY: - -* Upgrade envoy module dependencies to version 1.27.7, 1.28.5 and 1.29.7 or higher to resolve [CVE-2024-39305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39305) [[GH-21524](https://github.com/hashicorp/consul/issues/21524)] -* Upgrade go version to 1.22.5 to address [CVE-2024-24791](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-24791) [[GH-21507](https://github.com/hashicorp/consul/issues/21507)] -* Upgrade go-retryablehttp to address [CVE-2024-6104](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-6104) [[GH-21384](https://github.com/hashicorp/consul/issues/21384)] -* agent: removed reflected cross-site scripting vulnerability [[GH-21342](https://github.com/hashicorp/consul/issues/21342)] -* ui: Pin and namespace sub-module dependencies related to the Consul UI [[GH-21378](https://github.com/hashicorp/consul/issues/21378)] - -IMPROVEMENTS: - -* mesh: update supported envoy version 1.29.4 -* mesh: update supported envoy version 1.29.5 in addition to 1.28.4, 1.27.6. [[GH-21277](https://github.com/hashicorp/consul/issues/21277)] -* upgrade go version to v1.22.3. [[GH-21113](https://github.com/hashicorp/consul/issues/21113)] -* upgrade go version to v1.22.4. [[GH-21265](https://github.com/hashicorp/consul/issues/21265)] - -BUG FIXES: - -* core: Fix multiple incorrect type conversion for potential overflows [[GH-21251](https://github.com/hashicorp/consul/issues/21251)] -* core: Fix panic runtime error on AliasCheck [[GH-21339](https://github.com/hashicorp/consul/issues/21339)] -* dns: Fixes a spam log message "Failed to parse TTL for prepared query..." - that was always being logged on each prepared query evaluation. [[GH-21381](https://github.com/hashicorp/consul/issues/21381)] -* terminating-gateway: **(Enterprise Only)** Fixed issue where enterprise metadata applied to linked services was the terminating-gateways enterprise metadata and not the linked services enterprise metadata. [[GH-21382](https://github.com/hashicorp/consul/issues/21382)] -* txn: Fix a bug where mismatched Consul server versions could result in undetected data loss for when using newer Transaction verbs. [[GH-21519](https://github.com/hashicorp/consul/issues/21519)] -* v2dns: Fix a regression where DNS SRV questions were returning duplicate hostnames instead of encoded IPs. - This affected Nomad integrations with Consul. [[GH-21361](https://github.com/hashicorp/consul/issues/21361)] -* v2dns: Fix a regression where DNS tags using the standard lookup syntax, `tag.name.service.consul`, were being disregarded. [[GH-21361](https://github.com/hashicorp/consul/issues/21361)] - -## 1.17.6 Enterprise (July 11, 2024) - -SECURITY: - -* Upgrade envoy module dependencies to version 1.27.7, 1.28.5 and 1.29.7 or higher to resolve [CVE-2024-39305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39305) [[GH-21524](https://github.com/hashicorp/consul/issues/21524)] -* Upgrade go version to 1.22.5 to address [CVE-2024-24791](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-24791) [[GH-21507](https://github.com/hashicorp/consul/issues/21507)] -* Upgrade go-retryablehttp to address [CVE-2024-6104](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-6104) [[GH-21384](https://github.com/hashicorp/consul/issues/21384)] -* agent: removed reflected cross-site scripting vulnerability [[GH-21342](https://github.com/hashicorp/consul/issues/21342)] -* ui: Pin and namespace sub-module dependencies related to the Consul UI [[GH-21378](https://github.com/hashicorp/consul/issues/21378)] - -IMPROVEMENTS: - -* upgrade go version to v1.22.3. [[GH-21113](https://github.com/hashicorp/consul/issues/21113)] -* upgrade go version to v1.22.4. [[GH-21265](https://github.com/hashicorp/consul/issues/21265)] - -BUG FIXES: - -* core: Fix panic runtime error on AliasCheck [[GH-21339](https://github.com/hashicorp/consul/issues/21339)] -* terminating-gateway: **(Enterprise Only)** Fixed issue where enterprise metadata applied to linked services was the terminating-gateways enterprise metadata and not the linked services enterprise metadata. [[GH-21382](https://github.com/hashicorp/consul/issues/21382)] -* txn: Fix a bug where mismatched Consul server versions could result in undetected data loss for when using newer Transaction verbs. [[GH-21519](https://github.com/hashicorp/consul/issues/21519)] - -## 1.15.13 Enterprise (July 11, 2024) - -**Enterprise LTS**: Consul Enterprise 1.15 is a Long-Term Support (LTS) release. - -SECURITY: - -* Upgrade envoy module dependencies to version 1.27.7, 1.28.5 and 1.29.7 or higher to resolve [CVE-2024-39305](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-39305) [[GH-21524](https://github.com/hashicorp/consul/issues/21524)] -* Upgrade go version to 1.22.5 to address [CVE-2024-24791](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-24791) [[GH-21507](https://github.com/hashicorp/consul/issues/21507)] -* Upgrade go-retryablehttp to address [CVE-2024-6104](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-6104) [[GH-21384](https://github.com/hashicorp/consul/issues/21384)] -* agent: removed reflected cross-site scripting vulnerability [[GH-21342](https://github.com/hashicorp/consul/issues/21342)] -* ui: Pin and namespace sub-module dependencies related to the Consul UI [[GH-21378](https://github.com/hashicorp/consul/issues/21378)] - -IMPROVEMENTS: - -* mesh: update supported envoy version 1.29.4 -* upgrade go version to v1.22.3. [[GH-21113](https://github.com/hashicorp/consul/issues/21113)] -* upgrade go version to v1.22.4. [[GH-21265](https://github.com/hashicorp/consul/issues/21265)] - -BUG FIXES: - -* core: Fix panic runtime error on AliasCheck [[GH-21339](https://github.com/hashicorp/consul/issues/21339)] -* terminating-gateway: **(Enterprise Only)** Fixed issue where enterprise metadata applied to linked services was the terminating-gateways enterprise metadata and not the linked services enterprise metadata. [[GH-21382](https://github.com/hashicorp/consul/issues/21382)] -* txn: Fix a bug where mismatched Consul server versions could result in undetected data loss for when using newer Transaction verbs. [[GH-21519](https://github.com/hashicorp/consul/issues/21519)] - ## 1.19.0 (June 12, 2024) BREAKING CHANGES: diff --git a/go.mod b/go.mod index a6ebcbaabd580..00457c54bc7b9 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/hashicorp/consul -go 1.22 +go 1.20 toolchain go1.22.5 diff --git a/go.sum b/go.sum index 86dbf3e57d072..886a25dcf58da 100644 --- a/go.sum +++ b/go.sum @@ -195,7 +195,6 @@ github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/dnaeon/go-vcr v0.0.0-20180814043457-aafff18a5cc2/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= @@ -227,7 +226,6 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= -github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= @@ -291,7 +289,6 @@ github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOW github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= 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= @@ -516,7 +513,6 @@ github.com/hashicorp/raft-autopilot v0.1.6/go.mod h1:Af4jZBwaNOI+tXfIqIdbcAnh/Uy github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= github.com/hashicorp/raft-boltdb v0.0.0-20210409134258-03c10cc3d4ea/go.mod h1:qRd6nFJYYS6Iqnc/8HcUmko2/2Gw8qTFEmxDLii6W5I= github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0 h1:CO8dBMLH6dvE1jTn/30ZZw3iuPsNfajshWoJTnVc5cc= -github.com/hashicorp/raft-boltdb v0.0.0-20220329195025-15018e9b97e0/go.mod h1:nTakvJ4XYq45UXtn0DbwR4aU9ZdjlnIenpbs6Cd+FM0= github.com/hashicorp/raft-boltdb/v2 v2.2.2 h1:rlkPtOllgIcKLxVT4nutqlTH2NRFn+tO1wwZk/4Dxqw= github.com/hashicorp/raft-boltdb/v2 v2.2.2/go.mod h1:N8YgaZgNJLpZC+h+by7vDu5rzsRgONThTEeUS3zWbfY= github.com/hashicorp/raft-wal v0.4.1 h1:aU8XZ6x8R9BAIB/83Z1dTDtXvDVmv9YVYeXxd/1QBSA= @@ -551,7 +547,6 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da h1:FjHUJJ7oBW4G/9j1KzlHaXL09LyMVM9rupS39lncbXk= -github.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= @@ -589,13 +584,11 @@ github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/linode/linodego v0.10.0 h1:AMdb82HVgY8o3mjBXJcUv9B+fnJjfDMn2rNRGbX+jvM= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= @@ -690,9 +683,7 @@ github.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:v github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs= -github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo= github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys= -github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b h1:FfH+VrHHk6Lxt9HdVS0PXzSXFyS2NbZKXv33FYPol0A= github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b/go.mod h1:AC62GU6hc0BrNm+9RK9VSiwa/EUe1bkIeFORAMcHvJU= @@ -760,7 +751,6 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L 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.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/zerolog v1.4.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -777,7 +767,6 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/segmentio/fasthash v1.0.3 h1:EI9+KE1EwvMLBWwjpRDc+fEM+prwxDYbslddQGtrmhM= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA= github.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= @@ -1384,7 +1373,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 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-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/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= diff --git a/test-integ/go.mod b/test-integ/go.mod index 072dda44acf07..4e06d2f16fadb 100644 --- a/test-integ/go.mod +++ b/test-integ/go.mod @@ -1,8 +1,6 @@ module github.com/hashicorp/consul/test-integ -go 1.22 - -toolchain go1.22.5 +go 1.20 require ( github.com/google/go-cmp v0.5.9 diff --git a/test-integ/go.sum b/test-integ/go.sum index a7b09dfb8318e..5428aef74da74 100644 --- a/test-integ/go.sum +++ b/test-integ/go.sum @@ -1,7 +1,6 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= fortio.org/assert v1.1.4 h1:Za1RaG+OjsTMpQS3J3UCvTF6wc4+IOHCz+jAOU37Y4o= -fortio.org/assert v1.1.4/go.mod h1:039mG+/iYDPO8Ibx8TrNuJCm2T2SuhwRI3uL9nHTTls= fortio.org/dflag v1.5.2 h1:F9XVRj4Qr2IbJP7BMj7XZc9wB0Q/RZ61Ool+4YPVad8= fortio.org/dflag v1.5.2/go.mod h1:ppb/A8u+KKg+qUUYZNYuvRnXuVb8IsdHb/XGzsmjkN8= fortio.org/fortio v1.54.0 h1:2jn8yTd6hcIEoKY4CjI0lI6XxTWVxsMYF2bMiWOmv+Y= @@ -13,14 +12,12 @@ fortio.org/sets v1.0.2/go.mod h1:xVjulHr0FhlmReSymI+AhDtQ4FgjiazQ3JmuNpYFMs8= fortio.org/version v1.0.2 h1:8NwxdX58aoeKx7T5xAPO0xlUu1Hpk42nRz5s6e6eKZ0= fortio.org/version v1.0.2/go.mod h1:2JQp9Ax+tm6QKiGuzR5nJY63kFeANcgrZ0osoQFDVm0= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0= 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/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.10.0-rc.8 h1:YSZVvlIIDD1UxQpJp0h+dnpLUw+TrY0cx8obKsp3bek= -github.com/Microsoft/hcsshim v0.10.0-rc.8/go.mod h1:OEthFdQv/AD2RAdzR6Mm1N1KPCztGKDurW1Z8b8VGMM= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -54,9 +51,7 @@ github.com/containerd/containerd v1.7.3/go.mod h1:32FOM4/O0RkNg7AjQj3hDzN9cUGtu+ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= 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.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/cyphar/filepath-securejoin v0.2.3/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/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -166,13 +161,10 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv 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.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/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/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -233,7 +225,6 @@ github.com/opencontainers/runc v1.1.8/go.mod h1:CbUumNnWCuTGFukNXahoo/RFBZvDAgRh github.com/otiai10/copy v1.10.0 h1:znyI7l134wNg/wDktoVQPxPkgvhDfGCYUasey+h0rDQ= github.com/otiai10/copy v1.10.0/go.mod h1:rSaLseMUsZFFbsFGc7wCJnnkTAvdc5L6VWxPE4308Ww= github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= -github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -270,13 +261,11 @@ github.com/rboyer/blankspace v0.2.1/go.mod h1:GhnCkDlx1SYD6m4XCde73ncQ8pFTLSJvlC github.com/rboyer/safeio v0.2.3 h1:gUybicx1kp8nuM4vO0GA5xTBX58/OBd8MQuErBfDxP8= github.com/rboyer/safeio v0.2.3/go.mod h1:d7RMmt7utQBJZ4B7f0H/cU/EdZibQAU1Y8NWepK2dS8= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= 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.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -284,7 +273,6 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs 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/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= @@ -347,7 +335,6 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -398,7 +385,6 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190424220101-1e8e1cfdf96b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -424,7 +410,6 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks 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= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 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.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -433,4 +418,3 @@ 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= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/test/integration/consul-container/go.mod b/test/integration/consul-container/go.mod index d1e077db52a48..e4671b8cd95a2 100644 --- a/test/integration/consul-container/go.mod +++ b/test/integration/consul-container/go.mod @@ -1,8 +1,6 @@ module github.com/hashicorp/consul/test/integration/consul-container -go 1.22 - -toolchain go1.22.5 +go 1.20 require ( fortio.org/fortio v1.54.0 diff --git a/test/integration/consul-container/go.sum b/test/integration/consul-container/go.sum index a418b57d6d9ac..28082f92c6a61 100644 --- a/test/integration/consul-container/go.sum +++ b/test/integration/consul-container/go.sum @@ -2,7 +2,6 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= fortio.org/assert v1.1.4 h1:Za1RaG+OjsTMpQS3J3UCvTF6wc4+IOHCz+jAOU37Y4o= -fortio.org/assert v1.1.4/go.mod h1:039mG+/iYDPO8Ibx8TrNuJCm2T2SuhwRI3uL9nHTTls= fortio.org/dflag v1.5.2 h1:F9XVRj4Qr2IbJP7BMj7XZc9wB0Q/RZ61Ool+4YPVad8= fortio.org/dflag v1.5.2/go.mod h1:ppb/A8u+KKg+qUUYZNYuvRnXuVb8IsdHb/XGzsmjkN8= fortio.org/fortio v1.54.0 h1:2jn8yTd6hcIEoKY4CjI0lI6XxTWVxsMYF2bMiWOmv+Y= @@ -14,7 +13,6 @@ fortio.org/sets v1.0.2/go.mod h1:xVjulHr0FhlmReSymI+AhDtQ4FgjiazQ3JmuNpYFMs8= fortio.org/version v1.0.2 h1:8NwxdX58aoeKx7T5xAPO0xlUu1Hpk42nRz5s6e6eKZ0= fortio.org/version v1.0.2/go.mod h1:2JQp9Ax+tm6QKiGuzR5nJY63kFeANcgrZ0osoQFDVm0= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0= 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= @@ -22,7 +20,6 @@ github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3 github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.10.0-rc.8 h1:YSZVvlIIDD1UxQpJp0h+dnpLUw+TrY0cx8obKsp3bek= -github.com/Microsoft/hcsshim v0.10.0-rc.8/go.mod h1:OEthFdQv/AD2RAdzR6Mm1N1KPCztGKDurW1Z8b8VGMM= 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= @@ -56,9 +53,7 @@ github.com/containerd/containerd v1.7.3/go.mod h1:32FOM4/O0RkNg7AjQj3hDzN9cUGtu+ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= 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.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/cyphar/filepath-securejoin v0.2.3/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/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -173,11 +168,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv 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.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.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -236,7 +229,6 @@ github.com/opencontainers/runc v1.1.8/go.mod h1:CbUumNnWCuTGFukNXahoo/RFBZvDAgRh github.com/otiai10/copy v1.10.0 h1:znyI7l134wNg/wDktoVQPxPkgvhDfGCYUasey+h0rDQ= github.com/otiai10/copy v1.10.0/go.mod h1:rSaLseMUsZFFbsFGc7wCJnnkTAvdc5L6VWxPE4308Ww= github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= -github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -270,7 +262,6 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= @@ -282,7 +273,6 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs 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/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= @@ -352,7 +342,6 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= 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= @@ -404,7 +393,6 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= @@ -443,7 +431,6 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks 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= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 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.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -452,6 +439,5 @@ 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= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/version/VERSION b/version/VERSION index 734375f897d07..b118f0d8c3bf6 100644 --- a/version/VERSION +++ b/version/VERSION @@ -1 +1 @@ -1.20.0-dev +1.19.2-dev diff --git a/website/content/api-docs/acl/auth-methods.mdx b/website/content/api-docs/acl/auth-methods.mdx index 34f59cb866c51..805a9ee93c414 100644 --- a/website/content/api-docs/acl/auth-methods.mdx +++ b/website/content/api-docs/acl/auth-methods.mdx @@ -107,8 +107,6 @@ The corresponding CLI command is [`consul acl auth-method create`](/consul/comma prefixed-${serviceaccount.name} ``` -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -177,11 +175,9 @@ The corresponding CLI command is [`consul acl auth-method read`](/consul/command ### Query Parameters -- `ns` `(string: "")` - Specifies the namespace of the auth method you look up. +- `ns` `(string: "")` - Specifies the namespace of the auth method you lookup. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -295,11 +291,9 @@ The corresponding CLI command is [`consul acl auth-method update`](/consul/comma same values that are usable by the `Selector` syntax. For example: ```text - prefixed-${serviceaccount.name} + prefixed-${serviceaccount.name} ``` -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -375,8 +369,6 @@ The corresponding CLI command is [`consul acl auth-method delete`](/consul/comma - `ns` `(string: "")` - Specifies the namespace of the auth method you delete. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -416,9 +408,8 @@ The corresponding CLI command is [`consul acl auth-method list`](/consul/command The namespace may be specified as '\*' to return results for all namespaces. You can also [specify the namespace through other methods](#methods-to-specify-namespace). - The namespace may be specified as '\*' and then results are returned for all namespaces. - -@include 'http-api-query-parms-partition.mdx' +The namespace may be specified as '\*' and then + results will be returned for all namespaces. ## Sample Request diff --git a/website/content/api-docs/acl/binding-rules.mdx b/website/content/api-docs/acl/binding-rules.mdx index 34edeadc4a953..9894ce21c7bf8 100644 --- a/website/content/api-docs/acl/binding-rules.mdx +++ b/website/content/api-docs/acl/binding-rules.mdx @@ -172,8 +172,6 @@ The corresponding CLI command is [`consul acl binding-rule create`](/consul/comm This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -240,8 +238,6 @@ The corresponding CLI command is [`consul acl binding-rule read`](/consul/comman - `ns` `(string: "")` - Specifies the namespace of the binding rule you lookup. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -427,8 +423,6 @@ The corresponding CLI command is [`consul acl binding-rule update`](/consul/comm This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -495,8 +489,6 @@ The corresponding CLI command is [`consul acl binding-rule delete`](/consul/comm - `ns` `(string: "")` - Specifies the namespace of the binding rule you delete. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -530,7 +522,7 @@ The table below shows this endpoint's support for The corresponding CLI command is [`consul acl binding-rule list`](/consul/commands/acl/binding-rule/list). -### Query Parameters +## Query Parameters - `authmethod` `(string: "")` - Filters the binding rule list to those binding rules that are linked with the specific named auth method. @@ -539,9 +531,7 @@ The corresponding CLI command is [`consul acl binding-rule list`](/consul/comman The namespace may be specified as '\*' to return results for all namespaces. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - -### Sample Request +## Sample Request ```shell-session $ curl --request GET http://127.0.0.1:8500/v1/acl/binding-rules diff --git a/website/content/api-docs/acl/policies.mdx b/website/content/api-docs/acl/policies.mdx index 1d46fa1b5125b..c41583626b8cc 100644 --- a/website/content/api-docs/acl/policies.mdx +++ b/website/content/api-docs/acl/policies.mdx @@ -57,8 +57,6 @@ The corresponding CLI command is [`consul acl policy create`](/consul/commands/a This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -172,8 +170,6 @@ The corresponding CLI command is [`consul acl policy read -name=`](/cons - `ns` `(string: "")` - Specifies the namespace of the policy you lookup. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -246,8 +242,6 @@ The corresponding CLI command is [`consul acl policy update`](/consul/commands/a This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -313,8 +307,6 @@ The corresponding CLI command is [`consul acl policy delete`](/consul/commands/a - `ns` `(string: "")` - Specifies the namespace of the policy you delete. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -354,9 +346,7 @@ The corresponding CLI command is [`consul acl policy list`](/consul/commands/acl The namespace may be specified as '\*' to return results for all namespaces. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - -### Sample Request +## Sample Request ```shell-session $ curl --request GET http://127.0.0.1:8500/v1/acl/policies diff --git a/website/content/api-docs/acl/roles.mdx b/website/content/api-docs/acl/roles.mdx index e54e9a54b07bb..fbcb8d8b72b1c 100644 --- a/website/content/api-docs/acl/roles.mdx +++ b/website/content/api-docs/acl/roles.mdx @@ -95,8 +95,6 @@ The corresponding CLI command is [`consul acl role create`](/consul/commands/acl This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -225,8 +223,6 @@ The corresponding CLI command is [`consul acl role read`](/consul/commands/acl/r - `ns` `(string: "")` - Specifies the namespace of the role you lookup. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -310,8 +306,6 @@ The corresponding CLI command is [`consul acl role read -name=`](/consul - `ns` `(string: "")` - Specifies the namespace of the role you lookup. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -424,8 +418,6 @@ The corresponding CLI command is [`consul acl role update`](/consul/commands/acl This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -531,8 +523,6 @@ The corresponding CLI command is [`consul acl role delete`](/consul/commands/acl - `ns` `(string: "")` - Specifies the namespace of the role you delete. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -575,8 +565,6 @@ The corresponding CLI command is [`consul acl role list`](/consul/commands/acl/r The namespace may be specified as '\*' to return results for all namespaces. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ## Sample Request ```shell-session diff --git a/website/content/api-docs/acl/templated-policies.mdx b/website/content/api-docs/acl/templated-policies.mdx index de3a6b59aef82..5805449dd58fd 100644 --- a/website/content/api-docs/acl/templated-policies.mdx +++ b/website/content/api-docs/acl/templated-policies.mdx @@ -87,8 +87,6 @@ The corresponding CLI command is [`consul acl templated-policy preview`](/consul - `Name` `(string: )` - Specifies the value of the `name` variable in the templated policy variables. -@include 'http-api-body-options-partition.mdx' - ### Sample payload ```json diff --git a/website/content/api-docs/acl/tokens.mdx b/website/content/api-docs/acl/tokens.mdx index af629a3500cf2..a741ec3a708b7 100644 --- a/website/content/api-docs/acl/tokens.mdx +++ b/website/content/api-docs/acl/tokens.mdx @@ -118,8 +118,6 @@ The corresponding CLI command is [`consul acl token create`](/consul/commands/ac This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -219,8 +217,6 @@ The corresponding CLI command is [`consul acl token read`](/consul/commands/acl/ - `expanded` `(bool: false)` - If this field is set, the contents of all policies and roles affecting the token will also be returned. -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -501,8 +497,6 @@ The corresponding CLI command is [`consul acl token update`](/consul/commands/ac This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -597,8 +591,6 @@ The corresponding CLI command is [`consul acl token clone`](/consul/commands/acl This field takes precedence over the `ns` query parameter, one of several [other methods to specify the namespace](#methods-to-specify-namespace). -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -676,8 +668,6 @@ The corresponding CLI command is [`consul acl token delete`](/consul/commands/ac - `ns` `(string: "")` - Specifies the namespace of the token you delete. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -733,8 +723,6 @@ The corresponding CLI command is [`consul acl token list`](/consul/commands/acl/ The namespace may be specified as '\*' to return results for all namespaces. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/agent/index.mdx b/website/content/api-docs/agent/index.mdx index 749ea80f291d0..d76cc1910775b 100644 --- a/website/content/api-docs/agent/index.mdx +++ b/website/content/api-docs/agent/index.mdx @@ -261,8 +261,6 @@ The corresponding CLI command is [`consul members`](/consul/commands/members). network segment). When querying a server, setting this to the special string `_all` will show members in all segments. -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/agent/service.mdx b/website/content/api-docs/agent/service.mdx index 3018274182703..eee3dd471e3d1 100644 --- a/website/content/api-docs/agent/service.mdx +++ b/website/content/api-docs/agent/service.mdx @@ -684,8 +684,6 @@ The `/agent/service/register` endpoint supports camel case and _snake case_ for `false`. See [anti-entropy syncs](/consul/docs/architecture/anti-entropy) for additional information. -@include 'http-api-body-options-partition.mdx' - #### Connect Structure For the `Connect` field, the parameters are: @@ -771,8 +769,6 @@ The corresponding CLI command is [`consul services deregister`](/consul/commands - `ns` `(string: "")` - Specifies the namespace of the service you deregister. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/catalog.mdx b/website/content/api-docs/catalog.mdx index 8c549b304376d..8af4a2f011d40 100644 --- a/website/content/api-docs/catalog.mdx +++ b/website/content/api-docs/catalog.mdx @@ -327,8 +327,6 @@ The corresponding CLI command is [`consul catalog nodes`](/consul/commands/catal - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -424,8 +422,6 @@ The corresponding CLI command is [`consul catalog services`](/consul/commands/ca - `filter` `(string: "")` - Specifies the expression used to filter the queries results prior to returning the data. -@include 'http-api-query-parms-partition.mdx' - ### Filtering The filter will be executed against each Service mapping within the catalog. diff --git a/website/content/api-docs/config.mdx b/website/content/api-docs/config.mdx index 49243da09456d..79407b325a1aa 100644 --- a/website/content/api-docs/config.mdx +++ b/website/content/api-docs/config.mdx @@ -71,8 +71,6 @@ The ACL required depends on the config entry being written: - `ns` `(string: "")` - Specifies the namespace of the config entry you apply. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Payload ```json @@ -152,8 +150,6 @@ The ACL required depends on the config entry kind being read: - `ns` `(string: "")` - Specifies the namespace of the config entry you lookup You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -232,8 +228,6 @@ The corresponding CLI command is [`consul config list`](/consul/commands/config/ - `ns` `(string: "")` - Specifies the namespace of the config entries you lookup. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -327,8 +321,6 @@ The corresponding CLI command is [`consul config delete`](/consul/commands/confi - `ns` `(string: "")` - Specifies the namespace of the config entry you delete. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/connect/intentions.mdx b/website/content/api-docs/connect/intentions.mdx index 95a5cfca60a46..ebe835ac905f0 100644 --- a/website/content/api-docs/connect/intentions.mdx +++ b/website/content/api-docs/connect/intentions.mdx @@ -60,8 +60,6 @@ The corresponding CLI command is [`consul intention create -replace`](/consul/co as shown in the [source and destination naming conventions](/consul/commands/intention#source-and-destination-naming). You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### JSON Request Body Schema - `SourceType` `(string: "")` - The type for the `SourceName` value. @@ -153,8 +151,6 @@ The corresponding CLI command is [`consul intention create`](/consul/commands/in as shown in the [source and destination naming conventions](/consul/commands/intention#source-and-destination-naming). You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### JSON Request Body Schema - `SourceName` `(string: )` - The source of the intention. @@ -294,8 +290,6 @@ The corresponding CLI command is [`consul intention get`](/consul/commands/inten as shown in the [source and destination naming conventions](/consul/commands/intention#source-and-destination-naming). You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -410,8 +404,6 @@ The corresponding CLI command is [`consul intention list`](/consul/commands/inte The `*` wildcard may be used to list intentions from all namespaces. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -493,8 +485,6 @@ The corresponding CLI command is [`consul intention delete`](/consul/commands/in as shown in the [source and destination naming conventions](/consul/commands/intention#source-and-destination-naming). You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -638,8 +628,6 @@ The corresponding CLI command is [`consul intention match`](/consul/commands/int as shown in the [source and destination naming conventions](/consul/commands/intention#source-and-destination-naming). You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/exported-services.mdx b/website/content/api-docs/exported-services.mdx index f7c89d4999a5d..aa6521f62fb65 100644 --- a/website/content/api-docs/exported-services.mdx +++ b/website/content/api-docs/exported-services.mdx @@ -36,7 +36,8 @@ The table below shows this endpoint's support for ### Query Parameters -@include 'http-api-query-parms-partition.mdx' +- `partition` `(string: "")` - Specifies the admin partition the services are exported from. When not specified, assumes the default value `default`. + ### Sample Request diff --git a/website/content/api-docs/kv.mdx b/website/content/api-docs/kv.mdx index 912a8b6944357..29aa32cbe6a33 100644 --- a/website/content/api-docs/kv.mdx +++ b/website/content/api-docs/kv.mdx @@ -79,8 +79,6 @@ The corresponding CLI command is [`consul kv get`](/consul/commands/kv/get). For recursive lookups, the namespace may be specified as '\*' to return results for all namespaces. -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -222,8 +220,6 @@ The corresponding CLI command is [`consul kv put`](/consul/commands/kv/put). - `ns` `(string: "")` - Specifies the namespace to query. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Payload The payload is arbitrary, and is loaded directly into Consul as supplied. @@ -293,8 +289,6 @@ The corresponding CLI command is [`consul kv delete`](/consul/commands/kv/delete - `ns` `(string: "")` - Specifies the namespace to query. You can also [specify the namespace through other methods](#methods-to-specify-namespace). -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/namespaces.mdx b/website/content/api-docs/namespaces.mdx index 8c963d80a9f02..2dd41a7e9ba11 100644 --- a/website/content/api-docs/namespaces.mdx +++ b/website/content/api-docs/namespaces.mdx @@ -67,8 +67,6 @@ The corresponding CLI command is [`consul namespace create`](/consul/commands/na - `Meta` `(map: )` - Specifies arbitrary KV metadata to associate with the namespace. -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -171,10 +169,6 @@ The corresponding CLI command is [`consul namespace read`](/consul/commands/name - `name` `(string: )` - Specifies the namespace to read. -### Query Parameters - -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -278,8 +272,6 @@ The corresponding CLI command is [`consul namespace update`](/consul/commands/na - `Meta` `(map: )` - Specifies arbitrary KV metadata to associate with the namespace. -@include 'http-api-body-options-partition.mdx' - ### Sample Payload ```json @@ -356,15 +348,18 @@ $ curl --request PUT \ ## Delete a Namespace -This endpoint marks a Namespace for deletion. Once marked, Consul deletes all the associated Namespaced data in the background. Only after all associated data has been deleted, Consul deletes the Namespace. -Until then, you can perform further reads on the namespace, and a `DeletedAt` -field is populated with the timestamp of when the Namespace was marked for deletion. +This endpoint marks a Namespace for deletion. Once marked Consul will +deleted all the associated Namespaced data in the background. Only once +all associated data has been deleted will the Namespace actually disappear. +Until then, further reads can be performed on the namespace and a `DeletedAt` +field will now be populated with the timestamp of when the Namespace was +marked for deletion. | Method | Path | Produces | | -------- | ------------------ | -------- | | `DELETE` | `/namespace/:name` | N/A | -This endpoint returns no data. Success or failure is indicated by the status +This endpoint will return no data. Success or failure is indicated by the status code returned. The table below shows this endpoint's support for @@ -383,10 +378,6 @@ The corresponding CLI command is [`consul namespace delete`](/consul/commands/na - `name` `(string: )` - Specifies the namespace to delete. -### Query Parameters - -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session @@ -458,10 +449,6 @@ the request has been granted any access in the namespace (read, list or write). The corresponding CLI command is [`consul namespace list`](/consul/commands/namespace/list). -### Query Parameters - -@include 'http-api-query-parms-partition.mdx' - ### Sample Request ```shell-session diff --git a/website/content/api-docs/peering.mdx b/website/content/api-docs/peering.mdx index f0e4d77677107..7604cb6a19546 100644 --- a/website/content/api-docs/peering.mdx +++ b/website/content/api-docs/peering.mdx @@ -34,7 +34,8 @@ The table below shows this endpoint's support for and configuration entries such as `service-intentions`. This field must be a valid DNS hostname label. -@include 'http-api-body-options-partition.mdx' +- `Partition` `(string: "")` - The admin partition that the + peering token is generated from. Uses `default` when not specified. - `ServerExternalAddresses` `([]string: )` - The addresses for the cluster that generates the peering token. Addresses take the form `{host or IP}:port`. You can specify one or more load balancers or external IPs that route external traffic to this cluster's Consul servers. @@ -99,7 +100,9 @@ The table below shows this endpoint's support for and configuration entries such as `service-intentions`. This field must be a valid DNS hostname label. -@include 'http-api-body-options-partition.mdx' +- `Partition` `(string: "")` - The admin partition + that peers to the cluster that generated the peering token. Uses `default` + when not specified. - `PeeringToken` `(string: )` - The peering token fetched from the peer cluster. @@ -159,7 +162,8 @@ The table below shows this endpoint's support for ### Query Parameters -@include 'http-api-query-parms-partition.mdx' +- `partition` `(string: "")` - Specifies the partition of the peering + to read. If not specified will default to `default`. ### Sample Request @@ -231,7 +235,8 @@ The table below shows this endpoint's support for ### Query Parameters -@include 'http-api-query-parms-partition.mdx' +- `partition` `(string: "")` - Specifies the partition of the peerings + to delete. If not specified will default to `default`. ### Sample Request @@ -281,7 +286,8 @@ The table below shows this endpoint's support for ### Query Parameters -@include 'http-api-query-parms-partition.mdx' +- `partition` `(string: "")` - Specifies the partition of the peerings + to list. If not specified will default to `default`. ### Sample Request diff --git a/website/content/commands/acl/auth-method/create.mdx b/website/content/commands/acl/auth-method/create.mdx index 4f1015cfb61dc..7a7ef7ea70efe 100644 --- a/website/content/commands/acl/auth-method/create.mdx +++ b/website/content/commands/acl/auth-method/create.mdx @@ -67,7 +67,7 @@ Usage: `consul acl auth-method create [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/auth-method/delete.mdx b/website/content/commands/acl/auth-method/delete.mdx index acb095c5872b3..fc2e166d362cc 100644 --- a/website/content/commands/acl/auth-method/delete.mdx +++ b/website/content/commands/acl/auth-method/delete.mdx @@ -31,7 +31,7 @@ Usage: `consul acl auth-method delete [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/auth-method/list.mdx b/website/content/commands/acl/auth-method/list.mdx index 42d7285ca76d7..c7d2c0b9c2b47 100644 --- a/website/content/commands/acl/auth-method/list.mdx +++ b/website/content/commands/acl/auth-method/list.mdx @@ -34,7 +34,7 @@ Usage: `consul acl auth-method list` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/auth-method/read.mdx b/website/content/commands/acl/auth-method/read.mdx index 015852f9684cd..928863846de51 100644 --- a/website/content/commands/acl/auth-method/read.mdx +++ b/website/content/commands/acl/auth-method/read.mdx @@ -36,7 +36,7 @@ Usage: `consul acl auth-method read [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/auth-method/update.mdx b/website/content/commands/acl/auth-method/update.mdx index d328ea999c2b5..aef12ff351c9f 100644 --- a/website/content/commands/acl/auth-method/update.mdx +++ b/website/content/commands/acl/auth-method/update.mdx @@ -72,7 +72,7 @@ Usage: `consul acl auth-method update [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/binding-rule/create.mdx b/website/content/commands/acl/binding-rule/create.mdx index b32b2ce934e52..38b2ffb57debe 100644 --- a/website/content/commands/acl/binding-rule/create.mdx +++ b/website/content/commands/acl/binding-rule/create.mdx @@ -47,7 +47,7 @@ Usage: `consul acl binding-rule create [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/binding-rule/delete.mdx b/website/content/commands/acl/binding-rule/delete.mdx index 9164f62a7c0e7..c78e36031040c 100644 --- a/website/content/commands/acl/binding-rule/delete.mdx +++ b/website/content/commands/acl/binding-rule/delete.mdx @@ -32,7 +32,7 @@ Usage: `consul acl binding-rule delete [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/binding-rule/list.mdx b/website/content/commands/acl/binding-rule/list.mdx index cbb9c184c8219..9d01e9d2b1b7d 100644 --- a/website/content/commands/acl/binding-rule/list.mdx +++ b/website/content/commands/acl/binding-rule/list.mdx @@ -34,7 +34,7 @@ Usage: `consul acl binding-rule list` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/binding-rule/read.mdx b/website/content/commands/acl/binding-rule/read.mdx index 50f1e8112f886..86b8b4169c6cd 100644 --- a/website/content/commands/acl/binding-rule/read.mdx +++ b/website/content/commands/acl/binding-rule/read.mdx @@ -37,7 +37,7 @@ Usage: `consul acl binding-rule read [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/binding-rule/update.mdx b/website/content/commands/acl/binding-rule/update.mdx index 22ad67e0cfc97..e33b7e026da5c 100644 --- a/website/content/commands/acl/binding-rule/update.mdx +++ b/website/content/commands/acl/binding-rule/update.mdx @@ -54,7 +54,7 @@ Usage: `consul acl binding-rule update [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/policy/create.mdx b/website/content/commands/acl/policy/create.mdx index e178536515e0d..cbd4b8d8757de 100644 --- a/website/content/commands/acl/policy/create.mdx +++ b/website/content/commands/acl/policy/create.mdx @@ -49,7 +49,7 @@ Usage: `consul acl policy create [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/policy/delete.mdx b/website/content/commands/acl/policy/delete.mdx index 2b611f5a78dca..074dfea607d15 100644 --- a/website/content/commands/acl/policy/delete.mdx +++ b/website/content/commands/acl/policy/delete.mdx @@ -34,7 +34,7 @@ Usage: `consul acl policy delete [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/policy/list.mdx b/website/content/commands/acl/policy/list.mdx index ad3b114b9793b..7d56fd6f21373 100644 --- a/website/content/commands/acl/policy/list.mdx +++ b/website/content/commands/acl/policy/list.mdx @@ -34,7 +34,7 @@ Usage: `consul acl policy list` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/policy/read.mdx b/website/content/commands/acl/policy/read.mdx index 28e2f51a79d03..b84b5d3c34833 100644 --- a/website/content/commands/acl/policy/read.mdx +++ b/website/content/commands/acl/policy/read.mdx @@ -39,7 +39,7 @@ Usage: `consul acl policy read [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/policy/update.mdx b/website/content/commands/acl/policy/update.mdx index edc529a5da9fe..f64a1f79068e0 100644 --- a/website/content/commands/acl/policy/update.mdx +++ b/website/content/commands/acl/policy/update.mdx @@ -58,7 +58,7 @@ Usage: `consul acl policy update [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/role/create.mdx b/website/content/commands/acl/role/create.mdx index 82989a2697a13..44af92bd4e640 100644 --- a/website/content/commands/acl/role/create.mdx +++ b/website/content/commands/acl/role/create.mdx @@ -52,7 +52,7 @@ Usage: `consul acl role create [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/role/delete.mdx b/website/content/commands/acl/role/delete.mdx index 9a39e97ab843a..bb2a179d92e16 100644 --- a/website/content/commands/acl/role/delete.mdx +++ b/website/content/commands/acl/role/delete.mdx @@ -34,7 +34,7 @@ Usage: `consul acl role delete [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/role/list.mdx b/website/content/commands/acl/role/list.mdx index afd8c75a41a9c..ed3699ce3fa79 100644 --- a/website/content/commands/acl/role/list.mdx +++ b/website/content/commands/acl/role/list.mdx @@ -34,7 +34,7 @@ Usage: `consul acl role list` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/role/read.mdx b/website/content/commands/acl/role/read.mdx index aa5008f57d5c9..7de17d5dcb2c3 100644 --- a/website/content/commands/acl/role/read.mdx +++ b/website/content/commands/acl/role/read.mdx @@ -39,7 +39,7 @@ Usage: `consul acl role read [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/role/update.mdx b/website/content/commands/acl/role/update.mdx index 1308e445ba7f5..d6991a21e0fb9 100644 --- a/website/content/commands/acl/role/update.mdx +++ b/website/content/commands/acl/role/update.mdx @@ -63,7 +63,7 @@ Usage: `consul acl role update [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/templated-policy/preview.mdx b/website/content/commands/acl/templated-policy/preview.mdx index cfffa6db7e55a..7e0c38d165c9a 100644 --- a/website/content/commands/acl/templated-policy/preview.mdx +++ b/website/content/commands/acl/templated-policy/preview.mdx @@ -36,7 +36,7 @@ Usage: `consul acl templated-policy preview [options] [args]` ### Enterprise options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/token/clone.mdx b/website/content/commands/acl/token/clone.mdx index 937097fb284d5..7f2822d6c5792 100644 --- a/website/content/commands/acl/token/clone.mdx +++ b/website/content/commands/acl/token/clone.mdx @@ -38,7 +38,7 @@ Usage: `consul acl token clone [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/token/create.mdx b/website/content/commands/acl/token/create.mdx index 8cd5fb6b948b9..f0622ace7ec86 100644 --- a/website/content/commands/acl/token/create.mdx +++ b/website/content/commands/acl/token/create.mdx @@ -66,7 +66,7 @@ Usage: `consul acl token create [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/token/delete.mdx b/website/content/commands/acl/token/delete.mdx index 13a3ca26e6e31..5ba65957589be 100644 --- a/website/content/commands/acl/token/delete.mdx +++ b/website/content/commands/acl/token/delete.mdx @@ -32,7 +32,7 @@ Usage: `consul acl token delete [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/token/list.mdx b/website/content/commands/acl/token/list.mdx index fd3b6c2151143..531b4cc68ed8c 100644 --- a/website/content/commands/acl/token/list.mdx +++ b/website/content/commands/acl/token/list.mdx @@ -34,7 +34,7 @@ Usage: `consul acl token list` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/token/read.mdx b/website/content/commands/acl/token/read.mdx index dfcbea12d8e19..e339292d96639 100644 --- a/website/content/commands/acl/token/read.mdx +++ b/website/content/commands/acl/token/read.mdx @@ -43,7 +43,7 @@ Usage: `consul acl token read [options] [args]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/acl/token/update.mdx b/website/content/commands/acl/token/update.mdx index 1f89d828641c6..1a1703cb143b3 100644 --- a/website/content/commands/acl/token/update.mdx +++ b/website/content/commands/acl/token/update.mdx @@ -93,7 +93,7 @@ instead. #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/catalog/nodes.mdx b/website/content/commands/catalog/nodes.mdx index 6efa3ad0716c5..f612627be23d4 100644 --- a/website/content/commands/catalog/nodes.mdx +++ b/website/content/commands/catalog/nodes.mdx @@ -85,7 +85,7 @@ Usage: `consul catalog nodes [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/catalog/services.mdx b/website/content/commands/catalog/services.mdx index a57adcb4a927c..9d05ecbf47ac6 100644 --- a/website/content/commands/catalog/services.mdx +++ b/website/content/commands/catalog/services.mdx @@ -69,7 +69,7 @@ Usage: `consul catalog services [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/config/delete.mdx b/website/content/commands/config/delete.mdx index 085b0e34c4118..134d6885e6660 100644 --- a/website/content/commands/config/delete.mdx +++ b/website/content/commands/config/delete.mdx @@ -61,7 +61,7 @@ config entry. This is used in combination with the -cas flag. @include 'http_api_namespace_options.mdx' -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/config/list.mdx b/website/content/commands/config/list.mdx index 5f55a7bcff720..e453b11943192 100644 --- a/website/content/commands/config/list.mdx +++ b/website/content/commands/config/list.mdx @@ -48,7 +48,7 @@ Usage: `consul config list [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/config/read.mdx b/website/content/commands/config/read.mdx index c54a60dfec16b..7a49482c5b3fc 100644 --- a/website/content/commands/config/read.mdx +++ b/website/content/commands/config/read.mdx @@ -52,7 +52,7 @@ Usage: `consul config read [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/config/write.mdx b/website/content/commands/config/write.mdx index f466654c617fc..bb98d8e49888d 100644 --- a/website/content/commands/config/write.mdx +++ b/website/content/commands/config/write.mdx @@ -53,7 +53,7 @@ Usage: `consul config write [options] FILE` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/connect/envoy.mdx b/website/content/commands/connect/envoy.mdx index 913adb981dff8..744873df5656c 100644 --- a/website/content/commands/connect/envoy.mdx +++ b/website/content/commands/connect/envoy.mdx @@ -199,7 +199,7 @@ compatibility with Envoy and prevent potential issues. Default is `false`. #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/connect/redirect-traffic.mdx b/website/content/commands/connect/redirect-traffic.mdx index d59fe7928cf6c..af59baee56b79 100644 --- a/website/content/commands/connect/redirect-traffic.mdx +++ b/website/content/commands/connect/redirect-traffic.mdx @@ -60,7 +60,7 @@ Usage: `consul connect redirect-traffic [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/intention/check.mdx b/website/content/commands/intention/check.mdx index 23ae56ceae4e2..fadc8d224bd96 100644 --- a/website/content/commands/intention/check.mdx +++ b/website/content/commands/intention/check.mdx @@ -41,7 +41,7 @@ Usage: `consul intention check [options] SRC DST` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/intention/create.mdx b/website/content/commands/intention/create.mdx index bbaccc2be2f42..71c491b06ad8c 100644 --- a/website/content/commands/intention/create.mdx +++ b/website/content/commands/intention/create.mdx @@ -52,7 +52,7 @@ are not supported from commands, but may be from the corresponding HTTP endpoint #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/intention/delete.mdx b/website/content/commands/intention/delete.mdx index 2cfb97a966db0..ad2fca1c97e2f 100644 --- a/website/content/commands/intention/delete.mdx +++ b/website/content/commands/intention/delete.mdx @@ -37,7 +37,7 @@ Usage: #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/intention/get.mdx b/website/content/commands/intention/get.mdx index b3db133fd44e3..84b3a86065d0b 100644 --- a/website/content/commands/intention/get.mdx +++ b/website/content/commands/intention/get.mdx @@ -37,7 +37,7 @@ Usage: #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/intention/match.mdx b/website/content/commands/intention/match.mdx index 3d94939b38bf5..4c727b1fc21c8 100644 --- a/website/content/commands/intention/match.mdx +++ b/website/content/commands/intention/match.mdx @@ -40,7 +40,7 @@ Usage: `consul intention match [options] SRC_OR_DST` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/kv/delete.mdx b/website/content/commands/kv/delete.mdx index 17216b0ca78b3..90e2e54624bf4 100644 --- a/website/content/commands/kv/delete.mdx +++ b/website/content/commands/kv/delete.mdx @@ -40,7 +40,7 @@ Usage: `consul kv delete [options] KEY_OR_PREFIX` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/kv/export.mdx b/website/content/commands/kv/export.mdx index c05b2f80f8953..da063e9d826d3 100644 --- a/website/content/commands/kv/export.mdx +++ b/website/content/commands/kv/export.mdx @@ -28,7 +28,7 @@ Usage: `consul kv export [options] [PREFIX]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/kv/get.mdx b/website/content/commands/kv/get.mdx index 6534fe35486b6..0e83b2facb523 100644 --- a/website/content/commands/kv/get.mdx +++ b/website/content/commands/kv/get.mdx @@ -56,7 +56,7 @@ Usage: `consul kv get [options] [KEY_OR_PREFIX]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/kv/import.mdx b/website/content/commands/kv/import.mdx index a960b1b738ce2..574fdfbd87be3 100644 --- a/website/content/commands/kv/import.mdx +++ b/website/content/commands/kv/import.mdx @@ -31,7 +31,7 @@ Usage: `consul kv import [options] [DATA]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/kv/put.mdx b/website/content/commands/kv/put.mdx index dcde811fc01cb..efb045179fb8c 100644 --- a/website/content/commands/kv/put.mdx +++ b/website/content/commands/kv/put.mdx @@ -59,7 +59,7 @@ Usage: `consul kv put [options] KEY [DATA]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/members.mdx b/website/content/commands/members.mdx index 6299f21e4c82a..ff1df561a6f40 100644 --- a/website/content/commands/members.mdx +++ b/website/content/commands/members.mdx @@ -56,7 +56,7 @@ Usage: `consul members [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/namespace/create.mdx b/website/content/commands/namespace/create.mdx index 068666e5cafde..f5d611a542e45 100644 --- a/website/content/commands/namespace/create.mdx +++ b/website/content/commands/namespace/create.mdx @@ -61,7 +61,7 @@ from the CLI arguments. #### API Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' diff --git a/website/content/commands/namespace/delete.mdx b/website/content/commands/namespace/delete.mdx index adc235be60620..8742af6f4d613 100644 --- a/website/content/commands/namespace/delete.mdx +++ b/website/content/commands/namespace/delete.mdx @@ -30,7 +30,7 @@ Usage: `consul namespace delete ` #### API Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' diff --git a/website/content/commands/namespace/list.mdx b/website/content/commands/namespace/list.mdx index 1b043ed657d6e..5d15c1f1155c9 100644 --- a/website/content/commands/namespace/list.mdx +++ b/website/content/commands/namespace/list.mdx @@ -42,7 +42,7 @@ Usage: `consul namespace list` #### API Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' diff --git a/website/content/commands/namespace/read.mdx b/website/content/commands/namespace/read.mdx index 778f672ff5c82..4a4621ef06bcd 100644 --- a/website/content/commands/namespace/read.mdx +++ b/website/content/commands/namespace/read.mdx @@ -41,7 +41,7 @@ Usage: `consul namespace read ` #### API Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' diff --git a/website/content/commands/namespace/update.mdx b/website/content/commands/namespace/update.mdx index 4cce122356751..6349d307f638c 100644 --- a/website/content/commands/namespace/update.mdx +++ b/website/content/commands/namespace/update.mdx @@ -68,7 +68,7 @@ with the existing namespace definition. #### API Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' diff --git a/website/content/commands/namespace/write.mdx b/website/content/commands/namespace/write.mdx index f1a16ec006bd7..678c303a802fa 100644 --- a/website/content/commands/namespace/write.mdx +++ b/website/content/commands/namespace/write.mdx @@ -40,7 +40,7 @@ or HCL format. See [here](/consul/docs/enterprise/namespaces#namespace-definitio #### API Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_options_client.mdx' diff --git a/website/content/commands/peering/delete.mdx b/website/content/commands/peering/delete.mdx index 1bd474dc306fc..81ba3439dbbc1 100644 --- a/website/content/commands/peering/delete.mdx +++ b/website/content/commands/peering/delete.mdx @@ -34,7 +34,7 @@ Usage: `consul peering delete [options] -name ` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/peering/establish.mdx b/website/content/commands/peering/establish.mdx index 782fb9cda681d..a00dc332180d5 100644 --- a/website/content/commands/peering/establish.mdx +++ b/website/content/commands/peering/establish.mdx @@ -36,7 +36,7 @@ Usage: `consul peering establish [options] -name -peering-token ` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/peering/generate-token.mdx b/website/content/commands/peering/generate-token.mdx index 6ce3fb059cb5a..92d007125c69e 100644 --- a/website/content/commands/peering/generate-token.mdx +++ b/website/content/commands/peering/generate-token.mdx @@ -43,7 +43,7 @@ You can specify one or more load balancers or external IPs that route external t #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/peering/list.mdx b/website/content/commands/peering/list.mdx index 9838de3e7bc57..f0b1c8377735b 100644 --- a/website/content/commands/peering/list.mdx +++ b/website/content/commands/peering/list.mdx @@ -30,7 +30,7 @@ Usage: `consul peering list [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/peering/read.mdx b/website/content/commands/peering/read.mdx index 95a41b2701aa5..596c514520bbe 100644 --- a/website/content/commands/peering/read.mdx +++ b/website/content/commands/peering/read.mdx @@ -31,7 +31,7 @@ Usage: `consul peering read [options] -name ` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/services/deregister.mdx b/website/content/commands/services/deregister.mdx index 138de2e763eb3..edc493866e1c3 100644 --- a/website/content/commands/services/deregister.mdx +++ b/website/content/commands/services/deregister.mdx @@ -43,7 +43,7 @@ This flexibility makes it easy to pair the command with the #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/services/export.mdx b/website/content/commands/services/export.mdx index 370f95dd64373..281d5f23e7d7c 100644 --- a/website/content/commands/services/export.mdx +++ b/website/content/commands/services/export.mdx @@ -40,7 +40,7 @@ Usage: consul services export [options] -name -consumer-peers ` - A comma-separated list of admin partitions within the same datacenter to export the service to. This flag is optional when `-consumer-peers` is specified. -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/commands/services/exported-services.mdx b/website/content/commands/services/exported-services.mdx index 395ad2cb8b306..da1d3dd177032 100644 --- a/website/content/commands/services/exported-services.mdx +++ b/website/content/commands/services/exported-services.mdx @@ -32,7 +32,7 @@ Usage: `consul services exported-services [options]` #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' #### API Options diff --git a/website/content/commands/services/register.mdx b/website/content/commands/services/register.mdx index 01a09d19bfdb6..a1cbd8cf580e4 100644 --- a/website/content/commands/services/register.mdx +++ b/website/content/commands/services/register.mdx @@ -78,7 +78,7 @@ The following fields specify identical parameters in a standard service definiti #### Enterprise Options -@include 'cli-http-api-partition-options.mdx' +@include 'http_api_partition_options.mdx' @include 'http_api_namespace_options.mdx' diff --git a/website/content/docs/architecture/improving-consul-resilience.mdx b/website/content/docs/architecture/improving-consul-resilience.mdx index aea40f3558e9b..4ab40e9e81e4e 100644 --- a/website/content/docs/architecture/improving-consul-resilience.mdx +++ b/website/content/docs/architecture/improving-consul-resilience.mdx @@ -174,4 +174,4 @@ For more information on cluster peering, refer to: - [Cluster peering documentation](/consul/docs/connect/cluster-peering) for a more detailed explanation - [Cluster peering tutorial](/consul/tutorials/implement-multi-tenancy/cluster-peering) - to learn how to implement cluster peering + to learn how to implement cluster peering \ No newline at end of file diff --git a/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-k8s.mdx b/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-k8s.mdx index 87fd27dae8098..7aaded1fe2da8 100644 --- a/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-k8s.mdx +++ b/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-k8s.mdx @@ -14,17 +14,16 @@ This topic describes how to use JSON web tokens (JWT) to verify requests to API You can configure API gateways to use JWTs to verify incoming requests so that you can stop unverified traffic at the gateway. You can configure JWT verification at different levels: -- Listener defaults: Define basic defaults in a GatewayPolicy resource to apply them to all routes attached to a listener. +- Listener defaults: Define basic defaults that apply to all routes attached to a listener. - HTTP route-specific settings: You can define JWT authentication settings for specific HTTP routes. Route-specific JWT settings override default listener configurations. -- Listener overrides: Define override settings in a GatewayPolicy resource that take precedence over default and route-specific configurations. Use override settings to set enforceable policies for listeners. +- Listener overrides: Define override settings that take precedence over default and route-specific configurations. This enables you to set enforceable policies for listeners. Complete the following steps to use JWTs to verify requests: -1. Define a JWTProvider that specifies the JWT provider and claims used to verify requests to the gateway. -1. Define a GatewayPolicy that specifies default and override settings for API gateway listeners and attach it to the gateway. -1. Define a RouteAuthFilter that specifies route-specific JWT verification settings. -1. Reference the RouteAuthFilter from the HTTPRoute. +1. Define a policy that specifies default and override settings for API gateway listeners and attach it to the gateway. +1. Define an HTTP route auth filter that specifies route-specific JWT verification settings. +1. Attach the auth filter to the HTTP route values file. 1. Apply the configurations. @@ -34,34 +33,9 @@ Complete the following steps to use JWTs to verify requests: - Consul on Kubernetes CLI or Helm chart v1.3.0+ - JWT details, such as claims and provider +## Define override and default settings -## Define a JWTProvider - -Create a `JWTProvider` CRD that defines the JWT provider to verify claims against. - -In the following example, the JWTProvider CRD contains a local JWKS. In production environments, use a production-grade JWKs endpoint instead. - - - -```yaml -apiVersion: consul.hashicorp.com/v1alpha1 -kind: JWTProvider -metadata: - name: local -spec: - issuer: local - jsonWebKeySet: - local: - jwks: "" -``` - - - -For more information about the fields you can configure in this CRD, refer to [`JWTProvider` configuration reference](/consul/docs/connect/config-entries/jwtprovider). - -## Define a GatewayPolicy - -Create a `GatewayPolicy` CRD that defines default and override settings for JWT verification. +Create a `GatewayPolicy` values file and configure the following fields to define default and override settings for JWT verification. Refer to [`GatewayPolicy` configuration reference](/consul/docs/connect/gateways/api-gateway/configuration/gatewaypolicy) for details. - `kind`: Must be set to `GatewayPolicy` - `metadata.name`: Specifies a name for the policy. @@ -72,155 +46,29 @@ Create a `GatewayPolicy` CRD that defines default and override settings for JWT - `spec.targetRef.override.jwt.providers`: Specifies a list of providers and claims used to verify requests to the gateway. The override settings take precedence over the default and route-specific JWT verification settings. - `spec.targetRef.default.jwt.providers`: Specifies a list of default providers and claims used to verify requests to the gateway. -The following examples configure a Gateway and the GatewayPolicy being attached to it so that every request coming through the listener must meet these conditions: - -- The request must be signed by the `local` provider -- The request must have a claim of `role` with a value of `user` unless the HTTPRoute attached to the listener overrides it - - - - - - -```yaml -apiVersion: gateway.networking.k8s.io/v1beta1 -kind: Gateway -metadata: - name: api-gateway -spec: - gatewayClassName: consul - listeners: - - protocol: HTTP - port: 30002 - name: listener-one -``` - - - - - - - - - -```yaml -apiVersion: consul.hashicorp.com/v1alpha1 -kind: GatewayPolicy -metadata: - name: gw-policy -spec: - targetRef: - name: api-gateway - sectionName: listener-one - group: gateway.networking.k8s.io/v1beta1 - kind: Gateway - override: - jwt: - providers: - - name: "local" - default: - jwt: - providers: - - name: "local" - verifyClaims: - - path: - - role - value: user -``` - - - - - - -For more information about the fields you can configure, refer to [`GatewayPolicy` configuration reference](/consul/docs/connect/gateways/api-gateway/configuration/gatewaypolicy). - -## Define a RouteAuthFilter +## Define an HTTP route auth filter -Create an `RouteAuthFilter` CRD that defines overrides for the default JWT verification configured in the GatewayPolicy. +Create an `RouteAuthFilter` values file and configure the following fields. Refer to [`RouteAuthFilter` configuration reference](/consul/docs/connect/gateways/api-gateway/configuration/routeauthfilter) for details. - `kind`: Must be set to `RouteAuthFilter` - `metadata.name`: Specifies a name for the filter. - `metadata.namespace`: Specifies the Consul namespace the filter applies to. - `spec.jwt.providers`: Specifies a list of providers and claims used to verify requests to the gateway. The override settings take precedence over the default and route-specific JWT verification settings. -In the following example, the RouteAuthFilter overrides default settings set in the GatewayPolicy so that every request coming through the listener must meet these conditions: - -- The request must be signed by the `local` provider -- The request must have a `role` claim -- The value of the claim must be `admin` - - - -```yaml -apiVersion: consul.hashicorp.com/v1alpha1 -kind: RouteAuthFilter -metadata: - name: auth-filter -spec: - jwt: - providers: - - name: local - verifyClaims: - - path: - - role - value: admin -``` - - - -For more information about the fields you can configure, refer to [`RouteAuthFilter` configuration reference](/consul/docs/connect/gateways/api-gateway/configuration/routeauthfilter). - ## Attach the auth filter to your HTTP routes -In the `filters` field of your HTTPRoute configuration, define the filter behavior that results from JWT verification. +In the `filters` field of your HTTP route configuration, add the following fields. Refer to the [`extensionRef` configuration reference](/consul/docs/connect/gateways/api-gateway/configuration/routes#rules-filters-extensionref) for details: - `type: extensionRef`: Declare list of extension references. - `extensionRef.group`: Specifies the resource group. Unless you have created a custom group, this should be set to `gateway.networking.kubernetes.io`. - `extensionRef.kind`: Specifies the type of extension reference to attach to the route. Must be `RouteAuthFilter` - `extensionRef.name`: Specifies the name of the auth filter. -The following example configures an HTTPRoute so that every request to `api-gateway-fqdn:3002/admin` must meet these conditions: - -- The request be signed by the `local` provider. -- The request must have a `role` claim. -- The value of the claim must be `admin`. - -Every other request must be signed by the `local` provider and have a claim of `role` with a value of `user`, as defined in the GatewayPolicy. - - - -```yaml -apiVersion: gateway.networking.k8s.io/v1beta1 -kind: HTTPRoute -metadata: - name: http-route -spec: - parentRefs: - - name: api-gateway - rules: - - matches: - - path: - type: PathPrefix - value: /admin - filters: - - type: ExtensionRef - extensionRef: - group: consul.hashicorp.com - kind: RouteAuthFilter - name: auth-filter - backendRefs: - - kind: Service - name: admin - port: 8080 - - matches: - - path: - type: PathPrefix - value: / - backendRefs: - - kind: Service - name: user-service - port: 8081 +## Apply the configurations + +Run the `kubectl apply` command and specify the values files to apply the configurations. The following example applies the values files stored in the `jwt-routes` directory: + +```shell-session +$ kubectl apply -f jwt-routes ``` - diff --git a/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-vms.mdx b/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-vms.mdx index fda579669fac0..f58d92621ae61 100644 --- a/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-vms.mdx +++ b/website/content/docs/connect/gateways/api-gateway/secure-traffic/verify-jwts-vms.mdx @@ -20,7 +20,6 @@ You can configure API gateways to use JWTs to verify incoming requests so that y Complete the following steps to use JWTs to verify requests: -1. Define a JWTProvider that specifies the JWT provider and claims used to verify requests to the gateway. 1. Configure default and override settings for listeners in the API gateway configuration entry. 1. Define route-specific JWT verification settings as filters in the HTTP route configuration entries. 1. Write the configuration entries to Consul to begin verifying requests using JWTs. @@ -30,155 +29,17 @@ Complete the following steps to use JWTs to verify requests: - Consul 1.17 or later - JWT details, such as claims and provider -## Define a JWTProvider - -Create a JWTProvider config entry that defines the JWT provider to verify claims against. -In the following example, the JWTProvider CRD contains a local JWKS. In production environments, use a production-grade JWKs endpoint instead. - - - -```hcl -Kind = "jwt-provider" -Name = "local" - -Issuer = "local" - -JSONWebKeySet = { - Local = { - JWKS="" - } -} -``` - - - -For more information about the fields you can configure in this CRD, refer to [`JWTProvider` configuration reference](/consul/docs/connect/config-entries/jwtprovider). - ## Configure default and override settings -Define default and override settings for JWT verification in the [API gateway configuration entry](/consul/docs/connect/gateways/api-gateway/configuration/api-gateway). - -1. Add a `default.JWT` block to the listener that you want to apply JWT verification to. Consul applies these configurations to routes attached to the listener. Refer to the [`Listeners.default.JWT`](/consul/docs/connect/config-entries/api-gateway#listeners-default-jwt) configuration reference for details. -1. Add an `override.JWT` block to the listener that you want to apply JWT verification policies to. Consul applies these configurations to all routes attached to the listener, regardless of the `default` or route-specific settings. Refer to the [`Listeners.override.JWT`](/consul/docs/connect/config-entries/api-gateway#listeners-override-jwt) configuration reference for details. -1. Apply the settings in the API gateway configuration entry. You can use the [`/config` API endpoint](/consul/api-docs/config#apply-configuration) or the [`consul config write` command](/consul/commands/config/write). - -The following examples configure a Gateway so that every request coming through the listener must meet these conditions: -- The request must be signed by the `local` provider -- The request must have a claim of `role` with a value of `user` unless the HTTPRoute attached to the listener overrides it - - - -```hcl -Kind = "api-gateway" -Name = "api-gateway" -Listeners = [ - { - Name = "listener-one" - Port = 9001 - Protocol = "http" - Override = { - JWT = { - Providers = [ - { - Name = "local" - } - ] - } - } - default = { - JWT = { - Providers = [ - { - Name = "local" - VerifyClaims = [ - { - Path = ["role"] - Value = "pet" - } - ] - } - ] - } - } - } -] -``` - - +Define default and override settings for JWT verification in the [API gateway configuration entry](/consul/docs/connect/gateways/api-gateway/configuration/api-gateway). + +1. Add a `default.JWT` block to the listener that you want to apply JWT verification to. Consul applies these configurations to routes attached to the listener. Refer to the [`Listeners.default.JWT`](/consul/docs/connect/config-entries/api-gateway#listeners-default-jwt) configuration reference for details. +1. Add an `override.JWT` block to the listener that you want to apply JWT verification policies to. Consul applies these configurations to all routes attached to the listener, regardless of the `default` or route-specific settings. Refer to the [`Listeners.override.JWT`](/consul/docs/connect/config-entries/api-gateway#listeners-override-jwt) configuration reference for details. +1. Apply the settings in the API gateway configuration entry. You can use the [`/config` API endpoint](/consul/api-docs/config#apply-configuration) or the [`consul config write` command](/consul/commands/config/write). ## Configure verification for specific HTTP routes -Define filters to enable route-specific JWT verification settings in the [HTTP route configuration entry](/consul/docs/connect/config-entries/http-route). +Define filters to enable route-specific JWT verification settings in the [HTTP route configuration entry](/consul/docs/connect/config-entries/http-route). 1. Add a `JWT` configuration to the `rules.filter` block. Route-specific configurations that overlap the [default settings ](/consul/docs/connect/config-entries/api-gateway#listeners-default-jwt) in the API gateway configuration entry take precedence. Configurations defined in the [listener override settings](/consul/docs/connect/config-entries/api-gateway#listeners-override-jwt) take the highest precedence. -1. Apply the settings in the API gateway configuration entry. You can use the [`/config` API endpoint](/consul/api-docs/config#apply-configuration) or the [`consul config write` command](/consul/commands/config/write). - -The following example configures an HTTPRoute so that every request to `api-gateway-fqdn:3002/admin` must meet these conditions: -- The request be signed by the `local` provider. -- The request must have a `role` claim. -- The value of the claim must be `admin`. - -Every other request must be signed by the `local` provider and have a claim of `role` with a value of `user`, as defined in the Gateway listener. - - - -```hcl -Kind = "http-route" -Name = "api-gateway-route" -Parents = [ - { - SectionName = "listener-one" - Name = "api-gateway" - Kind = "api-gateway" - }, -] -Rules = [ - { - Matches = [ - { - Path = { - Match = "prefix" - Value = "/admin" - } - } - ] - Filters = { - JWT = { - Providers = [ - { - Name = "local" - VerifyClaims = [ - { - Path = ["role"] - Value = "admin" - } - ] - } - ] - } - } - Services = [ - { - Name = "admin-service" - } - ] - }, - { - Matches = [ - { - Path = { - Match = "prefix" - Value = "/" - } - } - ] - Services = [ - { - Name = "user-service" - } - ] - }, -] -``` - - +1. Apply the settings in the API gateway configuration entry. You can use the [`/config` API endpoint](/consul/api-docs/config#apply-configuration) or the [`consul config write` command](/consul/commands/config/write). diff --git a/website/content/docs/release-notes/consul-k8s/v1_2_x.mdx b/website/content/docs/release-notes/consul-k8s/v1_2_x.mdx index 60c6597fd52ad..3f9ba28083006 100644 --- a/website/content/docs/release-notes/consul-k8s/v1_2_x.mdx +++ b/website/content/docs/release-notes/consul-k8s/v1_2_x.mdx @@ -75,14 +75,6 @@ We are pleased to announce the following Consul updates. For more detailed information, please refer to the [upgrade details page](/consul/docs/upgrading/upgrade-specific) and the changelogs. -## Known Issues - -The following issues are known to exist in the v1.2.x releases. Refer to the changelog for more information. - -- v1.2.8 - Service-to-service networking is broken when deployed on OpenShift. OpenShift users are advised to avoid deploying this version of consul-k8s. - A fix is present in the v1.2.9 release [[GH-4038](https://github.com/hashicorp/consul-k8s/pull/4038)]. - - ## Changelogs The changelogs for this major release version and any maintenance versions are listed below. diff --git a/website/content/docs/release-notes/consul-k8s/v1_3_x.mdx b/website/content/docs/release-notes/consul-k8s/v1_3_x.mdx index 4ac0284255b02..30edc3e165ba1 100644 --- a/website/content/docs/release-notes/consul-k8s/v1_3_x.mdx +++ b/website/content/docs/release-notes/consul-k8s/v1_3_x.mdx @@ -45,8 +45,6 @@ For more detailed information, please refer to the [upgrade details page](/consu The following issues are known to exist in the v1.3.x releases. Refer to the changelog for more information. - When using the v2 API with transparent proxy, Kubernetes pods cannot use L7 liveness, readiness, or startup probes. -- v1.3.5 - Service-to-service networking is broken when deployed on OpenShift. OpenShift users are advised to avoid deploying this version of consul-k8s. - A fix is present in the v1.3.6 release [[GH-4037](https://github.com/hashicorp/consul-k8s/pull/4037)]. ## Changelogs diff --git a/website/content/docs/release-notes/consul-k8s/v1_4_x.mdx b/website/content/docs/release-notes/consul-k8s/v1_4_x.mdx index ec264b1359548..8d72391677576 100644 --- a/website/content/docs/release-notes/consul-k8s/v1_4_x.mdx +++ b/website/content/docs/release-notes/consul-k8s/v1_4_x.mdx @@ -41,13 +41,6 @@ Refer to [Supported Consul and Kubernetes versions](/consul/docs/v1.18.x/k8s/com For more detailed information, please refer to the [upgrade details page](/consul/docs/upgrading/upgrade-specific) and the changelogs. -## Known issues - -The following issues are known to exist in the v1.4.x releases: - -- v1.4.2 - Service-to-service networking is broken when deployed on OpenShift. OpenShift users are advised to avoid deploying this version of consul-k8s. - A fix is present in the v1.4.3 release [[GH-4034](https://github.com/hashicorp/consul-k8s/pull/4034)]. - ## Changelogs The changelogs for this major release version and any maintenance versions are listed below. diff --git a/website/content/docs/release-notes/consul/v1_19_x.mdx b/website/content/docs/release-notes/consul/v1_19_x.mdx index 1c753d00f30b1..f13ce1ca842ef 100644 --- a/website/content/docs/release-notes/consul/v1_19_x.mdx +++ b/website/content/docs/release-notes/consul/v1_19_x.mdx @@ -27,7 +27,7 @@ We are pleased to announce the following Consul updates. ## What's deprecated -- **Snapshot Agent (Enterprise):** Starting with this release, top level single snapshot destinations `local_storage`, `aws_storage`, `azure_blob_storage`, and `google_storage` in snapshot agent configuration files are deprecated. Use the [`backup_destinations`](/consul/commands/snapshot/agent#config-file) config object instead. +- **Snapshot Agent (Enterprise):** Starting with this release, top level single snapshot destinations `local_storage`, `aws_storage`, `azure_blob_storage`, and `google_storage` in snapshot agent configuration files are deprecated. Use the [`backup_destinations`](/consul/commands/snapshot/agent#config-file) config object instead. ## Upgrading diff --git a/website/content/docs/security/security-models/core.mdx b/website/content/docs/security/security-models/core.mdx index 1c57c6cc51cb8..1140cdab30e8e 100644 --- a/website/content/docs/security/security-models/core.mdx +++ b/website/content/docs/security/security-models/core.mdx @@ -5,7 +5,7 @@ description: >- The security model for Consul Core details requirements and recommendations for securing your deployment of Consul. Learn about potential threats and how to protect Consul from malicious actors. --- -# Consul security model overview +## Overview Consul enables automation of network configurations, service discovery, and secure network connectivity across any cloud or runtime. @@ -32,7 +32,7 @@ environment, but the general mechanisms for a secure Consul deployment revolve a - **Sentinel Policies** - Sentinel policies enable policy-as-code for granular control over the built-in key-value store. -## Personas +### Personas It helps to consider the following types of personas when managing the security requirements of a Consul deployment. The granularity may change depending on your team's requirements. @@ -60,14 +60,14 @@ The granularity may change depending on your team's requirements. be public facing on the internet such as a web server, typically through a load-balancer, or ingress gateway. This is someone who should not have any network access to the Consul agent APIs. -## Secure Configuration +### Secure Configuration Consul's security model is applicable only if all parts of the system are running with a secure configuration; **Consul is not secure-by-default.** Without the following mechanisms enabled in Consul's configuration, it may be possible to abuse access to a cluster. Like all security considerations, administrators must determine what is appropriate for their environment and adapt these configurations accordingly. -## Requirements +#### Requirements - **mTLS** - Mutual authentication of both the TLS server and client x509 certificates prevents internal abuse through unauthorized access to Consul agents within the cluster. @@ -212,7 +212,7 @@ environment and adapt these configurations accordingly. commands across the cluster. This is disabled by default since 0.8.0. We recommend leaving it disabled. If enabled, extreme care must be taken to ensure correct ACLs restrict access to execute arbitrary code on the cluster. -## Recommendations +#### Recommendations - **Rotate Credentials** - Using short-lived credentials and rotating them frequently is highly recommended for production environments to limit the blast radius from potentially compromised secrets, and enabling basic auditing. @@ -307,7 +307,7 @@ environment and adapt these configurations accordingly. } ``` -## Threat Model +### Threat Model The following are parts of the core Consul threat model: @@ -381,7 +381,7 @@ The following are not part of the threat model for client agents: endpoint. If any of this isn't performed correctly, the proxy or service may allow unauthenticated or unauthorized connections. -## Internal Threats +#### Internal Threats - **Operator** - A malicious internal Consul operator with a valid mTLS certificate and ACL token may still be a threat to your cluster in certain situations, especially in multi-team deployments. They may accidentally or intentionally @@ -409,7 +409,7 @@ The following are not part of the threat model for client agents: information. When ACLs and HTTPS are enabled, the gRPC endpoint serving up the xDS service requires (m)TLS and a valid ACL token. -## External Threats +#### External Threats - **Agents** - External access to the Consul agent's various network endpoints should be considered including the gossip, HTTP, RPC, and gRPC ports. Furthermore, access through other services like SSH or `exec` functionality in diff --git a/website/content/docs/security/security-models/index.mdx b/website/content/docs/security/security-models/index.mdx index eea5cd6ab29f8..bcb8f639af0ff 100644 --- a/website/content/docs/security/security-models/index.mdx +++ b/website/content/docs/security/security-models/index.mdx @@ -5,20 +5,20 @@ description: >- Security models are the set of requirements and recommendations for securely operating a Consul deployment. Learn about security models and how they differ between environments. --- -# Security models overview +## Overview Requirements and recommendations for operating a secure Consul deployment may vary drastically depending on your intended workloads, operating system, and environment. Consul is not secure by default, but can be configured to satisfy the security requirements for a wide-range of use cases from local developer environments without any configuration to container orchestrators in-production with ACL authorization, and mTLS authentication. -## Core +### Core The core Consul product provides several options for enabling encryption, authentication, and authorization controls for a cluster. You can read more about the various personas, recommendations, requirements, and threats [here](/consul/docs/security/security-models/core). -## NIA +### NIA [Network Infrastructure Automation](/consul/docs/nia) (NIA) enables dynamic updates to network infrastructure devices triggered by service changes. Both the core Consul product's configuration and the configuration for the `consul-terraform-sync` diff --git a/website/content/docs/security/security-models/nia.mdx b/website/content/docs/security/security-models/nia.mdx index 6770890654daa..0e6de4982b140 100644 --- a/website/content/docs/security/security-models/nia.mdx +++ b/website/content/docs/security/security-models/nia.mdx @@ -5,7 +5,7 @@ description: >- The NIA security model details requirements and recommendations for securing your Consul-Terraform-Sync (CTS) deployment. Learn about potential threats and how to protect CTS from malicious actors. --- -# Network Infrastructure Automation (NIA) overview +## Overview Network Infrastructure Automation (NIA) enables dynamic updates to network infrastructure devices triggered by service changes using the [Consul Terraform Sync](https://github.com/hashicorp/consul-terraform-sync) (`consul-terraform-sync`) daemon. This daemon uses Consul's catalog to monitor networking information about services along with [Terraform](https://www.terraform.io/)'s provider ecosystem to apply relevant changes to network infrastructure. @@ -13,7 +13,7 @@ The [Secure Consul-Terraform-Sync for Production](/consul/tutorials/network-infr tutorial contains a checklist of best practices to secure your Consul-Terraform-Sync installation for a production environment. -## Personas +### Personas When considering Consul NIA's security model, it helps to think of the following personas. @@ -32,7 +32,7 @@ When considering Consul NIA's security model, it helps to think of the following have no knowledge or access to the daemon's API endpoints, ACL tokens, certificates, or any other piece of the system. -## Secure Configuration +### Secure Configuration Consul NIA's security model is applicable only if all parts of the system are running with a secure configuration; `consul-terraform-sync` is not secure-by-default. Without the following mechanisms enabled in the @@ -40,7 +40,7 @@ daemon's configuration, it may be possible to abuse access to the daemon. Like a considerations, one must determine what concerns are appropriate for their environment, and adapt these security concerns accordingly. -## Requirements +#### Requirements - **Protect Configuration Files and Directories** - A dedicated NIA user and group with limited permissions should be created for production, along with directory, and file permissions appropriately @@ -68,7 +68,7 @@ security concerns accordingly. - **Read** permission for Consul Catalog for all of the selected services to be monitored, and their namespaces. - **Read + Write** permission to update health checks, when using NIA health monitoring. -## Recommendations +#### Recommendations - **Use Dedicated Host** - The NIA daemon will potentially have access to critical secrets for your environment's network infrastructure. Using a hardened, dedicated host, for supporting these sensitive operations is highly recommended. @@ -85,7 +85,7 @@ security concerns accordingly. are configured with the NIA daemon should be audited to ensure you're only using providers from sources that you trust. -## Threat Model +### Threat Model The following are the parts of the NIA threat model: @@ -131,7 +131,7 @@ a production deployment: - **Access to the Consul-Terraform-Sync Binary** - Direct access to the system binary used to start the NIA daemon can allow an attacker to extract sensitive information. -## Internal Threats +#### Internal Threats - **NIA Operator** - Someone with access to the NIA Host, and it's related binaries or configuration files may be a threat to your deployment, especially considering multi-team deployments. They may accidentally or intentionally use a @@ -150,7 +150,7 @@ a production deployment: means. Extra steps to configuring OS, cluster, service, user, directory, and file permissions are essential steps for implementing defense-in-depth within a production environment. -## External Threats +#### External Threats - **Terraform Providers and Modules** - Potentially malicious providers or modules, or any malicious dependencies part of the Terraform ecosystem could cause harm to the network, and may have access to secrets in order to make necessary diff --git a/website/content/docs/services/discovery/dns-forwarding/enable.mdx b/website/content/docs/services/discovery/dns-forwarding/enable.mdx deleted file mode 100644 index b165c2c8fa37f..0000000000000 --- a/website/content/docs/services/discovery/dns-forwarding/enable.mdx +++ /dev/null @@ -1,420 +0,0 @@ ---- -layout: docs -page_title: Enable DNS forwarding -description: -> - Learn how to configure different DNS servers to perform DNS forwarding to Consul servers. ---- - -# Enable DNS forwarding - -This page describes the process to enable DNS forwarding to Consul servers. - -You can apply these operations on every node where a Consul agent is running. - -## Requirements - -To enable DNS forwarding, your deployment must have the following: - -- A running Consul server instance -- One or more Consul client nodes with registered services in the Consul catalog -- The `iptables` command available, or one of the following local DNS servers: - - [systemd-resolved](#systemd-resolved) - - [BIND](#bind) - - [Dnsmasq](#dnsmasq) - - [Unbound](#unbound) - - [macOS system resolver](#macos) - -### Network address configuration - -The example configurations on this page assumes Consul's DNS server is listening on the loopback interface on the same node of the local DNS server. - -If Consul is not listening on the loopback IP, replace the references to `localhost` and `120.0.0.1` in the configuration and commands with the appropriate IP address for your environment. - -## systemd-resolved - -[`systemd-resolved`](https://www.freedesktop.org/software/systemd/man/latest/systemd-resolved.service.html) is a system service that provides network name resolution to local applications. It is the default local DNS server for many Linux distributions. - -To configure the `systemd-resolved` service so that it sends `.consul` domain queries to Consul, create a `consul.conf` file located in the `/etc/systemd/resolved.conf.d/` directory. - - - - -Add a `[Resolve]` section to your resolved configuration. - - - -```ini -[Resolve] -DNS=127.0.0.1 -DNSSEC=false -Domains=~consul -``` - - - -### Define port for Consul DNS server - -When using systemd 245 and older, you cannot specify port numbers in the `DNS` configuration field. systemd-resolved only uses port `53`, which is a privileged port. - -When you cannot specify ports for the system's configuration, there are two workarounds: - - [Configure Consul DNS service to listen on port `53`](/consul/docs/agent/config/config-files#dns_port) instead of `8600`. - - Map port `53` to `8600` using `iptables`. - -Binding to port `53` usually requires running Consul as a privileged user or running Linux with the `CAP_NET_BIND_SERVICE` capability. -When using the Consul Docker image, add the following to the environment to allow Consul to use the port: `CONSUL_ALLOW_PRIVILEGED_PORTS=yes`. - -To avoid running Consul as a privileged user, the following `iptables` commands are sufficient to map port `53` to `8600` and redirect DNS queries to Consul. - -```shell-session -# iptables --table nat --append OUTPUT --destination localhost --protocol udp --match udp --dport 53 --jump REDIRECT --to-ports 8600 \ - iptables --table nat --append OUTPUT --destination localhost --protocol tcp --match tcp --dport 53 --jump REDIRECT --to-ports 8600 -``` - - - - - -Systemd 246 and newer allow you to specify the DNS port directly in the `systemd-resolved` configuration file. -Previous versions of systemd required iptables rules to direct DNS traffic to Consul. - -Add a `[Resolve]` section to your resolved configuration. - - - -```ini -[Resolve] -DNS=127.0.0.1:8600 -DNSSEC=false -Domains=~consul -``` - - - - - - -PTR record queries are still sent to the other configured resolvers, in addition to Consul. - -After creating the resolved configuration, restart `systemd-resolved`. - -```shell-session -# systemctl restart systemd-resolved -``` - -The command produces no output. - -### Validate the systemd-resolved configuration - -Validate that `systemd-resolved` is active. - -```shell-session -# systemctl is-active systemd-resolved -active -``` - -Verify that `systemd-resolved` is configured to forward queries for the `consul` domain to Consul. - -```shell-session -# resolvectl domain -Global: ~consul -Link 2 (eth0): -``` - -Verify that `systemd-resolved` is able to resolve the Consul server address. - -```shell-session -# resolvectl query consul.service.consul -consul.service.consul: 127.0.0.1 - --- Information acquired via protocol DNS in 6.6ms. --- Data is authenticated: no -``` - -Confirm that `/etc/resolv.conf` points to the `stub-resolv.conf` file managed by `systemd-resolved`. - -```shell-session -$ ls -l /etc/resolv.conf -lrwxrwxrwx 1 root root 37 Jul 14 10:10 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf -``` - -Confirm that the IP address for `systemd-resolved`'s stub resolver is the configured `nameserver`. - - - -```shell-session -$ cat /etc/resolv.conf -## This file is managed by man:systemd-resolved(8). Do not edit. -## -## This is a dynamic resolv.conf file for connecting local clients to the -## internal DNS stub resolver of systemd-resolved. This file lists all -## configured search domains. -## -## Run "resolvectl status" to see details about the uplink DNS servers -## currently in use. -## -## Third party programs must not access this file directly, but only through the -## symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way, -## replace this symlink by a static file or a different symlink. -## -## See man:systemd-resolved.service(8) for details about the supported modes of -## operation for /etc/resolv.conf. - -nameserver 127.0.0.53 -options edns0 -``` - - - -Ensure that the operating system can resolve DNS queries to the `.consul` domain. - -```shell-session -$ host consul.service.consul -consul.service.consul has address 127.0.0.1 -``` - -### Using any local resolver with systemd - -By default, the local resolver stub in the `resolved.conf` file is configured to listen for UDP and TCP requests at `127.0.0.53:53`. However, you can set the `DNSStubListener` option to `false` so that your system can use any DNS configuration, as long as it loads earlier than `resolved`. - - - -```plaintext -DNSStubListener=false -``` - - - -## Dnsmasq - -Use [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) if you have a small network and need a lightweight DNS solution. - - - -If your distribution uses systemd, disable `systemd-resolved` before you follow these steps. - - - -Configure the `dnsmasq.conf` file or a series of files in the `/etc/dnsmasq.d` directory. Add server settings to your configuration file so that requests for the `consul` domain are forwarded to Consul DNS. - - - -```plaintext -# Enable forward lookup of the 'consul' domain: -server=/consul/127.0.0.1#8600 - -# Uncomment and modify as appropriate to enable reverse DNS lookups for -# common netblocks found in RFC 1918, 5735, and 6598: -#rev-server=0.0.0.0/8,127.0.0.1#8600 -#rev-server=10.0.0.0/8,127.0.0.1#8600 -#rev-server=100.64.0.0/10,127.0.0.1#8600 -#rev-server=127.0.0.1/8,127.0.0.1#8600 -#rev-server=169.254.0.0/16,127.0.0.1#8600 -#rev-server=172.16.0.0/12,127.0.0.1#8600 -#rev-server=192.168.0.0/16,127.0.0.1#8600 -#rev-server=224.0.0.0/4,127.0.0.1#8600 -#rev-server=240.0.0.0/4,127.0.0.1#8600 -# Accept DNS queries only from hosts whose address is on a local subnet. -#local-service -# Don't poll /etc/resolv.conf for changes. -#no-poll -# Don't read /etc/resolv.conf. Get upstream servers only from the command -# line or the dnsmasq configuration file (see the "server" directive below). -#no-resolv -# Specify IP address(es) of other DNS servers for queries not handled -# directly by consul. There is normally one 'server' entry set for every -# 'nameserver' parameter found in '/etc/resolv.conf'. See dnsmasq(8)'s -# 'server' configuration option for details. -#server=1.2.3.4 -#server=208.67.222.222 -#server=8.8.8.8 -# Set the size of dnsmasq's cache. The default is 150 names. Setting the -# cache size to zero disables caching. -#cache-size=65536 -``` - - - -Restart the `dnsmasq` service after creating the configuration. - -Refer to [`dnsmasq(8)`](http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html) for additional configuration settings such as specifying IP addresses for queries not handled directly by Consul. - - -## BIND - -[BIND](https://www.isc.org/bind/) is a robust DNS system. Its most prominent component, `named`, performs both of the main DNS server roles, acts as an authoritative name server for DNS zones, and is a recursive resolver in the network. - - - -If your distribution uses systemd, disable `systemd-resolved` before you follow these steps. - - - -To configure the BIND service to send `.consul` domain queries to Consul: - -1. Create a `named` configuration file with `DNSSEC` disabled. -1. Create a zone configuration file to manage the `.consul` domain. - -### Named configuration file - -Edit the `/etc/named.conf` to configure your BIND instance. Remember to disable `DNSSEC` so that Consul and BIND can communicate. Add an `include` section to include the zone file that you create in the next step. - -The following example shows a BIND configuration with `DNSSEC` disabled. - - - -```plaintext -options { - listen-on port 53 { 127.0.0.1; }; - listen-on-v6 port 53 { ::1; }; - directory "/var/named"; - dump-file "/var/named/data/cache_dump.db"; - statistics-file "/var/named/data/named_stats.txt"; - memstatistics-file "/var/named/data/named_mem_stats.txt"; - allow-query { localhost; }; - recursion yes; - - dnssec-enable no; - dnssec-validation no; - - /* Path to ISC DLV key */ - bindkeys-file "/etc/named.iscdlv.key"; - - managed-keys-directory "/var/named/dynamic"; -}; - -include "/etc/named/consul.conf"; -``` - - - -### Zone configuration file - -Set up a zone for your Consul-managed records in `consul.conf`. - - - -```dns-zone-file -zone "consul" IN { - type forward; - forward only; - forwarders { 127.0.0.1 port 8600; }; -}; -``` - - - -## Unbound - -Use [Unbound](https://www.unbound.net/) when you need a fast and lean DNS resolver for Linux and macOS. - - - -If your distribution uses systemd, disable `systemd-resolved` before you follow these steps. - - - - -The following example demonstrates a configuration for the `consul.conf` file in the `/etc/unbound/unbound.conf.d` directory. - -Add `server` and `stub-zone` settings to your Unbound configuration file. - - - -```plaintext -#Allow insecure queries to local resolvers -server: - do-not-query-localhost: no - domain-insecure: "consul" - -#Add consul as a stub-zone -stub-zone: - name: "consul" - stub-addr: 127.0.0.1@8600 -``` - - - -You may have to add the following line to the bottom of your `/etc/unbound/unbound.conf` file for the new configuration to be included. - - - -```plaintext -include: "/etc/unbound/unbound.conf.d/*.conf" -``` - - - -## iptables - -[iptables](https://www.netfilter.org/projects/iptables/index.html) is a generic firewalling software that allows you to define traffic rules for your system. - -If you do not have a local DNS server on the Consul agent node, use `iptables` to forward DNS requests on port `53` to the Consul agent running on the same machine without using a secondary service. - -This configuration realizes full DNS forwarding, which means that all DNS queries for the host are forwarded to Consul, not just the ones for the `.consul` top level domain. Consul's default configuration resolves only the `.consul` top level domain, so you must set the [`recursors`](/consul/docs/agent/config/config-files#recursors) flag if you want your node to be able to resolve other domains when using `iptables` configuration. - -If you use DNS relay hosts in your network, do not place them on the same host as Consul. The redirects may intercept the traffic. - -### Configure Consul recursors - -Add recursors to your Consul configuration. - - - -```hcl -# DNS recursors -recursors = [ "1.1.1.1" ] -``` - - - -Recursors should not include the `localhost` address because the `iptables` redirects would intercept the requests. - -You can replace the `1.1.1.1` address in the example with another DNS server address. This is suitable for situations where an external DNS -service is already running in your infrastructure and is used as the recursor. - -### Create iptables rules - -After you configure Consul to use a valid recursor, add rules to `iptables` to redirect traffic from port `53` to port `8600`. - -```shell-session -# iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600 \ - iptables -t nat -A PREROUTING -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600 \ - iptables -t nat -A OUTPUT -d localhost -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600 \ - iptables -t nat -A OUTPUT -d localhost -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600 -``` - -## macOS - -On macOS systems, use the macOS system resolver to point all `.consul` requests to Consul. -The `man 5 resolver` command describes this feature in more detail. - -The following instructions require `sudo` or root access. - -To configure the macOS system resolver to forward DNS queries to Consul, add a resolver entry in the `/etc/resolver/` directory that points at the Consul agent. - -If you do not have this folder, create it. - -```shell-session -# mkdir -p /etc/resolver -``` - -Create a new file `/etc/resolver/consul` with `nameserver` and `port` entries. - - - -```plaintext -nameserver 127.0.0.1 -port 8600 -``` - - - -The configuration informs the macOS resolver daemon to forward all `.consul` TLD requests to `127.0.0.1` on port `8600`. - -## Next steps - -This instructions on this page helped you configure your node to forward DNS requests to Consul. - -To learn more on how to query Consul DNS once forwarding is enabled, refer to [DNS forwarding workflow](/consul/docs/services/discovery/dns-forwarding#workflow). - -For more information on other DNS features and configurations available in Consul, refer to [DNS usage overview](/consul/docs/services/discovery/dns-overview). \ No newline at end of file diff --git a/website/content/docs/services/discovery/dns-forwarding/index.mdx b/website/content/docs/services/discovery/dns-forwarding/index.mdx deleted file mode 100644 index 1ee28417397f1..0000000000000 --- a/website/content/docs/services/discovery/dns-forwarding/index.mdx +++ /dev/null @@ -1,186 +0,0 @@ ---- -layout: docs -page_title: DNS forwarding -description: -> - Learn how to configure your local DNS servers to perform DNS forwarding to Consul servers. ---- - -# DNS forwarding - -This topic describes the process to configure different DNS servers to enable DNS forwarding to Consul servers. - -You can apply these operations on every node where a Consul agent is running. - -## Introduction - -You deployed a Consul datacenter and want to use Consul DNS interface for name resolution. - -When configured with default values, Consul exposes the DNS interface on port `8600`. By default, DNS is served from port `53`. On most operating systems, this requires elevated privileges. It is also common, for most operating systems, to have a local DNS server already running on port `53`. - -Instead of running Consul with an administrative or root account, you can forward appropriate queries to Consul, running on an unprivileged port, from another DNS server or using port redirect. - -There are two configurations for a node's DNS forwarding behavior: - - **Conditional DNS forwarding**: the local DNS servers are configured to forward to Consul only queries relative to the `.consul` zone. All other queries are still served via the default DNS server in the node. - - **Full DNS forwarding**: Consul serves all DNS queries and forwards to a remote DNS server the ones outside `.consul` domain. - -### Conditional DNS forwarding - -We recommend the conditional DNS forwarding approach. This configuration lowers the Consul agent's resource consumption by limiting the number of DNS requests it handles. - -![Consul DNS conditional forwarding - Only .consul requests are routed to Consul](/img/consul-dns-conditional-forwarding.png#light-theme-only) -![Consul DNS conditional forwarding - Only .consul requests are routed to Consul](/img/consul-dns-conditional-forwarding-dark.png#dark-theme-only) - -In this configuration, Consul only serves queries relative to the `.consul` domain. There is no unnecessary load on Consul servers to serve queries from different domains. - -This behavior is not enabled by default. - -### Full DNS forwarding - -This approach can be useful in scenarios where the Consul agent's node is allocated limited resources and you want to avoid the overhead of running a local DNS server. In this configuration, Consul serves all DNS queries for all domains and forwards the ones outside the `.consul` domain to one or more configured forwarder servers. - -![Consul DNS forwarding - All requests are routed to Consul](/img/consul-dns-forwarding.png#light-theme-only) -![Consul DNS forwarding - All requests are routed to Consul](/img/consul-dns-forwarding-dark.png#dark-theme-only) - -This behavior is not enabled by default. Consul standard configuration only resolves DNS records inside the `.consul` zone. To enable DNS forwarding, you need to set the [recursors](/consul/docs/agent/config/config-files#recursors) option in your Consul configuration. - -In this scenario, if a Consul DNS reply includes a `CNAME` record pointing outside the `.consul` top level domain, then the DNS reply only includes `CNAME` records by default. - -When `recursors` is set and the upstream resolver is functioning correctly, Consul tries to resolve CNAMEs and include any records (for example, A, AAAA, PTR) for them in its DNS reply. In these scenarios, Consul is used for full DNS forwarding and is able to serve queries for all domains. - -## Workflow - -To use DNS forwarding in Consul deployments, complete the following steps: - -1. Configure the local DNS service to enable DNS forwarding to Consul. Follow the instructions for one of the following services: - - - [systemd-resolved](/consul/docs/services/discovery/dns-forwarding/enable#systemd-resolved) - - [BIND](/consul/docs/services/discovery/dns-forwarding/enable#bind) - - [Dnsmasq](/consul/docs/services/discovery/dns-forwarding/enable#dnsmasq) - - [Unbound](/consul/docs/services/discovery/dns-forwarding/enable#unbound) - - [iptables](/consul/docs/services/discovery/dns-forwarding/enable#iptables) - - [macOS system resolver](/consul/docs/services/discovery/dns-forwarding/enable#macOS) - -1. Query the Consul DNS to confirm that DNS forwarding functions correctly. - - ```shell-session - $ dig consul.service.consul A - - ; <<>> DiG 9.16.48-Debian <<>> consul.service.consul A - ;; global options: +cmd - ;; Got answer: - ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51736 - ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 - - ;; OPT PSEUDOSECTION: - ; EDNS: version: 0, flags:; udp: 65494 - ;; QUESTION SECTION: - ;consul.service.consul. IN A - - ;; ANSWER SECTION: - consul.service.consul. 0 IN A 10.0.4.140 - consul.service.consul. 0 IN A 10.0.4.121 - consul.service.consul. 0 IN A 10.0.4.9 - - ;; Query time: 4 msec - ;; SERVER: 127.0.0.53#53(127.0.0.53) - ;; WHEN: Wed Jun 26 20:47:05 UTC 2024 - ;; MSG SIZE rcvd: 98 - - ``` - -1. Optionally, verify reverse DNS. - - ```shell-session - $ dig 140.4.0.10.in-addr.arpa. PTR - - ; <<>> DiG 9.16.48-Debian <<>> 140.4.0.10.in-addr.arpa. PTR - ;; global options: +cmd - ;; Got answer: - ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35085 - ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 - - ;; OPT PSEUDOSECTION: - ; EDNS: version: 0, flags:; udp: 65494 - ;; QUESTION SECTION: - ;140.4.0.10.in-addr.arpa. IN PTR - - ;; ANSWER SECTION: - 140.4.0.10.in-addr.arpa. 0 IN PTR consul-server-0.node.dc1.consul. - - ;; Query time: 0 msec - ;; SERVER: 127.0.0.53#53(127.0.0.53) - ;; WHEN: Wed Jun 26 20:47:57 UTC 2024 - ;; MSG SIZE rcvd: 97 - - ``` - - You can use the `short` option for `dig` to only get the node name instead of the full output. - - ```shell-session - $ dig +short -x 10.0.4.140 - consul-server-0.node.dc1.consul. - ``` - -## Troubleshooting - -If your DNS server does not respond but you do get an answer from Consul, turn on your DNS server's query log to check for errors. - -### systemd-resolved - -Enable query logging for `systemd-resolved`: - -```shell-session -# resolvectl log-level debug -``` - -Check query log: - -```shell-session -# journalctl -r -u systemd-resolved -``` - -Disable query logging: - -```shell-session -# resolvectl log-level info -``` - -DNS forwarding may fail if you use the default `systemd-resolved` configuration and attempt to bind to `0.0.0.0`. The default configuration uses a DNS stub that listens for UDP and TCP requests at `127.0.0.53`. As a result, attempting to bind to `127.0.0.53` conflicts with the running stub. You can disable the stub as described in the [Using any local resolver with systemd](/consul/docs/services/discovery/dns-forwarding/enable#using-any-local-resolver-with-systemd) section to troubleshoot this problem. - -### Dnsmasq - -To enable query log refer to [Dnsmasq documentation](https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html). - -In particular, look for the `log-queries` and `log-facility` configuration option. - -When query log is enabled, it is possible to force Dnsmasq to emit a full cache dump using the `SIGUSR1` signal. - -### BIND - -Enable query log: - -```shell-session -$ rndc querylog -``` - -Check logs: - -```shell-session -$ tail -f /var/log/messages -``` - -The log may show errors like this: - - - -```plaintext -error (no valid RRSIG) resolving -error (no valid DS) resolving -``` - - - -This error indicates that `DNSSEC` is not disabled properly. - -If you receive errors about network connections, verify that there are no firewall -or routing problems between the servers running BIND and Consul. diff --git a/website/content/docs/services/discovery/dns-overview.mdx b/website/content/docs/services/discovery/dns-overview.mdx index dd2b22bcf113c..34e92e5fe8a22 100644 --- a/website/content/docs/services/discovery/dns-overview.mdx +++ b/website/content/docs/services/discovery/dns-overview.mdx @@ -30,12 +30,6 @@ If you are using Consul for service mesh on VMs, you can use upstreams or DNS. W If you are using Consul on Kubernetes, refer to [the upstreams annotation documentation](/consul/docs/k8s/annotations-and-labels#consul-hashicorp-com-connect-service-upstreams) for additional information. -## DNS forwarding - -You can configure your local DNS servers to use Consul. - -Refer to [DNS Forwarding](/consul/docs/services/discovery/dns-forwarding) for additional information. - ## Static queries Node lookups and service lookups are the fundamental types of static queries. Depending on your use case, you may need to use different query methods and syntaxes to query the DNS for services and nodes. diff --git a/website/content/partials/cli-http-api-partition-options.mdx b/website/content/partials/cli-http-api-partition-options.mdx deleted file mode 100644 index eb96310a37b91..0000000000000 --- a/website/content/partials/cli-http-api-partition-options.mdx +++ /dev/null @@ -1 +0,0 @@ -- `-partition=` - Specifies the admin partition to query. If not provided, the partition is inferred from the request's ACL token, or defaults to the `default` partition. diff --git a/website/content/partials/http-api-body-options-partition.mdx b/website/content/partials/http-api-body-options-partition.mdx deleted file mode 100644 index cf2acd813caf1..0000000000000 --- a/website/content/partials/http-api-body-options-partition.mdx +++ /dev/null @@ -1,2 +0,0 @@ - -- `Partition` `(string: "")` - The admin partition to use. If not provided, the partition is inferred from the request's ACL token, or defaults to the `default` partition. \ No newline at end of file diff --git a/website/content/partials/http-api-query-parms-partition.mdx b/website/content/partials/http-api-query-parms-partition.mdx deleted file mode 100644 index 8d954d86c53ce..0000000000000 --- a/website/content/partials/http-api-query-parms-partition.mdx +++ /dev/null @@ -1 +0,0 @@ -- `partition` `(string: "")` - The admin partition to use. If not provided, the partition is inferred from the request's ACL token, or defaults to the `default` partition. \ No newline at end of file diff --git a/website/content/partials/http_api_partition_options.mdx b/website/content/partials/http_api_partition_options.mdx new file mode 100644 index 0000000000000..a290c38201e5c --- /dev/null +++ b/website/content/partials/http_api_partition_options.mdx @@ -0,0 +1 @@ +- `-partition=` - Specifies the partition to query. If not provided, the partition will be inferred from the request's ACL token, or will default to the `default` partition. Partitions are a Consul Enterprise feature added in v1.11.0. diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index c883f29a5becb..38126b547e4c7 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -389,19 +389,6 @@ "title": "Configure DNS behavior", "path": "services/discovery/dns-configuration" }, - { - "title": "DNS forwarding", - "routes": [ - { - "title": "Overview", - "path": "services/discovery/dns-forwarding" - }, - { - "title": "Enable DNS forwarding", - "path": "services/discovery/dns-forwarding/enable" - } - ] - }, { "title": "Perform static DNS lookups", "path": "services/discovery/dns-static-lookups" diff --git a/website/public/img/architecture/cluster-peering-diagram.png b/website/public/img/architecture/cluster-peering-diagram.png deleted file mode 100644 index 66a81dfc21bdd98386c1c38e9b0cac934cbb62b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30403 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 diff --git a/website/public/img/architecture/consul-singleDC-redundancyzones.png b/website/public/img/architecture/consul-singleDC-redundancyzones.png deleted file mode 100644 index e57955280f0048c7a38c722624ca9f7a26c0b698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54779 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

v>=BK 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 z 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¬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�?uLc}B`UmdIu$wS%nRx1(|;yHs2 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 kez@Kq(fzq; zl-37~o`?3NF;+$k^hgzH9uX2auxSxSedU$_T7r$ev*JT(>3{c!7=F}F?iiru2LK0r zd*jVP^#1IxJD;F4M(!`-fZNi9Cd~lxuKs}Qw;Y|O+CRf64$oKi^bUJrCFGU%)73g` zEw)^=E#ljQ6@=H+4k0DGmF630O1cZky#5Ho#Pm1eFXIA=0D9NUrfw|8=wMEDh6&SF7geZ9f`*%PQG9tseYhVZ*jXbaE zDw%r$O(`WOM0u}7xUMNUXTtPRlO~6P?M{iKA$F*4JD-M0wW-i zFd&5PnAf-dcpR54PtzC++_Ye&)8v(8b~;F%Ft?PN^51P<=vHJMh=5@>Ib?5iy8s!l z4<}Ux1|jUpI2{ZEB^;O2dbxPta5Pnw;9&qeo>3PbFt{QSesuN+fXpk)4eqU^FFC5i zSo+4skS~w!rJw|0k_!T)TX^x-HcN#Z>(mWl2?>A@y9?m;y$pp#lJX)-fu z<5+9WOq3C-4z0p&KRtbfUGheqsGY04dh1-63y5t~Rl_HWq)sB&SIZ^gjyyx;tgr%4p0Hw9Uw&^&rN6X6XOFjp zDjU8%jHx^(7Z-7r)cnxfl(t<1F&!}01P7f;_ut$z(jwx~LBQYilWdkMjMeS$PkxKYkk*c(%VrGN|) zzAgwxc{=A1@_O9T>V1H;f9ZX~8~aVpLV*Ud?64zF zFRE7YpFNF}yG-nv=ue3ZLz6e#>`)Bc`j$OYuAlF5e0xb=!g#x^qQ{GpwV6n6{gKz} zDEr|(6?&Gvpn(Qcz1}K)VLkP6zNc8@6gT?LI}wx9&Z`gi(cL)4tQC&D;7Ap`0copi zYhSk7CWe3c1<&}j79Y9_S&up-GASXSJp7K&^Sjs=_nzKdc}WFnxy3uG(?#u5+$1bD|h)owp>MYgNtD<aXHl&kvm z=i{2trGq%I89CeEY|wk$o>&4tH}9Jp8@!*J{Un?js@p};k+t4ooN1U^~CJdJd6Q z=L=ZoDh;uLVf5EuSk%3IzrbBG;Im|2_hPE>TlJA4ZTPxOu=BEy-ezt)V!?Xw2mxhz)o%9@MD zs0H&}i)xtlBw}ctevJ{qUj5k0y`8ZDB^$n*lsNdcy=_lugj}MNO*ps9K@9(%*@!Lh zODlCKznQTuw5d3}P^N)R=jAYKtzNz+MXVQ05rJ#pPhre~CmAM-Ers}SGqLAj+%ygA zUdb37bUH$)U(>BpKK7Xlx_d8lHa%ahV=4EeGf-TPd3zpmZg72>aQ&tAKDtDP39laT zcZIAdKf(N!)si712>bLAFUqmRtM)}<-&xvfG6dkXi#`5X7jE=%{`y;hT5(fKjCJP@6z^6AM zb&oHDRweK0P0xs0nWo9UyY+3kpQO!0h7a||E%O$EKh;MpD%v1&xEk=?>t;0|bSta` zXsjWF))4NWe$^V2+T%?VP1NcnwI1D3i>=)4mM(BqzIQKl-s6;m9QoasIV~_%cue%; zAs3PR?GR4F<g0Q6y$xr*B`dQOg<&4jSSZ* zFeUR`xdy!gJkuWxsaUrRi-dGBPtuMX@B!s!YB=nUXqwNrlLMI?__7P0vDi*)v`Mco z(DuefI!t3pblO;dW*s1=6cQgFzY=z(rx}wT*2Tr8Gp@pN>r1mWE+QVg;@9M)ycZ|kv=$N zgbw_xV8yq6&+!C=R5&>6F20c17^@BEmMo#98_VPA`6-sZAt{nY{Y`;Diuq_2*CX^N zTA^a}eykvGJO#h?lcIz>RD82zI$t+IUuwt*tv*!A+G(0vbMXUZUwTO90Nz)At<>UW znUSgYgP(y<8c^&QF)?gya96k%6LelUf402&1K?IJm<{hEad-52C1HwC^ zyT{kSvasS7y}czxR17`KzlHDE1vC0FW1*`i^*n`F=0!cRpE~Ip|kNBWwL^*&aBVz2c$GykUpc;Yg}6J#0 zMr#zl!MTeP@ttc8U1_h!t|95g+wuhC{B?S)WGJD}@f3$6y62T2@dCKARNCj8`i`4= zbRHkyYKgoS9BG7m+n9W#_NfQYZUgOaTsgjAN5kdBc3+Wa@;6BRJ;i+`0tW*-Vm)?RrH9z&}P=M9k%57$!!!2G-Z9(_+h?wG#zkMDg1!-!52x z0;j%&Jx)uQuOX zwETO!@>2Z zc`)Y}(#_wZZh{6#S*rZG;ws|0(e%*!hBIZ`!(cLkHZb=n>Ylk_@iTCRsYiC%13+y?CAVU4;4w$w?Su z^2g@NI}09hqdLFq)t)Eptc)}2@;R&bldf5!=X1)n&6fh2RmUHX@5q;8@^?IamC zq}-%AZuQhX?bc1hxZ0ATZmB&RWF(|<|BaLT(?`7P^F7{L%<7G!M-qH_MrieTNyTSq zw!FE!Qzvxq0DDon0jQV&1Z>6twdYT>60$r-eRiPxgxS)f=Z`<^H@ca(lCm~>uZjS~ zmaJIo2mJiY#TIqrLh{Qavazi`lLN0L49vz%^T6EBusYmLtuooVC<=kVSLofBwm)V7 zxOThQDtxWc)kc~(LH3WM@qM5EIm2vQL+0#z+F!8_Gos}Z-T!Tjc~q;8+G$hA0&_asc%{K(z$dE9rd=Yn!bbdWi(n756hzOm4)>)Bh{sI zPyh8;Tj!TGVZJ@B&&za69K2THL*T9TQEH6lq>hw>n*J9Ypk3SPO$6o}dsB1(TOTdj zcv)+K0A6Q{aD)NbzBJsD;>*Ug2hbNO?``#(;N#Q6gBdSx)L3dKf zD?q`t2@%I25cBM4;0<3Hve<^vzV{Wa-AhNx)O)8N%MZaeqxg4GPJ)zq5Mc-7;T-Ix z*F4(s6FY{^m%cVP7%+5onPrE^w`Lac2A^E{u3RrA`^<@iU+`OZ;shOo%Mqus%j(35 zrw}cAH$hjQeycM=GvZa!yqH;|sK0C<`0*@J7*$t%!M%()f$STZWr5d{%kk8x&)ucG z9>AFKFW_xXzs6aI*t9vE#x(LyE%yye@bf+{@vA53U6SV&-Ydj~5 z-|4-kF!-_`i{`5?cbTodxH+O~2U=QdY#>f!7COwc0K&CqTo~EV~bVL0fYckX&Y0{}oGY+>ByQGO633zY_)YnCse|<7d5FY%Ux~M!^r0zh@Yc-Kkw6jCOhP zjnpM-Jy+lMZo2uS@eRTEPG^QqD)YCTj71h&WZH3mRVq1GpJ>3)(_#e`%jlu_oYMvp zJx6CyKKM*K4;?>7%yUqC53?Gc-t%LSt61yvL z$v8SV`TToeir^B_7Vf8wm4mmT^)5xj-JWKa^gREmE=eF;!wKg}2ih39{Jnx6!(xb` z8n6a~5!_@p;MLq$WIY*OW zFYWzli?EI+V5)8(Sqp%{V@MT^h`OC&P)lbk4GQG}ykESbR+?QB z_iMjGS9~~Q!L9;)WISq!vvHuW8B#^97UHv^8Ky z^J7=|ADAWa1j#l9ZRiR^(77mzz7oyj5htd=iRquHiuwTxio}?dc_+V%^;^$8Z~4m6W(ce2Op-0t2L0U zulVw?%6b?w-?`O^_>=pY$F(i;xS~-b)%HyuLMH}uI9OA=S5umI)9})e6{``rgG*K= zH(*6(|8Tx?LHeTQM}xe7=u*iTiKi`iFh;ZjOUfaD?!VUTX(j;MP= z5TlI3+?s42Ax3neXUx(di;~Gg_tGQ@SE7kAm9aDn_Yhc!vr~m&y-4Qvfbw zc0YW-7Wpb^ikonTt#HoG8y8M`aPCdlsj!Oc&5f4fI8Jjk+A|9`B0~{(yKjgFhr$4- zN$tbk6{RYnCl~l04+Kc?jWFz=EPzm=??omj zwTk=avcSU9Dh@wYn#8P1Z8e&^=Og{LJ%#o^7( zuPm`mmbg#B3?xvM+$21bL|D|^XLjD5xt}ib?cRJn>40qWncCi&5f{wl z@03#u0sit-qWuX7$K#CizW$AdhX+rmUh!SM3iL`1cyL8a;rhz93v^q40{OA38uj*I zBhNO_>HLm(VSr->TP7+T>*d!iB-Kk_`GYu;bPD&@!J=ebvDf`MDwl+Vx2&gIql^mQ zqNRyRFYHv8{mG$kwd)z9`Amon$>`>#05eV$0Y8E-gAUXaay2tT2??!(B>;4vZ>NBa z$2O-6H~x$AYyt;>KF3~@LTOV-@Y@PY>fXlB2Lu(c+X$XD$Z@YFsOr(4_^`XZx{F05 zcMgZcSQEG#B~*6JwLfLYpt8;*}Nf3{MaF zixlwLvoy1Op3TraYwc9S$;DI7t@Csu4$vph@H*cd>_I>|o@Gy*uKrRg0sU8MT?VqWuXl$!E)tFIzX zJBL7UkLEvc93u4LSG_*%LtKpXhsdiMj7NLb<@X4kv(oSs{FX0t(q+adpI!&emiV$s zE09`6Nnd(FOJ@!&jo;I2c&TZK?7~Cg#)O!TE7yoq*~;1z%xS&IjvVs8Rek0oAEyn) ziZG+`c_p{7T2uEnfD5%Odd)TCd#W4`)xPP<|AOCs6wuSgO-O%chSoyQEIuI;BEObt!KfNsnIZw+_iF$Fs!IQ6TwD*1=Tuk1LBnir!K zl9E4Zgr8-@E-vEYuW)V21NK*JmCCbs?I_FaXu;6(TYK8w$Egpb{uz+W$tEh&u6-ff z$+U#W(zuAfBRzoud@uqalKW061JX&l+h5J7D)i`Sj2lj5{NC!G9{AO4ueI9H{j;a= z1B?HunF2r+0Zao!nKZ$Bd`<#AUnf<%QwRpyBkvWV^3AEyG!6)C>`AJLXbzXN--9{> z0tPiazTW|fH_dMoN^!m?Li@c{QH_?3FB;9(%zK_ZPgLSd%U6WU9k#1p1xi6|HAR-!jQNy58JGqq(zAq0uZQ%LlOwSe*g z@K~R52^5;)H)uur20By4zO&Zy>C(KA=9MBf3TY~`4`atP@}jTdMg)OyH(6!1xhmni zT9{xhom|aSNglGKb4b3So15fPYJ5+$k@|dz_OvfotBO@+EUD8O*%~J{ls()ZV-noy zBZRILxlN(v!b5Gwq3pBvGO7bfb#gviPC;jXZVidWAv0Vrtyxq zmDmwhz9t@k_O{s-?;M2zDKLi88$YN%Q5z%;ui3X5{&_@XB)!Qt zaxbhWpW+MG;h~YhAYle{L(KLL?vnu0`Y*EG+sC{fzF1q+jhpWR5^J6`2UDmkz#~!S z&um+~!L2g-?SXC5v%Iwy48JECfXv|K3}=fX#C6iTzDuQRWA7L?SBP7Q{BxsgVGhl$ z;lZ$B;+f|>yd|;Mu=KDWNqauZ@UnSE;`b$4gyf6nZT1dZ9xCtVjK?m74M44GREN3P zJpvv`4)g+eT0@k9;&7^Y#8TM4LExI*-!*BxHCm%B;;{Bv=5kz5h&z7@n^c?DOijGd zYMq$G=R2Ps5GstM8RtT-(B!JdGIj-xk-d%1t5V9uFS3`DQPO2S07MYys1>X+<@@Jf zn{6nq2NVk&WngMIbpBA`zly^Ll+((Suhr<(r&G2aXVUyc?gntGm`+vSg=ZZiU%ZkA zI9sQGcrE7mYb?Y*jQEL-1imrau54eZL-G2qDj-y zp?oY<5D@w;^87iVkpiSwfah755O9vrTHru-@ADCPB)loWCeKoTrJ6PS$sX?e99Dt$I(i zdw=ZY)G{t;&EOUU)O`RS?f(r%QSy|c4Pr8d9*@&d8JVg12op$;D0$Yh?c%Ki>~ zJx+zL%u-xrtB=}1-qH$;p2GTL#nbsv|NOcrt;zxtkjIZOcic__Y!Uwv$#uX<0vxC* z+Y}-^CmkF^>gw1q7_{OEXZb@coQs_WjvGXSU1)4gyL>L1I_%bjducAW9RdsGob85s zCH8YY0sF@J{UEyAMR!`bYs9z%pv_pWTU}Wp1nyNr02Dxw*qjPzA|zboLVz%{{gM3+ zQM^;?S4P=y=~#L=Js+Hah77Foz?s8?GByX-?_M3Z5FK#CK~(#@?AH^Rr{6v~Nt$1o zXpSKjai7LbkPwE>jPMf{DY46;^cu2_#$mL`Dbe85j)Y;vMDX7BYD;I1FSwLLnBxXx znYQ-81Pf0TqA$Z}SPMDfS|}HRFZ`^^AWIp(i$(1pP;MZ#-yjMx=&>>lPf5G(|8gAH zP`Yhr8ckQRM+e-H(|XD$TFom0PPSQ!ednK&*2En$rz-Oe2{iZRh>9ZDPB00P{P^Cv zGkUcf3!8bhfcrML@~1@Kv0$JRY%?a(Z#U3Qj94>d72im&?RHCq=OCwd^+I&(LPOav zYPKC5a+mqhc3*RgM7>a-TZyUOr-zS}5Am!Hue29&%9iopFEu82QR~Cl0=H+(S_Kwx zJWg5eS}BV#`?C@-LfGhc>j0>$?m2R+o`q>GRAxGH&H#?-bi(Ac0cHBaEL7XX%Xb~n z^=2PAmR*W>H49Vj=DrOhuEbChVHf<>D6kTP`TF`MKRj6j4%q@d>VBw=S*y9PS(AAZ z-N`I@o!#9c<^Ud!@RW=&yECi?%Uc17mbH=$Wjb3beR>4MjX>`t56=N|0lHM3Rwuac z$Y!gND%-)ba>~$Vij{3qXU&W4u4Xu22SOZzl2` z$g%8PQMQMvInb1jROTNtJKRY5>}G#o@;bFuaGDZ?GuB@IVZraB1v#=d_ALnn-(Fmy zTuz^pG)KnYEgN6H+=;HU&2hnz#^C>9>ACcrQymjUNLXmG^jz<8>zA_%oU7*|=|sDp z^GNjjBveIUS2&^1_=dfi6E*a(hR1;eLw)Aybc0dNty?!Zj8SU;>vZ&>5IJ)~Z)SvN z5ur94z~tyFwZpc4IcLf)ND;${#kd*>euAvze#iNPPKYQ%w9in(GE}*vFa{;nnx{xr zp}fH`v89>9>yGmL%_5_c7FWyE+K&7nE1XcfCPXYLgS9Y7r_+0${a+kbR!1HVFDTf6 z+SZ;p!ZXcG%BuS0JRz5e*3j!&^`=CL3NrXePOY%;%a7*1sC}xYMtyezp9_J;Yy?#& zm=Ox&8zm(+a{K)yjrj3<3cHIiGgelv5rs-%sGcSdWsw$B_IR8qvI+PQg`!nosQvYv zO+eh5RsZyYb=Y}YWJ-=e%ZSx9+`ADDno{6{P8pC+9`V6>i4!*f>o_2rp=fciKrPuE zipb%F^bRh$g^=Lm3o^m?pWDl{_&&@tNOP^ z$Vv1sQKs@w(frNXKbFZ4!|Qzf4#?A&dh0ai2U4mL0ZN!@x-fmE(E)wk3{Y82G^-BB z<0~SGkOY(JCnwYqK*P%gqYTJGdhzcKg?u8HAWJZs0~@JG(bfZCybVL%jpS9IkHope zQWd05k(eu_Sj(Jn%veSX9oQtBoBWF8&4!sz0cU=KBx_8W`lC7nrZOA!nis?|6bNOF z(cvYFUm0tK`=4NB*s0$C1hw)RO;=*AQ(x}O!G1g^CjUxA7b-Ic8(Ipoh(f4a zMvkD}DyLAsj`49yR6?aPsh$e}3}Jp&TdNHr$)>1QTL?&Grs4=6U%8$a-qB0ziW=K1 zY131=J8#icrm0TvUoHR|l!0H%hu>}Z5jMrgDmGOdg9GkTer`kysEuP!BA;hyF_wk_FM1gR`iKFsXmEof zTYrFt4jM%e;i3HJ7)}We+`%hEk=(5=}7`6a1pLAbeCpBLx{BfAv;&OnfTqLhvj{pm+Z}btiLW}Z^nA3bhNXTkr zP`MCX>rj8~>mN^r)5#RnXeR;))qd2LRg|Cud|+GLy^Q-&GJrfuFXGHKhx?A zUwUs&wt5*1d?QYjkBIOeKyM&+50ff62mUwsNXYibo;3dq>wDlK9T;Yj>6ewplTO1Yw9X`+A$N_@Z8 zur1J8UX%Ok35hCM2?2631aV%kn^YHTU`#kyYtZ9hP2Oc9&?eFFW3Z3}b<=~Yi}m1R zI`=BtnC0m}2}*lsqPYXj;|}&$vcxq!;kpF1G5Ho@n>FxEBp52kred<%RlEaltALD!{K)`3PD=n*G>cEW&<%^&G;dNMg`_4}`94w4g*u>62YFf;7d3pmc{V zV-o;wdZI=YMx#akz`+!_eF&`B}jGLYBZctNBV{6%}^<^15*Wy3yXI z_$)!XoyoAvjl3cq`k|!NDkK4RS7dcYtQ|9xiLj}K^%v#fKlP3SwewE2Z0=-zJ2cO) zvRRpKk4eW55J3uI-x6>I+MkvAKp;+H)?2NiGU{=|h=)nNxw1*^%>cbr95tKE4Xcfr zy?ohUXdAa=SR#q0tv+-}MJNCZ?V{a(8D>zrMt_9;Xm^%}u3UuL6pZl$HA1+vEAt{6 zjb;}A=R&BMC^^u5C$p4nmp2U>F3v|(K_xRBhhZ$koq)s&!%)vFz4Xy|r|lq5&{Z+W zDk6Eaiiaq+7%jXe9Ae?76uI)q7ZOnYG&LG|@n|jew#A_3dZpw5ozJv;Z;i!B(o?j)IzjL+CA-XH5!+azOX2UnptpRs0P zL}88KY15+~x5N_m}KlJZ?7E#0jiXRsJX*tRM?-b23GjSFsda7D9(#OLsCuBDA%!>me6)I=_{id`8 z`-BL-%irYEdJO2!YLASpOqz-nsa?+ZmAhGvmRQ+;B!3PXR_EN;bdAhOw}zpOmx}3_ zQ>G6ESbcEETo7=7#Rqd@fXM~c^qG?N4 zKtUu|EU&v%%5E2s<#(_}VM8WLqM6@%4t7mHV?`gN!G-8C=KKC40S zIj=d{mP$J!L7QjDGZI1S7jn8ArS#BUIF__QQ9)qrZ*Yf!uwUIA{Z_>7lG0)q-l+)= zFu}Gr5A?1P&F4a(@esr@N~P`hQ$3UNdlrVRpisFCOl75zz))_rw9s#Iv|46ur2=wP zu=6jfOC`S{jC%^MWPgTqZ?2xBU8&$=_tk3Av?qUrwi8GpJBY@d{Hh*#oaB_~kK3Y$ zl>D~1oyFc2jx5x3V|*ztYihdAjG?QoLQgdb#V9#!Xd?{^8`L0*4Le@2?t4o|tL?>j z!lwV5SDcU|2yZY?ZCsHTA!SEzqPvZ^CF(7PRWlxS+%4nVkVp`8)<;h&oF%F=J_*-z z^PFNCf#){u&k=KrDWv=0S#NURI_zeoynF}%nh4x+(hkfCH4O!&8yi8gj_flsRE>gn z5UV>GAPPid!D9To>^iB1^}7N(y5_Ne;eROT;zC-#tvEVgs_GB|T_vvuaEht=Yz&iCzf*U2E4=B3J80WD)gMIZkAY>HRxZd`(ass%l3x_iwnZ5iCv&oYK zwiKvI=Le|g?hgd_<1%Mv%WPf`wUp<-LN-#zHGF0OPreb>-u#1gX;fEN7qi7wyvmQs z(pIyo$G0}%`jNm2ZO%Xbl}0&MbIiA1?AfNf`3s|9jtY^t7p}ovy(6!DYRIp6;DdCY zJT|86#3Cg4BqTp9jaeXFzswK-heA5zO1W7$#%VH~4n!j^D(Rlyr|jy+O@u|3RfSKL zDHc797#xGO(*0-JH8qsu{K>uLBA04%G295-I-tt}34Nsk$Sl+-pbPE`D9ebb5hXNc zPnS~9!;Gzvs>40pDdVF0pOOoP^_m5B4KTX@Qh z3AO^+LD;NlP(s&7Mrn?7MPu!@j-7KyrWV@(oo zV%mLpG!AA|dl_)&)#GDxbaThXd8yizcf&Q*OSg3UgEDbaiWQ3KGbnX4YE?mJ)W#4F zr-4;9pVh}KVBzXuXWpo@X!1V)YM}gQ?;dKA&60FKuKN>>7*PvNC0Tyn*oqM&9}}E= zg_s22){n6S)JN{Dcd$5Zh^J=!sf z_vioBj52@t-+;&#*J$^6!2@nJ&odXu_7x0z zk9jm#u{R+1quU?iv8==ZxDYngrds&T=WtJJcr4+=<4NUjcTQzBQwN}IVjbW4%+l@{ ztozwclxgD^D^{{6hj7vr{`g`k2>|q(Fknv6qrS%{CrxH;km4rVX+y_s|F7(fh#HMl7DHj+Gju35gl!{SOS2OYTBl0#=?TeZ0!u~ zMMjt&IFRE%tZ5Bk{aH50i->?~8r+E~lSsJx4&w^G+I-Tm@(eIqb^Qt+#2=WR=K6Va z>oXXM&!Fxw^1WMZ&B5gQdDRy-5J+F@0wQC;xFp&?xQ1c^hixh^jcW8wFG1Lwdq_r#EwVPTh=|TsG2u>e z2Mh{)y&oy?4`#?Jjlw;>lD-d{ZV)@0jrqP1ruF6A6KEnRx5%kl{N&%GOXyw5`;O|Y zUZDa{6|}DVnmSG&>9(_;7&PV{BQBDq#i*L)dc-vybY$r2)eIB=Kf1m$EUT@HR**(X zY3XhRq#Kcv?(P1~ zp=>OhhraIl^xnz1@#`h_bk2We(SsxMSAZdkiy*pV|&kTxo56S zDAeUhV3!c?QP(;)xZ3;E+~v}exRCEQUbf3!f!n!!&fI(W27f~anYf{mzcrd4)4WYw z?8JYLSn{JPda}+sYj8S>z}UPTvg~-}W`(PYX{M@(bO3k0gXg=agI=^h4A--LY=ezO ztDE~XC{L+<6PhIEtDX9f4tndb(%P*^s~kE)_nN){1bLcYcn_;>^KISui|=fwIOs-o zY;MzDovR9UDxf?C^pOV;Ph0Jz0iFIPQB_xG`HWGM`n{GTH(fFfPrc9@S00WLWpBZK zcA;;>L7dL~ru)IoAdCx{@eLY-0q#5XreUS$#PBwqOgQjX6<%jEbSqE&PH7e^{?Cy* z7c}Yy@Sb%I;rGg1YJ@bMVlF+EX%NJ<1#7O;6`UQr`c&1Sqzy#TU1{Db!w%~yvf*!w zsVi|72d=KnJmA2nCw-u4#HoLA`oiS7J#N!lvfZ_72-_#LCHlD}T?b`C!Q>OCq*;cj zd-5Wvd!Dq8Qs*AaF)E6VBPkcnOcJa&4nV&Zq45QB>)h*Qn``G*yImLtD+ftzlnRO$ zDs~V*YCf^j`+*ukm-mJr;}!i@4voIZrFOD*ba<|RWzp8xqud#d+P|YT^SOG99=pmV zzjUZ*H=|2Q_sMPH#h2lw&@AXyH|B;^>~y-b={N9~%mTEMNCtYcboYr8sugCy&*0pqs zmaQmPna{WGIbamj+5+TItKDTEZDPa{03L7tt0Rq9=F+20t~mC^Z^9i}OvYlvte?*` zm-OOTDc~3}8T79CU?JPK>;l|&_K2^DM48t$4x$1yI3EfdTm$P+0V~WK*vVOSLjGSk%>1@mM&R( zV($0$7GxU+i${~C;EUM?LK(jYXj^9|D!J?z=RlWEo!vgT2zn054u=Ck_7`}-1y*w- zEKxcfc2JkLZ%vygvo8MK@j^^C@OV?D`3XuB5x)%pvs~#3%jn(wnDqJn3vB)u0E?yj z+47yK_2q&i3&Ljo=Ybs=2I~zNAymOZ%b8Mq?fJ{Y@J9er3&ChO(JM7o``VzZwKMr!8dUj%DZ2(c{qg}O@+(80yrTiWt zj}QGrmT`*FN8w=Rjm03{yXy8>1I&sVW&?dg0c8?`RSI-HXS1HGD+k>ul0(KK@`l|f zztn&lTYOCy_Qcwe3Vr1+ST=aHu}~OJM^vCV7CfTCe!;HWj10rp+=woKl43&VsRk{U z2`Th?jr8^r-eMJN{Q`?~?%5?4{=nm#S1P8u8h-X#d30N+516Mr%r&Ide8X2*S9D04 zSK1w~o2eC9Seo$gHWgde7)>~kd1&U^(WkE}?iLZ&yxSB?!t_F*z*lL^5s~a3AG`0~ zYZ47+WQEPSew3+#sVT-GE-DNUsJ)VXQ+17)hV(>55Jw|z(p~V{59IZIyqaL@P9xlZ z732Fn8B8oF%DIYwKZJzd;v-T(SS{9%LKj6?6B5eA+qa%AXwZtVKnGH5pgB5nfI{PN zYrepnuMH6mawiX7?qIwPlcat*UlLitrww>vaA-Onbmp=TW02ZdUccl0j_yBVePXa~ z^}5&Oqh4z11bPvV$ zIMVASn;mH-G36sJ_|^kWW~(x2J#qWy3L|;&?KcD_5s18(D2%c>4d7;p(x1N#u3sx076EDCirW0ncrcEnC|j z0hwXURGL(nMg)D}wQ6Ha8(3I)?NsJ72I;>36eg?Eh5l-?M+_bwKKT4zEo%_q6=Cib z`+)>9i0%g@$-t76T~kYpjz1!M%li92*7im9wZ~P&*s(BFGkBk-M0w@^+pf&9FG~nS zsvC3=P5Bx)3}j{KC%$jo=c|>T@CisW@wnYy{K&P6Xl4P}S(F2{HVX6lKotuj(6Gg0@TvHj#rVyH0o85ImeXY*Z_C?4l0HC9F4B*K&wcAGNOewvxg@E+up2BFu{ zY2uRghHtYb&-+d|4N=+6q~4~ZVEDlok4m_yOwl4b3fqg2J@O=T@~{OGSFr6fU||`b zDL{S#3ieepr%T7Bd+SWzmRhQa&!Tjb;v~c+RAg#aiUkUZLOS}Y#93d}&B$Kq;dUp# zY_*ELwcsiY$0Q`Z+R(tE3W2B-z_c<89~MnhR4Bza`K*u%|0d6(t|pb<##t43R9dXv6)00ArR_eKFP`3-(0VMbFXV4(5A#qE-@8 z^H1XftrvP((Nq3YvOZYtQgmCLS^9+y>fx-cU?GbGd;Fc7rE9nyT{$889ZZ@jXV~co z;XT%G=u4g+;*f2s3pLQ;ieG2kHxeuek0H-j7r!hv8@n8?ugsa)OzdI`u!_3+#8n~t zzQAJPD@pTqlCZ;=Xg-mZWt$tl=ojw!8i((~^pMJiY9)Y~AEM98j_xhI@|~*{{nsW- z3ay;Fi{f!@oB?iqfqIm#Ti?dFc)L$va&!;37f}T@_W+{M>J)9>6;6|Gb5pX5taXFc zIuw9oAe@eBlr5D2j@Wo)^(C*MprD4LJF7rmS5s={iNSQOuaF{vYpg$n;Kk6I(n2 zKz`L;m8jFmIa+s3tAzxUJwk=k*`QmerKQHZ&P9Em_+~8}WJeZIC7Y{7xP0Y!8E=c8b*`7~KfZm%(RGw_8x{2~B9{mSp%~uJvtP^m z-Q0laR@_vQ%>xzr@=XO!#j)g4nt7{vNaO~ewV=|y!p9JE4Gcu3a0h%&VR4p*;2jIpg~(}_B6rYy>nB@}crQWZu77R(eiTiql?LXtG@AAO?N zgBx+IhCkO%<~Vits``ORfE9gmY~9X|7NXMhiEpIzg%n-wD2H^r@A!@>skd!}dm=nJ8{?W0HWL zFP0-qlWkQ-0+<(te` zNCh~|OohJR-`FTLs(-T(rIy!DBb3+gKqLlweez7*JEv@HVN^#S07Nam=?%z5xHmBc z+&aBu28s1@xPxQz=fi8A`G*TwlykK<sPeQVD|Y%P^7 zbcHPB%lFcIoWWAEA)OWhwRhnGXokMAjN+o|-z5q8x5YzxQM z@+~8Qz?R6{fdlKnMGU(mI%TG{kPx-_tv982xF;R88c^kBD-Md0awto6XEnRhAj3q|TVfpm?CmCy^31N-@@K{#<3 zS4lssdJYF297}oq=_B{FknTWy7gsn3;$umOe4e^Ay_Y%dkJg{+T3@BkDq=gC zuMu-B%cjfK1t3$wI(~R3Bm{J!55~T2tb=UIET>sNICyb5!|sQO)2E``=Pws^adP4b zm%>C06}Lk6+QlzEj?_{NXmWpHv`J15U3OIL9s%1AT<_(S?;>N3+_cpTqEL6Vxyr@jEeTFVkp9N+1F|HiLY{+M`l z_}-OeAn~UDonIVn0;>SfV$bIKeh`tC0uh&^kgb}oGx$&~4S*M~%iow`%=#uBoJ1uN zh|~iG!(axf{%YW>4?nRu6W>1U{RW4QzCYo1@P_{TntJAPMre}fFZf};Ph)=hp~Vu~LD5tEu$mNgE!quPKS2TwR1qWv=iO z56ja7x=%$zb*BQh1^#-iQYFdUI#Y$q&+fzn)ax?waArnZWq{Vt<)=F>4PyX>vhDqN_xZ1yT#Xx7@rLth>Sz#eE5FXaYH z0K8#_&)*4#e1M8KpBc;GD~@#^xaUJ@u-4BL1nFrc0{#?R{%Sn@h23@F&j)-)!O!h{ z=8b}@n3(z}p({^QfX&z02V0}Uw6i!;X{o}2{`&6D<_o|+mOP+aN|S2W9nr11P)5@q z@v|fu6Ux(tjt*+qcrQ|P0SeX8=*Q)Q`J9wBNYfF6rRs@JOCLRad0#=RXl%}IKUHqK z*kj7g1esPi9>5wfe8VgJTvgM569Ct01z=8I;g>;XW3T!h@8Wj{qBxLdI$!L88M{)& zbc#psnTxVNl{l7uT6GyZr0zQIs7aNS3|5Z`!g&ip@_N&HtwR(*yTh0$d8=MrWiqZR zu;Au@Lx^1OzKmzw-{tj=RLp5D5-wt>3%0y)pbI0!_y3PP$tU?P^>dl7#|g=%_34Ia zi;ps~hE?Qd5YN`xwwyz|g)8CX3<#zp9$95Tt!2%%8?&XRp&>CdAa4* zlcszQWh^YB(LVlg9It>oaR%30dBfUS{HfykXLpxJ-p&I_A59?^7wiwGyloVy$X;IT zuJ_Y}8gEt_zI(r0f7+Y!0cf)Li&V7)07QA_dPxxx>7X*@hR<*Ktfj>#N(CJ%Fx8l| zB)BkRP++BK`3uH@w0&DJE+?7-&?(V{?4exx)WR>sPQ?LmTeAs7h&nWoL});M2?5XGIrq9EevL%${ZTN9~9EeWIA451rt%$Z1^l%f!CG%4qoy; zwWbc;BU>W=6P+l)j7?~Ab$WTnVi0=z5sIsy$0ktBB9BINR*e8c$*^e?B?dJ70IslEbf<`M5KNdbd zB5-Tufu3(|vX~#$k$xgKAk|OX=u%iqD-|78d+0yz0@Q61^b>09n}%<8MQT9n>sv%? z_(`q(Ozra1k zNs{V$c5(WqnwP zBPNG@RmD?)cu{H`GfX6r#SZR6LUEv6t;zV-tGkXt27ob5VWOf89f=I zx|ixc(5Se5d*A`pa9EN213r%niABD{+|p9AiWS~A4dT|L-pbL%bpM9;Ene=6(W-)bQ}kDKwqGlZXVITo$fy95X6P5B=0_pB&7gBb887uemu zDhOa}Y_7H$i+LT*^~Fpti;-qMGL|n)Pa_sDHb5gbB=f0%Ow`N)*c$xEhcyMh>H3`K zOGW*&ao4Y4?is8Dw@kz{!wNeP{9a(aNT~j(5ENDD*cJjQV*e6{M*uXpC4rMF8qt++ zklW$V-vPV6vIqc}i7Q$ekQk2ky#ZNKmm#8}qW)-ExN^L^q?K>=*G)ACXqnnCuupOM2`&dk9WR+m@1lo2GD6Ka--F8 z{V08!WOR)bfuf7$MZ{(?O_#D0#a;OBg}<|XHU1N zdqAtxMZ*peIz}`GfRj2=prlmx%n_)i$K=%s-&(V0-!cWP@&x^d0)#D8%7=UKmA#Al zPs{snI=Xg@g!0}_kV`cZ(r|%)G%p0@hbI3M2!9ZMriUn*%!Q^{qEg^^l;VD)Qt@Hg z>xYF)S!%RR7A`2!6$;3&Q`I;h)*UJ@tMs)aT3%LoZ<;R(%2xne?8<)cba{|5lX|9b zsQUeExc4M^F;-!t`Z+Y;lbfr~&Q&}A;Nqb-wB~|ISP!jYAqAK7r8?sa5~hswbY?vk zVwIYYH`by!1Lw!nh>3}>(QYd#Mx0*3iUd|uqA!eOk{!-fE96$3-oNr5T!jN}POc%d zcYk*j{t}em>lUhk40v`#fMbdX&@!ZPK&pp+oNju~#>pudLzk2$O^66Ex{(P>_hBe* z;?k%^zX}mA9^P}TOm6@>X##{C@s}FMaqp->HnmQN2onW&LZ%7-fUyxkjQO;LXZ4dD zuCK4H-UML$2<7?q-_>p=)>tQ%H0cf(ap)?`hQc7~yVp$mAd6@L z=LP0$>j7-pC8OyCYP)IW*yl7`9dBJVTk%6I=@x(iNiql&4A)%8PECysQixo>&3yt< zsil(0XX_RD;fD?PzcSinGRw*z#>GBIEMv$LGmL* zqB%R5Q(s;lswz$U7a#f8Dbm1z6G>z_h=4-~(8JPZ`q_rNTm>e?_MZ2W#GN+ZB@8Z% zAF&Sy#m8MG+fXg%W?4Pm?tENKj*BwcGb&J|-AseV&rO!!zv^o;EFDwM*gO8R+U|?h zk79(EGKx@dLewh8+F14i{%>lZe+el*L3?h4=mjuLweSk)-%H?9Sq6WjcMh72yE|#l zs%NPfiwd^cF0WLHtk*wo@|KmA-5V+P`vM_)oV=K6xr~Qk9@F*XL1qwm?)Rc*{#djb z;DNy$6Un|$F6;Q#ceoC-6B{q5ha(-9lk}K-@}db-><2+(LTZwBJ)wkSRT?;pZsFY_ zNuf~%ivD>j9{JB>)UC@T9;AJ`gRzPpSZ&fYxzU)D93O&Cmxp;qX%kfA;=(mV$@5?kZh!4)s)Q^5$8WozxI;IcN~M&pqUa@D|Gr5*lvj%*yTdtNQxoA6$0Q zpbzKVEAqjJE#;rdLJ|!=1f}Ln#93$cs^kxG@em8z&y#pXSvZ?vVgAc6`G<-EhG69u zoRE<4w1140@urW`uz3PxpPAxvTBiQi&L7l?Q>kuZ633z@Jed9=oXKd2y^`M4q&0Z- zFw-&xZ>&}>vX|Zp*GUHZ2eagBitj`7mZHsWuDCPlJ(VU(W_QAFl)z1BMcpDgt!j_M z@=%00nIxmic1x>wy5cBeFq>;mi>1BxtT;ZPBpL`|2c>nyQu1Y|bT~VlB_F;l2;u6nv zxCmtC=J1Wrz{#+RMy*V7>0w3g#^A=(4~oj$`?yF_uCtV%Eit>y;SnP<Srx$o!(i4TQ!moj9lJJ~lmxbc&3Af0SrqlA# zI#a_;IGX&Hz$4MT@~$Efs&M2!K8C-dAYUdLK4l>gKpFP_PQkr522`-KW_CxLA;RTWaKyNC+-UU z4Iyt5HWByZawmKSj2~ldhuJM!BMW$V;joph5%XxQ}S=<-PuG{8uJP+93`2hSvx$!8t``H`PlxC2?ub zJ|B3uNS$_HMRB_WAbSJ-_13a6PYdm(PcCdNfYydxh^nCfY)8yS%PdnmXu?Bb1sjJD=2mN1I0HJYy+{Lwq z@g2ttWGQYON=}!71%fgm)1U8$r`rmxn+0rM?5I68L+VNBFHFH3Fz)H6OkooE)gt*kmeGhuh!i_|wX6n*!urt;&g ztZKC>sg)J?02JO}&~?W*)bPkkrSOQWfRvP!Tm>W!+ppop8hV}6)6?n-F+Da{C+y=A z1j@S~9K4(UB{lnp4G#DsNs;RH%=rpG`aJMMZ(m>7>8UmO0jWm585r9Ax34e}Q?x`` z;vZ}^w1O{@zhioO`-Su)p2bW#HF)wrjxiM{oFC5%wh0_2#L4bUj{N5C(e``RD#kgI z>-GCLKi>D*za_3>TfhJE9VH#zWh5b!BsGLQf&R>j8vtbgQOLxfz{7*oll|#d{q*#d z7L6%>nI}K!eB4mRKIpK6Ml3^sgy`R4dsM(96&70gjg2$uALVF?jWy|0($M6G_2-ep z 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 nk1BNO!)I@Yp>4Nm`ARxUH2werF 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 D8CG)y diff --git a/website/public/img/consul-dns-forwarding.png b/website/public/img/consul-dns-forwarding.png deleted file mode 100644 index bffce6e333a97411647c3ba9c41d517d65d9e478..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98393 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 b7@l3G1Lcq)`zc@-fG;_j7mra=FTMW@o9W_L