diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 580a2a95dff32de06ed347420beb05118f5c18ed..63bbb69f8fa12dafdc30190a94c2c1587128b4d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# Gitlab CI/CD script for the Melodic Integration project +## Gitlab CI/CD script for the Melodic Integration project variables: DOCKER_PUSH: "true" @@ -17,7 +17,7 @@ variables: PROCESS_CLI: "mvn -DskipTests --batch-mode -f process/pom.xml" DOCKER_DRIVER: overlay DOCKER_TLS_CERTDIR: "/certs" - IMAGE_TAG: "morphemic-rc2.5" + IMAGE_TAG: "proactive-dev-2.5" cache: paths: @@ -73,12 +73,7 @@ deploy-connectors:connectors: stage: deploy-connectors image: $MAVEN_IMAGE only: - - master - - rc3.0 - - rc3.1 - - morph-rc1.5 - - morphemic-rc2.5 - - proactive-dev + - proactive-dev-2.5 dependencies: - build-connectors:connectors script: @@ -88,12 +83,7 @@ deploy-raml:raml_to_jaxrs: stage: deploy-raml image: $MAVEN_IMAGE only: - - master - - rc3.0 - - rc3.1 - - morph-rc1.5 - - morphemic-rc2.5 - - proactive-dev + - proactive-dev-2.5 dependencies: - build-raml:raml_to_jaxrs script: @@ -103,12 +93,7 @@ deploy-interfaces:interfaces: stage: deploy-interfaces image: $MAVEN_IMAGE only: - - master - - rc3.0 - - rc3.1 - - morph-rc1.5 - - morphemic-rc2.5 - - proactive-dev + - proactive-dev-2.5 dependencies: - build-interfaces:interfaces script: @@ -118,12 +103,7 @@ deploy-rest:mule_esb: stage: deploy-rest image: $DOCKER_DIND_IMAGE only: - - master - - rc3.0 - - rc3.1 - - morph-rc1.5 - - morphemic-rc2.5 - - proactive-dev + - proactive-dev-2.5 dependencies: - deploy-raml:raml_to_jaxrs - deploy-interfaces:interfaces @@ -132,19 +112,14 @@ deploy-rest:mule_esb: script: - $DOCKER_CLI $MULE_ESB_CLI -Ddocker.imagePrefix=melodic/ clean install - echo "$K8S_SECRET_DOCKER_PASSWORD" | docker login $DOCKER_REPO -u $K8S_SECRET_DOCKER_USER --password-stdin - - docker tag $LOCAL_REPO/melodic/mule $DOCKER_REPO/melodic/melodic-integration/mule:$IMAGE_TAG + - docker tag $LOCAL_REPO/melodic/mule:latest $DOCKER_REPO/melodic/melodic-integration/mule:$IMAGE_TAG - docker push $DOCKER_REPO/melodic/melodic-integration/mule:$IMAGE_TAG deploy-rest:process: stage: deploy-rest image: $DOCKER_DIND_IMAGE only: - - master - - rc3.0 - - rc3.1 - - morph-rc1.5 - - morphemic-rc2.5 - - proactive-dev + - proactive-dev-2.5 dependencies: - deploy-raml:raml_to_jaxrs - deploy-interfaces:interfaces @@ -153,5 +128,5 @@ deploy-rest:process: script: - $DOCKER_CLI $PROCESS_CLI -Ddocker.imagePrefix=melodic/ clean install - echo "$K8S_SECRET_DOCKER_PASSWORD" | docker login $DOCKER_REPO -u $K8S_SECRET_DOCKER_USER --password-stdin - - docker tag $LOCAL_REPO/melodic/process $DOCKER_REPO/melodic/melodic-integration/process:$IMAGE_TAG + - docker tag $LOCAL_REPO/melodic/process:latest $DOCKER_REPO/melodic/melodic-integration/process:$IMAGE_TAG - docker push $DOCKER_REPO/melodic/melodic-integration/process:$IMAGE_TAG diff --git a/connectors/pom.xml b/connectors/pom.xml index e267dfbf467652fdfddc24d914b1e622b1c619d2..83c17579e87ffadbbaa55e1bb40b2d3a095eb289 100644 --- a/connectors/pom.xml +++ b/connectors/pom.xml @@ -6,7 +6,7 @@ cloud.morphemic.connectors connectors - 2.5-SNAPSHOT + 2.6-SNAPSHOT proactive_client @@ -38,7 +38,11 @@ maven-central https://repo1.maven.org/maven2/ - + + activeeon + repository.activeeon + http://repository.activeeon.com/content/groups/proactive/ + ow2 OW2 repository diff --git a/connectors/proactive_client/pom.xml b/connectors/proactive_client/pom.xml index 8a0cd372c7dfa86b8e77fd1a3a90f02a6f99981a..35b0fce31521e53abdd172663f057edc48e38f24 100644 --- a/connectors/proactive_client/pom.xml +++ b/connectors/proactive_client/pom.xml @@ -7,11 +7,11 @@ connectors cloud.morphemic.connectors - 2.5-SNAPSHOT + 2.6-SNAPSHOT proactive_client - 2.5-SNAPSHOT + 2.6-SNAPSHOT 1.8 @@ -21,7 +21,7 @@ org.activeeon scheduling-abstraction-layer - 4.5-SNAPSHOT + 4.6-SNAPSHOT diff --git a/mule_esb/mule-integration/pom.xml b/mule_esb/mule-integration/pom.xml index 0cd9982e4765fd090f1448eaffd47c1b98651525..22daa99058f82e766b4a6a88fdd9117c81ee0ad2 100644 --- a/mule_esb/mule-integration/pom.xml +++ b/mule_esb/mule-integration/pom.xml @@ -261,7 +261,7 @@ cloud.morphemic.connectors proactive_client - 2.5-SNAPSHOT + 2.6-SNAPSHOT org.hibernate.validator diff --git a/mule_esb/mule-integration/src/main/docker/Dockerfile b/mule_esb/mule-integration/src/main/docker/Dockerfile index e698218cbf81db74f455e6e0c24f48dfcf1e48ef..92b505e78e864955e021954722f082019d04421c 100644 --- a/mule_esb/mule-integration/src/main/docker/Dockerfile +++ b/mule_esb/mule-integration/src/main/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM java:openjdk-8-jre +FROM openjdk:8-alpine MAINTAINER mprusinski@7bulls.com diff --git a/mule_esb/mule-integration/src/main/java/cloud/morphemic/mule_integration/proactive/ProactiveClientServiceForIntegrationImpl.java b/mule_esb/mule-integration/src/main/java/cloud/morphemic/mule_integration/proactive/ProactiveClientServiceForIntegrationImpl.java index 72f473ea2dfcf7586b872290ab6c4de2d3f93138..928108073ea64211e88d2d1414fd03012db30a26 100644 --- a/mule_esb/mule-integration/src/main/java/cloud/morphemic/mule_integration/proactive/ProactiveClientServiceForIntegrationImpl.java +++ b/mule_esb/mule-integration/src/main/java/cloud/morphemic/mule_integration/proactive/ProactiveClientServiceForIntegrationImpl.java @@ -46,10 +46,12 @@ public class ProactiveClientServiceForIntegrationImpl extends ProactiveClientSer cloudJSON.put("cloudProviderName", ((LinkedHashMap) (((LinkedHashMap) cloudDefinition).get("api"))).get("providerName")); cloudJSON.put("endpoint", MoreObjects.firstNonNull(((LinkedHashMap) cloudDefinition).get("endpoint"), JSONObject.NULL)); LinkedHashMap credentials = (LinkedHashMap) ((LinkedHashMap) cloudDefinition).get("credential"); + if(ObjectUtils.isEmpty(credentials)) { log.error("ProactiveClientServiceForIntegrationImpl->callAddClouds: Got cloud definition without credentials - user and secret are required to operate with cloud service provider"); throw new RuntimeException("Got cloud definition without credentials - user and secret are required to operate with cloud service provider"); } + credentialsJSON = new JSONObject(); credentialsJSON.put("domain", credentials.get("domain")); credentialsJSON.put("user", credentials.get("user")); @@ -63,17 +65,39 @@ public class ProactiveClientServiceForIntegrationImpl extends ProactiveClientSer String defaultNetwork = null; String subnet = null; String regionBlacklist = null; + String sshUsername = null; + String sshKeyPairName = null; + String sshPrivateKey = null; + JSONObject scopeJSON = new JSONObject(); + JSONObject sshCredentialsJSON = new JSONObject(); LinkedHashMap cloudConfiguration = (LinkedHashMap)((LinkedHashMap) cloudDefinition).get("cloudConfiguration"); + LinkedHashMap SSHCredentials = (LinkedHashMap)((LinkedHashMap) cloudDefinition).get("sshcredentials"); + + if(ObjectUtils.isNotEmpty(SSHCredentials)){ + sshUsername = (SSHCredentials.get("username") != null) ? (String) SSHCredentials.get("username") : null; + sshKeyPairName = (SSHCredentials.get("keyPairName") != null) ? (String) SSHCredentials.get("keyPairName") : null; + sshPrivateKey = (SSHCredentials.get("privateKey") != null) ? (String) SSHCredentials.get("privateKey") : null; + + sshCredentialsJSON.put("username", sshUsername); + sshCredentialsJSON.put("keyPairName", sshKeyPairName); + sshCredentialsJSON.put("privateKey", sshPrivateKey); + + cloudJSON.put("sshCredentials", sshCredentialsJSON); + } + if(ObjectUtils.isNotEmpty(cloudConfiguration)) { identityVersion = (cloudConfiguration.get("identityVersion") != null) ? Integer.parseInt((String) cloudConfiguration.get("identityVersion")) : null; scopePrefix = (cloudConfiguration.get("scopePrefix") != null) ? (String) cloudConfiguration.get("scopePrefix") : null; scopeValue = (cloudConfiguration.get("scopeValue") != null) ? (String) cloudConfiguration.get("scopeValue") : null; + cloudJSON.put("identityVersion", identityVersion); scopeJSON.put("prefix", scopePrefix); scopeJSON.put("value", scopeValue); cloudJSON.put("scope", scopeJSON); + + LinkedHashMap properties = (LinkedHashMap) cloudConfiguration.get("properties"); if (ObjectUtils.isNotEmpty(properties)) { securityGroup = (String) properties.get("securityGroup"); @@ -81,6 +105,7 @@ public class ProactiveClientServiceForIntegrationImpl extends ProactiveClientSer subnet = (String) properties.get("subnet"); regionBlacklist = (String) properties.get("regionBlacklist"); } + nodeGroup = (String) cloudConfiguration.get("nodeGroup"); } cloudJSON.put("securityGroup", MoreObjects.firstNonNull(securityGroup, JSONObject.NULL)); diff --git a/process/src/main/docker/Dockerfile b/process/src/main/docker/Dockerfile index 2d59a9eabd4102a3fdc468846a21e765af307539..a573016100ae04619d09d5d06ef55fd5721e3f58 100644 --- a/process/src/main/docker/Dockerfile +++ b/process/src/main/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM java:8-alpine +FROM openjdk:8-alpine RUN /bin/sh -c "apk add --no-cache bash" VOLUME /tmp