aboutsummaryrefslogtreecommitdiffstats
path: root/compose
diff options
context:
space:
mode:
Diffstat (limited to 'compose')
-rw-r--r--compose/README.md100
-rwxr-xr-xcompose/start-compose.sh25
-rwxr-xr-xcompose/stop-compose.sh12
3 files changed, 123 insertions, 14 deletions
diff --git a/compose/README.md b/compose/README.md
new file mode 100644
index 00000000..ada34e1c
--- /dev/null
+++ b/compose/README.md
@@ -0,0 +1,100 @@
+# Policy Framework Docker Compose
+
+The PF docker compose starts a small instance of docker containers for PF components.
+
+## Features
+
+- Starts all components, including Prometheus/Grafana dashboard and GUI (ACM and Apex)
+- Can start specific components
+- Expose fixed ports so all the REST endpoints can be called with localhost:component_port
+
+## Tech
+
+Things to be installed beforehand:
+
+- Linux VM if using Windows
+- Docker
+- Docker compose
+- Any editor
+
+## Installation
+
+Assuming the docker repository has been cloned and workdir is ../docker/compose
+
+- Install all PF components (excluding GUI)
+```sh
+./start-compose.sh
+```
+
+- Install all PF components + GUI
+
+```sh
+./start-compose.sh --gui
+```
+
+- Install an specific PF component
+(accepted options: api pap apex-pdp distribution drools-pdp drools-apps xacml-pdp
+policy-clamp-runtime-acm)
+
+
+```sh
+./start-compose.sh component
+
+# that will start apex-pdp and its dependencies (pap, api, db, simulator)
+./start-compose.sh apex-pdp
+```
+
+- Install an specific PF component with Grafana dashboard
+(accepted options: api pap apex-pdp distribution drools-pdp drools-apps xacml-pdp
+policy-clamp-runtime-acm)
+
+
+```sh
+./start-compose.sh component --grafana
+
+# that will start apex-pdp and its dependencies (pap, api, db, simulator) + grafana and prometheus server
+./start-compose.sh apex-pdp --grafana
+```
+
+## Docker image localization
+
+The docker images are always downloaded from nexus repository, but if needed to build a local
+image, edit the ``export-ports.sh`` script and change the variable ``CONTAINER_LOCATION``
+to be empty.
+
+
+## Docker image versions
+
+The start-compose script is always looking for the latest SNAPSHOT version available (will
+look locally first, then download from nexus if not available).
+Note: if latest Policy-API docker image is 2.8-SNAPSHOT-latest, but on nexus it was released
+2 days ago and in local environment it's 3 months old - it will use the 3 months old image,
+so it's recommended to keep an eye on it.
+
+If needed, the version can be edited on docker-compose.yml and docker-compose.gui.yml
+
+i.e: need to change db-migrator version
+from docker-compose.yml:
+``image: ${CONTAINER_LOCATION}onap/policy-db-migrator:${POLICY_DOCKER_VERSION}``
+
+replace the ${POLICY_DOCKER_VERSION} for the specific version needed
+
+
+## Logs
+
+To collect the docker-compose logs, simply run the following:
+
+```sh
+./start-compose.sh logs
+```
+Note: these are logs for installation only, not actual application usage
+
+It will generate a ``docker-compose.log`` file with the result.
+
+## Uninstall
+
+Simply run the ``stop-compose.sh`` script.
+
+```sh
+./stop-compose.sh
+```
diff --git a/compose/start-compose.sh b/compose/start-compose.sh
index a77b4834..49006f11 100755
--- a/compose/start-compose.sh
+++ b/compose/start-compose.sh
@@ -57,9 +57,11 @@ do
esac
done
+cd ${COMPOSE_FOLDER}
+
echo "Configuring docker compose..."
-source "${COMPOSE_FOLDER}"/export-ports.sh > /dev/null 2>&1
-source "${COMPOSE_FOLDER}"/get-versions.sh > /dev/null 2>&1
+source export-ports.sh > /dev/null 2>&1
+source get-versions.sh > /dev/null 2>&1
# in case of csit running for PAP (groups should be for pap) but starts apex-pdp for dependencies.
if [ -z "$PROJECT" ]; then
@@ -67,29 +69,32 @@ if [ -z "$PROJECT" ]; then
fi
if [ -n "$component" ]; then
- if [ "$grafana" = true ]; then
+ if [ "$component" == "logs" ]; then
+ echo "Collecting logs..."
+ docker-compose logs > docker-compose.log
+ elif [ "$grafana" = true ]; then
echo "Starting ${component} application with Grafana"
- docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml up -d "${component}" grafana
+ docker-compose up -d "${component}" grafana
echo "Prometheus server: http://localhost:${PROMETHEUS_PORT}"
echo "Grafana server: http://localhost:${GRAFANA_PORT}"
elif [ "$gui" = true ]; then
echo "Starting application with gui..."
- docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml \
- -f "${COMPOSE_FOLDER}"/docker-compose.gui.yml up -d "${component}" policy-gui
+ docker-compose -f docker-compose.yml -f docker-compose.gui.yml up -d "${component}" policy-gui
echo "Clamp GUI: https://localhost:2445/clamp"
else
echo "Starting ${component} application"
- docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml up -d "${component}"
+ docker-compose up -d "${component}"
fi
else
export PROJECT=api # api has groups.json complete with all 3 pdps
if [ "$gui" = true ]; then
echo "Starting application with gui..."
- docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml \
- -f "${COMPOSE_FOLDER}"/docker-compose.gui.yml up -d
+ docker-compose -f docker-compose.yml -f docker-compose.gui.yml up -d
echo "Clamp GUI: https://localhost:2445/clamp"
else
echo "Starting all components..."
- docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml up -d
+ docker-compose up -d
fi
fi
+
+cd ${WORKSPACE}
diff --git a/compose/stop-compose.sh b/compose/stop-compose.sh
index a8185215..0a7d9af4 100755
--- a/compose/stop-compose.sh
+++ b/compose/stop-compose.sh
@@ -25,12 +25,16 @@ if [ -z "${WORKSPACE}" ]; then
fi
COMPOSE_FOLDER="${WORKSPACE}"/compose
-source "${COMPOSE_FOLDER}"/export-ports.sh > /dev/null 2>&1
-source "${COMPOSE_FOLDER}"/get-versions.sh > /dev/null 2>&1
+cd ${COMPOSE_FOLDER}
+
+source export-ports.sh > /dev/null 2>&1
+source get-versions.sh > /dev/null 2>&1
echo "Collecting logs from docker compose containers..."
-docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml logs > docker_compose.log
+docker-compose logs > docker_compose.log
cat docker_compose.log
echo "Tearing down containers..."
-docker-compose -f "${COMPOSE_FOLDER}"/docker-compose.yml down -v --remove-orphans
+docker-compose down -v --remove-orphans
+
+cd ${WORKSPACE}