aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-11-24 17:13:04 +0100
committerjonmv <venstad@gmail.com>2022-11-24 17:13:04 +0100
commit0ef9b187f6dc333ead41f52ec3124bdf5aedd23e (patch)
treeff60ca67f6a338d88130eaf48cb96b25d115f835 /controller-api
parent357315bba6debc9cd32a0eca6dee1b079f661e17 (diff)
Add VpcEndpointService
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/MockVpcEndpointService.java23
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/VpcEndpointService.java20
2 files changed, 43 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/MockVpcEndpointService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/MockVpcEndpointService.java
new file mode 100644
index 00000000000..e4f14c7a7b6
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/MockVpcEndpointService.java
@@ -0,0 +1,23 @@
+package com.yahoo.vespa.hosted.controller.api.integration.dns;
+
+import ai.vespa.http.DomainName;
+import com.yahoo.config.provision.CloudAccount;
+import com.yahoo.vespa.hosted.controller.api.identifiers.ClusterId;
+
+import java.util.Optional;
+
+/**
+ * @author jonmv
+ */
+public class MockVpcEndpointService implements VpcEndpointService {
+
+ public static final VpcEndpointService empty = (name, cluster, account) -> Optional.empty();
+
+ public VpcEndpointService delegate = empty;
+
+ @Override
+ public Optional<DnsChallenge> setPrivateDns(DomainName privateDnsName, ClusterId clusterId, Optional<CloudAccount> account) {
+ return delegate.setPrivateDns(privateDnsName, clusterId, account);
+ }
+
+}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/VpcEndpointService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/VpcEndpointService.java
new file mode 100644
index 00000000000..109b084f672
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/dns/VpcEndpointService.java
@@ -0,0 +1,20 @@
+package com.yahoo.vespa.hosted.controller.api.integration.dns;
+
+import ai.vespa.http.DomainName;
+import com.yahoo.config.provision.CloudAccount;
+import com.yahoo.vespa.hosted.controller.api.identifiers.ClusterId;
+
+import java.util.Optional;
+
+/**
+ * @author jonmv
+ */
+public interface VpcEndpointService {
+
+ /** Sets the private DNS name for any VPC endpoint for the given cluster, potentially guarded by a challenge. */
+ Optional<DnsChallenge> setPrivateDns(DomainName privateDnsName, ClusterId clusterId, Optional<CloudAccount> account);
+
+ /** Create a TXT record with this name and token, then run the trigger, to pass this challenge. */
+ record DnsChallenge(RecordName name, RecordData data, Runnable trigger) { }
+
+}