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

csantanapr pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-openwhisk-devtools.git


The following commit(s) were added to refs/heads/master by this push:
     new 1e95e39  Integrated OW GW and existing API Manangement (#123)
1e95e39 is described below

commit 1e95e3982edecda40cf11fd3cc0bdd884f10136f
Author: ddragosd <[email protected]>
AuthorDate: Tue May 8 17:37:51 2018 -0700

    Integrated OW GW and existing API Manangement (#123)
---
 docker-compose/Makefile                            | 49 ++++++++++++++++++----
 docker-compose/README.md                           |  3 +-
 .../whisk-docker-compose.conf                      |  0
 docker-compose/apigateway/rclone/rclone.conf       | 10 +++++
 docker-compose/docker-compose.yml                  | 36 +++++++++++++---
 5 files changed, 82 insertions(+), 16 deletions(-)

diff --git a/docker-compose/Makefile b/docker-compose/Makefile
index 2d8e870..25c80fe 100644
--- a/docker-compose/Makefile
+++ b/docker-compose/Makefile
@@ -123,7 +123,7 @@ download-cli:
        fi
 
 .PHONY: run
-run: print-host check-required-ports setup start-docker-compose init-couchdb 
init-whisk-cli
+run: print-host check-required-ports setup start-docker-compose init-couchdb 
init-whisk-cli init-api-management
 
 print-host:
        echo "host ip address: ${DOCKER_HOST_IP}"
@@ -164,21 +164,39 @@ check-kafka-ports:
        done
        echo " ... OK"
 
-
-
-
 .PHONY: setup
 setup:
-       mkdir -p ~/tmp/openwhisk/apigateway/ssl
-       $(OPENWHISK_PROJECT_HOME)/ansible/files/genssl.sh $(DOCKER_HOST_IP) 
server $(OPENWHISK_PROJECT_HOME)/ansible/roles/nginx/files
-       cp $(OPENWHISK_PROJECT_HOME)/ansible/roles/nginx/files/*.pem 
~/tmp/openwhisk/apigateway/ssl
-       cp -r ./apigateway/* ~/tmp/openwhisk/apigateway/
+       mkdir -p ~/tmp/openwhisk
        > ~/tmp/openwhisk/local.env
        printf "DOCKER_BINARY=$(DOCKER_BINARY)\n" >> ~/tmp/openwhisk/local.env
        printf "DOCKER_COMPOSE_HOST=$(DOCKER_HOST_IP)\n" >> 
~/tmp/openwhisk/local.env
        printf "DOCKER_REGISTRY=$(DOCKER_REGISTRY)\n" >> 
~/tmp/openwhisk/local.env
        printf "DOCKER_IMAGE_PREFIX=$(DOCKER_IMAGE_PREFIX)\n" >> 
~/tmp/openwhisk/local.env
 
+       echo "  ... preparing api-gateway configuration"
+       rm -rf ~/tmp/openwhisk/api-gateway-config
+       mkdir -p ~/tmp/openwhisk/api-gateway-config/api-gateway
+       cp -r ./apigateway/* ~/tmp/openwhisk/api-gateway-config/api-gateway/
+       cp -r ./apigateway/rclone ~/tmp/openwhisk
+       $(shell cat ~/tmp/openwhisk/local.env) docker-compose --project-name 
openwhisk up minio 2>&1 > ~/tmp/openwhisk/setup.log &
+       until (curl --silent http://$(DOCKER_HOST_IP):9001/); do printf '.'; 
sleep 5; done
+       docker run --rm -v ~/tmp/openwhisk/rclone:/root/.config/rclone \
+                                       --link="openwhisk_minio_1:minio.docker" 
--network=openwhisk_default \
+                                       --entrypoint=rclone 
openwhisk/apigateway mkdir minio:api-gateway
+       docker run --rm -v 
~/tmp/openwhisk/api-gateway-config/api-gateway/generated-conf.d:/etc/api-gateway/generated-conf.d
 \
+                                       -v 
~/tmp/openwhisk/rclone:/root/.config/rclone \
+                                       --link="openwhisk_minio_1:minio.docker" 
--network=openwhisk_default \
+                                       --entrypoint=rclone 
openwhisk/apigateway copy --exclude .git /etc/api-gateway/ minio:api-gateway/
+       # $(shell cat ~/tmp/openwhisk/local.env) docker-compose --project-name 
openwhisk stop minio
+       # $(shell cat ~/tmp/openwhisk/local.env) docker-compose --project-name 
openwhisk rm -f minio
+       $(OPENWHISK_PROJECT_HOME)/ansible/files/genssl.sh $(DOCKER_HOST_IP) 
server $(OPENWHISK_PROJECT_HOME)/ansible/roles/nginx/files
+       mkdir -p ~/tmp/openwhisk/api-gateway-ssl
+       cp $(OPENWHISK_PROJECT_HOME)/ansible/roles/nginx/files/*.pem 
~/tmp/openwhisk/api-gateway-ssl
+
+.PHONY: gw 
+gw:
+       $(shell cat ~/tmp/openwhisk/local.env) docker-compose --project-name 
openwhisk up apigateway
+
 .PHONY: restart
 restart: stop rm start-docker-compose
 
@@ -236,8 +254,14 @@ init-whisk-cli:
        echo "waiting for the Whisk controller to come up ... "
        until $$(curl --output /dev/null --silent --head --fail 
http://$(DOCKER_HOST_IP):8888/ping); do printf '.'; sleep 5; done
        echo "initializing CLI ... "
-       $(WSK_CLI) -v property set --namespace guest --auth `cat 
$(OPENWHISK_PROJECT_HOME)/ansible/files/auth.guest` --apihost 
$(DOCKER_HOST_IP):443 -i
+       $(WSK_CLI) -v property set --namespace guest --auth `cat 
$(OPENWHISK_PROJECT_HOME)/ansible/files/auth.guest` --apihost 
https://$(DOCKER_HOST_IP) -i
 
+.PHONY: init-api-management
+init-api-management:
+       $(WSK_CLI) -v property set --namespace whisk.system --auth `cat 
$(OPENWHISK_PROJECT_HOME)/ansible/files/auth.whisk.system` --apihost 
$(DOCKER_HOST_IP) -i
+       GW_USER="" GW_PWD="" GW_HOST_V2="http://$(DOCKER_HOST_IP):9000/v2" 
OPENWHISK_HOME=$(OPENWHISK_PROJECT_HOME) \
+               
$(OPENWHISK_PROJECT_HOME)/ansible/roles/routemgmt/files/installRouteMgmt.sh 
$(shell cat $(OPENWHISK_PROJECT_HOME)/ansible/files/auth.whisk.system) 
$(DOCKER_HOST_IP) /whisk.system $(WSK_CLI)
+       $(WSK_CLI) -v property set --namespace guest --auth `cat 
$(OPENWHISK_PROJECT_HOME)/ansible/files/auth.guest` --apihost $(DOCKER_HOST_IP) 
-i
 
 .PHONY: init-catalog
 init-catalog:
@@ -275,6 +299,13 @@ hello-world: create-hello-world-function
            && echo "invokation result:" $$res \
            && (echo $$res | grep "Hello, World") || ($(WSK_CLI) -i action 
delete hello && tail -n 200 ~/tmp/openwhisk/invoker/logs/invoker-local_logs.log 
~/tmp/openwhisk/controller/logs/controller-local_logs.log && exit 1)
 
+       echo "$$(tput setaf 4) creating an API from the hello function 
...$$(tput sgr0)"
+       $(WSK_CLI) -i action update "/guest/hello" --web true
+       web_action=`$(WSK_CLI) -i api create /hello /world get hello 
--response-type json | tail -n 1` \
+           && echo "invoking: " $$web_action \
+           && (echo $$web_action | xargs curl -sS | grep "Hello, World") || 
($(WSK_CLI) -i action delete hello && echo "Error invoking the web action" && 
tail -n 200 ~/tmp/openwhisk/invoker/logs/invoker-local_logs.log 
~/tmp/openwhisk/controller/logs/controller-local_logs.log && exit 1)
+       $(WSK_CLI) -i api list /hello
+
        echo "$$(tput setaf 1)deleting the function ...$$(tput sgr0)"
        $(WSK_CLI) -i action delete hello
        rm hello.js
diff --git a/docker-compose/README.md b/docker-compose/README.md
index d0c58a0..6ca4866 100644
--- a/docker-compose/README.md
+++ b/docker-compose/README.md
@@ -18,7 +18,8 @@ The following are required to build and deploy OpenWhisk with 
Docker Compose:
 
 These ports must be available:
 
-- `80` and `443` for the API Gateway
+- `80`, `443`, `9000`, `9001`, and `9090` for the API Gateway
+- `6379` for Redis
 - `2181` for Zookeeper
 - `5984` for CouchDB
 - `8085` for OpenWhisk's Invoker
diff --git a/docker-compose/apigateway/conf/whisk-docker-compose.conf 
b/docker-compose/apigateway/generated-conf.d/whisk-docker-compose.conf
similarity index 100%
rename from docker-compose/apigateway/conf/whisk-docker-compose.conf
rename to docker-compose/apigateway/generated-conf.d/whisk-docker-compose.conf
diff --git a/docker-compose/apigateway/rclone/rclone.conf 
b/docker-compose/apigateway/rclone/rclone.conf
new file mode 100644
index 0000000..741d899
--- /dev/null
+++ b/docker-compose/apigateway/rclone/rclone.conf
@@ -0,0 +1,10 @@
+[minio]
+type = s3
+provider = Minio
+env_auth = false
+access_key_id = 5VCTEQOQ0GR0NV1T67GN
+secret_access_key = 8MBK5aJTR330V1sohz4n1i7W5Wv/jzahARNHUzi3
+region = other-v2-signature
+endpoint = http://minio.docker:9000
+location_constraint = us-east-1
+acl = public-read
\ No newline at end of file
diff --git a/docker-compose/docker-compose.yml 
b/docker-compose/docker-compose.yml
index f5b6015..ee87806 100644
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -124,25 +124,49 @@ services:
 
   # The API Gateway is currently used to expose the Controller API
   #   see apigateway/conf/whisk-docker-compose.conf
+  # Minio is used to mock an object storage ( i.e. S3) that hosts the 
api-gateway configuration.
+  # Minio also exposes a web UI to browse the files: 
http://localhost:9001/minio/api-gateway/
+  minio:
+    image: minio/minio:RELEASE.2018-05-04T23-13-12Z
+    command:
+      - server
+      - /data
+    environment:
+      - MINIO_ACCESS_KEY=5VCTEQOQ0GR0NV1T67GN
+      - MINIO_SECRET_KEY=8MBK5aJTR330V1sohz4n1i7W5Wv/jzahARNHUzi3
+    volumes:
+      - ~/tmp/openwhisk/minio:/data:rw
+    ports:
+      - "9001:9000"
   redis:
     image: redis:2.8
-    expose:
-      - "6379"
+    ports:
+      - "6379:6379"
   apigateway:
-    image: adobeapiplatform/apigateway:1.1.0
+    image: openwhisk/apigateway:latest
     links:
       - controller:whisk.controller
       - redis:redis.docker
+      - minio:minio.docker
+    environment:
+      - REDIS_HOST=${DOCKER_COMPOSE_HOST}
+      - REDIS_PORT=6379
+      - PUBLIC_MANAGEDURL_PORT=9090
+      - PUBLIC_MANAGEDURL_HOST=${DOCKER_COMPOSE_HOST}
+      - REMOTE_CONFIG=minio:api-gateway
     depends_on:
       - controller
       - redis
+      - minio
     volumes:
-      - ~/tmp/openwhisk/apigateway/ssl:/etc/ssl:ro
-      - ~/tmp/openwhisk/apigateway/conf:/etc/api-gateway/generated-conf.d:ro
-      - 
~/tmp/openwhisk/apigateway/env.conf:/etc/api-gateway/environment.conf.d:ro
+      - ~/tmp/openwhisk/api-gateway-ssl:/etc/ssl:ro
+      - 
~/tmp/openwhisk/api-gateway-config/api-gateway/generated-conf.d:/etc/api-gateway/generated-conf.d
+      - ~/tmp/openwhisk/rclone:/root/.config/rclone:rw
     ports:
       - "80:80"
       - "443:443"
+      - "9000:9000"
+      - "9090:8080"
 
   kafka-rest:
     image: confluentinc/cp-kafka-rest:3.3.1

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to