in services/shared-services/tenant-registration-service/src/main/java/com/amazonaws/saas/eks/TenantRegistrationService.java [131:176]
private TenantDetails createTenantServices(TenantDetails tenant) {
String stackName = tenant.getTenantId();
SaaSProviderMetadata saaSProviderMetadata = getSaaSProviderMetadata(tenant);
LoggingManager.logInfo(tenant.getTenantId(), "StackName =>" + stackName);
LoggingManager.logInfo(tenant.getTenantId(), "S3 URL =>" + saaSProviderMetadata.getS3Endpoint());
LoggingManager.logInfo(tenant.getTenantId(), "ProductServiceEcrRepoUri =>" + saaSProviderMetadata.getProductServiceEcrRepoUri());
LoggingManager.logInfo(tenant.getTenantId(), "OrderServiceEcrRepoUri =>" + saaSProviderMetadata.getOrderServiceEcrRepoUri());
AmazonCloudFormation client = AmazonCloudFormationClientBuilder.defaultClient();
CreateStackRequest createRequest = new CreateStackRequest();
createRequest.setStackName(stackName);
createRequest.setTemplateURL(saaSProviderMetadata.getS3Endpoint());
List<Parameter> parameters = new ArrayList<Parameter>();
Parameter param = new Parameter();
param.setParameterKey("TenantName");
param.setParameterValue(tenant.getTenantId());
parameters.add(param);
Parameter customDomainParam = new Parameter();
customDomainParam.setParameterKey("CustomDomain");
customDomainParam.setParameterValue(tenant.getCustomDomain());
parameters.add(customDomainParam);
Parameter productServiceEcrRepoUriParam = new Parameter();
productServiceEcrRepoUriParam.setParameterKey("ProductServiceEcrRepoUri");
productServiceEcrRepoUriParam.setParameterValue(saaSProviderMetadata.getProductServiceEcrRepoUri());
parameters.add(productServiceEcrRepoUriParam);
Parameter orderServiceEcrRepoUriParam = new Parameter();
orderServiceEcrRepoUriParam.setParameterKey("OrderServiceEcrRepoUri");
orderServiceEcrRepoUriParam.setParameterValue(saaSProviderMetadata.getOrderServiceEcrRepoUri());
parameters.add(orderServiceEcrRepoUriParam);
createRequest.setParameters(parameters);
List<String> capabilities = new ArrayList<String>();
capabilities.add("CAPABILITY_IAM");
createRequest.setCapabilities(capabilities);
client.createStack(createRequest);
LoggingManager.logInfo(tenant.getTenantId(), "Creating a stack called " + createRequest.getStackName() + ".");
return tenant;
}