Created docker-compose with ejbca and certservice
authorMichal Banka <michal.banka@nokia.com>
Fri, 14 Feb 2020 13:55:14 +0000 (14:55 +0100)
committerMichal Banka <michal.banka@nokia.com>
Mon, 17 Feb 2020 11:35:01 +0000 (12:35 +0100)
Docker-compose should run configured EJBCA and certservice.

Signed-off-by: Michal Banka <michal.banka@nokia.com>
Issue-ID: AAF-997
Change-Id: I2c815c7a97636e31cc07d8a6d7a172a3895523b7

certService/README.md
certService/docker-compose.yml [new file with mode: 0644]
certService/src/main/resources/scripts/ejbca-configuration.sh [new file with mode: 0755]

index 443390b..16ad0d1 100644 (file)
@@ -54,7 +54,15 @@ Go to the certService subfolder and execute following statement (1.0.0-SNAPSHOT
     docker run -p 8080:8080 --name aaf-certservice-api nexus3.onap.org:10001/onap/org.onap.aaf.certservice.aaf-certservice-api:1.0.0
 
     ```
-    
+
+### Running Docker container from docker-compose with EJBCA
+ Docker-compose uses nexus image of certservice.
+    ```
+    docker-compose up
+     
+    ```
+
 ### Health Check
  Browser:
  
diff --git a/certService/docker-compose.yml b/certService/docker-compose.yml
new file mode 100644 (file)
index 0000000..04d4867
--- /dev/null
@@ -0,0 +1,31 @@
+version: "2.1"
+
+services:
+  ejbca:
+    image: primekey/ejbca-ce
+    hostname: cahostname
+    container_name: mycontainer
+    ports:
+        - "80:8080"
+        - "443:8443"
+    volumes:
+        - ./src/main/resources/scripts/:/opt/primekey/scripts
+    command: bash -c "
+      ./scripts/ejbca-configuration.sh &
+      /opt/primekey/bin/start.sh
+      "
+    healthcheck:
+      test: ["CMD-SHELL", "curl -kI https://localhost:8443/ejbca/publicweb/healthcheck/ejbcahealth"]
+      interval: 10s
+      timeout: 3s
+      retries: 9
+
+  certservice:
+    image: nexus3.onap.org:10001/onap/org.onap.aaf.certservice.aaf-certservice-api:1.0.0
+    container_name: certservice
+    ports:
+      - "8080:8080"
+    depends_on:
+      ejbca:
+        condition: service_healthy
+
diff --git a/certService/src/main/resources/scripts/ejbca-configuration.sh b/certService/src/main/resources/scripts/ejbca-configuration.sh
new file mode 100755 (executable)
index 0000000..cdff77d
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+waitForEjbcaStartUp() {
+    sleep $1
+}
+
+configureEjbca() {
+    ejbca.sh config cmp addalias --alias cmpRA
+    ejbca.sh config cmp updatealias --alias cmpRA --key operationmode --value ra
+    ejbca.sh ca editca --caname ManagementCA --field cmpRaAuthSecret --value mypassword
+    ejbca.sh config cmp dumpalias --alias cmpRA
+    ejbca.sh config cmp addalias --alias cmp
+    ejbca.sh config cmp updatealias --alias cmp --key allowautomatickeyupdate --value true
+    ejbca.sh ra addendentity --username Node123 --dn "CN=Node123" --caname ManagementCA --password mypassword --type 1 --token USERGENERATED
+    ejbca.sh ra setclearpwd --username Node123 --password mypassword
+    ejbca.sh config cmp updatealias --alias cmp --key extractusernamecomponent --value CN
+    ejbca.sh config cmp dumpalias --alias cmp
+    ejbca.sh ca getcacert --caname ManagementCA -f /dev/stdout > cacert.pem
+}
+
+waitForEjbcaStartUp 30
+configureEjbca