mirror of https://github.com/status-im/consul.git
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:
commit
c8bba8bd60
|
@ -0,0 +1,3 @@
|
|||
```release-note:bug
|
||||
agent: fix a panic on 32-bit platforms caused by misaligned struct fields used with sync/atomic.
|
||||
```
|
|
@ -60,7 +60,7 @@ steps:
|
|||
name: notify-slack-failure
|
||||
when: on_fail
|
||||
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}"
|
||||
GITHUB_ENDPOINT="https://github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/commit/${CIRCLE_SHA1}"
|
||||
COMMIT_MESSAGE=$(git log -1 --pretty=%B | head -n1)
|
||||
|
@ -79,7 +79,7 @@ steps:
|
|||
] \
|
||||
}" "${FEED_CONSUL_GH_URL}"
|
||||
else
|
||||
echo "Not posting slack failure notifications for non-master branch"
|
||||
echo "Not posting slack failure notifications for non-main branch"
|
||||
fi
|
||||
|
||||
commands:
|
||||
|
@ -116,14 +116,20 @@ jobs:
|
|||
- run: go get -u github.com/hashicorp/lint-consul-retry && lint-consul-retry
|
||||
- run: *notify-slack-failure
|
||||
|
||||
# Runs Go linters
|
||||
lint:
|
||||
description: "Run golangci-lint"
|
||||
parameters:
|
||||
go-arch:
|
||||
type: string
|
||||
default: ""
|
||||
docker:
|
||||
- image: *GOLANG_IMAGE
|
||||
environment:
|
||||
GOTAGS: "" # No tags for OSS but there are for enterprise
|
||||
GOARCH: "<<parameters.go-arch>>"
|
||||
steps:
|
||||
- checkout
|
||||
- run: go env
|
||||
- run:
|
||||
name: Install golangci-lint
|
||||
command: |
|
||||
|
@ -275,6 +281,40 @@ jobs:
|
|||
path: /tmp/jsonfile
|
||||
- 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:
|
||||
description: "test a library against a specific Go version"
|
||||
parameters:
|
||||
|
@ -386,7 +426,7 @@ jobs:
|
|||
<<: *ENVIRONMENT
|
||||
steps:
|
||||
- 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: .
|
||||
- run:
|
||||
command: make dev
|
||||
|
@ -486,7 +526,7 @@ jobs:
|
|||
path: *TEST_RESULTS_DIR
|
||||
- run: *notify-slack-failure
|
||||
|
||||
# run integration tests on nomad/master
|
||||
# run integration tests on nomad/main
|
||||
nomad-integration-main:
|
||||
docker:
|
||||
- image: *GOLANG_IMAGE
|
||||
|
@ -648,7 +688,7 @@ jobs:
|
|||
short_sha=$(git rev-parse --short HEAD)
|
||||
git add agent/uiserver/bindata_assetfs.go
|
||||
git commit -m "auto-updated agent/uiserver/bindata_assetfs.go from commit ${short_sha}"
|
||||
git push origin master
|
||||
git push origin main
|
||||
else
|
||||
echo "no UI changes so no static assets to publish"
|
||||
fi
|
||||
|
@ -833,7 +873,7 @@ jobs:
|
|||
path: *TEST_RESULTS_DIR
|
||||
- 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:
|
||||
docker:
|
||||
- image: docker.mirror.hashicorp.services/alpine:3.12
|
||||
|
@ -961,6 +1001,10 @@ workflows:
|
|||
- check-generated-protobuf: *filter-ignore-non-go-branches
|
||||
- lint-consul-retry: *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
|
||||
- dev-build: *filter-ignore-non-go-branches
|
||||
- go-test:
|
||||
|
@ -986,6 +1030,7 @@ workflows:
|
|||
go-version: "1.15"
|
||||
<<: *filter-ignore-non-go-branches
|
||||
- go-test-race: *filter-ignore-non-go-branches
|
||||
- go-test-32bit: *filter-ignore-non-go-branches
|
||||
build-distros:
|
||||
unless: << pipeline.parameters.trigger-load-test >>
|
||||
jobs:
|
||||
|
@ -995,12 +1040,12 @@ workflows:
|
|||
- check-vendor
|
||||
- build-amd64: *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:
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
- ember-build-prod:
|
||||
requires:
|
||||
- frontend-cache
|
||||
|
@ -1011,7 +1056,7 @@ workflows:
|
|||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
- /release\/\d+\.\d+\.x$/
|
||||
requires:
|
||||
- build-static-assets
|
||||
|
@ -1036,7 +1081,7 @@ workflows:
|
|||
branches:
|
||||
ignore:
|
||||
- /^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
|
||||
context: consul-ci
|
||||
|
@ -1073,7 +1118,7 @@ workflows:
|
|||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
- algolia-index:
|
||||
context: consul-docs
|
||||
filters:
|
||||
|
@ -1087,7 +1132,7 @@ workflows:
|
|||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
- /^ui\/.*/
|
||||
- workspace-tests:
|
||||
requires:
|
||||
|
@ -1120,14 +1165,14 @@ workflows:
|
|||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
- /release\/\d+\.\d+\.x$/
|
||||
- cherry-picker:
|
||||
context: team-consul
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
- /release\/\d+\.\d+\.x$/
|
||||
load-test:
|
||||
when: << pipeline.parameters.trigger-load-test >>
|
||||
|
@ -1141,6 +1186,6 @@ workflows:
|
|||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- main
|
||||
jobs:
|
||||
- load-test
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/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
|
||||
# to stable-website. If the label matches `backport/*`, it will be cherry-picked to the appropriate `release/*`
|
||||
# branch.
|
||||
|
|
|
@ -60,7 +60,7 @@ issue. Stale issues will be closed.
|
|||
## Building Consul
|
||||
|
||||
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
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, labeled]
|
||||
# Runs on PRs to master and all release branches
|
||||
# Runs on PRs to main and all release branches
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
- release/*
|
||||
|
||||
jobs:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
|
@ -16,9 +16,9 @@ jobs:
|
|||
- name: Trigger CircleCI Load Test Pipeline
|
||||
run: |
|
||||
# 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 }} \
|
||||
'{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"
|
||||
load_test_pipeline_id=$(curl -X POST \
|
||||
-H "Circle-Token: ${{ secrets.CIRCLE_TOKEN }}" \
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
on:
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
# Runs on PRs to master and all release branches
|
||||
# Runs on PRs to main and all release branches
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
- release/*
|
||||
|
||||
jobs:
|
||||
|
|
|
@ -1543,7 +1543,7 @@ SECURITY:
|
|||
IMPROVEMENTS:
|
||||
|
||||
* 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: 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)]
|
||||
|
@ -1725,12 +1725,12 @@ BREAKING CHANGES:
|
|||
| `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) |
|
||||
| `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_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) |
|
||||
| `statsd_addr` | [`telemetry.statsd_address`](https://github.com/hashicorp/consul/blob/master/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) |
|
||||
| `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/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) |
|
||||
| `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) |
|
||||
|
|
|
@ -176,7 +176,7 @@ ci.dev-docker:
|
|||
@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"
|
||||
@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 push $(CI_DEV_DOCKER_NAMESPACE)/$(CI_DEV_DOCKER_IMAGE_NAME):latest
|
||||
endif
|
||||
|
|
|
@ -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
|
||||
* Tutorials: [HashiCorp Learn](https://learn.hashicorp.com/consul)
|
||||
|
@ -54,4 +54,4 @@ https://www.consul.io/docs
|
|||
|
||||
## 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.
|
||||
|
|
|
@ -5473,7 +5473,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
|||
HTTPSPort: 15127,
|
||||
HTTPUseCache: false,
|
||||
KeyFile: "IEkkwgIA",
|
||||
KVMaxValueSize: 1234567800000000,
|
||||
KVMaxValueSize: 1234567800,
|
||||
LeaveDrainTime: 8265 * time.Second,
|
||||
LeaveOnTerm: true,
|
||||
Logging: logging.Config{
|
||||
|
@ -5868,7 +5868,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
|||
"wan_ipv4": "78.63.37.19",
|
||||
},
|
||||
TranslateWANAddrs: true,
|
||||
TxnMaxReqLen: 5678000000000000,
|
||||
TxnMaxReqLen: 567800000,
|
||||
UIConfig: UIConfig{
|
||||
Dir: "pVncV4Ey",
|
||||
ContentPath: "/qp1WRhYH/", // slashes are added in parsing
|
||||
|
|
|
@ -285,8 +285,8 @@ limits {
|
|||
rpc_rate = 12029.43
|
||||
rpc_max_burst = 44848
|
||||
rpc_max_conns_per_client = 2954
|
||||
kv_max_value_size = 1234567800000000
|
||||
txn_max_req_len = 5678000000000000
|
||||
kv_max_value_size = 1234567800
|
||||
txn_max_req_len = 567800000
|
||||
}
|
||||
log_level = "k1zo9Spt"
|
||||
log_json = true
|
||||
|
|
|
@ -285,8 +285,8 @@
|
|||
"rpc_rate": 12029.43,
|
||||
"rpc_max_burst": 44848,
|
||||
"rpc_max_conns_per_client": 2954,
|
||||
"kv_max_value_size": 1234567800000000,
|
||||
"txn_max_req_len": 5678000000000000
|
||||
"kv_max_value_size": 1234567800,
|
||||
"txn_max_req_len": 567800000
|
||||
},
|
||||
"log_level": "k1zo9Spt",
|
||||
"log_json": true,
|
||||
|
|
|
@ -52,8 +52,11 @@ var defaultMetrics = metrics.Default
|
|||
// statsHandler is a grpc/stats.StatsHandler which emits connection and
|
||||
// request metrics to go-metrics.
|
||||
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
|
||||
activeConns uint64 // must be 8-byte aligned for atomic access
|
||||
}
|
||||
|
||||
func newStatsHandler(m *metrics.Metrics) *statsHandler {
|
||||
|
@ -103,10 +106,11 @@ func (c *statsHandler) HandleConn(_ context.Context, s stats.ConnStats) {
|
|||
}
|
||||
|
||||
type activeStreamCounter struct {
|
||||
// count 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.
|
||||
count uint64
|
||||
metrics *metrics.Metrics
|
||||
// count of the number of open streaming RPCs on a server. It is accessed
|
||||
// atomically.
|
||||
count uint64
|
||||
}
|
||||
|
||||
// GRPCCountingStreamInterceptor is a grpc.ServerStreamInterceptor that emits a
|
||||
|
|
|
@ -555,7 +555,7 @@ function git_push_ref {
|
|||
local upstream=$(git_upstream "${sdir}") || return 1
|
||||
|
||||
# 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 test "${upstream#${remote}/}" == "${upstream}"
|
||||
then
|
||||
|
|
|
@ -86,7 +86,7 @@ type BootstrapConfig struct {
|
|||
// 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
|
||||
// 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.
|
||||
OverrideJSONTpl string `mapstructure:"envoy_bootstrap_json_tpl"`
|
||||
|
||||
|
|
|
@ -59,6 +59,10 @@ func TestRun_FlagValidation(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGenerateConfigFromFlags(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip("too slow for testing.Short")
|
||||
}
|
||||
|
||||
cases := []struct {
|
||||
name string
|
||||
command func() cmd
|
||||
|
|
|
@ -22,13 +22,13 @@ The components in this section are shared between Consul agents in client and se
|
|||
|
||||
| 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. |
|
||||
| [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/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/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/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/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/structs](https://github.com/hashicorp/consul/tree/master/agent/structs) | This has definitions of all the internal RPC protocol request and response structures. |
|
||||
| [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/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/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/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/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/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/main/agent/structs) | This has definitions of all the internal RPC protocol request and response structures. |
|
||||
|
||||
### Server Components
|
||||
|
||||
|
@ -36,9 +36,9 @@ The components in this section are only used by Consul servers.
|
|||
|
||||
| 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/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/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](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/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/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
|
||||
|
||||
|
@ -46,12 +46,12 @@ There are several other top-level packages used internally by Consul as well as
|
|||
|
||||
| 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. |
|
||||
| [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. |
|
||||
| [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. |
|
||||
| [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). |
|
||||
| [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). |
|
||||
| [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. |
|
||||
| [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/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/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/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/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/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
|
||||
|
||||
|
|
|
@ -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]
|
||||
and sent to any active subscriptions.
|
||||
|
||||
[rpcclient/health.Health]: https://github.com/hashicorp/consul/blob/master/agent/rpcclient/health/health.go
|
||||
[StreamingHealthServices cache-type]: https://github.com/hashicorp/consul/blob/master/agent/cache-types/streaming_health_services.go
|
||||
[materialized view]: https://github.com/hashicorp/consul/blob/master/agent/submatview/materializer.go
|
||||
[SubscribeEndpoint]: https://github.com/hashicorp/consul/blob/master/agent/rpc/subscribe/subscribe.go
|
||||
[EventPublisher]: https://github.com/hashicorp/consul/blob/master/agent/consul/stream/event_publisher.go
|
||||
[state.Store commits]: https://github.com/hashicorp/consul/blob/master/agent/consul/state/memdb.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/main/agent/cache-types/streaming_health_services.go
|
||||
[materialized view]: https://github.com/hashicorp/consul/blob/main/agent/submatview/materializer.go
|
||||
[SubscribeEndpoint]: https://github.com/hashicorp/consul/blob/main/agent/rpc/subscribe/subscribe.go
|
||||
[EventPublisher]: https://github.com/hashicorp/consul/blob/main/agent/consul/stream/event_publisher.go
|
||||
[state.Store commits]: https://github.com/hashicorp/consul/blob/main/agent/consul/state/memdb.go
|
||||
|
||||
|
||||
## Event Publisher
|
||||
|
|
|
@ -15,7 +15,7 @@ the community.
|
|||
|
||||
<ul>
|
||||
<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
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -470,7 +470,7 @@ The template for a complete provider JavaScript file is given below.
|
|||
```
|
||||
|
||||
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.
|
||||
|
||||
### Configuring the Agent With a Custom Metrics Provider.
|
||||
|
|
|
@ -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/roots`]: /api/agent/connect#certificate-authority-ca-roots
|
||||
[`/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/tls.go`]: https://github.com/hashicorp/consul/blob/v1.8.3/connect/tls.go#L232-L237
|
||||
[discovery chain]: /docs/connect/l7-traffic/discovery-chain
|
||||
|
|
|
@ -50,7 +50,7 @@ Required by all agents.
|
|||
**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
|
||||
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
|
||||
requests from other agents.
|
||||
|
|
|
@ -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 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
|
||||
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.
|
||||
|
|
|
@ -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
|
||||
- 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).
|
||||
|
|
|
@ -950,7 +950,7 @@ here, with examples:
|
|||
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
|
||||
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
|
||||
a database.
|
||||
|
||||
|
|
|
@ -408,7 +408,7 @@ here, with examples:
|
|||
access that query name. Clients can list or read queries for
|
||||
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
|
||||
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
|
||||
a database.
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ parameters are required to properly configure an auth method of type
|
|||
|
||||
- `JWTSupportedAlgs` `(array<string>)` - JWTSupportedAlgs is a list of
|
||||
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
|
||||
login; any match is sufficient.
|
||||
|
|
|
@ -13,26 +13,26 @@ description: >-
|
|||
## Introduction
|
||||
|
||||
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)
|
||||
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
|
||||
will require intermediate version upgrades to a forwards compatible release of v1.8 or v1.9
|
||||
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.
|
||||
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,
|
||||
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
|
||||
[General Upgrade Process](/docs/upgrading/instructions/general-process).
|
||||
|
||||
~> 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
|
||||
agents failing to start due to [changes in the way we manage licenses](/docs/enterprise/license/faq).
|
||||
|
||||
## Requirements
|
||||
|
||||
- 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.
|
||||
- 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 the [normal upgrade procedures](/docs/upgrading) to upgrade them until the version requirement is met.
|
||||
|
||||
## 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 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
|
||||
|
||||
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)
|
||||
page. There are notes on that page about other changes that might cause issues during an upgrade as well.
|
||||
You can find more granular details in the [licensing FAQ](/docs/enterprise/license/faq) as well as the full
|
||||
[changelog](https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#1100-june-22-2021).
|
||||
Looking through these changes prior to upgrading is highly recommended.
|
||||
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.
|
||||
The page also describes other changes that might cause issues during an upgrade.
|
||||
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/main/CHANGELOG.md#1100-june-22-2021).
|
||||
We strongly recommend reviewing the changes prior to upgrading.
|
||||
|
||||
## Procedures
|
||||
|
||||
~> 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
|
||||
needed to upgrade to 1.10, and also require intermediate version upgrades to ensure forward compatibility.
|
||||
procedures are followed. Licensing-related configuration changes are required for upgrading to 1.10.
|
||||
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),
|
||||
and for [autopilot assisted upgrades](https://learn.hashicorp.com/tutorials/consul/upgrade-automation)
|
||||
for more information.
|
||||
|
@ -66,13 +66,11 @@ for more information.
|
|||
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
|
||||
that has network access to the cluster. If run elsewhere than other options to the command may be neede
|
||||
to direct the request to the right Consul API.
|
||||
Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
|
||||
Additional command line options for directing the request to the correct Consul API may be necessary if the command runs from another location.
|
||||
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
**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
|
||||
```
|
||||
|
||||
Note that the command can be run on anywhere that is running Consul already or from some other location
|
||||
that has network access to the cluster. If run elsewhere than other options to the command may be neede
|
||||
to direct the request to the right Consul API.
|
||||
Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
|
||||
Additional command line options for directing the request to the correct Consul API may be necessary if the command runs from another location.
|
||||
|
||||
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
|
||||
of RAM the Consul server processes are consuming.
|
||||
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
|
||||
of RAM the Consul server processes are consuming.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
**3.** Determine if ACLs are enabled by running the following CLI command.
|
||||
|
||||
```shell
|
||||
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
|
||||
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
|
||||
are operating Consul within Kubernetes.
|
||||
Select the correct tab below based on whether ACLs are enabled or disabled or if you
|
||||
are operating Consul within Kubernetes.
|
||||
|
||||
<Tabs>
|
||||
<Tab heading="ACLs Enabled">
|
||||
|
@ -126,23 +123,23 @@ Error querying agent: Unexpected response code: 403 (Permission denied)
|
|||
consul snapshot save intermediate.snap
|
||||
```
|
||||
|
||||
Note that the command can be run on anywhere that is running Consul already or from some other location
|
||||
that has network access to the cluster. If run elsewhere than [other options](/docs/commands/snapshot/save#api-options)
|
||||
to the command may be needed to direct the request to the right Consul API.
|
||||
Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
|
||||
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.
|
||||
|
||||
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
|
||||
of RAM the Consul server processes are consuming.
|
||||
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
|
||||
of RAM the Consul server processes are consuming.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
**8.** Pre-configure the server agents with a license.
|
||||
|
||||
This can either be set with the `license_path` configuration item, the
|
||||
`CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE`
|
||||
environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
|
||||
for more information about how to configure the license.
|
||||
This can either be set with the `license_path` configuration item, the
|
||||
`CONSUL_LICENSE_PATH` environment variable, or the `CONSUL_LICENSE`
|
||||
environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
|
||||
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.
|
||||
|
||||
|
@ -154,26 +151,27 @@ consul snapshot save intermediate.snap
|
|||
<Tab heading="ACLs Disabled">
|
||||
|
||||
~> 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)
|
||||
and then proceeding with the instructions within the "ACLs Enabled" tab.
|
||||
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.
|
||||
|
||||
**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.
|
||||
|
||||
This can either be set with the `license_path` configuration item, the
|
||||
`CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE`
|
||||
environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
|
||||
for more information about how to configure the license. Note that while
|
||||
Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license
|
||||
from these configurations, it is intended to only be used during upgrades.
|
||||
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.
|
||||
This can either be set with the `license_path` configuration item, the
|
||||
`CONSUL_LICENSE_PATH` environment variable, or the `CONSUL_LICENSE`
|
||||
environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
|
||||
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.
|
||||
Note that while Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license
|
||||
from these configurations, it is intended to only be used during upgrades.
|
||||
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.
|
||||
|
||||
**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.
|
||||
|
||||
|
@ -183,25 +181,24 @@ 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
|
||||
that has network access to the cluster. If run elsewhere than other options to the command may be neede
|
||||
to direct the request to the right Consul API.
|
||||
Note that you can run the command from anywhere Consul is already running or from a location that has network access to the cluster.
|
||||
Additional command line options for directing the request to the correct Consul API may be necessary if the command runs from another location.
|
||||
|
||||
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
|
||||
of RAM the Consul server processes are consuming.
|
||||
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
|
||||
of RAM the Consul server processes are consuming.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
**8.** Pre-configure the server agents with a license. This is the same process that
|
||||
was executed for the servers in step 5.
|
||||
**10.** Pre-configure the server agents with a license. This is the same process that
|
||||
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 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.
|
||||
|
||||
Additionally, ensure that the Kuberenetes secret with the license is specified in the
|
||||
values `server.enterpriseLicense.secretName` and `server.enterpriseLicense.secretKey`.
|
||||
Additionally, ensure that the Kuberenetes secret with the license is specified in the
|
||||
values `server.enterpriseLicense.secretName` and `server.enterpriseLicense.secretKey`.
|
||||
|
||||
**7.** Upgrade the cluster.
|
||||
|
||||
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)
|
||||
and the [clients](/docs/k8s/upgrade#upgrading-consul-clients).
|
||||
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)
|
||||
and the [clients](/docs/k8s/upgrade#upgrading-consul-clients).
|
||||
|
||||
**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
|
||||
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`
|
||||
environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
|
||||
for more information about how to configure the license. Note that while
|
||||
Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license
|
||||
from these configurations, it is intended to only be used during upgrades.
|
||||
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.
|
||||
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
|
||||
`CONSUL_LICENSE_PATH` environment variable or the `CONSUL_LICENSE`
|
||||
environment variable. See the [licensing documentation](/docs/enterprise/license/overview)
|
||||
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.
|
||||
Note that while Consul Enterprise 1.8.13 and 1.9.7 have the ability to load the license
|
||||
from these configurations, it is intended to only be used during upgrades.
|
||||
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.
|
||||
|
||||
**10.** Upgrade the cluster.
|
||||
|
||||
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)
|
||||
and the [clients](/docs/k8s/upgrade#upgrading-consul-clients).
|
||||
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)
|
||||
and the [clients](/docs/k8s/upgrade#upgrading-consul-clients).
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
|
|
@ -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
|
||||
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.
|
||||
|
||||
## Procedure
|
||||
|
|
|
@ -45,7 +45,7 @@ This guide makes the following assumptions:
|
|||
|
||||
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)
|
||||
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.
|
||||
|
||||
Two very notable items are:
|
||||
|
|
|
@ -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
|
||||
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.
|
||||
|
||||
## Procedure
|
||||
|
|
|
@ -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) |
|
||||
| `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. |
|
||||
| `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_ec2` | [`-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) |
|
||||
| `statsite_addr` | [`telemetry.statsite_address`](https://github.com/hashicorp/consul/blob/master/website/pages/docs/agent/options.mdx#telemetry-statsite_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/main/website/pages/docs/agent/options.mdx#telemetry-statsite_address) |
|
||||
| `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) |
|
||||
|
|
|
@ -10,7 +10,7 @@ import {
|
|||
const baseRoute = 'api-docs'
|
||||
const navDataFile = `data/${baseRoute}-nav-data.json`
|
||||
const localContentDir = `content/${baseRoute}`
|
||||
const mainBranch = 'master'
|
||||
const mainBranch = 'main'
|
||||
const product = { name: productName, slug: productSlug }
|
||||
|
||||
export default function ApiDocsLayout(props) {
|
||||
|
|
|
@ -10,7 +10,7 @@ import {
|
|||
const baseRoute = 'commands'
|
||||
const navDataFile = `data/${baseRoute}-nav-data.json`
|
||||
const localContentDir = `content/${baseRoute}`
|
||||
const mainBranch = 'master'
|
||||
const mainBranch = 'main'
|
||||
const product = { name: productName, slug: productSlug }
|
||||
|
||||
export default function CommandsLayout(props) {
|
||||
|
|
|
@ -12,7 +12,7 @@ const additionalComponents = { ConfigEntryReference }
|
|||
const baseRoute = 'docs'
|
||||
const navDataFile = `data/${baseRoute}-nav-data.json`
|
||||
const localContentDir = `content/${baseRoute}`
|
||||
const mainBranch = 'master'
|
||||
const mainBranch = 'main'
|
||||
const product = { name: productName, slug: productSlug }
|
||||
|
||||
export default function DocsLayout(props) {
|
||||
|
|
Loading…
Reference in New Issue