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/12/09 14:18:05 UTC

[incubator-dlab] branch DLAB-1158 updated: Added Keycloak parameters to provisioning.yml

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

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


The following commit(s) were added to refs/heads/DLAB-1158 by this push:
     new d06eedf  Added Keycloak parameters to provisioning.yml
d06eedf is described below

commit d06eedfb461debf7ef500effb40d8e59a7308bc8
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Mon Dec 9 16:17:42 2019 +0200

    Added Keycloak parameters to provisioning.yml
---
 .../com/epam/dlab/dto/aws/AwsCloudSettings.java    |  8 ++++++
 .../epam/dlab/dto/azure/AzureCloudSettings.java    |  8 ++++++
 .../com/epam/dlab/dto/gcp/GcpCloudSettings.java    |  8 ++++++
 .../epam/dlab/backendapi/CloudConfiguration.java   | 22 +++++++++++++++
 .../backendapi/core/commands/CommandBuilder.java   | 32 ++++++++++++++++++----
 5 files changed, 72 insertions(+), 6 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 ed64985..2e617ec 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
@@ -82,6 +82,14 @@ public class AwsCloudSettings extends CloudSettings {
 	private String stepCertsKidPassword;
 	@JsonProperty("conf_stepcerts_ca_url")
 	private String stepCertsCAURL;
+	@JsonProperty("keycloak_auth_server_url")
+	private String keycloakAuthServerUrl;
+	@JsonProperty("keycloak_realm_name")
+	private String keycloakRealmName;
+	@JsonProperty("keycloak_user")
+	private String keycloakUser;
+	@JsonProperty("keycloak_user_password")
+	private String keycloakUserPassword;
 
 	@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 c4f001b..6be0a9d 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
@@ -60,6 +60,14 @@ public class AzureCloudSettings extends CloudSettings {
     private String stepCertsKidPassword;
     @JsonProperty("conf_stepcerts_ca_url")
     private String stepCertsCAURL;
+    @JsonProperty("keycloak_auth_server_url")
+    private String keycloakAuthServerUrl;
+    @JsonProperty("keycloak_realm_name")
+    private String keycloakRealmName;
+    @JsonProperty("keycloak_user")
+    private String keycloakUser;
+    @JsonProperty("keycloak_user_password")
+    private String keycloakUserPassword;
 
     @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 6587a32..e7881a7 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
@@ -76,6 +76,14 @@ public class GcpCloudSettings extends CloudSettings {
 	private String stepCertsKidPassword;
 	@JsonProperty("conf_stepcerts_ca_url")
 	private String stepCertsCAURL;
+	@JsonProperty("keycloak_auth_server_url")
+	private String keycloakAuthServerUrl;
+	@JsonProperty("keycloak_realm_name")
+	private String keycloakRealmName;
+	@JsonProperty("keycloak_user")
+	private String keycloakUser;
+	@JsonProperty("keycloak_user_password")
+	private String keycloakUserPassword;
 
 	@Override
 	@JsonIgnore
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 5653a90..b6f8d40 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
@@ -49,6 +49,8 @@ public class CloudConfiguration {
 	private final boolean sharedImageEnabled;
 	@JsonProperty("ldap")
 	private final LdapConfig ldapConfig;
+	private final StepCerts stepCerts;
+	private final Keycloak keycloak;
 
 	@Data
 	public static class LdapConfig {
@@ -58,4 +60,24 @@ 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;
+	}
+
+	@Data
+	public static class Keycloak {
+		@JsonProperty("auth_server_url")
+		private final String authServerUrl;
+		@JsonProperty("realm_name")
+		private final String realmName;
+		private final String user;
+		@JsonProperty("user_password")
+		private final String userPassword;
+	}
 }
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 509f424..dc4a4fa 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,22 @@ 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();
+		final CloudConfiguration.Keycloak keycloak = cloudConfiguration.getKeycloak();
 		if (cloudProvider == CloudProvider.AWS) {
-			return awsCloudSettings(settings, cloudConfiguration, ldapConfig);
+			return awsCloudSettings(settings, cloudConfiguration, ldapConfig, stepCerts, keycloak);
 		} else if (cloudProvider == CloudProvider.GCP) {
-			return gcpCloudSettings(settings, cloudConfiguration, ldapConfig);
+			return gcpCloudSettings(settings, cloudConfiguration, ldapConfig, stepCerts, keycloak);
 		} else if (cloudProvider == CloudProvider.AZURE) {
-			return azureCloudSettings(settings, cloudConfiguration);
+			return azureCloudSettings(settings, cloudConfiguration, stepCerts, keycloak);
 		} 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,
+												  CloudConfiguration.Keycloak keycloak) {
 		return AzureCloudSettings.builder()
 				.azureRegion(cloudConfiguration.getRegion())
 				.azureResourceGroupName(cloudConfiguration.getAzureResourceGroupName())
@@ -96,11 +100,17 @@ public class CommandBuilder {
 				.stepCertsKid(stepCerts.getKid())
 				.stepCertsKidPassword(stepCerts.getKidPassword())
 				.stepCertsCAURL(stepCerts.getCaURL())
+				.keycloakAuthServerUrl(keycloak.getAuthServerUrl())
+				.keycloakRealmName(keycloak.getRealmName())
+				.keycloakUser(keycloak.getUser())
+				.keycloakUserPassword(keycloak.getUserPassword())
 				.build();
 	}
 
 	private GcpCloudSettings gcpCloudSettings(CloudSettings settings, CloudConfiguration cloudConfiguration,
-											  CloudConfiguration.LdapConfig ldapConfig) {
+											  CloudConfiguration.LdapConfig ldapConfig,
+											  CloudConfiguration.StepCerts stepCerts,
+											  CloudConfiguration.Keycloak keycloak) {
 		return GcpCloudSettings.builder()
 				.projectId(cloudConfiguration.getGcpProjectId())
 				.vpcName(cloudConfiguration.getVpcId())
@@ -124,11 +134,17 @@ public class CommandBuilder {
 				.stepCertsKid(stepCerts.getKid())
 				.stepCertsKidPassword(stepCerts.getKidPassword())
 				.stepCertsCAURL(stepCerts.getCaURL())
+				.keycloakAuthServerUrl(keycloak.getAuthServerUrl())
+				.keycloakRealmName(keycloak.getRealmName())
+				.keycloakUser(keycloak.getUser())
+				.keycloakUserPassword(keycloak.getUserPassword())
 				.build();
 	}
 
 	private AwsCloudSettings awsCloudSettings(CloudSettings settings, CloudConfiguration cloudConfiguration,
-											  CloudConfiguration.LdapConfig ldapConfig) {
+											  CloudConfiguration.LdapConfig ldapConfig,
+											  CloudConfiguration.StepCerts stepCerts,
+											  CloudConfiguration.Keycloak keycloak) {
 		return AwsCloudSettings.builder()
 				.awsRegion(cloudConfiguration.getRegion())
 				.awsSecurityGroupIds(cloudConfiguration.getSecurityGroupIds())
@@ -155,6 +171,10 @@ public class CommandBuilder {
 				.stepCertsKid(stepCerts.getKid())
 				.stepCertsKidPassword(stepCerts.getKidPassword())
 				.stepCertsCAURL(stepCerts.getCaURL())
+				.keycloakAuthServerUrl(keycloak.getAuthServerUrl())
+				.keycloakRealmName(keycloak.getRealmName())
+				.keycloakUser(keycloak.getUser())
+				.keycloakUserPassword(keycloak.getUserPassword())
 				.build();
 	}
 }


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