diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-03-03 16:49:01 +0100 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2021-03-04 13:33:47 +0100 |
commit | 9a99b7bd1345e7c89bf842143e1bdbcdee1adfe5 (patch) | |
tree | 2fc5d724a1250e62777c2df3545e3fc383423f89 /config-model-api/src | |
parent | 301f68c3b48b5ecbb94e0671fd710d0672afb046 (diff) |
Include tenant secret stores in deploy call
AwsParameterStore iterates through configured stores to find secret
Set up AwsParameterStore
ModelContextImpl properties fetches external ID for every tenant secret store
Diffstat (limited to 'config-model-api/src')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java | 2 | ||||
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java | 66 |
2 files changed, 68 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index 91ecb981e12..ebafd26f942 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -115,6 +115,8 @@ public interface ModelContext { default Quota quota() { return Quota.unlimited(); } + default List<TenantSecretStore> tenantSecretStores() { return List.of(); } + /// Default setting for the gc-options attribute if not specified explicit by application String jvmGCOptions(); diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java b/config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java new file mode 100644 index 00000000000..f39a3901177 --- /dev/null +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/TenantSecretStore.java @@ -0,0 +1,66 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.model.api; + +import java.util.Objects; +import java.util.Optional; + +/** + * @author olaa + */ +public class TenantSecretStore { + + private final String name; + private final String awsId; + private final String role; + private Optional<String> externalId; + + public TenantSecretStore(String name, String awsId, String role) { + this.name = name; + this.awsId = awsId; + this.role = role; + } + + public String getName() { + return name; + } + + public String getAwsId() { + return awsId; + } + + public String getRole() { + return role; + } + + public Optional<String> getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = Optional.of(externalId); + } + + @Override + public String toString() { + return "TenantSecretStore{" + + "name='" + name + '\'' + + ", awsId='" + awsId + '\'' + + ", role='" + role + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TenantSecretStore that = (TenantSecretStore) o; + return name.equals(that.name) && + awsId.equals(that.awsId) && + role.equals(that.role); + } + + @Override + public int hashCode() { + return Objects.hash(name, awsId, role); + } +} |