diff --git a/agent/config/builder.go b/agent/config/builder.go index 0291b2a672..01040fb76a 100644 --- a/agent/config/builder.go +++ b/agent/config/builder.go @@ -756,6 +756,7 @@ func (b *Builder) Build() (rt RuntimeConfig, err error) { ConnectProxyDefaultDaemonCommand: proxyDefaultDaemonCommand, ConnectProxyDefaultScriptCommand: proxyDefaultScriptCommand, ConnectProxyDefaultConfig: proxyDefaultConfig, + ConnectReplicationToken: b.stringVal(c.ACL.Tokens.Replication), DataDir: b.stringVal(c.DataDir), Datacenter: datacenter, DevMode: b.boolVal(b.Flags.DevMode), diff --git a/agent/config/config.go b/agent/config/config.go index 804e805074..e71aaa1d0b 100644 --- a/agent/config/config.go +++ b/agent/config/config.go @@ -499,12 +499,11 @@ type Upstream struct { type Connect struct { // Enabled opts the agent into connect. It should be set on all clients and // servers in a cluster for correct connect operation. - Enabled *bool `json:"enabled,omitempty" hcl:"enabled" mapstructure:"enabled"` - Proxy ConnectProxy `json:"proxy,omitempty" hcl:"proxy" mapstructure:"proxy"` - ProxyDefaults ConnectProxyDefaults `json:"proxy_defaults,omitempty" hcl:"proxy_defaults" mapstructure:"proxy_defaults"` - CAProvider *string `json:"ca_provider,omitempty" hcl:"ca_provider" mapstructure:"ca_provider"` - CAConfig map[string]interface{} `json:"ca_config,omitempty" hcl:"ca_config" mapstructure:"ca_config"` - ReplicationToken *string `json:"replication_token,omitempty" hcl:"replication_token" mapstructure:"replication_token"` + Enabled *bool `json:"enabled,omitempty" hcl:"enabled" mapstructure:"enabled"` + Proxy ConnectProxy `json:"proxy,omitempty" hcl:"proxy" mapstructure:"proxy"` + ProxyDefaults ConnectProxyDefaults `json:"proxy_defaults,omitempty" hcl:"proxy_defaults" mapstructure:"proxy_defaults"` + CAProvider *string `json:"ca_provider,omitempty" hcl:"ca_provider" mapstructure:"ca_provider"` + CAConfig map[string]interface{} `json:"ca_config,omitempty" hcl:"ca_config" mapstructure:"ca_config"` } // ConnectProxy is the agent-global connect proxy configuration. diff --git a/agent/config/runtime_test.go b/agent/config/runtime_test.go index fe286bdf12..f318448c7e 100644 --- a/agent/config/runtime_test.go +++ b/agent/config/runtime_test.go @@ -4143,6 +4143,7 @@ func TestFullConfig(t *testing.T) { "connect_timeout_ms": float64(1000), "pedantic_mode": true, }, + ConnectReplicationToken: "5795983a", DNSAddrs: []net.Addr{tcpAddr("93.95.95.81:7001"), udpAddr("93.95.95.81:7001")}, DNSARecordLimit: 29907, DNSAllowStale: true, diff --git a/website/source/docs/agent/options.html.md b/website/source/docs/agent/options.html.md index 2fa011a6ac..b868991f72 100644 --- a/website/source/docs/agent/options.html.md +++ b/website/source/docs/agent/options.html.md @@ -592,6 +592,8 @@ default will automatically work with some tooling. ACLs are enabled. This token may be provided later using the [agent token API](/api/agent.html#update-acl-tokens) on each server. If the `replication` token is set in the config. This token must have at least "read" permissions on ACL data but if ACL token replication is enabled then it must have "write" permissions. + This also enables Connect replication in Consul Enterprise, for which the token will require + both operator "write" and intention "read" permissions for replicating CA and Intention data. * `acl_datacenter` - **This field is deprecated in Consul 1.4.0. See the [`primary_datacenter`](#primary_datacenter) field instead.** @@ -865,8 +867,6 @@ default will automatically work with some tooling. * `proxy_defaults` [**Deprecated**](/docs/connect/proxies/managed-deprecated.html) This object configures the default proxy settings for service definitions with [managed proxies](/docs/connect/proxies/managed-deprecated.html) (now deprecated). It accepts the fields `exec_mode`, `daemon_command`, and `config`. These are used as default values for the respective fields in the service definition. - * `replication_token` When provided, this will enable Connect replication using this token to retrieve and replicate the Intentions to the non-authoritative local datacenter. - * `datacenter` Equivalent to the [`-datacenter` command-line flag](#_datacenter).