Skip to content
Snippets Groups Projects
Commit 8d6fdd33 authored by Sergey Yakubov's avatar Sergey Yakubov
Browse files

change AdvertiseIP->AdvertiseURI, update helm chart to set dataservice AdvertiseURI

parent 893221ad
No related branches found
No related tags found
No related merge requests found
Showing
with 86 additions and 23 deletions
{
"AdvertiseIP": "auto",
"PerformanceDbServer": "{{ .Chart.Name }}-influxdb:{{ .Values.influxdb.influxdb.service.port }}",
"PerformanceDbName": "asapo_receivers",
"DatabaseServer": "asapo-mongodb:{{ .Values.ownServices.mongodb.port }}",
......@@ -7,7 +6,9 @@
"AuthorizationServer": "asapo-authorizer:{{ .Values.ownServices.authorizer.port }}",
"AuthorizationInterval": 10000,
"ListenPort": {{ .Values.ownServices.receiver.port }},
"AdvertiseIP": "auto",
"DataServer": {
"AdvertiseURI": "auto",
"NThreads": {{ .Values.ownServices.receiver.dataServer.nThreads }},
"ListenPort": {{ .Values.ownServices.receiver.dataServer.port }}
},
......
apiVersion: v1
kind: ConfigMap
metadata:
name: config-script
data:
entrypoint.sh: |-
#!/bin/bash
export TOKEN=`cat /var/run/secrets/kubernetes.io/serviceaccount/token`
export NODE_PORT=`curl https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api/v1/namespaces/{{ .Release.Namespace }}/services/asapo-receiver-dataserver --insecure --header "Authorization: Bearer $TOKEN" --silent | jq .spec.ports[0].nodePort`
jq ".DataServer.AdvertiseURI = \"$NODE_IP:$NODE_PORT\"" /etc/receiver/init/asapo-receiver.json > /etc/receiver/asapo-receiver.json
---
apiVersion: apps/v1
kind: Deployment
metadata:
......@@ -18,7 +30,13 @@ spec:
checksum/fluentd-config: {{ .Files.Get "configs/asapo-fluentd.conf" | sha256sum }}
spec:
volumes:
- name: config-script
configMap:
defaultMode: 0700
name: config-script
- name: asapo-receiver-config
emptyDir: {}
- name: asapo-receiver-config-init
configMap:
name: asapo-receiver-config
- name: shared-volume-offline
......@@ -28,6 +46,25 @@ spec:
persistentVolumeClaim:
claimName: asapo-online-pv
{{- include "asapo.fluentd.volumes" .Values.ownServices.receiver | indent 8 }}
initContainers:
- name: prepare-config
image: yakser/alpine_curl_jq
command: ['/bin/entrypoint.sh']
env:
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
volumeMounts:
- mountPath: "/etc/receiver"
name: asapo-receiver-config
- mountPath: "/etc/receiver/init"
name: asapo-receiver-config-init
- mountPath: /bin/entrypoint.sh
name: config-script
readOnly: true
subPath: entrypoint.sh
containers:
- name: asapo-receiver
image: "yakser/asapo-receiver-dev:{{ .Values.common.asapoVersionTag }}"
......@@ -45,4 +82,5 @@ spec:
name: shared-volume-offline
- mountPath: {{ .Values.common.onlineDir }}
name: shared-volume-online
{{- include "asapo.fluentd.container" . | indent 8 }}
\ No newline at end of file
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
name: role
rules:
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
creationTimestamp: null
name: role-bind
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role
subjects:
- kind: ServiceAccount
name: default
......@@ -30,7 +30,7 @@ ownServices:
nThreads: 1
_exposeServiceExtrernally: true
dataCache:
enable: false
enable: true
sizeGb: 1
receiveToDiskThresholdMB: 200
fileTransfer:
......
{
"AdvertiseIP": "{{ if or (env "meta.ib_address") "none" | regexMatch "none" }}{{ env "NOMAD_IP_recv" }}{{ else }}{{ env "meta.ib_address" }}{{ end }}",
"PerformanceDbServer":"localhost:8400/influxdb",
"PerformanceDbName": "asapo_receivers",
"DatabaseServer":"auto",
......@@ -8,6 +7,7 @@
"AuthorizationInterval": 10000,
"ListenPort": {{ env "NOMAD_PORT_recv" }},
"DataServer": {
"AdvertiseURI": "{{ if or (env "meta.ib_address") "none" | regexMatch "none" }}{{ env "NOMAD_IP_recv" }}{{ else }}{{ env "meta.ib_address" }}{{ end }}:{{ env "NOMAD_PORT_recv_ds" }}",
"NThreads": {{ env "NOMAD_META_receiver_dataserver_nthreads" }},
"ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
},
......
......@@ -34,7 +34,7 @@ Error ReceiverConfigFactory::SetConfig(std::string file_name) {
(err = parser.GetString("AuthorizationServer", &config.authorization_server)) ||
(err = parser.GetUInt64("AuthorizationInterval", &config.authorization_interval_ms)) ||
(err = parser.GetString("PerformanceDbName", &config.performance_db_name)) ||
(err = parser.GetString("AdvertiseIP", &config.advertise_ip)) ||
(err = parser.Embedded("DataServer").GetString("AdvertiseURI", &config.dataserver.advertise_uri)) ||
(err = parser.GetString("LogLevel", &log_level));
if (err) {
......
......@@ -23,7 +23,6 @@ struct ReceiverConfig {
uint64_t receive_to_disk_threshold_mb = 0;
LogLevel log_level = LogLevel::Info;
std::string tag;
std::string advertise_ip;
ReceiverDataCenterConfig dataserver;
std::string discovery_server;
};
......
......@@ -9,6 +9,7 @@ struct ReceiverDataCenterConfig {
uint64_t listen_port = 0;
uint64_t nthreads = 0;
std::string tag;
std::string advertise_uri;
};
}
......
......@@ -80,8 +80,7 @@ FileInfo RequestHandlerDbWrite::PrepareFileInfo(const Request* request) const {
file_info.size = request->GetDataSize();
file_info.id = request->GetDataID();
file_info.buf_id = request->GetSlotId();
file_info.source = GetReceiverConfig()->advertise_ip + ":" + string_format("%ld",
GetReceiverConfig()->dataserver.listen_port);
file_info.source = GetReceiverConfig()->dataserver.advertise_uri;
file_info.metadata = request->GetMetaData();
return file_info;
}
......
......@@ -49,6 +49,7 @@ Error SetReceiverConfig (const ReceiverConfig& config, std::string error_field)
config_string += "," + Key("ListenPort", error_field) + std::to_string(config.listen_port);
config_string += "," + Key("DataServer", error_field) + "{";
config_string += Key("ListenPort", error_field) + std::to_string(config.dataserver.listen_port);
config_string += "," + Key("AdvertiseURI", error_field) + "\"" + config.dataserver.advertise_uri + "\"";
config_string += "," + Key("NThreads", error_field) + std::to_string(config.dataserver.nthreads);
config_string += "}";
config_string += "," + Key("DataCache", error_field) + "{";
......@@ -63,7 +64,6 @@ Error SetReceiverConfig (const ReceiverConfig& config, std::string error_field)
config_string += "," + Key("WriteToDisk", error_field) + (config.write_to_disk ? "true" : "false");
config_string += "," + Key("WriteToDb", error_field) + (config.write_to_db ? "true" : "false");
config_string += "," + Key("LogLevel", error_field) + "\"" + log_level + "\"";
config_string += "," + Key("AdvertiseIP", error_field) + "\"" + config.advertise_ip + "\"";
config_string += "," + Key("Tag", error_field) + "\"" + config.tag + "\"";
config_string += "}";
......
......@@ -58,10 +58,9 @@ class ConfigTests : public Test {
test_config.use_datacache = false;
test_config.datacache_reserved_share = 10;
test_config.datacache_size_gb = 2;
test_config.advertise_ip = "host";
test_config.dataserver.nthreads = 5;
test_config.discovery_server = "discovery";
test_config.advertise_ip = "0.0.0.1";
test_config.dataserver.advertise_uri = "0.0.0.1:4201";
test_config.receive_to_disk_threshold_mb = 50;
}
......@@ -94,7 +93,7 @@ TEST_F(ConfigTests, ReadSettings) {
ASSERT_THAT(config->dataserver.nthreads, Eq(5));
ASSERT_THAT(config->dataserver.tag, Eq("receiver1_ds"));
ASSERT_THAT(config->discovery_server, Eq("discovery"));
ASSERT_THAT(config->advertise_ip, Eq("0.0.0.1"));
ASSERT_THAT(config->dataserver.advertise_uri, Eq("0.0.0.1:4201"));
ASSERT_THAT(config->receive_to_disk_threshold_mb, Eq(50));
}
......@@ -105,7 +104,7 @@ TEST_F(ConfigTests, ErrorReadSettings) {
std::vector<std::string>fields {"PerformanceDbServer", "ListenPort", "DataServer", "ListenPort", "WriteToDisk",
"WriteToDb", "DataCache", "Use", "SizeGB", "ReservedShare", "DatabaseServer", "Tag",
"AuthorizationServer", "AuthorizationInterval", "PerformanceDbName", "LogLevel",
"NThreads", "DiscoveryServer", "AdvertiseIP", "ReceiveToDiskThresholdMB"};
"NThreads", "DiscoveryServer", "AdvertiseURI", "ReceiveToDiskThresholdMB"};
for (const auto& field : fields) {
auto err = asapo::SetReceiverConfig(test_config, field);
ASSERT_THAT(err, Ne(nullptr));
......
......@@ -75,7 +75,7 @@ class DbCheckRequestHandlerTests : public Test {
std::string expected_beamtime_id = "beamtime_id";
std::string expected_default_stream = "detector";
std::string expected_stream = "stream";
std::string expected_host_ip = "127.0.0.1";
std::string expected_host_uri = "127.0.0.1:1234";
uint64_t expected_port = 1234;
uint64_t expected_buf_id = 18446744073709551615ull;
std::string expected_file_name = "2";
......@@ -96,7 +96,7 @@ class DbCheckRequestHandlerTests : public Test {
handler.log__ = &mock_logger;
mock_request.reset(new NiceMock<MockRequest> {request_header, 1, "", nullptr});
config.database_uri = "127.0.0.1:27017";
config.advertise_ip = expected_host_ip;
config.dataserver.advertise_uri = expected_host_uri;
config.dataserver.listen_port = expected_port;
SetReceiverConfig(config, "none");
expected_file_info = PrepareFileInfo();
......@@ -196,7 +196,7 @@ FileInfo DbCheckRequestHandlerTests::PrepareFileInfo() {
file_info.name = expected_file_name;
file_info.id = expected_id;
file_info.buf_id = expected_buf_id;
file_info.source = expected_host_ip + ":" + std::to_string(expected_port);
file_info.source = expected_host_uri;
file_info.metadata = expected_metadata;
return file_info;
}
......
......@@ -94,7 +94,7 @@ class DbWriterHandlerTests : public Test {
handler.log__ = &mock_logger;
mock_request.reset(new NiceMock<MockRequest> {request_header, 1, "", &mock_db_check_handler});
config.database_uri = "127.0.0.1:27017";
config.advertise_ip = expected_host_ip;
config.dataserver.advertise_uri = expected_host_ip+":"+std::to_string(expected_port);
config.dataserver.listen_port = expected_port;
SetReceiverConfig(config, "none");
......
{
"AdvertiseIP": "127.0.0.1",
"PerformanceDbServer":"localhost:8086",
"PerformanceDbName": "db_test",
"DatabaseServer":"auto",
"DiscoveryServer": "localhost:8400/asapo-discovery",
"DataServer": {
"AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}",
"NThreads": 2,
"ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
},
......
{
"AdvertiseIP": "127.0.0.1",
"PerformanceDbServer":"localhost:8086",
"PerformanceDbName": "db_test",
"DatabaseServer":"auto",
......@@ -8,6 +7,7 @@
"AuthorizationInterval": 1000,
"ListenPort": {{ env "NOMAD_PORT_recv" }},
"DataServer": {
"AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}",
"NThreads": 2,
"ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
},
......
......@@ -3,8 +3,8 @@
"PerformanceDbName": "db_test",
"DatabaseServer":"localhost:27017",
"DiscoveryServer": "localhost:8400/discovery",
"AdvertiseIP":"127.0.0.1",
"DataServer": {
"AdvertiseURI":"127.0.0.1",
"NThreads": 2,
"ListenPort": 22000
},
......
{
"AdvertiseIP": "127.0.0.1",
"PerformanceDbServer":"localhost:8086",
"PerformanceDbName": "db_test",
"DatabaseServer":"auto",
"DiscoveryServer": "localhost:8400/discovery",
"DataServer": {
"AdvertiseURI": "127.0.0.1",
"NThreads": 2,
"ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
},
......
{
"AdvertiseIP": "127.0.0.1",
"PerformanceDbServer":"localhost:8086",
"PerformanceDbName": "db_test",
"DatabaseServer":"localhost:27017",
"DiscoveryServer": "localhost:8400/discovery",
"DataServer": {
"AdvertiseURI": "127.0.0.1",
"NThreads": 2,
"ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
},
......
{
"AdvertiseIP": "127.0.0.1",
"PerformanceDbServer":"localhost:8086",
"PerformanceDbName": "db_test",
"DatabaseServer":"localhost:27017",
"DiscoveryServer": "localhost:8400/discovery",
"DataServer": {
"AdvertiseURI": "127.0.0.1",
"NThreads": 2,
"ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
},
......
......@@ -3,8 +3,8 @@
"PerformanceDbName": "db_test",
"DatabaseServer":"localhost:27017",
"DiscoveryServer": "localhost:8400/discovery",
"AdvertiseIP":"127.0.0.1",
"DataServer": {
"AdvertiseURI":"127.0.0.1",
"NThreads": 2,
"ListenPort": 22000
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment