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:04 UTC

[incubator-dlab] branch DLAB-1220 created (now a8a84fb)

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

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


      at a8a84fb  [DLAB-1220] Added new cloud parameter in provisioning

This branch includes the following new commits:

     new a8a84fb  [DLAB-1220] Added new cloud parameter in provisioning

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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


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

Posted by of...@apache.org.
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