add Dynamic Configuration Consul AclToken (#4161)

* Update ConsulConfigurationCenterSettings.java

add aclTokne

* Update ConsulConfigurationWatcherRegister.java

add aclToken

* Update application.yml

add aclToken

* Update ConsulConfigurationCenterSettings.java

add aclToken

* Update application.yml

add aclToken

* add aclToken

* Replace with util

* Replace with util

* add consul aclToken
This commit is contained in:
web-xiaxia 2020-01-02 20:05:16 +08:00 committed by Daming
parent 568c2e53f0
commit 5fba91901f
8 changed files with 27 additions and 0 deletions

View File

@ -37,6 +37,8 @@ cluster:
# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
# Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500
# hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500}
# # Consul aclToken
# #aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN}
# nacos:
# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
# hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:localhost:8848}
@ -210,6 +212,8 @@ configuration:
# hostAndPorts: ${consul.address}
# # Sync period in seconds. Defaults to 60 seconds.
# period: 1
# # Consul aclToken
# #aclToken: ${consul.aclToken}
#exporter:
# grpc:

View File

@ -87,6 +87,8 @@ cluster:
serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
# Consul cluster agents, example, 1. client agent, 127.0.0.1:8500 2. server agent, 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500
hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500}
# aclToken of connection consul (optional)
aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN}
```
Same as Zookeeper coordinator,

View File

@ -109,6 +109,8 @@ configuration:
hostAndPorts: 127.0.0.1:8500
# Sync period in seconds. Defaults to 60 seconds.
period: 60
# aclToken of connection consul (optional)
aclToken: ${consul.aclToken}
```

View File

@ -36,6 +36,8 @@ cluster:
# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
# Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500
# hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500}
# # Consul aclToken
# #aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN}
# nacos:
# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
# # Nacos Configuration namespace
@ -223,6 +225,8 @@ configuration:
# hostAndPorts: ${consul.address}
# # Sync period in seconds. Defaults to 60 seconds.
# period: 1
# # Consul aclToken
# #aclToken: ${consul.aclToken}
#exporter:
# grpc:

View File

@ -28,5 +28,6 @@ class ClusterModuleConsulConfig extends ModuleConfig {
@Setter @Getter private String serviceName;
@Setter @Getter private String hostPort;
@Setter @Getter private String internalComHost;
@Getter @Setter private String aclToken;
@Setter @Getter private int internalComPort = -1;
}

View File

@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.cluster.plugin.consul;
import com.google.common.net.HostAndPort;
import com.orbitz.consul.Consul;
import com.orbitz.consul.ConsulException;
import org.apache.commons.lang3.StringUtils;
import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.cluster.ClusterModule;
import org.apache.skywalking.oap.server.core.cluster.ClusterNodesQuery;
@ -76,6 +77,10 @@ public class ClusterModuleConsulProvider extends ModuleProvider {
// we should set this value or it will be blocked forever
.withConnectTimeoutMillis(3000);
if (StringUtils.isNotEmpty(config.getAclToken())) {
consulBuilder.withAclToken(config.getAclToken());
}
if (hostAndPorts.size() > 1) {
client = consulBuilder.withMultipleHostAndPort(hostAndPorts, 5000).build();
} else {

View File

@ -33,4 +33,8 @@ public class ConsulConfigurationCenterSettings extends ModuleConfig {
@Getter
@Setter
private String hostAndPorts;
@Getter
@Setter
private String aclToken;
}

View File

@ -32,6 +32,7 @@ import com.orbitz.consul.Consul;
import com.orbitz.consul.KeyValueClient;
import com.orbitz.consul.cache.KVCache;
import com.orbitz.consul.model.kv.Value;
import org.apache.commons.lang3.StringUtils;
import org.apache.skywalking.oap.server.configuration.api.ConfigTable;
import org.apache.skywalking.oap.server.configuration.api.ConfigWatcherRegister;
import org.slf4j.Logger;
@ -70,6 +71,10 @@ public class ConsulConfigurationWatcherRegister extends ConfigWatcherRegister {
builder.withMultipleHostAndPort(hostAndPorts, 5000);
}
if (StringUtils.isNotEmpty(settings.getAclToken())) {
builder.withAclToken(settings.getAclToken());
}
consul = builder.build().keyValueClient();
}