diff options
author | jonmv <venstad@gmail.com> | 2022-11-24 17:13:04 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-11-24 17:13:04 +0100 |
commit | 0ef9b187f6dc333ead41f52ec3124bdf5aedd23e (patch) | |
tree | ff60ca67f6a338d88130eaf48cb96b25d115f835 /controller-api/src/main/java | |
parent | 357315bba6debc9cd32a0eca6dee1b079f661e17 (diff) |
Add VpcEndpointService
Diffstat (limited to 'controller-api/src/main/java')
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) { } + +} |