Repository: nifi Updated Branches: refs/heads/master a1794b101 -> caa71fce9
NIFI-5247 nifi-toolkit bash entry points should leverage exec to replace bash with the current java process in order to handle signals properly in docker. - Also add bash, openssl, jq to make certificate request operations easier - Move project.version to the build config from the Dockerfile, use target/ folder for the build dependency - Docker integration tests for checking exit codes and tls-toolkit basic server-client interaction This closes #2746. Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/caa71fce Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/caa71fce Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/caa71fce Branch: refs/heads/master Commit: caa71fce9260ed717d501bd962a6a26ae61c25ea Parents: a1794b1 Author: pepov <[email protected]> Authored: Thu May 24 16:15:55 2018 +0200 Committer: Jeff Storck <[email protected]> Committed: Fri Jun 1 13:20:33 2018 -0400 ---------------------------------------------------------------------- .../nifi-toolkit-assembly/docker/Dockerfile | 6 ++-- .../nifi-toolkit-assembly/docker/Dockerfile.hub | 2 +- .../docker/sh/docker-entrypoint.sh | 2 +- .../docker/tests/exit-codes.sh | 35 ++++++++++++++++++++ .../docker/tests/tls-toolkit.sh | 17 ++++++++++ nifi-toolkit/nifi-toolkit-assembly/pom.xml | 35 ++++++++++++++++++++ .../src/main/resources/bin/cli.sh | 3 +- .../src/main/resources/bin/encrypt-config.sh | 3 +- .../src/main/resources/bin/file-manager.sh | 3 +- .../src/main/resources/bin/flow-analyzer.sh | 3 +- .../src/main/resources/bin/node-manager.sh | 3 +- .../src/main/resources/bin/notify.sh | 3 +- .../src/main/resources/bin/s2s.sh | 3 +- .../src/main/resources/bin/tls-toolkit.sh | 3 +- .../src/main/resources/bin/zk-migrator.sh | 3 +- 15 files changed, 102 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile b/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile index 5e7e286..770b12c 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile +++ b/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile @@ -21,7 +21,7 @@ LABEL maintainer="Apache NiFi <[email protected]>" ARG UID=1000 ARG GID=1000 -ARG NIFI_TOOLKIT_VERSION=${project.version} +ARG NIFI_TOOLKIT_VERSION= ARG NIFI_TOOLKIT_BINARY=nifi-toolkit-${NIFI_TOOLKIT_VERSION}-bin.tar.gz ENV NIFI_TOOLKIT_BASE_DIR=/opt/nifi-toolkit @@ -30,7 +30,9 @@ ENV NIFI_TOOLKIT_HOME=${NIFI_TOOLKIT_BASE_DIR}/nifi-toolkit-${NIFI_TOOLKIT_VERSI ADD ./sh/docker-entrypoint.sh /opt/sh/docker-entrypoint.sh # Fix docker-entrypoint perms as per https://issues.apache.org/jira/browse/MRESOURCES-236 and Setup NiFi user -RUN chmod +x /opt/sh/docker-entrypoint.sh \ +RUN apk add --update curl bash jq openssl \ + && rm -rf /var/cache/apk/* \ + && chmod +x /opt/sh/docker-entrypoint.sh \ && addgroup -g $GID nifi \ && adduser -D -s /bin/ash -u $UID -G nifi nifi \ && mkdir -p ${NIFI_TOOLKIT_BASE_DIR} http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile.hub ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile.hub b/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile.hub index 36d1e5f..6b56651 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile.hub +++ b/nifi-toolkit/nifi-toolkit-assembly/docker/Dockerfile.hub @@ -32,7 +32,7 @@ ADD sh/docker-entrypoint.sh /opt/sh/docker-entrypoint.sh # Setup NiFi user # Download, validate, and expand Apache NiFi Toolkit binary. -RUN apk add --update curl \ +RUN apk add --update curl bash jq openssl \ && rm -rf /var/cache/apk/* \ && addgroup -g $GID nifi \ && adduser -D -s /bin/ash -u $UID -G nifi nifi \ http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/docker/sh/docker-entrypoint.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/docker/sh/docker-entrypoint.sh b/nifi-toolkit/nifi-toolkit-assembly/docker/sh/docker-entrypoint.sh index 28fb15d..05a0b31 100755 --- a/nifi-toolkit/nifi-toolkit-assembly/docker/sh/docker-entrypoint.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/docker/sh/docker-entrypoint.sh @@ -36,5 +36,5 @@ if ! [ -f "${toolkit_path}/${program}.sh" ]; then print_help ${program} else shift - ${toolkit_path}/${program}.sh "$@" + exec ${toolkit_path}/${program}.sh "$@" fi http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/docker/tests/exit-codes.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/docker/tests/exit-codes.sh b/nifi-toolkit/nifi-toolkit-assembly/docker/tests/exit-codes.sh new file mode 100755 index 0000000..f0130d3 --- /dev/null +++ b/nifi-toolkit/nifi-toolkit-assembly/docker/tests/exit-codes.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -xuo pipefail + +VERSION=${1:-} +IMAGE=apache/nifi-toolkit:${VERSION} + +echo "Testing return values on missing input:" +docker run --rm $IMAGE +test 0 -eq $? || exit 1 + +echo "Testing return values on invalid input for all commands:" +docker run --rm $IMAGE encrypt-config invalid 1>/dev/null 2>&1 +test 2 -eq $? || exit 1 + +docker run --rm $IMAGE s2s invalid 1>/dev/null 2>&1 +test 0 -eq $? || exit 1 + +docker run --rm $IMAGE zk-migrator invalid 1>/dev/null 2>&1 +test 0 -eq $? || exit 1 + +docker run --rm $IMAGE node-manager invalid 1>/dev/null 2>&1 +test 1 -eq $? || exit 1 + +docker run --rm $IMAGE cli invalid 1>/dev/null 2>&1 +test 255 -eq $? || exit 1 + +docker run --rm $IMAGE tls-toolkit invalid 1>/dev/null 2>&1 +test 2 -eq $? || exit 1 + +docker run --rm $IMAGE file-manager invalid 1>/dev/null 2>&1 +test 1 -eq $? || exit 1 + +docker run --rm $IMAGE flow-analyzer invalid 1>/dev/null 2>&1 +test 1 -eq $? || exit 1 http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/docker/tests/tls-toolkit.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/docker/tests/tls-toolkit.sh b/nifi-toolkit/nifi-toolkit-assembly/docker/tests/tls-toolkit.sh new file mode 100755 index 0000000..d58d2b7 --- /dev/null +++ b/nifi-toolkit/nifi-toolkit-assembly/docker/tests/tls-toolkit.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -exuo pipefail + +VERSION=$1 +IMAGE=apache/nifi-toolkit:${VERSION} +CONTAINER=nifi-toolkit-$VERSION-tls-toolkit-integration-test + +TOKEN=D40F6B95-801F-4800-A1E1-A9FCC712E0BD + +trap " { docker rm -f $CONTAINER ; } " EXIT + +echo "Starting CA server using the tls-toolkit server command" +docker run -d --name $CONTAINER $IMAGE tls-toolkit server -t $TOKEN -c $CONTAINER + +echo "Requesting client certificate using the tls-toolkit client command" +docker run --rm --link $CONTAINER $IMAGE tls-toolkit client -t $TOKEN -c $CONTAINER http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/pom.xml ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/pom.xml b/nifi-toolkit/nifi-toolkit-assembly/pom.xml index 1edc2d5..3d816cd 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/pom.xml +++ b/nifi-toolkit/nifi-toolkit-assembly/pom.xml @@ -28,6 +28,8 @@ language governing permissions and limitations under the License. --> <excludes combine.children="append"> <exclude>src/main/resources/conf/config-client.json</exclude> <exclude>src/main/resources/conf/config-server.json</exclude> + <exclude>docker/tests/tls-toolkit.sh</exclude> + <exclude>docker/tests/exit-codes.sh</exclude> </excludes> </configuration> </plugin> @@ -182,6 +184,7 @@ language governing permissions and limitations under the License. --> <buildArgs> <UID>1000</UID> <GID>1000</GID> + <NIFI_TOOLKIT_VERSION>${project.version}</NIFI_TOOLKIT_VERSION> </buildArgs> <repository>apache/nifi-toolkit</repository> <tag>${project.version}</tag> @@ -189,6 +192,38 @@ language governing permissions and limitations under the License. --> </execution> </executions> </plugin> + <plugin> + <artifactId>exec-maven-plugin</artifactId> + <groupId>org.codehaus.mojo</groupId> + <executions> + <execution> + <id>Docker integration tests - exit codes</id> + <phase>integration-test</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.version}</argument> + </arguments> + <executable>${project.basedir}/docker/tests/exit-codes.sh</executable> + </configuration> + </execution> + <execution> + <id>Docker integration tests - tls-toolkit</id> + <phase>integration-test</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <arguments> + <argument>${project.version}</argument> + </arguments> + <executable>${project.basedir}/docker/tests/tls-toolkit.sh</executable> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </profile> http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/cli.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/cli.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/cli.sh index 0ede918..5093859 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/cli.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/cli.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms128m -Xmx256m} org.apache.nifi.toolkit.cli.CLIMain "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms128m -Xmx256m} org.apache.nifi.toolkit.cli.CLIMain "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/encrypt-config.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/encrypt-config.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/encrypt-config.sh index 891b5ad..8a561ea 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/encrypt-config.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/encrypt-config.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms128m -Xmx256m} org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms128m -Xmx256m} org.apache.nifi.toolkit.encryptconfig.EncryptConfigMain "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/file-manager.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/file-manager.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/file-manager.sh index de7bfdc..ba1b666 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/file-manager.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/file-manager.sh @@ -110,8 +110,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.admin.filemanager.FileManagerTool "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.admin.filemanager.FileManagerTool "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/flow-analyzer.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/flow-analyzer.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/flow-analyzer.sh index 5c23b55..6785ae6 100755 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/flow-analyzer.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/flow-analyzer.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.flowanalyzer.FlowAnalyzerDriver "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.flowanalyzer.FlowAnalyzerDriver "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/node-manager.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/node-manager.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/node-manager.sh index dcc981b..de2de01 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/node-manager.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/node-manager.sh @@ -110,8 +110,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.admin.nodemanager.NodeManagerTool "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.admin.nodemanager.NodeManagerTool "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/notify.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/notify.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/notify.sh index 87f8706..9f2b063 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/notify.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/notify.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.admin.notify.NotificationTool "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.admin.notify.NotificationTool "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/s2s.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/s2s.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/s2s.sh index 887dd12..077fb77 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/s2s.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/s2s.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms128m -Xmx256m} org.apache.nifi.toolkit.s2s.SiteToSiteCliMain "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms128m -Xmx256m} org.apache.nifi.toolkit.s2s.SiteToSiteCliMain "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/tls-toolkit.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/tls-toolkit.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/tls-toolkit.sh index e2452dd..abd2d39 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/tls-toolkit.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/tls-toolkit.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.tls.TlsToolkitMain "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.tls.TlsToolkitMain "$@" } http://git-wip-us.apache.org/repos/asf/nifi/blob/caa71fce/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/zk-migrator.sh ---------------------------------------------------------------------- diff --git a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/zk-migrator.sh b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/zk-migrator.sh index b593d69..dd1e097 100644 --- a/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/zk-migrator.sh +++ b/nifi-toolkit/nifi-toolkit-assembly/src/main/resources/bin/zk-migrator.sh @@ -111,8 +111,7 @@ run() { export NIFI_TOOLKIT_HOME="$NIFI_TOOLKIT_HOME" umask 0077 - "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.zkmigrator.ZooKeeperMigratorMain "$@" - return $? + exec "${JAVA}" -cp "${CLASSPATH}" ${JAVA_OPTS:--Xms12m -Xmx24m} org.apache.nifi.toolkit.zkmigrator.ZooKeeperMigratorMain "$@" }
