diff options
author | liamfallon <liam.fallon@est.tech> | 2022-10-17 16:55:51 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2022-10-18 14:15:56 +0100 |
commit | c3e8a4a2ed66e73c6b39d68924ae8e310e7541db (patch) | |
tree | 83076413d38f24564020ca157bf6a2dd330f3747 /tutorials/tutorial-xacml-application | |
parent | 9831c28c678f70640f6f84e73c9c3d15d3f5a4a6 (diff) |
Fix hard coded versions in XACML-PDP tutorials
This commit adds variables to the docker-compse file for the
xacml-applicaiton tutorial and adds a startup script that downloads
files fromt he docker/csit repo to run the tutorial
This commit also removes the separate docker-compose file that was used
for xacml-enforcement tutorial and replaces it with instructions on how
to use the csit docker-compose to run the enforcement.
Issue-ID: POLICY-4186
Change-Id: Id1476e6c0949d3d57bdea9a696b985b60220ec78
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'tutorials/tutorial-xacml-application')
3 files changed, 170 insertions, 92 deletions
diff --git a/tutorials/tutorial-xacml-application/pom.xml b/tutorials/tutorial-xacml-application/pom.xml index b1febd7a..cf89e8a4 100644 --- a/tutorials/tutorial-xacml-application/pom.xml +++ b/tutorials/tutorial-xacml-application/pom.xml @@ -3,6 +3,7 @@ ONAP Policy Engine - XACML Application Tutorial ================================================================================ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + Modifications Copyright (C) 2022 Nordix Foundation. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,96 +19,112 @@ ============LICENSE_END========================================================= --> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.onap.policy.xacml-pdp</groupId> - <artifactId>xacml-tutorials</artifactId> - <version>2.7.1-SNAPSHOT</version> - </parent> + <parent> + <groupId>org.onap.policy.xacml-pdp</groupId> + <artifactId>xacml-tutorials</artifactId> + <version>2.7.1-SNAPSHOT</version> + </parent> - <groupId>org.onap.policy.tutorial.xacml-application</groupId> - <artifactId>tutorial-xacml-application</artifactId> - <packaging>jar</packaging> + <packaging>jar</packaging> + <groupId>org.onap.policy.tutorial.xacml-application</groupId> + <artifactId>tutorial-xacml-application</artifactId> + <name>tutorial-xacml-application</name> + <description>Policy XACML-PDP tutorial</description> - <name>tutorial-xacml-application</name> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <dist.project.version>${project.version}</dist.project.version> + <docker.skip>false</docker.skip> + <docker.skip.build>false</docker.skip.build> + <docker.skip.push>false</docker.skip.push> + <docker.contextDir>${project.basedir}/src/main/docker</docker.contextDir> + <maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format> + </properties> - <properties> - <!-- There is code to support JUnit testing in this sub-module. --> - <sonar.skip>true</sonar.skip> - </properties> + <dependencies> + <dependency> + <groupId>org.onap.policy.xacml-pdp.applications</groupId> + <artifactId>common</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.policy.xacml-pdp</groupId> + <artifactId>xacml-test</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> + </dependencies> - <dependencies> - <dependency> - <groupId>org.onap.policy.xacml-pdp.applications</groupId> - <artifactId>common</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.onap.policy.xacml-pdp</groupId> - <artifactId>xacml-test</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - </dependencies> - - <profiles> - <profile> - <id>docker</id> - <build> - <plugins> - <plugin> - <groupId>io.fabric8</groupId> - <artifactId>docker-maven-plugin</artifactId> - <configuration> - <verbose>true</verbose> - <imagePullPolicy>Always</imagePullPolicy> - <images> - <image> - <name>onap/policy-xacml-tutorial:${project.version}</name> - <alias>xacml-pdp</alias> - <build> - <contextDir>${project.basedir}/src/main/docker</contextDir> - <assembly> - <descriptorRef>artifact-with-dependencies</descriptorRef> - </assembly> - <args> - <BUILD_NAME>${project.name}</BUILD_NAME> - <BUILD_VERSION>${project.version}</BUILD_VERSION> - </args> - </build> - </image> - </images> - </configuration> - <executions> - <execution> - <id>clean-images</id> - <phase>pre-clean</phase> - <goals> - <goal>remove</goal> - </goals> - </execution> - <execution> - <id>generate-images</id> - <phase>package</phase> - <goals> - <goal>build</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - </plugins> - </build> - </profile> - </profiles> + <profiles> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <configuration> + <verbose>true</verbose> + <apiVersion>1.23</apiVersion> + <pullRegistry>${docker.pull.registry}</pullRegistry> + <pushRegistry>${docker.push.registry}</pushRegistry> + <images> + <image> + <name>onap/policy-xacml-tutorial</name> + <build> + <cleanup>try</cleanup> + <dockerFile>Dockerfile</dockerFile> + <contextDir>${docker.contextDir}</contextDir> + <tags> + <tag>${project.version}</tag> + <tag>${project.version}-${maven.build.timestamp}</tag> + <tag>${project.docker.latest.minmax.tag.version}</tag> + </tags> + <contextDir>${project.basedir}/src/main/docker</contextDir> + <assembly> + <descriptorRef>artifact-with-dependencies</descriptorRef> + </assembly> + <args> + <BUILD_NAME>${project.name}</BUILD_NAME> + <BUILD_VERSION>${project.version}</BUILD_VERSION> + </args> + </build> + </image> + </images> + </configuration> + <executions> + <execution> + <id>clean-images</id> + <phase>pre-clean</phase> + <goals> + <goal>remove</goal> + </goals> + <configuration> + <removeAll>true</removeAll> + </configuration> + </execution> + <execution> + <id>generate-images</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> diff --git a/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml b/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml index 22a9b97f..f0b153f9 100644 --- a/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml +++ b/tutorials/tutorial-xacml-application/src/main/docker/docker-compose.yml @@ -1,5 +1,6 @@ # ============LICENSE_START======================================================= # Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2022 Nordix Foundation. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,7 +19,7 @@ version: '2' services: mariadb: - image: mariadb:10.2.14 + image: ${CONTAINER_LOCATION}mariadb:${POLICY_MARIADB_VER} container_name: mariadb hostname: mariadb command: ['--lower-case-table-names=1', '--wait_timeout=28800'] @@ -28,7 +29,7 @@ services: expose: - 3306 message-router: - image: nexus3.onap.org:10001/onap/policy-models-simulator:2.7.0-SNAPSHOT + image: ${CONTAINER_LOCATION}onap/policy-models-simulator:${POLICY_MODELS_VERSION} container_name: dmaap-simulator hostname: dmaap-simulator volumes: @@ -38,7 +39,7 @@ services: expose: - 3904 api: - image: nexus3.onap.org:10001/onap/policy-api:2.7.0-SNAPSHOT + image: ${CONTAINER_LOCATION}onap/policy-api:${POLICY_API_VERSION} container_name: policy-api depends_on: - mariadb @@ -48,7 +49,7 @@ services: expose: - 6767 pap: - image: nexus3.onap.org:10001/onap/policy-pap:2.7.0-SNAPSHOT + image: ${CONTAINER_LOCATION}onap/policy-pap:${POLICY_PAP_VERSION} container_name: policy-pap depends_on: - mariadb @@ -60,7 +61,7 @@ services: expose: - 6868 xacml-pdp: - image: onap/policy-xacml-tutorial:2.7.0-SNAPSHOT + image: onap/policy-xacml-tutorial:${POLICY_XACML_TUTORIAL_VERSION} container_name: policy-xacml-pdp depends_on: - mariadb diff --git a/tutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh b/tutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh new file mode 100755 index 00000000..1576ad0e --- /dev/null +++ b/tutorials/tutorial-xacml-application/src/main/docker/run-tutorial.sh @@ -0,0 +1,60 @@ +#! /bin/bash + +# ============LICENSE_START==================================================== +# Copyright 2022 Nordix Foundation. +# ============================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END====================================================== + +if [ -z "$CONTAINER_LOCATION" ] +then + export CONTAINER_LOCATION="nexus3.onap.org:10001/" +fi + +echo "Looking up the XACML tutorial version . . ." + +POLICY_XACML_TUTORIAL_VERSION=$( + docker images --filter "reference=onap/policy-xacml-tutorial" | + grep -v "REPOSITORY" | + sort | + head -1 | + awk '{print $2}' +) + +if [ -z "$POLICY_XACML_TUTORIAL_VERSION" ] +then + echo "Look up of the XACML tutorial version failed, have you built the tutorial docker iamge?" + exit 1 +else + export POLICY_XACML_TUTORIAL_VERSION + echo "Look up of the XACML tutorial version completed, version is ${POLICY_XACML_TUTORIAL_VERSION}" +fi + +echo "Looking up latest versions of Policy Framework images . . ." +GETVERS_SCRIPT=$(mktemp) +curl -qL --silent "https://raw.githubusercontent.com/onap/policy-docker/master/csit/get-versions.sh" > "$GETVERS_SCRIPT" +export GERRIT_BRANCH="master" +chmod +x "$GETVERS_SCRIPT" +source "$GETVERS_SCRIPT" +echo "Look up of latest versions of Policy Framework images completed" + + +echo "Running tutorial . . ." +docker-compose -f docker-compose.yml up +echo "Tutorial run completed" + +echo "Cleaning up . . ." +rm "$GETVERS_SCRIPT" +echo "Cleanup competed" |