summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-02-18 23:05:16 +0100
committerGitHub <noreply@github.com>2023-02-18 23:05:16 +0100
commita1b05c4c334b354c634aa76ea3a7a55361789a61 (patch)
treedff954e826eaeab7e99f9f36a3e2a6fe346c174b /node-repository/src/main/java/com
parentb436d28e7cfb0d8e0c5123e52835c6a8b23ff78a (diff)
parent623b2538aec3848facfb72abc4d7ba0f893ca686 (diff)
Merge pull request #26096 from vespa-engine/use-node-repo-for-wg
Use node repo for wg
Diffstat (limited to 'node-repository/src/main/java/com')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java24
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java3
2 files changed, 16 insertions, 11 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java
index 0bac6f09029..11be80de990 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/WireguardResponse.java
@@ -1,13 +1,18 @@
package com.yahoo.vespa.hosted.provision.restapi;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.WireguardKey;
import com.yahoo.restapi.SlimeJsonResponse;
import com.yahoo.slime.Cursor;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
+import java.util.Set;
+
/**
+ * A response containing the wireguard peer config for each configserver that has a public key.
+ *
* @author gjoranv
*/
public class WireguardResponse extends SlimeJsonResponse {
@@ -20,17 +25,18 @@ public class WireguardResponse extends SlimeJsonResponse {
.list(Node.State.active)
.nodeType(NodeType.config);
- configservers.forEach(
- configserver -> addConfigserver(cfgArray.addObject(), configserver));
+ configservers.stream()
+ .filter(node -> node.wireguardPubKey().isPresent())
+ .forEach(configserver -> addConfigserver(cfgArray.addObject(),
+ configserver.hostname(),
+ configserver.wireguardPubKey().get(),
+ configserver.ipConfig().primary()));
}
- private void addConfigserver(Cursor cfgEntry, Node configserver) {
- cfgEntry.setString("hostname", configserver.hostname());
-
- configserver.wireguardPubKey().ifPresent(
- key -> cfgEntry.setString("wireguardPubkey", key.value()));
-
- NodesResponse.ipAddressesToSlime(configserver.ipConfig().primary(), cfgEntry.setArray("ipAddresses"));
+ private void addConfigserver(Cursor cfgEntry, String hostname, WireguardKey key, Set<String> ipAddresses) {
+ cfgEntry.setString("hostname", hostname);
+ cfgEntry.setString("wireguardPubkey", key.value());
+ NodesResponse.ipAddressesToSlime(ipAddresses, cfgEntry.setArray("ipAddresses"));
}
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index 3caefcdc69e..66d1568262b 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -110,7 +110,6 @@ public class MockNodeRepository extends NodeRepository {
.cloudAccount(defaultCloudAccount).build());
// Emulate node in tenant account
nodes.add(Node.create("node3", ipConfig(3), "host3.yahoo.com", resources(0.5, 48, 500, 1, fast, local), NodeType.tenant)
- .wireguardPubKey(WireguardKey.from("333344445555666677778888999900001111222211c="))
.cloudAccount(tenantAccount).build());
Node node4 = Node.create("node4", ipConfig(4), "host4.yahoo.com", resources(1, 4, 100, 1, fast, local), NodeType.tenant)
.parentHostname("dockerhost1.yahoo.com")
@@ -173,7 +172,7 @@ public class MockNodeRepository extends NodeRepository {
nodes.add(Node.create("cfg1", ipConfig(201), "cfg1.yahoo.com", flavors.getFlavorOrThrow("default"), NodeType.config)
.wireguardPubKey(WireguardKey.from("lololololololololololololololololololololoo=")).build());
nodes.add(Node.create("cfg2", ipConfig(202), "cfg2.yahoo.com", flavors.getFlavorOrThrow("default"), NodeType.config)
- .wireguardPubKey(WireguardKey.from("olololololololololololololololololololololo=")).build());
+ .build());
// Ready all nodes, except 7 and 55
nodes = nodes().addNodes(nodes, Agent.system);