You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2019/10/31 16:32:05 UTC

[incubator-dlab] 01/01: [DLAB-1220] Added new cloud parameter in provisioning

This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch DLAB-1220
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit a8a84fb73edb152aad7243d5c6baf4d2180a16fc
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Thu Oct 31 18:31:16 2019 +0200

    [DLAB-1220] Added new cloud parameter in provisioning
---
 .../com/epam/dlab/dto/aws/AwsCloudSettings.java    | 12 +++++++
 .../epam/dlab/dto/azure/AzureCloudSettings.java    | 12 +++++++
 .../com/epam/dlab/dto/gcp/GcpCloudSettings.java    | 12 +++++++
 services/provisioning-service/provisioning.yml     |  9 ++++-
 .../epam/dlab/backendapi/CloudConfiguration.java   | 11 ++++++
 .../backendapi/core/commands/CommandBuilder.java   | 40 +++++++++++++++++-----
 6 files changed, 87 insertions(+), 9 deletions(-)

diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/AwsCloudSettings.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/AwsCloudSettings.java
index ccf56df..6552902 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/AwsCloudSettings.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/AwsCloudSettings.java
@@ -68,6 +68,18 @@ public class AwsCloudSettings extends CloudSettings {
 	protected String sbn;
 	@JsonProperty("conf_key_dir")
 	protected String confKeyDir;
+	@JsonProperty("conf_shared_image_enabled")
+	private boolean sharedImageEnabled;
+	@JsonProperty("conf_stepcerts_enabled")
+	private boolean stepCertsEnabled;
+	@JsonProperty("conf_stepcerts_root_ca")
+	private String stepCertsRootCA;
+	@JsonProperty("conf_stepcerts_kid")
+	private String stepCertsKid;
+	@JsonProperty("conf_stepcerts_kid_password")
+	private String stepCertsKidPassword;
+	@JsonProperty("conf_stepcerts_ca_url")
+	private String stepCertsCAURL;
 
 	@Override
 	@JsonIgnore
diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/azure/AzureCloudSettings.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/azure/AzureCloudSettings.java
index 6e86fd1..901216d 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/dto/azure/AzureCloudSettings.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/azure/AzureCloudSettings.java
@@ -46,6 +46,18 @@ public class AzureCloudSettings extends CloudSettings {
     private String azureSecurityGroupName;
     @JsonProperty("conf_key_dir")
     protected String confKeyDir;
+    @JsonProperty("conf_shared_image_enabled")
+    private boolean sharedImageEnabled;
+    @JsonProperty("conf_stepcerts_enabled")
+    private boolean stepCertsEnabled;
+    @JsonProperty("conf_stepcerts_root_ca")
+    private String stepCertsRootCA;
+    @JsonProperty("conf_stepcerts_kid")
+    private String stepCertsKid;
+    @JsonProperty("conf_stepcerts_kid_password")
+    private String stepCertsKidPassword;
+    @JsonProperty("conf_stepcerts_ca_url")
+    private String stepCertsCAURL;
 
     @Override
     @JsonIgnore
diff --git a/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/GcpCloudSettings.java b/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/GcpCloudSettings.java
index 35aade3..5542aeb 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/GcpCloudSettings.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/GcpCloudSettings.java
@@ -62,6 +62,18 @@ public class GcpCloudSettings extends CloudSettings {
 	protected String zone;
 	@JsonProperty("gcp_region")
 	protected String region;
+	@JsonProperty("conf_shared_image_enabled")
+	private boolean sharedImageEnabled;
+	@JsonProperty("conf_stepcerts_enabled")
+	private boolean stepCertsEnabled;
+	@JsonProperty("conf_stepcerts_root_ca")
+	private String stepCertsRootCA;
+	@JsonProperty("conf_stepcerts_kid")
+	private String stepCertsKid;
+	@JsonProperty("conf_stepcerts_kid_password")
+	private String stepCertsKidPassword;
+	@JsonProperty("conf_stepcerts_ca_url")
+	private String stepCertsCAURL;
 
 	@Override
 	@JsonIgnore
diff --git a/services/provisioning-service/provisioning.yml b/services/provisioning-service/provisioning.yml
index bd39c90..3e34454 100644
--- a/services/provisioning-service/provisioning.yml
+++ b/services/provisioning-service/provisioning.yml
@@ -119,9 +119,16 @@ cloudProperties:
   datalakeTagName: AZURE_DATALAKE_TAG
   azureClientId: AZURE_CLIENT_ID
   gcpProjectId: GCP_PROJECT_ID
+  sharedImageEnabled: SHARED_IMAGE_ENABLED
   ldap:
     host: LDAP_HOST
     dn: LDAP_DN
     ou: LDAP_OU
     user: LDAP_USER_NAME
-    password: LDAP_USER_PASSWORD
\ No newline at end of file
+    password: LDAP_USER_PASSWORD
+  stepCerts:
+    enabled: STEP_CERTS_ENABLED
+    rootCA: STEP_ROOT_CA
+    kid: STEP_KID_ID
+    kidPassword: STEP_KID_PASSWORD
+    caURL: STEP_CA_URL
\ No newline at end of file
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/CloudConfiguration.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/CloudConfiguration.java
index 3f9339a..b79706c 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/CloudConfiguration.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/CloudConfiguration.java
@@ -26,8 +26,10 @@ public class CloudConfiguration {
 	private final String azureClientId;
 	private final String peeringId;
 	private final String gcpProjectId;
+	private final boolean sharedImageEnabled;
 	@JsonProperty("ldap")
 	private final LdapConfig ldapConfig;
+	private final StepCerts stepCerts;
 
 	@Data
 	public static class LdapConfig {
@@ -37,4 +39,13 @@ public class CloudConfiguration {
 		private final String user;
 		private final String password;
 	}
+
+	@Data
+	public static class StepCerts {
+		private final boolean enabled;
+		private final String rootCA;
+		private final String kid;
+		private final String kidPassword;
+		private final String caURL;
+	}
 }
diff --git a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/commands/CommandBuilder.java b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/commands/CommandBuilder.java
index fa61bdd..baa40fb 100644
--- a/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/commands/CommandBuilder.java
+++ b/services/provisioning-service/src/main/java/com/epam/dlab/backendapi/core/commands/CommandBuilder.java
@@ -69,18 +69,20 @@ public class CommandBuilder {
 		final CloudProvider cloudProvider = conf.getCloudProvider();
 		final CloudConfiguration cloudConfiguration = conf.getCloudConfiguration();
 		final CloudConfiguration.LdapConfig ldapConfig = cloudConfiguration.getLdapConfig();
+		final CloudConfiguration.StepCerts stepCerts = cloudConfiguration.getStepCerts();
 		if (cloudProvider == CloudProvider.AWS) {
-			return awsCloudSettings(settings, cloudConfiguration, ldapConfig);
+			return awsCloudSettings(settings, cloudConfiguration, ldapConfig, stepCerts);
 		} else if (cloudProvider == CloudProvider.GCP) {
-			return gcpCloudSettings(settings, cloudConfiguration, ldapConfig);
+			return gcpCloudSettings(settings, cloudConfiguration, ldapConfig, stepCerts);
 		} else if (cloudProvider == CloudProvider.AZURE) {
-			return azureCloudSettings(settings, cloudConfiguration);
+			return azureCloudSettings(settings, cloudConfiguration, stepCerts);
 		} else {
 			throw new UnsupportedOperationException("Unsupported cloud provider " + cloudProvider.getName());
 		}
 	}
 
-	private AzureCloudSettings azureCloudSettings(CloudSettings settings, CloudConfiguration cloudConfiguration) {
+	private AzureCloudSettings azureCloudSettings(CloudSettings settings, CloudConfiguration cloudConfiguration,
+												  CloudConfiguration.StepCerts stepCerts) {
 		return AzureCloudSettings.builder()
 				.azureRegion(cloudConfiguration.getRegion())
 				.azureResourceGroupName(cloudConfiguration.getAzureResourceGroupName())
@@ -88,11 +90,19 @@ public class CommandBuilder {
 				.azureSubnetName(cloudConfiguration.getSubnetId())
 				.azureVpcName(cloudConfiguration.getVpcId())
 				.confKeyDir(cloudConfiguration.getConfKeyDir())
-				.azureIamUser(settings.getIamUser()).build();
+				.azureIamUser(settings.getIamUser())
+				.sharedImageEnabled(cloudConfiguration.isSharedImageEnabled())
+				.stepCertsEnabled(stepCerts.isEnabled())
+				.stepCertsRootCA(stepCerts.getRootCA())
+				.stepCertsKid(stepCerts.getKid())
+				.stepCertsKidPassword(stepCerts.getKidPassword())
+				.stepCertsCAURL(stepCerts.getCaURL())
+				.build();
 	}
 
 	private GcpCloudSettings gcpCloudSettings(CloudSettings settings, CloudConfiguration cloudConfiguration,
-											  CloudConfiguration.LdapConfig ldapConfig) {
+											  CloudConfiguration.LdapConfig ldapConfig,
+											  CloudConfiguration.StepCerts stepCerts) {
 		return GcpCloudSettings.builder()
 				.projectId(cloudConfiguration.getGcpProjectId())
 				.vpcName(cloudConfiguration.getVpcId())
@@ -108,11 +118,19 @@ public class CommandBuilder {
 				.cloud(conf.getCloudProvider().getName())
 				.os(cloudConfiguration.getOs())
 				.confKeyDir(cloudConfiguration.getConfKeyDir())
-				.gcpIamUser(settings.getIamUser()).build();
+				.gcpIamUser(settings.getIamUser())
+				.sharedImageEnabled(cloudConfiguration.isSharedImageEnabled())
+				.stepCertsEnabled(stepCerts.isEnabled())
+				.stepCertsRootCA(stepCerts.getRootCA())
+				.stepCertsKid(stepCerts.getKid())
+				.stepCertsKidPassword(stepCerts.getKidPassword())
+				.stepCertsCAURL(stepCerts.getCaURL())
+				.build();
 	}
 
 	private AwsCloudSettings awsCloudSettings(CloudSettings settings, CloudConfiguration cloudConfiguration,
-											  CloudConfiguration.LdapConfig ldapConfig) {
+											  CloudConfiguration.LdapConfig ldapConfig,
+											  CloudConfiguration.StepCerts stepCerts) {
 		return AwsCloudSettings.builder()
 				.awsRegion(cloudConfiguration.getRegion())
 				.awsSecurityGroupIds(cloudConfiguration.getSecurityGroupIds())
@@ -132,6 +150,12 @@ public class CommandBuilder {
 				.cloud(conf.getCloudProvider().getName())
 				.os(cloudConfiguration.getOs())
 				.confKeyDir(cloudConfiguration.getConfKeyDir())
+				.sharedImageEnabled(cloudConfiguration.isSharedImageEnabled())
+				.stepCertsEnabled(stepCerts.isEnabled())
+				.stepCertsRootCA(stepCerts.getRootCA())
+				.stepCertsKid(stepCerts.getKid())
+				.stepCertsKidPassword(stepCerts.getKidPassword())
+				.stepCertsCAURL(stepCerts.getCaURL())
 				.build();
 	}
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org