Merge pull request #10539 from hashicorp/dnephin/backport-to-1.10.x

[1.10.x] Backport main branch rename, and fix 32bit panic
This commit is contained in:
Daniel Nephin 2021-07-05 12:35:56 -04:00 committed by GitHub
commit c8bba8bd60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 233 additions and 179 deletions

3
.changelog/10515.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
agent: fix a panic on 32-bit platforms caused by misaligned struct fields used with sync/atomic.
```

View File

@ -60,7 +60,7 @@ steps:
name: notify-slack-failure name: notify-slack-failure
when: on_fail when: on_fail
command: | command: |
if [[ $CIRCLE_BRANCH == "master" ]]; then if [[ $CIRCLE_BRANCH == "main" ]]; then
CIRCLE_ENDPOINT="https://app.circleci.com/pipelines/github/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}?branch=${CIRCLE_BRANCH}" CIRCLE_ENDPOINT="https://app.circleci.com/pipelines/github/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}?branch=${CIRCLE_BRANCH}"
GITHUB_ENDPOINT="https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}" GITHUB_ENDPOINT="https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}"
COMMIT_MESSAGE=$(git log -1 --pretty=%B | head -n1) COMMIT_MESSAGE=$(git log -1 --pretty=%B | head -n1)
@ -79,7 +79,7 @@ steps:
] \ ] \
}" "${FEED_CONSUL_GH_URL}" }" "${FEED_CONSUL_GH_URL}"
else else
echo "Not posting slack failure notifications for non-master branch" echo "Not posting slack failure notifications for non-main branch"
fi fi
commands: commands:
@ -116,14 +116,20 @@ jobs:
- run: go get -u github.com/hashicorp/lint-consul-retry && lint-consul-retry - run: go get -u github.com/hashicorp/lint-consul-retry && lint-consul-retry
- run: *notify-slack-failure - run: *notify-slack-failure
# Runs Go linters
lint: lint:
description: "Run golangci-lint"
parameters:
go-arch:
type: string
default: ""
docker: docker:
- image: *GOLANG_IMAGE - image: *GOLANG_IMAGE
environment: environment:
GOTAGS: "" # No tags for OSS but there are for enterprise GOTAGS: "" # No tags for OSS but there are for enterprise
GOARCH: "<<parameters.go-arch>>"
steps: steps:
- checkout - checkout
- run: go env
- run: - run:
name: Install golangci-lint name: Install golangci-lint
command: | command: |
@ -275,6 +281,40 @@ jobs:
path: /tmp/jsonfile path: /tmp/jsonfile
- run: *notify-slack-failure - run: *notify-slack-failure
# go-test-32bit is to catch problems where 64-bit ints must be 64-bit aligned
# to use them with sync/atomic. See https://golang.org/pkg/sync/atomic/#pkg-note-BUG.
# Running tests with GOARCH=386 seems to be the best way to detect this
# problem. Only runs tests that are -short to limit the time we spend checking
# for these bugs.
go-test-32bit:
docker:
- image: *GOLANG_IMAGE
environment:
<<: *ENVIRONMENT
GOTAGS: "" # No tags for OSS but there are for enterprise
steps:
- checkout
- run: *install-gotestsum
- run: go mod download
- run:
name: go test 32-bit
environment:
GOARCH: 386
command: |
mkdir -p $TEST_RESULTS_DIR /tmp/jsonfile
go env
gotestsum \
--jsonfile /tmp/jsonfile/go-test-32bit.log \
--junitfile $TEST_RESULTS_DIR/gotestsum-report.xml -- \
-tags="$GOTAGS" -p 2 \
-short ./...
- store_test_results:
path: *TEST_RESULTS_DIR
- store_artifacts:
path: *TEST_RESULTS_DIR
- run: *notify-slack-failure
go-test-lib: go-test-lib:
description: "test a library against a specific Go version" description: "test a library against a specific Go version"
parameters: parameters:
@ -386,7 +426,7 @@ jobs:
<<: *ENVIRONMENT <<: *ENVIRONMENT
steps: steps:
- checkout - checkout
- attach_workspace: # this normally runs as the first job and has nothing to attach; only used in master branch after rebuilding UI - attach_workspace: # this normally runs as the first job and has nothing to attach; only used in main branch after rebuilding UI
at: . at: .
- run: - run:
command: make dev command: make dev
@ -486,7 +526,7 @@ jobs:
path: *TEST_RESULTS_DIR path: *TEST_RESULTS_DIR
- run: *notify-slack-failure - run: *notify-slack-failure
# run integration tests on nomad/master # run integration tests on nomad/main
nomad-integration-main: nomad-integration-main:
docker: docker:
- image: *GOLANG_IMAGE - image: *GOLANG_IMAGE
@ -648,7 +688,7 @@ jobs:
short_sha=$(git rev-parse --short HEAD) short_sha=$(git rev-parse --short HEAD)
git add agent/uiserver/bindata_assetfs.go git add agent/uiserver/bindata_assetfs.go
git commit -m "auto-updated agent/uiserver/bindata_assetfs.go from commit ${short_sha}" git commit -m "auto-updated agent/uiserver/bindata_assetfs.go from commit ${short_sha}"
git push origin master git push origin main
else else
echo "no UI changes so no static assets to publish" echo "no UI changes so no static assets to publish"
fi fi
@ -833,7 +873,7 @@ jobs:
path: *TEST_RESULTS_DIR path: *TEST_RESULTS_DIR
- run: *notify-slack-failure - run: *notify-slack-failure
# only runs on master: checks latest commit to see if the PR associated has a backport/* or docs* label to cherry-pick # only runs on main: checks latest commit to see if the PR associated has a backport/* or docs* label to cherry-pick
cherry-picker: cherry-picker:
docker: docker:
- image: docker.mirror.hashicorp.services/alpine:3.12 - image: docker.mirror.hashicorp.services/alpine:3.12
@ -961,6 +1001,10 @@ workflows:
- check-generated-protobuf: *filter-ignore-non-go-branches - check-generated-protobuf: *filter-ignore-non-go-branches
- lint-consul-retry: *filter-ignore-non-go-branches - lint-consul-retry: *filter-ignore-non-go-branches
- lint: *filter-ignore-non-go-branches - lint: *filter-ignore-non-go-branches
- lint:
name: "lint-32bit"
go-arch: "386"
<<: *filter-ignore-non-go-branches
- test-connect-ca-providers: *filter-ignore-non-go-branches - test-connect-ca-providers: *filter-ignore-non-go-branches
- dev-build: *filter-ignore-non-go-branches - dev-build: *filter-ignore-non-go-branches
- go-test: - go-test:
@ -986,6 +1030,7 @@ workflows:
go-version: "1.15" go-version: "1.15"
<<: *filter-ignore-non-go-branches <<: *filter-ignore-non-go-branches
- go-test-race: *filter-ignore-non-go-branches - go-test-race: *filter-ignore-non-go-branches
- go-test-32bit: *filter-ignore-non-go-branches
build-distros: build-distros:
unless: << pipeline.parameters.trigger-load-test >> unless: << pipeline.parameters.trigger-load-test >>
jobs: jobs:
@ -995,12 +1040,12 @@ workflows:
- check-vendor - check-vendor
- build-amd64: *require-check-vendor - build-amd64: *require-check-vendor
- build-arm: *require-check-vendor - build-arm: *require-check-vendor
# every commit on master will have a rebuilt UI # every commit on main will have a rebuilt UI
- frontend-cache: - frontend-cache:
filters: filters:
branches: branches:
only: only:
- master - main
- ember-build-prod: - ember-build-prod:
requires: requires:
- frontend-cache - frontend-cache
@ -1011,7 +1056,7 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - main
- /release\/\d+\.\d+\.x$/ - /release\/\d+\.\d+\.x$/
requires: requires:
- build-static-assets - build-static-assets
@ -1036,7 +1081,7 @@ workflows:
branches: branches:
ignore: ignore:
- /^pull\/.*$/ # only push dev builds from non forks - /^pull\/.*$/ # only push dev builds from non forks
- master # all master dev uploads will include a UI rebuild in build-distros - main # all main dev uploads will include a UI rebuild in build-distros
- dev-upload-docker: - dev-upload-docker:
<<: *dev-upload <<: *dev-upload
context: consul-ci context: consul-ci
@ -1073,7 +1118,7 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - main
- algolia-index: - algolia-index:
context: consul-docs context: consul-docs
filters: filters:
@ -1087,7 +1132,7 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - main
- /^ui\/.*/ - /^ui\/.*/
- workspace-tests: - workspace-tests:
requires: requires:
@ -1120,14 +1165,14 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - main
- /release\/\d+\.\d+\.x$/ - /release\/\d+\.\d+\.x$/
- cherry-picker: - cherry-picker:
context: team-consul context: team-consul
filters: filters:
branches: branches:
only: only:
- master - main
- /release\/\d+\.\d+\.x$/ - /release\/\d+\.\d+\.x$/
load-test: load-test:
when: << pipeline.parameters.trigger-load-test >> when: << pipeline.parameters.trigger-load-test >>
@ -1141,6 +1186,6 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - main
jobs: jobs:
- load-test - load-test

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# This script is meant to run on every new commit to master in CircleCI. If the commit comes from a PR, it will # This script is meant to run on every new commit to main in CircleCI. If the commit comes from a PR, it will
# check the PR associated with the commit for labels. If the label matches `docs*` it will be cherry-picked # check the PR associated with the commit for labels. If the label matches `docs*` it will be cherry-picked
# to stable-website. If the label matches `backport/*`, it will be cherry-picked to the appropriate `release/*` # to stable-website. If the label matches `backport/*`, it will be cherry-picked to the appropriate `release/*`
# branch. # branch.

View File

@ -60,7 +60,7 @@ issue. Stale issues will be closed.
## Building Consul ## Building Consul
If you wish to work on Consul itself, you'll first need [Go](https://golang.org) If you wish to work on Consul itself, you'll first need [Go](https://golang.org)
installed (version 1.14 is _required_). installed (The version of Go should match the one of our [CI config's](https://github.com/hashicorp/consul/blob/main/.circleci/config.yml) Go image).
Next, clone this repository and then run `make dev`. In a few moments, you'll have a working Next, clone this repository and then run `make dev`. In a few moments, you'll have a working

View File

@ -4,9 +4,9 @@
on: on:
pull_request: pull_request:
types: [opened, synchronize, labeled] types: [opened, synchronize, labeled]
# Runs on PRs to master and all release branches # Runs on PRs to main and all release branches
branches: branches:
- master - main
- release/* - release/*
jobs: jobs:

View File

@ -1,7 +1,7 @@
on: on:
pull_request: pull_request:
branches: branches:
- master - main
types: [labeled] types: [labeled]
jobs: jobs:
@ -16,9 +16,9 @@ jobs:
- name: Trigger CircleCI Load Test Pipeline - name: Trigger CircleCI Load Test Pipeline
run: | run: |
# build json payload to trigger CircleCI Load Test Pipeline # build json payload to trigger CircleCI Load Test Pipeline
# This only runs the load test pipeline on the 'master' branch # This only runs the load test pipeline on the 'main' branch
jsonData=$(jq --null-input -r --arg commit ${{ github.event.pull_request.head.sha }} \ jsonData=$(jq --null-input -r --arg commit ${{ github.event.pull_request.head.sha }} \
'{branch:"master", parameters: {"commit": $commit, "trigger-load-test": true}}') '{branch:"main", parameters: {"commit": $commit, "trigger-load-test": true}}')
echo "Passing JSON data to CircleCI API: $jsonData" echo "Passing JSON data to CircleCI API: $jsonData"
load_test_pipeline_id=$(curl -X POST \ load_test_pipeline_id=$(curl -X POST \
-H "Circle-Token: ${{ secrets.CIRCLE_TOKEN }}" \ -H "Circle-Token: ${{ secrets.CIRCLE_TOKEN }}" \

View File

@ -13,9 +13,9 @@
on: on:
pull_request_target: pull_request_target:
types: [opened] types: [opened]
# Runs on PRs to master and all release branches # Runs on PRs to main and all release branches
branches: branches:
- master - main
- release/* - release/*
jobs: jobs:

View File

@ -1543,7 +1543,7 @@ SECURITY:
IMPROVEMENTS: IMPROVEMENTS:
* build: Bumped Go version to 1.10 [[GH-3988](https://github.com/hashicorp/consul/pull/3988)] * build: Bumped Go version to 1.10 [[GH-3988](https://github.com/hashicorp/consul/pull/3988)]
* agent: Blocking queries on service-specific health and catalog endpoints now return a per-service `X-Consul-Index` improving watch performance on very busy clusters. [[GH-3890](https://github.com/hashicorp/consul/issues/3890)]. **Note this may break blocking clients that relied on undocumented implementation details** as noted in the [upgrade docs](https://github.com/hashicorp/consul/blob/master/website/source/docs/upgrading.html.md#upgrade-from-version-106-to-higher). * agent: Blocking queries on service-specific health and catalog endpoints now return a per-service `X-Consul-Index` improving watch performance on very busy clusters. [[GH-3890](https://github.com/hashicorp/consul/issues/3890)]. **Note this may break blocking clients that relied on undocumented implementation details** as noted in the [upgrade docs](https://github.com/hashicorp/consul/blob/main/website/source/docs/upgrading.html.md#upgrade-from-version-106-to-higher).
* agent: All endpoints now respond to OPTIONS requests. [[GH-3885](https://github.com/hashicorp/consul/issues/3885)] * agent: All endpoints now respond to OPTIONS requests. [[GH-3885](https://github.com/hashicorp/consul/issues/3885)]
* agent: List of supported TLS cipher suites updated to include newer options, [[GH-3962](https://github.com/hashicorp/consul/pull/3962)] * agent: List of supported TLS cipher suites updated to include newer options, [[GH-3962](https://github.com/hashicorp/consul/pull/3962)]
* agent: WAN federation can now be disabled by setting the serf WAN port to -1. [[GH-3984](https://github.com/hashicorp/consul/issues/3984)] * agent: WAN federation can now be disabled by setting the serf WAN port to -1. [[GH-3984](https://github.com/hashicorp/consul/issues/3984)]
@ -1725,12 +1725,12 @@ BREAKING CHANGES:
| `dogstatsd_tags` | [`telemetry.dogstatsd_tags`](https://www.consul.io/docs/agent/options.html#telemetry-dogstatsd_tags) | | `dogstatsd_tags` | [`telemetry.dogstatsd_tags`](https://www.consul.io/docs/agent/options.html#telemetry-dogstatsd_tags) |
| `http_api_response_headers` | [`http_config.response_headers`](https://www.consul.io/docs/agent/options.html#response_headers) | | `http_api_response_headers` | [`http_config.response_headers`](https://www.consul.io/docs/agent/options.html#response_headers) |
| `ports.rpc` | None, the RPC server for CLI commands is no longer supported. | | `ports.rpc` | None, the RPC server for CLI commands is no longer supported. |
| `recursor` | [`recursors`](https://github.com/hashicorp/consul/blob/master/website/source/docs/agent/options.html.md#recursors) | | `recursor` | [`recursors`](https://github.com/hashicorp/consul/blob/main/website/source/docs/agent/options.html.md#recursors) |
| `retry_join_azure` | [`-retry-join`](https://www.consul.io/docs/agent/options.html#microsoft-azure) | | `retry_join_azure` | [`-retry-join`](https://www.consul.io/docs/agent/options.html#microsoft-azure) |
| `retry_join_ec2` | [`-retry-join`](https://www.consul.io/docs/agent/options.html#amazon-ec2) | | `retry_join_ec2` | [`-retry-join`](https://www.consul.io/docs/agent/options.html#amazon-ec2) |
| `retry_join_gce` | [`-retry-join`](https://www.consul.io/docs/agent/options.html#google-compute-engine) | | `retry_join_gce` | [`-retry-join`](https://www.consul.io/docs/agent/options.html#google-compute-engine) |
| `statsd_addr` | [`telemetry.statsd_address`](https://github.com/hashicorp/consul/blob/master/website/source/docs/agent/options.html.md#telemetry-statsd_address) | | `statsd_addr` | [`telemetry.statsd_address`](https://github.com/hashicorp/consul/blob/main/website/source/docs/agent/options.html.md#telemetry-statsd_address) |
| `statsite_addr` | [`telemetry.statsite_address`](https://github.com/hashicorp/consul/blob/master/website/source/docs/agent/options.html.md#telemetry-statsite_address) | | `statsite_addr` | [`telemetry.statsite_address`](https://github.com/hashicorp/consul/blob/main/website/source/docs/agent/options.html.md#telemetry-statsite_address) |
| `statsite_prefix` | [`telemetry.metrics_prefix`](https://www.consul.io/docs/agent/options.html#telemetry-metrics_prefix) | | `statsite_prefix` | [`telemetry.metrics_prefix`](https://www.consul.io/docs/agent/options.html#telemetry-metrics_prefix) |
| `telemetry.statsite_prefix` | [`telemetry.metrics_prefix`](https://www.consul.io/docs/agent/options.html#telemetry-metrics_prefix) | | `telemetry.statsite_prefix` | [`telemetry.metrics_prefix`](https://www.consul.io/docs/agent/options.html#telemetry-metrics_prefix) |
| (service definitions) `serviceid` | [`service_id`](https://www.consul.io/docs/agent/services.html) | | (service definitions) `serviceid` | [`service_id`](https://www.consul.io/docs/agent/services.html) |

View File

@ -176,7 +176,7 @@ ci.dev-docker:
@echo $(DOCKER_PASS) | docker login -u="$(DOCKER_USER)" --password-stdin @echo $(DOCKER_PASS) | docker login -u="$(DOCKER_USER)" --password-stdin
@echo "Pushing dev image to: https://cloud.docker.com/u/hashicorpdev/repository/docker/hashicorpdev/consul" @echo "Pushing dev image to: https://cloud.docker.com/u/hashicorpdev/repository/docker/hashicorpdev/consul"
@docker push $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):$(GIT_COMMIT) @docker push $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):$(GIT_COMMIT)
ifeq ($(CIRCLE_BRANCH), master) ifeq ($(CIRCLE_BRANCH), main)
@docker tag $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):$(GIT_COMMIT) $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):latest @docker tag $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):$(GIT_COMMIT) $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):latest
@docker push $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):latest @docker push $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):latest
endif endif

View File

@ -1,4 +1,4 @@
# Consul [![CircleCI](https://circleci.com/gh/hashicorp/consul/tree/master.svg?style=svg)](https://circleci.com/gh/hashicorp/consul/tree/master) [![Discuss](https://img.shields.io/badge/discuss-consul-ca2171.svg?style=flat)](https://discuss.hashicorp.com/c/consul) # Consul [![CircleCI](https://circleci.com/gh/hashicorp/consul/tree/main.svg?style=svg)](https://circleci.com/gh/hashicorp/consul/tree/main) [![Discuss](https://img.shields.io/badge/discuss-consul-ca2171.svg?style=flat)](https://discuss.hashicorp.com/c/consul)
* Website: https://www.consul.io * Website: https://www.consul.io
* Tutorials: [HashiCorp Learn](https://learn.hashicorp.com/consul) * Tutorials: [HashiCorp Learn](https://learn.hashicorp.com/consul)
@ -54,4 +54,4 @@ https://www.consul.io/docs
## Contributing ## Contributing
Thank you for your interest in contributing! Please refer to [CONTRIBUTING.md](https://github.com/hashicorp/consul/blob/master/.github/CONTRIBUTING.md) for guidance. Thank you for your interest in contributing! Please refer to [CONTRIBUTING.md](https://github.com/hashicorp/consul/blob/main/.github/CONTRIBUTING.md) for guidance.

View File

@ -5473,7 +5473,7 @@ func TestLoad_FullConfig(t *testing.T) {
HTTPSPort: 15127, HTTPSPort: 15127,
HTTPUseCache: false, HTTPUseCache: false,
KeyFile: "IEkkwgIA", KeyFile: "IEkkwgIA",
KVMaxValueSize: 1234567800000000, KVMaxValueSize: 1234567800,
LeaveDrainTime: 8265 * time.Second, LeaveDrainTime: 8265 * time.Second,
LeaveOnTerm: true, LeaveOnTerm: true,
Logging: logging.Config{ Logging: logging.Config{
@ -5868,7 +5868,7 @@ func TestLoad_FullConfig(t *testing.T) {
"wan_ipv4": "78.63.37.19", "wan_ipv4": "78.63.37.19",
}, },
TranslateWANAddrs: true, TranslateWANAddrs: true,
TxnMaxReqLen: 5678000000000000, TxnMaxReqLen: 567800000,
UIConfig: UIConfig{ UIConfig: UIConfig{
Dir: "pVncV4Ey", Dir: "pVncV4Ey",
ContentPath: "/qp1WRhYH/", // slashes are added in parsing ContentPath: "/qp1WRhYH/", // slashes are added in parsing

View File

@ -285,8 +285,8 @@ limits {
rpc_rate = 12029.43 rpc_rate = 12029.43
rpc_max_burst = 44848 rpc_max_burst = 44848
rpc_max_conns_per_client = 2954 rpc_max_conns_per_client = 2954
kv_max_value_size = 1234567800000000 kv_max_value_size = 1234567800
txn_max_req_len = 5678000000000000 txn_max_req_len = 567800000
} }
log_level = "k1zo9Spt" log_level = "k1zo9Spt"
log_json = true log_json = true

View File

@ -285,8 +285,8 @@
"rpc_rate": 12029.43, "rpc_rate": 12029.43,
"rpc_max_burst": 44848, "rpc_max_burst": 44848,
"rpc_max_conns_per_client": 2954, "rpc_max_conns_per_client": 2954,
"kv_max_value_size": 1234567800000000, "kv_max_value_size": 1234567800,
"txn_max_req_len": 5678000000000000 "txn_max_req_len": 567800000
}, },
"log_level": "k1zo9Spt", "log_level": "k1zo9Spt",
"log_json": true, "log_json": true,

View File

@ -52,8 +52,11 @@ var defaultMetrics = metrics.Default
// statsHandler is a grpc/stats.StatsHandler which emits connection and // statsHandler is a grpc/stats.StatsHandler which emits connection and
// request metrics to go-metrics. // request metrics to go-metrics.
type statsHandler struct { type statsHandler struct {
// activeConns is used with sync/atomic and MUST be 64-bit aligned. To ensure
// alignment on 32-bit platforms this field must remain the first field in
// the struct. See https://golang.org/pkg/sync/atomic/#pkg-note-BUG.
activeConns uint64
metrics *metrics.Metrics metrics *metrics.Metrics
activeConns uint64 // must be 8-byte aligned for atomic access
} }
func newStatsHandler(m *metrics.Metrics) *statsHandler { func newStatsHandler(m *metrics.Metrics) *statsHandler {
@ -103,10 +106,11 @@ func (c *statsHandler) HandleConn(_ context.Context, s stats.ConnStats) {
} }
type activeStreamCounter struct { type activeStreamCounter struct {
metrics *metrics.Metrics // count is used with sync/atomic and MUST be 64-bit aligned. To ensure
// count of the number of open streaming RPCs on a server. It is accessed // alignment on 32-bit platforms this field must remain the first field in
// atomically. // the struct. See https://golang.org/pkg/sync/atomic/#pkg-note-BUG.
count uint64 count uint64
metrics *metrics.Metrics
} }
// GRPCCountingStreamInterceptor is a grpc.ServerStreamInterceptor that emits a // GRPCCountingStreamInterceptor is a grpc.ServerStreamInterceptor that emits a

View File

@ -555,7 +555,7 @@ function git_push_ref {
local upstream=$(git_upstream "${sdir}") || return 1 local upstream=$(git_upstream "${sdir}") || return 1
# upstream branch for this branch does not track the remote we need to push to # upstream branch for this branch does not track the remote we need to push to
# basically this checks that the upstream (could be something like origin/master) references the correct remote # basically this checks that the upstream (could be something like origin/main) references the correct remote
# if it doesn't then the string modification wont apply and the var will reamin unchanged and equal to itself. # if it doesn't then the string modification wont apply and the var will reamin unchanged and equal to itself.
if test "${upstream#${remote}/}" == "${upstream}" if test "${upstream#${remote}/}" == "${upstream}"
then then

View File

@ -86,7 +86,7 @@ type BootstrapConfig struct {
// configure the aspects that Connect relies upon to work. It's recommended // configure the aspects that Connect relies upon to work. It's recommended
// that this only be used if necessary, and that it be based on the default // that this only be used if necessary, and that it be based on the default
// template in // template in
// https://github.com/hashicorp/consul/blob/master/command/connect/envoy/bootstrap_tpl.go // https://github.com/hashicorp/consul/blob/main/command/connect/envoy/bootstrap_tpl.go
// for the correct version of Consul and Envoy being used. // for the correct version of Consul and Envoy being used.
OverrideJSONTpl string `mapstructure:"envoy_bootstrap_json_tpl"` OverrideJSONTpl string `mapstructure:"envoy_bootstrap_json_tpl"`

View File

@ -59,6 +59,10 @@ func TestRun_FlagValidation(t *testing.T) {
} }
func TestGenerateConfigFromFlags(t *testing.T) { func TestGenerateConfigFromFlags(t *testing.T) {
if testing.Short() {
t.Skip("too slow for testing.Short")
}
cases := []struct { cases := []struct {
name string name string
command func() cmd command func() cmd

View File

@ -22,13 +22,13 @@ The components in this section are shared between Consul agents in client and se
| Directory | Contents | | Directory | Contents |
| --------- | -------- | | --------- | -------- |
| [command/agent](https://github.com/hashicorp/consul/tree/master/command/agent) | This contains the actual CLI command implementation for the `consul agent` command, which mostly just invokes an agent object from the `agent` package. | | [command/agent](https://github.com/hashicorp/consul/tree/main/command/agent) | This contains the actual CLI command implementation for the `consul agent` command, which mostly just invokes an agent object from the `agent` package. |
| [agent](https://github.com/hashicorp/consul/tree/master/agent) | This is where the agent object is defined, and the top level `agent` package has all of the functionality that's common to both client and server agents. This includes things like service registration, the HTTP and DNS endpoints, watches, and top-level glue for health checks. | | [agent](https://github.com/hashicorp/consul/tree/main/agent) | This is where the agent object is defined, and the top level `agent` package has all of the functionality that's common to both client and server agents. This includes things like service registration, the HTTP and DNS endpoints, watches, and top-level glue for health checks. |
| [agent/config](https://github.com/hashicorp/consul/tree/master/agent/config) | This has all the user-facing [configuration](https://www.consul.io/docs/agent/options.html) processing code, as well as the internal configuration structure that's used by the agent. | | [agent/config](https://github.com/hashicorp/consul/tree/main/agent/config) | This has all the user-facing [configuration](https://www.consul.io/docs/agent/options.html) processing code, as well as the internal configuration structure that's used by the agent. |
| [agent/checks](https://github.com/hashicorp/consul/tree/master/agent/checks) | This has implementations for the different [health check types](https://www.consul.io/docs/agent/checks.html). | | [agent/checks](https://github.com/hashicorp/consul/tree/main/agent/checks) | This has implementations for the different [health check types](https://www.consul.io/docs/agent/checks.html). |
| [agent/ae](https://github.com/hashicorp/consul/tree/master/agent/ae), [agent/local](https://github.com/hashicorp/consul/tree/master/agent/local) | These are used together to power the agent's [Anti-Entropy Sync Back](https://www.consul.io/docs/internals/anti-entropy.html) process to the Consul servers. | | [agent/ae](https://github.com/hashicorp/consul/tree/main/agent/ae), [agent/local](https://github.com/hashicorp/consul/tree/main/agent/local) | These are used together to power the agent's [Anti-Entropy Sync Back](https://www.consul.io/docs/internals/anti-entropy.html) process to the Consul servers. |
| [agent/router](https://github.com/hashicorp/consul/tree/master/agent/router), [agent/pool](https://github.com/hashicorp/consul/tree/master/agent/pool) | These are used for routing RPC queries to Consul servers and for connection pooling. | | [agent/router](https://github.com/hashicorp/consul/tree/main/agent/router), [agent/pool](https://github.com/hashicorp/consul/tree/main/agent/pool) | These are used for routing RPC queries to Consul servers and for connection pooling. |
| [agent/structs](https://github.com/hashicorp/consul/tree/master/agent/structs) | This has definitions of all the internal RPC protocol request and response structures. | | [agent/structs](https://github.com/hashicorp/consul/tree/main/agent/structs) | This has definitions of all the internal RPC protocol request and response structures. |
### Server Components ### Server Components
@ -36,9 +36,9 @@ The components in this section are only used by Consul servers.
| Directory | Contents | | Directory | Contents |
| --------- | -------- | | --------- | -------- |
| [agent/consul](https://github.com/hashicorp/consul/tree/master/agent/consul) | This is where the Consul server object is defined, and the top-level `consul` package has all of the functionality that's used by server agents. This includes things like the internal RPC endpoints. | | [agent/consul](https://github.com/hashicorp/consul/tree/main/agent/consul) | This is where the Consul server object is defined, and the top-level `consul` package has all of the functionality that's used by server agents. This includes things like the internal RPC endpoints. |
| [agent/consul/fsm](https://github.com/hashicorp/consul/tree/master/agent/consul/fsm), [agent/consul/state](https://github.com/hashicorp/consul/tree/master/agent/consul/state) | These components make up Consul's finite state machine (updated by the Raft consensus algorithm) and backed by the state store (based on immutable radix trees). All updates of Consul's consistent state is handled by the finite state machine, and all read queries to the Consul servers are serviced by the state store's data structures. | | [agent/consul/fsm](https://github.com/hashicorp/consul/tree/main/agent/consul/fsm), [agent/consul/state](https://github.com/hashicorp/consul/tree/main/agent/consul/state) | These components make up Consul's finite state machine (updated by the Raft consensus algorithm) and backed by the state store (based on immutable radix trees). All updates of Consul's consistent state is handled by the finite state machine, and all read queries to the Consul servers are serviced by the state store's data structures. |
| [agent/consul/autopilot](https://github.com/hashicorp/consul/tree/master/agent/consul/autopilot) | This contains a package of functions that provide Consul's [Autopilot](https://www.consul.io/docs/guides/autopilot.html) features. | | [agent/consul/autopilot](https://github.com/hashicorp/consul/tree/main/agent/consul/autopilot) | This contains a package of functions that provide Consul's [Autopilot](https://www.consul.io/docs/guides/autopilot.html) features. |
### Other Components ### Other Components
@ -46,12 +46,12 @@ There are several other top-level packages used internally by Consul as well as
| Directory | Contents | | Directory | Contents |
| --------- | -------- | | --------- | -------- |
| [acl](https://github.com/hashicorp/consul/tree/master/api) | This supports the underlying policy engine for Consul's [ACL](https://www.consul.io/docs/guides/acl.html) system. | | [acl](https://github.com/hashicorp/consul/tree/main/api) | This supports the underlying policy engine for Consul's [ACL](https://www.consul.io/docs/guides/acl.html) system. |
| [api](https://github.com/hashicorp/consul/tree/master/api) | This `api` package provides an official Go API client for Consul, which is also used by Consul's [CLI](https://www.consul.io/docs/commands/index.html) commands to communicate with the local Consul agent. | | [api](https://github.com/hashicorp/consul/tree/main/api) | This `api` package provides an official Go API client for Consul, which is also used by Consul's [CLI](https://www.consul.io/docs/commands/index.html) commands to communicate with the local Consul agent. |
| [command](https://github.com/hashicorp/consul/tree/master/command) | This contains a sub-package for each of Consul's [CLI](https://www.consul.io/docs/commands/index.html) command implementations. | | [command](https://github.com/hashicorp/consul/tree/main/command) | This contains a sub-package for each of Consul's [CLI](https://www.consul.io/docs/commands/index.html) command implementations. |
| [snapshot](https://github.com/hashicorp/consul/tree/master/snapshot) | This has implementation details for Consul's [snapshot archives](https://www.consul.io/api/snapshot.html). | | [snapshot](https://github.com/hashicorp/consul/tree/main/snapshot) | This has implementation details for Consul's [snapshot archives](https://www.consul.io/api/snapshot.html). |
| [api/watch](https://github.com/hashicorp/consul/tree/master/api/watch) | This has implementation details for Consul's [watches](https://www.consul.io/docs/agent/watches.html), used both internally to Consul and by the [watch CLI command](https://www.consul.io/docs/commands/watch.html). | | [api/watch](https://github.com/hashicorp/consul/tree/main/api/watch) | This has implementation details for Consul's [watches](https://www.consul.io/docs/agent/watches.html), used both internally to Consul and by the [watch CLI command](https://www.consul.io/docs/commands/watch.html). |
| [website](https://github.com/hashicorp/consul/tree/master/website) | This has the full source code for [consul.io](https://www.consul.io/). Pull requests can update the source code and Consul's documentation all together. | | [website](https://github.com/hashicorp/consul/tree/main/website) | This has the full source code for [consul.io](https://www.consul.io/). Pull requests can update the source code and Consul's documentation all together. |
## FAQ ## FAQ

View File

@ -31,12 +31,12 @@ endpoint calls raft.Apply, which if successful will save the new data in the sta
When the [state.Store commits] it produces an event which is managed by the [EventPublisher] When the [state.Store commits] it produces an event which is managed by the [EventPublisher]
and sent to any active subscriptions. and sent to any active subscriptions.
[rpcclient/health.Health]: https://github.com/hashicorp/consul/blob/master/agent/rpcclient/health/health.go [rpcclient/health.Health]: https://github.com/hashicorp/consul/blob/main/agent/rpcclient/health/health.go
[StreamingHealthServices cache-type]: https://github.com/hashicorp/consul/blob/master/agent/cache-types/streaming_health_services.go [StreamingHealthServices cache-type]: https://github.com/hashicorp/consul/blob/main/agent/cache-types/streaming_health_services.go
[materialized view]: https://github.com/hashicorp/consul/blob/master/agent/submatview/materializer.go [materialized view]: https://github.com/hashicorp/consul/blob/main/agent/submatview/materializer.go
[SubscribeEndpoint]: https://github.com/hashicorp/consul/blob/master/agent/rpc/subscribe/subscribe.go [SubscribeEndpoint]: https://github.com/hashicorp/consul/blob/main/agent/rpc/subscribe/subscribe.go
[EventPublisher]: https://github.com/hashicorp/consul/blob/master/agent/consul/stream/event_publisher.go [EventPublisher]: https://github.com/hashicorp/consul/blob/main/agent/consul/stream/event_publisher.go
[state.Store commits]: https://github.com/hashicorp/consul/blob/master/agent/consul/state/memdb.go [state.Store commits]: https://github.com/hashicorp/consul/blob/main/agent/consul/state/memdb.go
## Event Publisher ## Event Publisher

View File

@ -15,7 +15,7 @@ the community.
<ul> <ul>
<li> <li>
<a href="https://github.com/hashicorp/consul/tree/master/api">api</a> - <a href="https://github.com/hashicorp/consul/tree/main/api">api</a> -
Official Go client for the Consul HTTP API Official Go client for the Consul HTTP API
</li> </li>
<li> <li>

View File

@ -470,7 +470,7 @@ The template for a complete provider JavaScript file is given below.
``` ```
Additionally, the built in [Prometheus Additionally, the built in [Prometheus
provider code](https://github.com/hashicorp/consul/blob/master/ui/packages/consul-ui/vendor/metrics-providers/prometheus.js) provider code](https://github.com/hashicorp/consul/blob/main/ui/packages/consul-ui/vendor/metrics-providers/prometheus.js)
can be used as a reference. can be used as a reference.
### Configuring the Agent With a Custom Metrics Provider. ### Configuring the Agent With a Custom Metrics Provider.

View File

@ -234,7 +234,7 @@ ID for the name specified in `-sidecar-for`.
[`/v1/agent/connect/ca/leaf/`]: /api/agent/connect#service-leaf-certificate [`/v1/agent/connect/ca/leaf/`]: /api/agent/connect#service-leaf-certificate
[`/v1/agent/connect/ca/roots`]: /api/agent/connect#certificate-authority-ca-roots [`/v1/agent/connect/ca/roots`]: /api/agent/connect#certificate-authority-ca-roots
[`/v1/health/connect/:service_id`]: /api/health#list-nodes-for-connect-capable-service [`/v1/health/connect/:service_id`]: /api/health#list-nodes-for-connect-capable-service
[`api` package]: https://github.com/hashicorp/consul/tree/master/api [`api` package]: https://github.com/hashicorp/consul/tree/main/api
[`consul/connect/proxy/config.go`]: https://github.com/hashicorp/consul/blob/v1.8.3/connect/proxy/config.go#L187 [`consul/connect/proxy/config.go`]: https://github.com/hashicorp/consul/blob/v1.8.3/connect/proxy/config.go#L187
[`consul/connect/tls.go`]: https://github.com/hashicorp/consul/blob/v1.8.3/connect/tls.go#L232-L237 [`consul/connect/tls.go`]: https://github.com/hashicorp/consul/blob/v1.8.3/connect/tls.go#L232-L237
[discovery chain]: /docs/connect/l7-traffic/discovery-chain [discovery chain]: /docs/connect/l7-traffic/discovery-chain

View File

@ -50,7 +50,7 @@ Required by all agents.
**Serf WAN** This is used by servers to gossip over the WAN, to **Serf WAN** This is used by servers to gossip over the WAN, to
other servers. As of Consul 0.8 the WAN join flooding feature requires other servers. As of Consul 0.8 the WAN join flooding feature requires
the Serf WAN port (TCP/UDP) to be listening on both WAN and LAN interfaces. See also: the Serf WAN port (TCP/UDP) to be listening on both WAN and LAN interfaces. See also:
[Consul 0.8.0 CHANGELOG](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#080-april-5-2017) and [GH-3058](https://github.com/hashicorp/consul/issues/3058) [Consul 0.8.0 CHANGELOG](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md#080-april-5-2017) and [GH-3058](https://github.com/hashicorp/consul/issues/3058)
**Server RPC** This is used by servers to handle incoming **Server RPC** This is used by servers to handle incoming
requests from other agents. requests from other agents.

View File

@ -113,7 +113,7 @@ to update to the new version.
1. Ensure you've read the [Upgrading Consul](/docs/upgrading) documentation. 1. Ensure you've read the [Upgrading Consul](/docs/upgrading) documentation.
1. Ensure you've read any [specific instructions](/docs/upgrading/upgrade-specific) for the version you're upgrading 1. Ensure you've read any [specific instructions](/docs/upgrading/upgrade-specific) for the version you're upgrading
to and the Consul [changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md) for that version. to and the Consul [changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md) for that version.
1. Read our [Compatibility Matrix](/docs/k8s/upgrade/compatibility) to ensure 1. Read our [Compatibility Matrix](/docs/k8s/upgrade/compatibility) to ensure
your current Helm chart version supports this Consul version. If it does not, your current Helm chart version supports this Consul version. If it does not,
you may need to also upgrade your Helm chart version at the same time. you may need to also upgrade your Helm chart version at the same time.

View File

@ -29,4 +29,4 @@ page_title: 1.9.0
- Drops support for Envoy versions 1.12.0, 1.12.1, 1.12.2, and 1.13.0 - Drops support for Envoy versions 1.12.0, 1.12.1, 1.12.2, and 1.13.0
- Switches the default gateway port from 443 to 8443 to avoid assumption of Envoy running as root. - Switches the default gateway port from 443 to 8443 to avoid assumption of Envoy running as root.
For more detailed information, please refer to the [changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#190-november-24-2020). For more detailed information, please refer to the [changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md#190-november-24-2020).

View File

@ -950,7 +950,7 @@ here, with examples:
way to define more specific policies. Clients can list or read queries for way to define more specific policies. Clients can list or read queries for
which they have "read" access based on their prefix, and similar they can which they have "read" access based on their prefix, and similar they can
update any queries for which they have "write" access. An example use for update any queries for which they have "write" access. An example use for
this type is a query with a well-known name (eg. `prod-master-customer-db`) this type is a query with a well-known name (eg. `prod-primary-customer-db`)
that is used and known by many clients to provide geo-failover behavior for that is used and known by many clients to provide geo-failover behavior for
a database. a database.

View File

@ -408,7 +408,7 @@ here, with examples:
access that query name. Clients can list or read queries for access that query name. Clients can list or read queries for
which they have "read" access based on their prefix, and similar they can which they have "read" access based on their prefix, and similar they can
update any queries for which they have "write" access. An example use for update any queries for which they have "write" access. An example use for
this type is a query with a well-known name (eg. `prod-master-customer-db`) this type is a query with a well-known name (eg. `prod-primary-customer-db`)
that is used and known by many clients to provide geo-failover behavior for that is used and known by many clients to provide geo-failover behavior for
a database. a database.

View File

@ -72,7 +72,7 @@ parameters are required to properly configure an auth method of type
- `JWTSupportedAlgs` `(array<string>)` - JWTSupportedAlgs is a list of - `JWTSupportedAlgs` `(array<string>)` - JWTSupportedAlgs is a list of
supported signing algorithms. Defaults to `RS256`. ([Available supported signing algorithms. Defaults to `RS256`. ([Available
algorithms](https://github.com/hashicorp/consul/blob/master/vendor/github.com/coreos/go-oidc/jose.go#L7)) algorithms](https://github.com/hashicorp/consul/blob/main/vendor/github.com/coreos/go-oidc/jose.go#L7))
- `BoundAudiences` `(array<string>)` - List of `aud` claims that are valid for - `BoundAudiences` `(array<string>)` - List of `aud` claims that are valid for
login; any match is sufficient. login; any match is sufficient.

View File

@ -13,26 +13,26 @@ description: >-
## Introduction ## Introduction
This guide explains how to best upgrade a single Consul Enterprise datacenter to v1.10.0 This guide explains how to best upgrade a single Consul Enterprise datacenter to v1.10.0
from a version of Consul that is forwards compatible with v1.10. If you are on a major from a version of Consul that is forward compatible with v1.10. If you are on a major
version of Consul prior to 1.8, you will need to complete and [upgrade to 1.8.13](/docs/upgrading/instructions) version of Consul prior to 1.8, you will need to complete and [upgrade to 1.8.13](/docs/upgrading/instructions)
or higher before continuing with this guide. If you are already on major versions 1.8 or 1.9 or higher before continuing with this guide. If you are already on a major version of 1.8 or 1.9, then
this guide will go over the procedures required for upgrading to v1.10. This process this guide will go over the procedures required for upgrading to v1.10. This process
will require intermediate version upgrades to a forwards compatible release of v1.8 or v1.9 will require intermediate version upgrades to a forward-compatible release of v1.8 or v1.9,
as well as other licensing related configuration changes. If you have multiple Consul datacenters as well as other licensing related configuration changes. If you have multiple Consul datacenters,
then they are upgraded in the normal order with each upgrade taking into account the instructions below. upgrade them in the normal order and take the following instructions into account for each upgrade.
For the open source version of Consul please follow the For the open source version of Consul please follow the
[General Upgrade Process](/docs/upgrading/instructions/general-process). [General Upgrade Process](/docs/upgrading/instructions/general-process).
~> You can only upgrade to Consul Enterprise 1.10 from a version of Consul Enterprise ~> You can only upgrade to Consul Enterprise 1.10 from a version of Consul Enterprise
1.8 >= 1.8.13 or 1.9 >= 1.9.7. Other versions of Consul Enterprise are not forwards 1.8 >= 1.8.13 or 1.9 >= 1.9.7. Other versions of Consul Enterprise are not forward
compatible with v1.10 and will cause issues during the upgrade that could result in compatible with v1.10 and will cause issues during the upgrade that could result in
agents failing to start due to [changes in the way we manage licenses](/docs/enterprise/license/faq). agents failing to start due to [changes in the way we manage licenses](/docs/enterprise/license/faq).
## Requirements ## Requirements
- All Consul servers, clients and snapshot agents should be on a version of Consul >= 1.8.0 and < 1.10.0. If - All Consul servers, clients, and snapshot agents should be on a version of Consul >= 1.8.0 and < 1.10.0. If
they are not at the minimum version or higher, follow [normal upgrade procedures](/docs/upgrading) to get them there. they are not at the minimum version or higher, follow the [normal upgrade procedures](/docs/upgrading) to upgrade them until the version requirement is met.
## Assumptions ## Assumptions
@ -40,22 +40,22 @@ This guides makes the following assumptions:
- You are familiar with the [General Upgrade Process](/docs/upgrading/instructions/general-process). - You are familiar with the [General Upgrade Process](/docs/upgrading/instructions/general-process).
- You have the ability to run Consul CLI commands. - You have the ability to run Consul CLI commands.
- If ACLs are in use then you possess a token with at least `operator:read` permissions. - If ACLs are in use, then you possess a token with at least `operator:read` permissions.
## Considerations ## Considerations
The main breaking changes in Consul Enterprise 1.10 that need special handling during upgrading are The licensing changes outlined on the [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-10-0)
the licensing changes outlined on the [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-10-0) page are the main breaking changes in Consul Enterprise 1.10 that require special handling during the upgrade process.
page. There are notes on that page about other changes that might cause issues during an upgrade as well. The page also describes other changes that might cause issues during an upgrade.
You can find more granular details in the [licensing FAQ](/docs/enterprise/license/faq) as well as the full You can also review the [licensing FAQ](/docs/enterprise/license/faq), which includes granular details, as well as the full
[changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#1100-june-22-2021). [changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md#1100-june-22-2021).
Looking through these changes prior to upgrading is highly recommended. We strongly recommend reviewing the changes prior to upgrading.
## Procedures ## Procedures
~> Any steps in the following section that mention upgrading servers/clients assume that normal safe upgrade ~> Any steps in the following section that mention upgrading servers/clients assume that normal safe upgrade
procedures are followed. These instructions require licensing related configuration changes procedures are followed. Licensing-related configuration changes are required for upgrading to 1.10.
needed to upgrade to 1.10, and also require intermediate version upgrades to ensure forward compatibility. Intermediate version upgrades are also required to ensure forward compatibility.
Refer to our documentation for the [basic server upgrade process](/docs/upgrading/instructions/general-process), Refer to our documentation for the [basic server upgrade process](/docs/upgrading/instructions/general-process),
and for [autopilot assisted upgrades](https://learn.hashicorp.com/tutorials/consul/upgrade-automation) and for [autopilot assisted upgrades](https://learn.hashicorp.com/tutorials/consul/upgrade-automation)
for more information. for more information.
@ -66,13 +66,11 @@ for more information.
consul license get -signed > consul.hclic consul license get -signed > consul.hclic
``` ```
Note that the command can be run on anywhere that is running Consul already or from some other location Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
that has network access to the cluster. If run elsewhere than other options to the command may be neede Additional command line options for directing the request to the correct Consul API may be necessary if the command runs from another location.
to direct the request to the right Consul API.
This will save the license to a file in the local directory named `consul.hclic`. Having this
This will save the license to a file in the local directory named `consul.hclic`. Having this will be useful when preparing the license for the 1.10 upgrades later on in the process.
will be useful when preparing the license for the 1.10 upgrades later on in the process.
**2.** Take a snapshot of the cluster by running the following command: **2.** Take a snapshot of the cluster by running the following command:
@ -80,24 +78,23 @@ consul license get -signed > consul.hclic
consul snapshot save original.snap consul snapshot save original.snap
``` ```
Note that the command can be run on anywhere that is running Consul already or from some other location Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
that has network access to the cluster. If run elsewhere than other options to the command may be neede Additional command line options for directing the request to the correct Consul API may be necessary if the command runs from another location.
to direct the request to the right Consul API.
Note that you will need to ensure there is enough disk space in the current directory Note that you will need to ensure that there is enough disk space in the current directory
to store the snapshot. In the worst case, the snapshot size could be close to the amount to store the snapshot. In the worst case, the snapshot size could be close to the amount
of RAM the Consul server processes are consuming. of RAM the Consul server processes are consuming.
This snapshot should not be needed but if something were to go wrong, having This snapshot should not be needed, but if something were to go wrong, having
the snapshot would make it possible to restore the previous state. the snapshot would make it possible to restore the previous state.
**3.** Determine if ACLs are enabled by running the following CLI command. **3.** Determine if ACLs are enabled by running the following CLI command.
```shell ```shell
consul info | grep "acl =" consul info | grep "acl ="
```` ```
If you receive output like either of the following then ACLs are enabled: If you receive output like either of the following, then ACLs are enabled:
```text ```text
Error querying agent: Unexpected response code: 403 (Permission denied) Error querying agent: Unexpected response code: 403 (Permission denied)
@ -108,8 +105,8 @@ Error querying agent: Unexpected response code: 403 (Permission denied)
``` ```
Select the correct tab below based on whether ACLs are enabled or disabled or if you Select the correct tab below based on whether ACLs are enabled or disabled or if you
are operating Consul within Kubernetes. are operating Consul within Kubernetes.
<Tabs> <Tabs>
<Tab heading="ACLs Enabled"> <Tab heading="ACLs Enabled">
@ -126,23 +123,23 @@ Error querying agent: Unexpected response code: 403 (Permission denied)
consul snapshot save intermediate.snap consul snapshot save intermediate.snap
``` ```
Note that the command can be run on anywhere that is running Consul already or from some other location Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
that has network access to the cluster. If run elsewhere than [other options](/docs/commands/snapshot/save#api-options) If run elsewhere, [additional command line options](/docs/commands/snapshot/save#api-options) may be needed to direct the request to the right Consul API.
to the command may be needed to direct the request to the right Consul API.
Note that you will need to ensure there is enough disk space in the current directory Note that you will need to ensure there is enough disk space in the current directory
to store the snapshot. In the worst case, the snapshot size could be close to the amount to store the snapshot. In the worst case, the snapshot size could be close to the amount
of RAM the Consul server processes are consuming. of RAM the Consul server processes are consuming.
This snapshot should not be needed but if something were to go wrong, having This snapshot should not be needed, but if something were to go wrong, having
the snapshot would make it possible to restore the previous state. the snapshot would make it possible to restore the previous state.
**8.** Pre-configure the server agents with a license. **8.** Pre-configure the server agents with a license.
This can either be set with the `license_path` configuration item, the This can either be set with the `license_path` configuration item, the
`CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE` `CONSUL_LICENSE_PATH` environment variable, or the `CONSUL_LICENSE`
environment variable. See the [licensing documentation](/docs/enterprise/license/overview) environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
for more information about how to configure the license. for more information about how to configure the license.
You can also refer to the [Apply Enterprise License](https://learn.hashicorp.com/tutorials/consul/deployment-guide#apply-enterprise-license) tutorial for additional information.
**9.** Upgrade all server agents to v1.10.0. **9.** Upgrade all server agents to v1.10.0.
@ -154,26 +151,27 @@ consul snapshot save intermediate.snap
<Tab heading="ACLs Disabled"> <Tab heading="ACLs Disabled">
~> We do not recommend running in production with ACLs disabled. An alternative upgrade ~> We do not recommend running in production with ACLs disabled. An alternative upgrade
path involves first enabling ACLs by following [this tutorial](https://learn.hashicorp.com/tutorials/consul/access-control-setup-production) path involves first enabling ACLs by following [this tutorial](https://learn.hashicorp.com/tutorials/consul/access-control-setup-production)
and then proceeding with the instructions within the "ACLs Enabled" tab. and then proceeding with the instructions within the "ACLs Enabled" tab.
**4.** Upgrade all server agents to the latest 1.8.x or 1.9.x release. **4.** Upgrade all server agents to the latest 1.8.x or 1.9.x release.
**5.** Pre-configure the client agents with a license. **5.** Pre-configure the client agents with a license.
This can either be set with the `license_path` configuration item, the This can either be set with the `license_path` configuration item, the
`CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE` `CONSUL_LICENSE_PATH` environment variable, or the `CONSUL_LICENSE`
environment variable. See the [licensing documentation](/docs/enterprise/license/overview) environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
for more information about how to configure the license. Note that while for more information about how to configure the license.
Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license You can also refer to the [Apply Enterprise License](https://learn.hashicorp.com/tutorials/consul/deployment-guide#apply-enterprise-license) tutorial for additional information.
from these configurations, it is intended to only be used during upgrades. Note that while Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license
Licenses loaded this way are not online reloadable. It is therefore important from these configurations, it is intended to only be used during upgrades.
to promptly proceed with the upgrade and not leave agents in the intermediate state. Licenses loaded this way are not online reloadable. It is therefore important
to promptly proceed with the upgrade and not leave agents in the intermediate state.
**6.** Upgrade all client agents to the latest 1.8.x or 1.9.x release. **6.** Upgrade all client agents to the latest 1.8.x or 1.9.x release.
**7.** Pre-configure the snapshot agents with a license. This is the same process that **7.** Pre-configure the snapshot agents with a license. This is the same process that
was executed for the servers in step 5. was executed for the servers in step 5.
**8.** Upgrade all [snapshot agents](/docs/commands/snapshot/agent) to the latest 1.8.x or 1.9.x release. **8.** Upgrade all [snapshot agents](/docs/commands/snapshot/agent) to the latest 1.8.x or 1.9.x release.
@ -183,25 +181,24 @@ consul snapshot save intermediate.snap
consul snapshot save intermediate.snap consul snapshot save intermediate.snap
``` ```
Note that the command can be run on anywhere that is running Consul already or from some other location Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
that has network access to the cluster. If run elsewhere than other options to the command may be neede Additional command line options for directing the request to the correct Consul API may be necessary if the command runs from another location.
to direct the request to the right Consul API.
Note that you will need to ensure there is enough disk space in the current directory Note that you will need to ensure there is enough disk space in the current directory
to store the snapshot. In the worst case, the snapshot size could be close to the amount to store the snapshot. In the worst case, the snapshot size could be close to the amount
of RAM the Consul server processes are consuming. of RAM the Consul server processes are consuming.
This snapshot should not be needed but if something were to go wrong, having This snapshot should not be needed but if something were to go wrong, having
the snapshot would make it possible to restore the previous state. the snapshot would make it possible to restore the previous state.
**8.** Pre-configure the server agents with a license. This is the same process that **10.** Pre-configure the server agents with a license. This is the same process that
was executed for the servers in step 5. was executed for the servers in step 5.
**9.** Upgrade all server agents to v1.10.0. **11.** Upgrade all server agents to v1.10.0.
**10.** Upgrade all client agents to v1.10.0. **12.** Upgrade all client agents to v1.10.0.
**11.** Upgrade all [snapshot agents](/docs/commands/snapshot/agent) to v1.10.0. **13.** Upgrade all [snapshot agents](/docs/commands/snapshot/agent) to v1.10.0.
</Tab> </Tab>
<Tab heading="Kubernetes"> <Tab heading="Kubernetes">
@ -213,35 +210,36 @@ to the latest 1.8.x or 1.9.x before the next steps. Otherwise, this step can be
**6.** Update the value of `global.image` in the values file to the latest 1.8.x or 1.9.x image. **6.** Update the value of `global.image` in the values file to the latest 1.8.x or 1.9.x image.
Additionally, ensure that the Kuberenetes secret with the license is specified in the Additionally, ensure that the Kuberenetes secret with the license is specified in the
values `server.enterpriseLicense.secretName` and `server.enterpriseLicense.secretKey`. values `server.enterpriseLicense.secretName` and `server.enterpriseLicense.secretKey`.
**7.** Upgrade the cluster. **7.** Upgrade the cluster.
Follow the steps in the [Kubernetes Upgrade Guide](/docs/k8s/upgrade#upgrade-consul-on-kubernetes) Follow the steps in the [Kubernetes Upgrade Guide](/docs/k8s/upgrade#upgrade-consul-on-kubernetes)
to upgrade the cluster. Ensure you check the steps to upgrade the [servers](/docs/k8s/upgrade#upgrading-consul-servers) to upgrade the cluster. Ensure you check the steps to upgrade the [servers](/docs/k8s/upgrade#upgrading-consul-servers)
and the [clients](/docs/k8s/upgrade#upgrading-consul-clients). and the [clients](/docs/k8s/upgrade#upgrading-consul-clients).
**8.** **If** the Consul servers are running outside the Kubernetes cluster, ensure they are upgraded **8.** **If** the Consul servers are running outside the Kubernetes cluster, ensure they are upgraded
to 1.10.0 before the next steps. Otherwise, this step can be skipped. to 1.10.0 before the next steps. Otherwise, this step can be skipped.
This will require pre-configuring the servers with a license This will require pre-configuring the servers with a license
before running 1.10. This can either be set with the `license_path` configuration item, the before running 1.10. This can either be set with the `license_path` configuration item, the
`CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE` `CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE`
environment variable. See the [licensing documentation](/docs/enterprise/license/overview) environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
for more information about how to configure the license. Note that while for more information about how to configure the license.
Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license You can also refer to the [Apply Enterprise License](https://learn.hashicorp.com/tutorials/consul/deployment-guide#apply-enterprise-license) tutorial for additional information.
from these configurations, it is intended to only be used during upgrades. Note that while Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license
Licenses loaded this way are not online reloadable. It is therefore important from these configurations, it is intended to only be used during upgrades.
to promptly proceed with the upgrade and not leave agents in the intermediate state. Licenses loaded this way are not online reloadable. It is therefore important
to promptly proceed with the upgrade and not leave agents in the intermediate state.
**9.** Update the value of `global.image` in the values file to the 1.10.0 image. **9.** Update the value of `global.image` in the values file to the 1.10.0 image.
**10.** Upgrade the cluster. **10.** Upgrade the cluster.
Follow the steps in the [Kubernetes Upgrade Guide](/docs/k8s/upgrade#upgrade-consul-on-kubernetes) Follow the steps in the [Kubernetes Upgrade Guide](/docs/k8s/upgrade#upgrade-consul-on-kubernetes)
to then upgrade the cluster. Ensure you check the steps to upgrade the [servers](/docs/k8s/upgrade#upgrading-consul-servers) to then upgrade the cluster. Ensure you check the steps to upgrade the [servers](/docs/k8s/upgrade#upgrading-consul-servers)
and the [clients](/docs/k8s/upgrade#upgrading-consul-clients). and the [clients](/docs/k8s/upgrade#upgrading-consul-clients).
</Tab> </Tab>
</Tabs> </Tabs>

View File

@ -40,7 +40,7 @@ This guide makes the following assumptions:
There are not too many major changes that might cause issues upgrading from 1.0.8, but notable changes There are not too many major changes that might cause issues upgrading from 1.0.8, but notable changes
are called out in our [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-1-0) are called out in our [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-1-0)
page. You can find more granular details in the full [changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#124-november-27-2018). page. You can find more granular details in the full [changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md#124-november-27-2018).
Looking through these changes prior to upgrading is highly recommended. Looking through these changes prior to upgrading is highly recommended.
## Procedure ## Procedure

View File

@ -45,7 +45,7 @@ This guide makes the following assumptions:
There are quite a number of changes between releases. Notable changes There are quite a number of changes between releases. Notable changes
are called out in our [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-6-3) are called out in our [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-6-3)
page. You can find more granular details in the full [changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#124-november-27-2018). page. You can find more granular details in the full [changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md#124-november-27-2018).
Looking through these changes prior to upgrading is highly recommended. Looking through these changes prior to upgrading is highly recommended.
Two very notable items are: Two very notable items are:

View File

@ -33,7 +33,7 @@ This guides makes the following assumptions:
There are not too many major changes that might cause issues upgrading from 1.6.9, but notable changes There are not too many major changes that might cause issues upgrading from 1.6.9, but notable changes
are called out in our [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-8-0) are called out in our [Specific Version Details](/docs/upgrading/upgrade-specific#consul-1-8-0)
page. You can find more granular details in the full [changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#183-august-12-2020). page. You can find more granular details in the full [changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md#183-august-12-2020).
Looking through these changes prior to upgrading is highly recommended. Looking through these changes prior to upgrading is highly recommended.
## Procedure ## Procedure

View File

@ -542,12 +542,12 @@ upgrading. Here's the complete list of removed options and their equivalents:
| `dogstatsd_tags` | [`telemetry.dogstatsd_tags`](/docs/agent/options#telemetry-dogstatsd_tags) | | `dogstatsd_tags` | [`telemetry.dogstatsd_tags`](/docs/agent/options#telemetry-dogstatsd_tags) |
| `http_api_response_headers` | [`http_config.response_headers`](/docs/agent/options#response_headers) | | `http_api_response_headers` | [`http_config.response_headers`](/docs/agent/options#response_headers) |
| `ports.rpc` | None, the RPC server for CLI commands is no longer supported. | | `ports.rpc` | None, the RPC server for CLI commands is no longer supported. |
| `recursor` | [`recursors`](https://github.com/hashicorp/consul/blob/master/website/pages/docs/agent/options.mdx#recursors) | | `recursor` | [`recursors`](https://github.com/hashicorp/consul/blob/main/website/pages/docs/agent/options.mdx#recursors) |
| `retry_join_azure` | [`-retry-join`](/docs/agent/options#_retry_join) | | `retry_join_azure` | [`-retry-join`](/docs/agent/options#_retry_join) |
| `retry_join_ec2` | [`-retry-join`](/docs/agent/options#_retry_join) | | `retry_join_ec2` | [`-retry-join`](/docs/agent/options#_retry_join) |
| `retry_join_gce` | [`-retry-join`](/docs/agent/options#_retry_join) | | `retry_join_gce` | [`-retry-join`](/docs/agent/options#_retry_join) |
| `statsd_addr` | [`telemetry.statsd_address`](https://github.com/hashicorp/consul/blob/master/website/pages/docs/agent/options.mdx#telemetry-statsd_address) | | `statsd_addr` | [`telemetry.statsd_address`](https://github.com/hashicorp/consul/blob/main/website/pages/docs/agent/options.mdx#telemetry-statsd_address) |
| `statsite_addr` | [`telemetry.statsite_address`](https://github.com/hashicorp/consul/blob/master/website/pages/docs/agent/options.mdx#telemetry-statsite_address) | | `statsite_addr` | [`telemetry.statsite_address`](https://github.com/hashicorp/consul/blob/main/website/pages/docs/agent/options.mdx#telemetry-statsite_address) |
| `statsite_prefix` | [`telemetry.metrics_prefix`](/docs/agent/options#telemetry-metrics_prefix) | | `statsite_prefix` | [`telemetry.metrics_prefix`](/docs/agent/options#telemetry-metrics_prefix) |
| `telemetry.statsite_prefix` | [`telemetry.metrics_prefix`](/docs/agent/options#telemetry-metrics_prefix) | | `telemetry.statsite_prefix` | [`telemetry.metrics_prefix`](/docs/agent/options#telemetry-metrics_prefix) |
| (service definitions) `serviceid` | [`service_id`](/docs/agent/services) | | (service definitions) `serviceid` | [`service_id`](/docs/agent/services) |

View File

@ -10,7 +10,7 @@ import {
const baseRoute = 'api-docs' const baseRoute = 'api-docs'
const navDataFile = `data/${baseRoute}-nav-data.json` const navDataFile = `data/${baseRoute}-nav-data.json`
const localContentDir = `content/${baseRoute}` const localContentDir = `content/${baseRoute}`
const mainBranch = 'master' const mainBranch = 'main'
const product = { name: productName, slug: productSlug } const product = { name: productName, slug: productSlug }
export default function ApiDocsLayout(props) { export default function ApiDocsLayout(props) {

View File

@ -10,7 +10,7 @@ import {
const baseRoute = 'commands' const baseRoute = 'commands'
const navDataFile = `data/${baseRoute}-nav-data.json` const navDataFile = `data/${baseRoute}-nav-data.json`
const localContentDir = `content/${baseRoute}` const localContentDir = `content/${baseRoute}`
const mainBranch = 'master' const mainBranch = 'main'
const product = { name: productName, slug: productSlug } const product = { name: productName, slug: productSlug }
export default function CommandsLayout(props) { export default function CommandsLayout(props) {

View File

@ -12,7 +12,7 @@ const additionalComponents = { ConfigEntryReference }
const baseRoute = 'docs' const baseRoute = 'docs'
const navDataFile = `data/${baseRoute}-nav-data.json` const navDataFile = `data/${baseRoute}-nav-data.json`
const localContentDir = `content/${baseRoute}` const localContentDir = `content/${baseRoute}`
const mainBranch = 'master' const mainBranch = 'main'
const product = { name: productName, slug: productSlug } const product = { name: productName, slug: productSlug }
export default function DocsLayout(props) { export default function DocsLayout(props) {